]> git.proxmox.com Git - rustc.git/blame - vendor/winapi/src/um/objidl.rs
New upstream version 1.41.1+dfsg1
[rustc.git] / vendor / winapi / src / um / objidl.rs
CommitLineData
ff7c6d11
XL
1// Licensed under the Apache License, Version 2.0
2// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
3// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
4// All files in the project carrying such notice may not be copied, modified, or distributed
5// except according to those terms.
6//! this ALWAYS GENERATED file contains the definitions for the interfaces
7use ctypes::c_void;
8use shared::basetsd::UINT64;
0bf4aa26
XL
9use shared::guiddef::{CLSID, IID, REFCLSID, REFIID};
10use shared::minwindef::{BOOL, BYTE, DWORD, FILETIME, HGLOBAL, ULONG, WORD};
11use shared::ntdef::LONG;
12use shared::windef::{HBITMAP, HENHMETAFILE};
13use shared::wtypes::{CLIPFORMAT, HMETAFILEPICT};
ff7c6d11 14use shared::wtypesbase::{LPOLESTR, OLECHAR};
0bf4aa26 15use um::objidlbase::{IEnumString, IStream, STATSTG};
ff7c6d11
XL
16use um::unknwnbase::{IUnknown, IUnknownVtbl};
17use um::winnt::{HRESULT, ULARGE_INTEGER};
18//8402
19STRUCT!{struct BIND_OPTS {
20 cbStruct: DWORD,
21 grfFlags: DWORD,
22 grfMode: DWORD,
23 dwTickCountDeadline: DWORD,
24}}
25pub type LPBIND_OPTS = *mut BIND_OPTS;
26//8479
0bf4aa26 27RIDL!{#[uuid(0x0000000e, 0x0000, 0x0000, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46)]
ff7c6d11
XL
28interface IBindCtx(IBindCtxVtbl): IUnknown(IUnknownVtbl) {
29 fn RegisterObjectBound(
30 punk: *mut IUnknown,
31 ) -> HRESULT,
32 fn RevokeObjectBound(
33 punk: *mut IUnknown,
34 ) -> HRESULT,
35 fn ReleaseBoundObjects() -> HRESULT,
36 fn SetBindOptions(
37 pbindopts: *mut BIND_OPTS,
38 ) -> HRESULT,
39 fn GetBindOptions(
40 pbindopts: *mut BIND_OPTS,
41 ) -> HRESULT,
42 fn GetRunningObjectTable(
43 pprot: *mut *mut IRunningObjectTable,
44 ) -> HRESULT,
45 fn RegisterObjectParam(
46 pszKey: LPOLESTR,
47 punk: *mut IUnknown,
48 ) -> HRESULT,
49 fn GetObjectParam(
50 pszKey: LPOLESTR,
51 ppunk: *mut *mut IUnknown,
52 ) -> HRESULT,
53 fn EnumObjectParam(
54 ppenum: *mut *mut IEnumString,
55 ) -> HRESULT,
56 fn RevokeObjectParam(
57 pszKey: LPOLESTR,
58 ) -> HRESULT,
0bf4aa26 59}}
ff7c6d11 60//8681
0bf4aa26 61RIDL!{#[uuid(0x00000102, 0x0000, 0x0000, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46)]
ff7c6d11
XL
62interface IEnumMoniker(IEnumMonikerVtbl): IUnknown(IUnknownVtbl) {
63 fn Next(
64 celt: ULONG,
65 rgelt: *mut *mut IMoniker,
66 pceltFetched: *mut ULONG,
67 ) -> HRESULT,
68 fn Skip(
69 celt: ULONG,
70 ) -> HRESULT,
71 fn Reset() -> HRESULT,
72 fn Clone(
73 ppenum: *mut *mut IEnumMoniker,
74 ) -> HRESULT,
0bf4aa26 75}}
ff7c6d11 76//8958
0bf4aa26 77RIDL!{#[uuid(0x00000010, 0x0000, 0x0000, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46)]
ff7c6d11
XL
78interface IRunningObjectTable(IRunningObjectTableVtbl): IUnknown(IUnknownVtbl) {
79 fn Register(
80 grfFlags: DWORD,
81 punkObject: *mut IUnknown,
82 pmkObjectName: *mut IMoniker,
83 pdwRegister: *mut DWORD,
84 ) -> HRESULT,
85 fn Revoke(
86 dwRegister: DWORD,
87 ) -> HRESULT,
88 fn IsRunning(
89 pmkObjectName: *mut IMoniker,
90 ) -> HRESULT,
91 fn GetObject(
92 pmkObjectName: *mut IMoniker,
93 ppunkObject: *mut *mut IUnknown,
94 ) -> HRESULT,
95 fn NoteChangeTime(
96 dwRegister: DWORD,
97 pfiletime: *mut FILETIME,
98 ) -> HRESULT,
99 fn GetTimeOfLastChange(
100 pmkObjectName: *mut IMoniker,
101 pfiletime: *mut FILETIME,
102 ) -> HRESULT,
103 fn EnumRunning(
104 ppenumMoniker: *mut *mut IEnumMoniker,
105 ) -> HRESULT,
0bf4aa26 106}}
ff7c6d11 107//9125
0bf4aa26 108RIDL!{#[uuid(0x0000010c, 0x0000, 0x0000, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46)]
ff7c6d11
XL
109interface IPersist(IPersistVtbl): IUnknown(IUnknownVtbl) {
110 fn GetClassID(
111 pClassID: *mut CLSID,
112 ) -> HRESULT,
0bf4aa26 113}}
ff7c6d11 114//9207
0bf4aa26 115RIDL!{#[uuid(0x00000109, 0x0000, 0x0000, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46)]
ff7c6d11
XL
116interface IPersistStream(IPersistStreamVtbl): IPersist(IPersistVtbl) {
117 fn IsDirty() -> HRESULT,
118 fn Load(
119 pStm: *mut IStream,
120 ) -> HRESULT,
121 fn Save(
122 pStm: *mut IStream,
123 fClearDirty: BOOL,
124 ) -> HRESULT,
125 fn GetSizeMax(
126 pcbSize: *mut ULARGE_INTEGER,
127 ) -> HRESULT,
0bf4aa26 128}}
ff7c6d11 129//9350
0bf4aa26 130RIDL!{#[uuid(0x0000000f, 0x0000, 0x0000, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46)]
ff7c6d11
XL
131interface IMoniker(IMonikerVtbl): IPersistStream(IPersistStreamVtbl) {
132 fn BindToObject(
133 pbc: *mut IBindCtx,
134 pmkToLeft: *mut IMoniker,
135 riidResult: REFIID,
136 ppvResult: *mut *mut c_void,
137 ) -> HRESULT,
138 fn BindToStorage(
139 pbc: *mut IBindCtx,
140 pmkToLeft: *mut IMoniker,
141 riid: REFIID,
142 ppvObj: *mut *mut c_void,
143 ) -> HRESULT,
144 fn Reduce(
145 pbc: *mut IBindCtx,
146 dwReduceHowFar: DWORD,
147 ppmkToLeft: *mut *mut IMoniker,
148 ppmkReduced: *mut *mut IMoniker,
149 ) -> HRESULT,
150 fn ComposeWith(
151 pmkRight: *mut IMoniker,
152 fOnlyIfNotGeneric: BOOL,
153 ppmkComposite: *mut *mut IMoniker,
154 ) -> HRESULT,
155 fn Enum(
156 fForward: BOOL,
157 ppenumMoniker: *mut *mut IEnumMoniker,
158 ) -> HRESULT,
159 fn IsEqual(
160 pmkOtherMoniker: *mut IMoniker,
161 ) -> HRESULT,
162 fn Hash(
163 pdwHash: *mut DWORD,
164 ) -> HRESULT,
165 fn IsRunning(
166 pbc: *mut IBindCtx,
167 pmkToLeft: *mut IMoniker,
168 pmkNewlyRunning: *mut IMoniker,
169 ) -> HRESULT,
170 fn GetTimeOfLastChange(
171 pbc: *mut IBindCtx,
172 pmkToLeft: *mut IMoniker,
173 pFileTime: *mut FILETIME,
174 ) -> HRESULT,
175 fn Inverse(
176 ppmk: *mut *mut IMoniker,
177 ) -> HRESULT,
178 fn CommonPrefixWith(
179 pmkOther: *mut IMoniker,
180 ppmkPrefix: *mut *mut IMoniker,
181 ) -> HRESULT,
182 fn RelativePathTo(
183 pmkOther: *mut IMoniker,
184 ppmkRelPath: *mut *mut IMoniker,
185 ) -> HRESULT,
186 fn GetDisplayName(
187 pbc: *mut IBindCtx,
188 pmkToLeft: *mut IMoniker,
189 ppszDisplayName: *mut LPOLESTR,
190 ) -> HRESULT,
191 fn ParseDisplayName(
192 pbc: *mut IBindCtx,
193 pmkToLeft: *mut IMoniker,
194 pszDisplayName: LPOLESTR,
195 pchEaten: *mut ULONG,
196 ppmkOut: *mut *mut IMoniker,
197 ) -> HRESULT,
198 fn IsSystemMoniker(
199 pdwMksys: *mut DWORD,
200 ) -> HRESULT,
0bf4aa26 201}}
ff7c6d11
XL
202ENUM!{enum EOLE_AUTHENTICATION_CAPABILITIES {
203 EOAC_NONE = 0,
204 EOAC_MUTUAL_AUTH = 0x1,
205 EOAC_STATIC_CLOAKING = 0x20,
206 EOAC_DYNAMIC_CLOAKING = 0x40,
207 EOAC_ANY_AUTHORITY = 0x80,
208 EOAC_MAKE_FULLSIC = 0x100,
209 EOAC_DEFAULT = 0x800,
210 EOAC_SECURE_REFS = 0x2,
211 EOAC_ACCESS_CONTROL = 0x4,
212 EOAC_APPID = 0x8,
213 EOAC_DYNAMIC = 0x10,
214 EOAC_REQUIRE_FULLSIC = 0x200,
215 EOAC_AUTO_IMPERSONATE = 0x400,
216 EOAC_NO_CUSTOM_MARSHAL = 0x2000,
217 EOAC_DISABLE_AAA = 0x1000,
218}}
219STRUCT!{struct SOLE_AUTHENTICATION_SERVICE {
220 dwAuthnSvc: DWORD,
221 dwAuthzSvc: DWORD,
222 pPrincipalName: *mut OLECHAR,
223 hr: HRESULT,
224}}
0bf4aa26
XL
225RIDL!{#[uuid(0x0000000d, 0x0000, 0x0000, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46)]
226interface IEnumSTATSTG(IEnumSTATSTGVtbl): IUnknown(IUnknownVtbl) {
227 fn Next(
228 celt: ULONG,
229 rgelt: *mut STATSTG,
230 pceltFetched: *mut ULONG,
231 ) -> HRESULT,
232 fn Skip(
233 celt: ULONG,
234 ) -> HRESULT,
235 fn Reset() -> HRESULT,
236 fn Clone(
237 ppenum: *mut *mut IEnumSTATSTG,
238 ) -> HRESULT,
239}}
240pub type SNB = *const *const OLECHAR;
241RIDL!{#[uuid(0x0000000b, 0x0000, 0x0000, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46)]
242interface IStorage(IStorageVtbl): IUnknown(IUnknownVtbl) {
243 fn CreateStream(
244 pwcsName: *const OLECHAR,
245 grfMode: DWORD,
246 reserved1: DWORD,
247 reserved2: DWORD,
248 ppstm: *mut *mut IStream,
249 ) -> HRESULT,
250 fn OpenStream(
251 pwcsName: *const OLECHAR,
252 reserved1: *const c_void,
253 grfMode: DWORD,
254 reserved2: DWORD,
255 ppstm: *mut *mut IStream,
256 ) -> HRESULT,
257 fn CreateStorage(
258 pwcsName: *const OLECHAR,
259 grfMode: DWORD,
260 reserved1: DWORD,
261 reserved2: DWORD,
262 ppstg: *mut *mut IStorage,
263 ) -> HRESULT,
264 fn OpenStorage(
265 pwcsName: *const OLECHAR,
266 pstgPriority: IStorage,
267 grfMode: DWORD,
268 snbExclude: SNB,
269 reserved: DWORD,
270 ppstg: *mut *mut IStorage,
271 ) -> HRESULT,
272 fn CopyTo(
273 ciidExclude: DWORD,
274 rgiidExclude: *const IID,
275 snbExclude: SNB,
276 pstgDest: *const IStorage,
277 ) -> HRESULT,
278 fn MoveElementTo(
279 pwcsName: *const OLECHAR,
280 pstgDest: *const IStorage,
281 pwcsNewName: *const OLECHAR,
282 grfFlags: DWORD,
283 ) -> HRESULT,
284 fn Commit(
285 grfCommitFlags: DWORD,
286 ) -> HRESULT,
287 fn Revert() -> HRESULT,
288 fn EnumElements(
289 reserved1: DWORD,
290 reserved2: *const c_void,
291 reserved3: DWORD,
292 ppenum: *mut *mut IEnumSTATSTG,
293 ) -> HRESULT,
294 fn DestroyElement(
295 pwcsName: *const OLECHAR,
296 ) -> HRESULT,
297 fn RenameElement(
298 pwcsOldName: *const OLECHAR,
299 pwcsNewName: *const OLECHAR,
300 ) -> HRESULT,
301 fn SetElementTimes(
302 pwcsName: *const OLECHAR,
303 pctime: *const FILETIME,
304 patime: *const FILETIME,
305 pmtime: *const FILETIME,
306 ) -> HRESULT,
307 fn SetClass(
308 clsid: REFCLSID,
309 ) -> HRESULT,
310 fn SetStateBits(
311 grfStateBits: DWORD,
312 grfMask: DWORD,
313 ) -> HRESULT,
314 fn Stat(
315 pstatstg: *mut STATSTG,
316 grfStatFlag: DWORD,
317 ) -> HRESULT,
318}}
319STRUCT!{struct DVTARGETDEVICE {
320 tdSize: DWORD,
321 tdDriverNameOffset: WORD,
322 tdDeviceNameOffset: WORD,
323 tdPortNameOffset: WORD,
324 tdExtDevmodeOFfset: WORD,
325 tdData: [BYTE; 1],
326}}
327STRUCT!{struct FORMATETC {
328 cfFormat: CLIPFORMAT,
329 ptd: *const DVTARGETDEVICE,
330 dwAspect: DWORD,
331 lindex: LONG,
332 tymed: DWORD,
333}}
334RIDL!{#[uuid(0x00000103, 0x0000, 0x0000, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46)]
335interface IEnumFORMATETC(IEnumFORMATETCVtbl): IUnknown(IUnknownVtbl) {
336 fn Next(
337 celt: ULONG,
338 rgelt: *mut FORMATETC,
339 pceltFetched: *mut ULONG,
340 ) -> HRESULT,
341 fn Skip(
342 celt: ULONG,
343 ) -> HRESULT,
344 fn Reset() -> HRESULT,
345 fn Clone(
346 ppenum: *mut *mut IEnumFORMATETC,
347 ) -> HRESULT,
348}}
349ENUM!{enum ADVF {
350 ADVF_NODATA = 1,
351 ADVF_PRIMEFIRST = 2,
352 ADVF_ONLYONCE = 4,
353 ADVF_DATAONSTOP = 64,
354 ADVFCACHE_NOHANDLER = 8,
355 ADVFCACHE_FORCEBUILTIN = 16,
356 ADVFCACHE_ONSAVE = 32,
357}}
358STRUCT!{struct STATDATA {
359 formatetc: FORMATETC,
360 advf: DWORD,
361 pAdvSInk: *mut IAdviseSink,
362 dwConnection: DWORD,
363}}
364RIDL!{#[uuid(0x00000105, 0x0000, 0x0000, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46)]
365interface IEnumSTATDATA(IEnumSTATDATAVtbl): IUnknown(IUnknownVtbl) {
366 fn Next(
367 celt: ULONG,
368 rgelt: *mut STATDATA,
369 pceltFetched: *mut ULONG,
370 ) -> HRESULT,
371 fn Skip(
372 celt: ULONG,
373 ) -> HRESULT,
374 fn Reset() -> HRESULT,
375 fn Clone(
376 ppenum: *mut *mut IEnumSTATDATA,
377 ) -> HRESULT,
378}}
379ENUM!{enum TYMED {
380 TYMED_HGLOBAL = 1,
381 TYMED_FILE = 2,
382 TYMED_ISTREAM = 4,
383 TYMED_ISTORAGE = 8,
384 TYMED_GDI = 16,
385 TYMED_MFPICT = 32,
386 TYMED_ENHMF = 64,
387 TYMED_NULL = 0,
388}}
389UNION!{union STGMEDIUM_u {
390 [u64; 7], //TODO: I guessed to move on
391 hBitmap hBitmap_mut: HBITMAP,
392 hMetaFilePict hMetaFilePict_mut: HMETAFILEPICT,
393 hEnhMetaFile hEnhMetaFile_mut: HENHMETAFILE,
394 hGlobal hGlobal_mut: HGLOBAL,
395 lpszFileName lpszFileName_mut: LPOLESTR,
396 pstm pstm_mut: *mut IStream,
397 pstg pstg_mut: *mut IStorage,
398}}
399STRUCT!{struct STGMEDIUM {
400 tymed: DWORD,
401 u: *mut STGMEDIUM_u,
402 pUnkForRelease: *mut IUnknown,
403}}
404RIDL!{#[uuid(0x0000010f, 0x0000, 0x0000, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46)]
405interface IAdviseSink(IAdviseSinkVtbl): IUnknown(IUnknownVtbl) {
406 fn OnDataChange(
407 pformatetc: *mut FORMATETC,
408 pStgmed: *mut STGMEDIUM,
409 ) -> c_void,
410 fn OnViewChange(
411 dwAspect: DWORD,
412 lindex: LONG,
413 ) -> c_void,
414 fn OnRename(
415 pmk: *mut IMoniker,
416 ) -> c_void,
417 fn OnSave() -> c_void,
418 fn OnClose() -> c_void,
419}}
420ENUM!{enum DATADIR {
421 DATADIR_GET = 1,
422 DATADIR_SET = 2,
423}}
424pub type LPDATAOBJECT = *mut IDataObject;
425RIDL!{#[uuid(0x0000010e, 0x0000, 0x0000, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46)]
426interface IDataObject(IDataObjectVtbl): IUnknown(IUnknownVtbl) {
427 fn GetData(
428 pformatetcIn: *const FORMATETC,
429 pmedium: *mut STGMEDIUM,
430 ) -> HRESULT,
431 fn GetDataHere(
432 pformatetc: *const FORMATETC,
433 pmedium: *mut STGMEDIUM,
434 ) -> HRESULT,
435 fn QueryGetData(
436 pformatetc: *const FORMATETC,
437 ) -> HRESULT,
438 fn GetCanonicalFormatEtc(
439 pformatetcIn: *const FORMATETC,
440 pformatetcOut: *mut FORMATETC,
441 ) -> HRESULT,
442 fn SetData(
443 pformatetc: *const FORMATETC,
444 pformatetcOut: *const FORMATETC,
445 fRelease: BOOL,
446 ) -> HRESULT,
447 fn EnumFormatEtc(
448 dwDirection: DWORD,
449 ppenumFormatEtc: *mut *mut IEnumFORMATETC,
450 ) -> HRESULT,
451 fn DAdvise(
452 pformatetc: *const FORMATETC,
453 advf: DWORD,
454 pAdvSInk: *const IAdviseSink,
455 pdwConnection: *mut DWORD,
456 ) -> HRESULT,
457 fn DUnadvise(
458 dwConnection: DWORD,
459 ) -> HRESULT,
460 fn EnumDAdvise(
461 ppenumAdvise: *const *const IEnumSTATDATA,
462 ) -> HRESULT,
463}}
464RIDL!{#[uuid(0xa2f05a09, 0x27a2, 0x42b5, 0xbc, 0x0e, 0xac, 0x16, 0x3e, 0xf4, 0x9d, 0x9b)]
ff7c6d11
XL
465interface IApartmentShutdown(IApartmentShutdownVtbl): IUnknown(IUnknownVtbl) {
466 fn OnUninitialize(
467 ui64ApartmentIdentifier: UINT64,
468 ) -> (),
0bf4aa26
XL
469}}
470RIDL!{#[uuid(0x00000003, 0x0000, 0x0000, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46)]
ff7c6d11
XL
471interface IMarshal(IMarshalVtbl): IUnknown(IUnknownVtbl) {
472 fn GetUnmarshalClass(
473 riid: REFIID,
474 pv: *mut c_void,
475 dwDestContext: DWORD,
476 pvDestContext: *mut c_void,
477 mshlflags: DWORD,
478 pCid: *mut CLSID,
479 ) -> HRESULT,
480 fn GetMarshalSizeMax(
481 riid: REFIID,
482 pv: *mut c_void,
483 dwDestContext: DWORD,
484 pvDestContext: *mut c_void,
485 mshlflags: DWORD,
486 pSize: *mut DWORD,
487 ) -> HRESULT,
488 fn MarshalInterface(
489 pStm: *mut IStream,
490 riid: REFIID,
491 pv: *mut c_void,
492 dwDestContext: DWORD,
493 pvDestContext: *mut c_void,
494 mshlflags: DWORD,
495 ) -> HRESULT,
496 fn UnmarshalInterface(
497 pStm: *mut IStream,
498 riid: REFIID,
499 ppv: *mut *mut c_void,
500 ) -> HRESULT,
501 fn ReleaseMarshalData(
502 pStm: *mut IStream,
503 ) -> HRESULT,
504 fn DisconnectObject(
505 dwReserved: DWORD,
506 ) -> HRESULT,
0bf4aa26 507}}