1 // Copyright © 2016-2017 winapi-rs developers
2 // Licensed under the Apache License, Version 2.0
3 // <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
4 // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
5 // All files in the project carrying such notice may not be copied, modified, or distributed
6 // except according to those terms.
7 //! this ALWAYS GENERATED file contains the definitions for the interfaces
8 use ctypes::c_void;
9 use shared::basetsd::UINT64;
10 use shared::guiddef::{CLSID, REFIID};
11 use shared::minwindef::{BOOL, DWORD, FILETIME, ULONG};
12 use shared::wtypesbase::{LPOLESTR, OLECHAR};
13 use um::objidlbase::{IEnumString, IStream};
14 use um::unknwnbase::{IUnknown, IUnknownVtbl};
15 use um::winnt::{HRESULT, ULARGE_INTEGER};
16 //8402
17 STRUCT!{struct BIND_OPTS {
18     cbStruct: DWORD,
19     grfFlags: DWORD,
20     grfMode: DWORD,
21     dwTickCountDeadline: DWORD,
22 }}
23 pub type LPBIND_OPTS = *mut BIND_OPTS;
24 //8479
25 RIDL!(
26 #[uuid(0x0000000e, 0x0000, 0x0000, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46)]
27 interface IBindCtx(IBindCtxVtbl): IUnknown(IUnknownVtbl) {
28     fn RegisterObjectBound(
29         punk: *mut IUnknown,
30     ) -> HRESULT,
31     fn RevokeObjectBound(
32         punk: *mut IUnknown,
33     ) -> HRESULT,
34     fn ReleaseBoundObjects() -> HRESULT,
35     fn SetBindOptions(
36         pbindopts: *mut BIND_OPTS,
37     ) -> HRESULT,
38     fn GetBindOptions(
39         pbindopts: *mut BIND_OPTS,
40     ) -> HRESULT,
41     fn GetRunningObjectTable(
42         pprot: *mut *mut IRunningObjectTable,
43     ) -> HRESULT,
44     fn RegisterObjectParam(
45         pszKey: LPOLESTR,
46         punk: *mut IUnknown,
47     ) -> HRESULT,
48     fn GetObjectParam(
49         pszKey: LPOLESTR,
50         ppunk: *mut *mut IUnknown,
51     ) -> HRESULT,
52     fn EnumObjectParam(
53         ppenum: *mut *mut IEnumString,
54     ) -> HRESULT,
55     fn RevokeObjectParam(
56         pszKey: LPOLESTR,
57     ) -> HRESULT,
58 }
59 );
60 //8681
61 RIDL!(
62 #[uuid(0x00000102, 0x0000, 0x0000, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46)]
63 interface IEnumMoniker(IEnumMonikerVtbl): IUnknown(IUnknownVtbl) {
64     fn Next(
65         celt: ULONG,
66         rgelt: *mut *mut IMoniker,
67         pceltFetched: *mut ULONG,
68     ) -> HRESULT,
69     fn Skip(
70         celt: ULONG,
71     ) -> HRESULT,
72     fn Reset() -> HRESULT,
73     fn Clone(
74         ppenum: *mut *mut IEnumMoniker,
75     ) -> HRESULT,
76 }
77 );
78 //8958
79 RIDL!(
80 #[uuid(0x00000010, 0x0000, 0x0000, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46)]
81 interface IRunningObjectTable(IRunningObjectTableVtbl): IUnknown(IUnknownVtbl) {
82     fn Register(
83         grfFlags: DWORD,
84         punkObject: *mut IUnknown,
85         pmkObjectName: *mut IMoniker,
86         pdwRegister: *mut DWORD,
87     ) -> HRESULT,
88     fn Revoke(
89         dwRegister: DWORD,
90     ) -> HRESULT,
91     fn IsRunning(
92         pmkObjectName: *mut IMoniker,
93     ) -> HRESULT,
94     fn GetObject(
95         pmkObjectName: *mut IMoniker,
96         ppunkObject: *mut *mut IUnknown,
97     ) -> HRESULT,
98     fn NoteChangeTime(
99         dwRegister: DWORD,
100         pfiletime: *mut FILETIME,
101     ) -> HRESULT,
102     fn GetTimeOfLastChange(
103         pmkObjectName: *mut IMoniker,
104         pfiletime: *mut FILETIME,
105     ) -> HRESULT,
106     fn EnumRunning(
107         ppenumMoniker: *mut *mut IEnumMoniker,
108     ) -> HRESULT,
109 }
110 );
111 //9125
112 RIDL!(
113 #[uuid(0x0000010c, 0x0000, 0x0000, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46)]
114 interface IPersist(IPersistVtbl): IUnknown(IUnknownVtbl) {
115     fn GetClassID(
116         pClassID: *mut CLSID,
117     ) -> HRESULT,
118 }
119 );
120 //9207
121 RIDL!(
122 #[uuid(0x00000109, 0x0000, 0x0000, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46)]
123 interface IPersistStream(IPersistStreamVtbl): IPersist(IPersistVtbl) {
124     fn IsDirty() -> HRESULT,
125     fn Load(
126         pStm: *mut IStream,
127     ) -> HRESULT,
128     fn Save(
129         pStm: *mut IStream,
130         fClearDirty: BOOL,
131     ) -> HRESULT,
132     fn GetSizeMax(
133         pcbSize: *mut ULARGE_INTEGER,
134     ) -> HRESULT,
135 }
136 );
137 //9350
138 RIDL!(
139 #[uuid(0x0000000f, 0x0000, 0x0000, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46)]
140 interface IMoniker(IMonikerVtbl): IPersistStream(IPersistStreamVtbl) {
141     fn BindToObject(
142         pbc: *mut IBindCtx,
143         pmkToLeft: *mut IMoniker,
144         riidResult: REFIID,
145         ppvResult: *mut *mut c_void,
146     ) -> HRESULT,
147     fn BindToStorage(
148         pbc: *mut IBindCtx,
149         pmkToLeft: *mut IMoniker,
150         riid: REFIID,
151         ppvObj: *mut *mut c_void,
152     ) -> HRESULT,
153     fn Reduce(
154         pbc: *mut IBindCtx,
155         dwReduceHowFar: DWORD,
156         ppmkToLeft: *mut *mut IMoniker,
157         ppmkReduced: *mut *mut IMoniker,
158     ) -> HRESULT,
159     fn ComposeWith(
160         pmkRight: *mut IMoniker,
161         fOnlyIfNotGeneric: BOOL,
162         ppmkComposite: *mut *mut IMoniker,
163     ) -> HRESULT,
164     fn Enum(
165         fForward: BOOL,
166         ppenumMoniker: *mut *mut IEnumMoniker,
167     ) -> HRESULT,
168     fn IsEqual(
169         pmkOtherMoniker: *mut IMoniker,
170     ) -> HRESULT,
171     fn Hash(
172         pdwHash: *mut DWORD,
173     ) -> HRESULT,
174     fn IsRunning(
175         pbc: *mut IBindCtx,
176         pmkToLeft: *mut IMoniker,
177         pmkNewlyRunning: *mut IMoniker,
178     ) -> HRESULT,
179     fn GetTimeOfLastChange(
180         pbc: *mut IBindCtx,
181         pmkToLeft: *mut IMoniker,
182         pFileTime: *mut FILETIME,
183     ) -> HRESULT,
184     fn Inverse(
185         ppmk: *mut *mut IMoniker,
186     ) -> HRESULT,
187     fn CommonPrefixWith(
188         pmkOther: *mut IMoniker,
189         ppmkPrefix: *mut *mut IMoniker,
190     ) -> HRESULT,
191     fn RelativePathTo(
192         pmkOther: *mut IMoniker,
193         ppmkRelPath: *mut *mut IMoniker,
194     ) -> HRESULT,
195     fn GetDisplayName(
196         pbc: *mut IBindCtx,
197         pmkToLeft: *mut IMoniker,
198         ppszDisplayName: *mut LPOLESTR,
199     ) -> HRESULT,
200     fn ParseDisplayName(
201         pbc: *mut IBindCtx,
202         pmkToLeft: *mut IMoniker,
203         pszDisplayName: LPOLESTR,
204         pchEaten: *mut ULONG,
205         ppmkOut: *mut *mut IMoniker,
206     ) -> HRESULT,
207     fn IsSystemMoniker(
208         pdwMksys: *mut DWORD,
209     ) -> HRESULT,
210 }
211 );
212 ENUM!{enum EOLE_AUTHENTICATION_CAPABILITIES {
213     EOAC_NONE = 0,
214     EOAC_MUTUAL_AUTH = 0x1,
215     EOAC_STATIC_CLOAKING = 0x20,
216     EOAC_DYNAMIC_CLOAKING = 0x40,
217     EOAC_ANY_AUTHORITY = 0x80,
218     EOAC_MAKE_FULLSIC = 0x100,
219     EOAC_DEFAULT = 0x800,
220     EOAC_SECURE_REFS = 0x2,
221     EOAC_ACCESS_CONTROL = 0x4,
222     EOAC_APPID = 0x8,
223     EOAC_DYNAMIC = 0x10,
224     EOAC_REQUIRE_FULLSIC = 0x200,
225     EOAC_AUTO_IMPERSONATE = 0x400,
226     EOAC_NO_CUSTOM_MARSHAL = 0x2000,
227     EOAC_DISABLE_AAA = 0x1000,
228 }}
229 STRUCT!{struct SOLE_AUTHENTICATION_SERVICE {
230     dwAuthnSvc: DWORD,
231     dwAuthzSvc: DWORD,
232     pPrincipalName: *mut OLECHAR,
233     hr: HRESULT,
234 }}
235 RIDL!(
236 #[uuid(0xa2f05a09, 0x27a2, 0x42b5, 0xbc, 0x0e, 0xac, 0x16, 0x3e, 0xf4, 0x9d, 0x9b)]
237 interface IApartmentShutdown(IApartmentShutdownVtbl): IUnknown(IUnknownVtbl) {
238     fn OnUninitialize(
239         ui64ApartmentIdentifier: UINT64,
240     ) -> (),
241 }
242 );
243 RIDL!(
244 #[uuid(0x00000003, 0x0000, 0x0000, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46)]
245 interface IMarshal(IMarshalVtbl): IUnknown(IUnknownVtbl) {
246     fn GetUnmarshalClass(
247         riid: REFIID,
248         pv: *mut c_void,
249         dwDestContext: DWORD,
250         pvDestContext: *mut c_void,
251         mshlflags: DWORD,
252         pCid: *mut CLSID,
253     ) -> HRESULT,
254     fn GetMarshalSizeMax(
255         riid: REFIID,
256         pv: *mut c_void,
257         dwDestContext: DWORD,
258         pvDestContext: *mut c_void,
259         mshlflags: DWORD,
260         pSize: *mut DWORD,
261     ) -> HRESULT,
262     fn MarshalInterface(
263         pStm: *mut IStream,
264         riid: REFIID,
265         pv: *mut c_void,
266         dwDestContext: DWORD,
267         pvDestContext: *mut c_void,
268         mshlflags: DWORD,
269     ) -> HRESULT,
270     fn UnmarshalInterface(
271         pStm: *mut IStream,
272         riid: REFIID,
273         ppv: *mut *mut c_void,
274     ) -> HRESULT,
275     fn ReleaseMarshalData(
276         pStm: *mut IStream,
277     ) -> HRESULT,
278     fn DisconnectObject(
279         dwReserved: DWORD,
280     ) -> HRESULT,
281 }
282 );
283