source: Daodan/MSYS2/mingw32/i686-w64-mingw32/include/objidl.idl@ 1194

Last change on this file since 1194 was 1166, checked in by rossy, 3 years ago

Daodan: Replace MinGW build env with an up-to-date MSYS2 env

File size: 33.5 KB
RevLine 
[1166]1cpp_quote("/**")
2cpp_quote(" * This file is part of the mingw-w64 runtime package.")
3cpp_quote(" * No warranty is given; refer to the file DISCLAIMER within this package.")
4cpp_quote(" */")
5cpp_quote("")
6cpp_quote("#include <winapifamily.h>")
7cpp_quote("")
8cpp_quote("#if (NTDDI_VERSION >= NTDDI_VISTA && !defined(_WIN32_WINNT))")
9cpp_quote("#define _WIN32_WINNT 0x0600")
10cpp_quote("#endif")
11
12cpp_quote("#if(NTDDI_VERSION >= NTDDI_WS03 && !defined(_WIN32_WINNT))")
13cpp_quote("#define _WIN32_WINNT 0x0502")
14cpp_quote("#endif")
15
16cpp_quote("#if(NTDDI_VERSION >= NTDDI_WINXP && !defined(_WIN32_WINNT))")
17cpp_quote("#define _WIN32_WINNT 0x0501")
18cpp_quote("#endif")
19
20#ifndef DO_NO_IMPORTS
21import "unknwn.idl";
22import "wtypes.idl";
23#define DO_NO_IMPORTS
24#define OBJIDL_UNDEF_DO_NO_IMPORTS
25#endif
26
27#include "objidlbase.idl"
28#ifdef OBJIDL_UNDEF_DO_NO_IMPORTS
29#undef DO_NO_IMPORTS
30#endif
31
32interface IMoniker;
33interface IEnumMoniker;
34interface IRunningObjectTable;
35interface IStorage;
36interface IEnumSTATSTG;
37interface IAdviseSink;
38interface IBindCtx;
39interface IEnumMoniker;
40
41cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)")
42[local, object, uuid (0000001d-0000-0000-C000-000000000046)]
43interface IMallocSpy : IUnknown {
44 typedef [unique] IMallocSpy *LPMALLOCSPY;
45 SIZE_T PreAlloc ([in] SIZE_T cbRequest);
46 void *PostAlloc ([in] void *pActual);
47 void *PreFree ([in] void *pRequest,[in] BOOL fSpyed);
48 void PostFree ([in] BOOL fSpyed);
49 SIZE_T PreRealloc ([in] void *pRequest,[in] SIZE_T cbRequest,[out] void **ppNewRequest,[in] BOOL fSpyed);
50 void *PostRealloc ([in] void *pActual,[in] BOOL fSpyed);
51 void *PreGetSize ([in] void *pRequest,[in] BOOL fSpyed);
52 SIZE_T PostGetSize ([in] SIZE_T cbActual,[in] BOOL fSpyed);
53 void *PreDidAlloc ([in] void *pRequest,[in] BOOL fSpyed);
54 int PostDidAlloc ([in] void *pRequest,[in] BOOL fSpyed,[in] int fActual);
55 void PreHeapMinimize (void);
56 void PostHeapMinimize (void);
57}
58
59cpp_quote("#endif")
60
61cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)")
62[object, uuid (0000000e-0000-0000-C000-000000000046), pointer_default (unique)]
63
64interface IBindCtx : IUnknown {
65 typedef [unique] IBindCtx *LPBC;
66 typedef [unique] IBindCtx *LPBINDCTX;
67 cpp_quote("#if defined(__cplusplus)")
68 cpp_quote("typedef struct tagBIND_OPTS {")
69 cpp_quote(" DWORD cbStruct;")
70 cpp_quote(" DWORD grfFlags;")
71 cpp_quote(" DWORD grfMode;")
72 cpp_quote(" DWORD dwTickCountDeadline;")
73 cpp_quote("} BIND_OPTS, *LPBIND_OPTS;")
74 cpp_quote("#else")
75
76 typedef struct tagBIND_OPTS {
77 DWORD cbStruct;
78 DWORD grfFlags;
79 DWORD grfMode;
80 DWORD dwTickCountDeadline;
81 } BIND_OPTS,*LPBIND_OPTS;
82 cpp_quote("#endif")
83
84 cpp_quote("#if defined(__cplusplus)")
85 cpp_quote("typedef struct tagBIND_OPTS2 : tagBIND_OPTS {")
86 cpp_quote("DWORD dwTrackFlags;")
87 cpp_quote("DWORD dwClassContext;")
88 cpp_quote("LCID locale;")
89 cpp_quote("COSERVERINFO * pServerInfo;")
90 cpp_quote("} BIND_OPTS2, * LPBIND_OPTS2;")
91 cpp_quote("#else")
92 typedef struct tagBIND_OPTS2 {
93 DWORD cbStruct;
94 DWORD grfFlags;
95 DWORD grfMode;
96 DWORD dwTickCountDeadline;
97 DWORD dwTrackFlags;
98 DWORD dwClassContext;
99 LCID locale;
100 COSERVERINFO *pServerInfo;
101 } BIND_OPTS2,*LPBIND_OPTS2;
102 cpp_quote("#endif")
103
104 cpp_quote("#if defined(__cplusplus)")
105 cpp_quote("typedef struct tagBIND_OPTS3 : tagBIND_OPTS2 {")
106 cpp_quote("HWND hwnd;")
107 cpp_quote("} BIND_OPTS3, * LPBIND_OPTS3;")
108 cpp_quote("#else")
109
110 typedef struct tagBIND_OPTS3 {
111 DWORD cbStruct;
112 DWORD grfFlags;
113 DWORD grfMode;
114 DWORD dwTickCountDeadline;
115 DWORD dwTrackFlags;
116 DWORD dwClassContext;
117 LCID locale;
118 COSERVERINFO *pServerInfo;
119 HWND hwnd;
120 } BIND_OPTS3,*LPBIND_OPTS3;
121 cpp_quote("#endif")
122
123 typedef enum tagBIND_FLAGS {
124 BIND_MAYBOTHERUSER = 1,
125 BIND_JUSTTESTEXISTENCE = 2
126 } BIND_FLAGS;
127 HRESULT RegisterObjectBound ([in, unique] IUnknown *punk);
128 HRESULT RevokeObjectBound ([in, unique] IUnknown *punk);
129 HRESULT ReleaseBoundObjects (void);
130 [local]
131 HRESULT SetBindOptions ([in] BIND_OPTS *pbindopts);
132 [call_as (SetBindOptions)]
133 HRESULT RemoteSetBindOptions ([in] BIND_OPTS2 *pbindopts);
134 [local]
135 HRESULT GetBindOptions ([in, out] BIND_OPTS *pbindopts);
136 [call_as (GetBindOptions)]
137 HRESULT RemoteGetBindOptions ([in, out] BIND_OPTS2 *pbindopts);
138 HRESULT GetRunningObjectTable ([out] IRunningObjectTable **pprot);
139 HRESULT RegisterObjectParam ([in] LPOLESTR pszKey,[in, unique] IUnknown *punk);
140 HRESULT GetObjectParam ([in] LPOLESTR pszKey,[out] IUnknown **ppunk);
141 HRESULT EnumObjectParam ([out] IEnumString **ppenum);
142 HRESULT RevokeObjectParam ([in] LPOLESTR pszKey);
143}
144[object, uuid (00000102-0000-0000-C000-000000000046), pointer_default (unique)]
145
146interface IEnumMoniker : IUnknown {
147 typedef [unique] IEnumMoniker *LPENUMMONIKER;
148 [local]
149 HRESULT Next ([in] ULONG celt, IMoniker **rgelt, ULONG *pceltFetched);
150 [call_as (Next)]
151 HRESULT RemoteNext ([in] ULONG celt,[out, size_is (celt), length_is (*pceltFetched)]IMoniker **rgelt,[out] ULONG *pceltFetched);
152 HRESULT Skip ([in] ULONG celt);
153 HRESULT Reset ();
154 HRESULT Clone ([out] IEnumMoniker **ppenum);
155}
156
157cpp_quote("#endif")
158
159cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)")
160[object, uuid (00000126-0000-0000-C000-000000000046)]
161interface IRunnableObject : IUnknown {
162 typedef [unique] IRunnableObject *LPRUNNABLEOBJECT;
163 HRESULT GetRunningClass ([out] LPCLSID lpClsid);
164 HRESULT Run ([in] LPBINDCTX pbc);
165 [local]
166 BOOL IsRunning ();
167 [call_as (IsRunning)]
168 HRESULT RemoteIsRunning ();
169 HRESULT LockRunning ([in] BOOL fLock,[in] BOOL fLastUnlockCloses);
170 HRESULT SetContainedObject ([in] BOOL fContained);
171}
172[object, uuid (00000010-0000-0000-C000-000000000046)]
173
174interface IRunningObjectTable : IUnknown {
175 typedef [unique] IRunningObjectTable *LPRUNNINGOBJECTTABLE;
176 HRESULT Register ([in] DWORD grfFlags,[in, unique] IUnknown *punkObject,[in, unique] IMoniker *pmkObjectName,[out] DWORD *pdwRegister);
177 HRESULT Revoke ([in] DWORD dwRegister);
178 HRESULT IsRunning ([in, unique] IMoniker *pmkObjectName);
179 HRESULT GetObject ([in, unique] IMoniker *pmkObjectName,[out] IUnknown **ppunkObject);
180 HRESULT NoteChangeTime ([in] DWORD dwRegister,[in] FILETIME *pfiletime);
181 HRESULT GetTimeOfLastChange ([in, unique] IMoniker *pmkObjectName,[out] FILETIME *pfiletime);
182 HRESULT EnumRunning ([out] IEnumMoniker **ppenumMoniker);
183}
184
185cpp_quote("#endif")
186
187cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)")
188[object, uuid (0000010c-0000-0000-C000-000000000046)]
189
190interface IPersist : IUnknown {
191 typedef [unique] IPersist *LPPERSIST;
192 HRESULT GetClassID ([out] CLSID *pClassID);
193}
194[object, uuid (00000109-0000-0000-C000-000000000046), pointer_default (unique)]
195
196interface IPersistStream : IPersist {
197 typedef [unique] IPersistStream *LPPERSISTSTREAM;
198 HRESULT IsDirty (void);
199 HRESULT Load ([in, unique] IStream *pStm);
200 HRESULT Save ([in, unique] IStream *pStm,[in] BOOL fClearDirty);
201 HRESULT GetSizeMax ([out] ULARGE_INTEGER *pcbSize);
202}
203[object, uuid (0000000f-0000-0000-C000-000000000046), pointer_default (unique)]
204
205interface IMoniker : IPersistStream {
206 typedef [unique] IMoniker *LPMONIKER;
207 typedef enum tagMKSYS {
208 MKSYS_NONE = 0,
209 MKSYS_GENERICCOMPOSITE = 1,
210 MKSYS_FILEMONIKER = 2,
211 MKSYS_ANTIMONIKER = 3,
212 MKSYS_ITEMMONIKER = 4,
213 MKSYS_POINTERMONIKER = 5,
214
215 MKSYS_CLASSMONIKER = 7,
216 MKSYS_OBJREFMONIKER = 8,
217 MKSYS_SESSIONMONIKER = 9,
218 MKSYS_LUAMONIKER = 10
219 }MKSYS;
220 typedef [v1_enum] enum tagMKREDUCE {
221 MKRREDUCE_ONE = 3<<16,
222
223 MKRREDUCE_TOUSER = 2<<16,
224 MKRREDUCE_THROUGHUSER = 1<<16,
225 MKRREDUCE_ALL = 0
226 } MKRREDUCE;
227 [local]
228 HRESULT BindToObject ([in, unique] IBindCtx *pbc,[in, unique] IMoniker *pmkToLeft,[in] REFIID riidResult,[out, iid_is (riidResult)] void **ppvResult);
229 [call_as (BindToObject)]
230 HRESULT RemoteBindToObject ([in, unique] IBindCtx *pbc,[in, unique] IMoniker *pmkToLeft,[in] REFIID riidResult,[out, iid_is (riidResult)] IUnknown **ppvResult);
231 [local]
232 HRESULT BindToStorage ([in, unique] IBindCtx *pbc,[in, unique] IMoniker *pmkToLeft,[in] REFIID riid,[out, iid_is (riid)] void **ppvObj);
233 [call_as (BindToStorage)]
234 HRESULT RemoteBindToStorage ([in, unique] IBindCtx *pbc,[in, unique] IMoniker *pmkToLeft,[in] REFIID riid,[out, iid_is (riid)] IUnknown **ppvObj);
235 HRESULT Reduce ([in, unique] IBindCtx *pbc,[in] DWORD dwReduceHowFar,[in, out, unique] IMoniker **ppmkToLeft,[out] IMoniker **ppmkReduced);
236 HRESULT ComposeWith ([in, unique] IMoniker *pmkRight,[in] BOOL fOnlyIfNotGeneric,[out] IMoniker **ppmkComposite);
237 HRESULT Enum ([in] BOOL fForward,[out] IEnumMoniker **ppenumMoniker);
238 HRESULT IsEqual ([in, unique] IMoniker *pmkOtherMoniker);
239 HRESULT Hash ([out] DWORD *pdwHash);
240 HRESULT IsRunning ([in, unique] IBindCtx *pbc,[in, unique] IMoniker *pmkToLeft,[in, unique] IMoniker *pmkNewlyRunning);
241 HRESULT GetTimeOfLastChange ([in, unique] IBindCtx *pbc,[in, unique] IMoniker *pmkToLeft,[out] FILETIME *pFileTime);
242 HRESULT Inverse ([out] IMoniker **ppmk);
243 HRESULT CommonPrefixWith ([in, unique] IMoniker *pmkOther,[out] IMoniker **ppmkPrefix);
244 HRESULT RelativePathTo ([in, unique] IMoniker *pmkOther,[out] IMoniker **ppmkRelPath);
245 HRESULT GetDisplayName ([in, unique] IBindCtx *pbc,[in, unique] IMoniker *pmkToLeft,[out] LPOLESTR *ppszDisplayName);
246 HRESULT ParseDisplayName ([in, unique] IBindCtx *pbc,[in, unique] IMoniker *pmkToLeft,[in] LPOLESTR pszDisplayName,[out] ULONG *pchEaten,[out] IMoniker **ppmkOut);
247 HRESULT IsSystemMoniker ([out] DWORD *pdwMksys);
248}
249
250cpp_quote("#endif")
251
252cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)")
253[object, uuid (f29f6bc0-5021-11ce-aa15-00006901293f), pointer_default (unique)]
254
255interface IROTData : IUnknown {
256 HRESULT GetComparisonData ([out, size_is (cbMax)] byte *pbData,[in] ULONG cbMax,[out] ULONG *pcbData);
257}
258
259cpp_quote("#endif")
260
261cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)")
262[object, uuid (0000000d-0000-0000-C000-000000000046), pointer_default (unique)]
263
264interface IEnumSTATSTG : IUnknown {
265 typedef [unique] IEnumSTATSTG *LPENUMSTATSTG;
266 [local]
267 HRESULT Next ([in] ULONG celt, STATSTG *rgelt, ULONG *pceltFetched);
268 [call_as (Next)]
269 HRESULT RemoteNext ([in] ULONG celt,[out, size_is (celt), length_is (*pceltFetched)] STATSTG *rgelt,[out] ULONG *pceltFetched);
270 HRESULT Skip ([in] ULONG celt);
271 HRESULT Reset ();
272 HRESULT Clone ([out] IEnumSTATSTG **ppenum);
273}
274[object, uuid (0000000b-0000-0000-C000-000000000046), pointer_default (unique)]
275
276interface IStorage : IUnknown {
277 typedef [unique] IStorage *LPSTORAGE;
278 typedef struct tagRemSNB {
279 unsigned long ulCntStr;
280 unsigned long ulCntChar;
281 [size_is (ulCntChar)] OLECHAR rgString[];
282 } RemSNB;
283 typedef [unique] RemSNB *wireSNB;
284 typedef [wire_marshal (wireSNB)] LPOLESTR *SNB;
285 HRESULT CreateStream ([in, string] const OLECHAR *pwcsName,[in] DWORD grfMode,[in] DWORD reserved1,[in] DWORD reserved2,[out] IStream **ppstm);
286 [local]
287 HRESULT OpenStream ([in, string] const OLECHAR *pwcsName,[in, unique] void *reserved1,[in] DWORD grfMode,[in] DWORD reserved2,[out] IStream **ppstm);
288 [call_as (OpenStream)]
289 HRESULT RemoteOpenStream ([in, string] const OLECHAR *pwcsName,[in] unsigned long cbReserved1,[in, unique, size_is (cbReserved1)] byte *reserved1,[in] DWORD grfMode,[in] DWORD reserved2,[out] IStream **ppstm);
290 HRESULT CreateStorage ([in, string] const OLECHAR *pwcsName,[in] DWORD grfMode,[in] DWORD reserved1,[in] DWORD reserved2,[out] IStorage **ppstg);
291 HRESULT OpenStorage ([in, unique, string] const OLECHAR *pwcsName,[in, unique] IStorage *pstgPriority,[in] DWORD grfMode,[in, unique] SNB snbExclude,[in] DWORD reserved,[out] IStorage **ppstg);
292 [local]
293 HRESULT CopyTo ([in] DWORD ciidExclude,[in, unique, size_is (ciidExclude)] IID const *rgiidExclude,[in, unique] SNB snbExclude,[in, unique] IStorage *pstgDest);
294 [call_as (CopyTo)]
295 HRESULT RemoteCopyTo ([in] DWORD ciidExclude,[in, unique, size_is (ciidExclude)] IID const *rgiidExclude,[in, unique] SNB snbExclude,[in, unique] IStorage *pstgDest);
296 HRESULT MoveElementTo ([in, string] const OLECHAR *pwcsName,[in, unique] IStorage *pstgDest,[in, string] const OLECHAR *pwcsNewName,[in] DWORD grfFlags);
297 HRESULT Commit ([in] DWORD grfCommitFlags);
298 HRESULT Revert ();
299 [local]
300 HRESULT EnumElements ([in] DWORD reserved1,[in, unique, size_is (1)] void *reserved2,[in] DWORD reserved3,[out] IEnumSTATSTG **ppenum);
301 [call_as (EnumElements)]
302 HRESULT RemoteEnumElements ([in] DWORD reserved1,[in] unsigned long cbReserved2,[in, unique, size_is (cbReserved2)] byte *reserved2,[in] DWORD reserved3,[out] IEnumSTATSTG **ppenum);
303 HRESULT DestroyElement ([in, string] const OLECHAR *pwcsName);
304 HRESULT RenameElement ([in, string] const OLECHAR *pwcsOldName,[in, string] const OLECHAR *pwcsNewName);
305 HRESULT SetElementTimes ([in, unique, string] const OLECHAR *pwcsName,[in, unique] FILETIME const *pctime,[in, unique] FILETIME const *patime,[in, unique] FILETIME const *pmtime);
306 HRESULT SetClass ([in] REFCLSID clsid);
307 HRESULT SetStateBits ([in] DWORD grfStateBits,[in] DWORD grfMask);
308 HRESULT Stat ([out] STATSTG *pstatstg,[in] DWORD grfStatFlag);
309}
310
311cpp_quote("#endif")
312
313cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)")
314[object, uuid (0000010b-0000-0000-C000-000000000046), pointer_default (unique)]
315
316interface IPersistFile : IPersist {
317 typedef [unique] IPersistFile *LPPERSISTFILE;
318 HRESULT IsDirty (void);
319 HRESULT Load ([in] LPCOLESTR pszFileName,[in] DWORD dwMode);
320 HRESULT Save ([in, unique] LPCOLESTR pszFileName,[in] BOOL fRemember);
321 HRESULT SaveCompleted ([in, unique] LPCOLESTR pszFileName);
322 HRESULT GetCurFile ([out] LPOLESTR *ppszFileName);
323}
324[object, uuid (0000010a-0000-0000-C000-000000000046), pointer_default (unique)]
325
326interface IPersistStorage : IPersist {
327 typedef [unique] IPersistStorage *LPPERSISTSTORAGE;
328 HRESULT IsDirty (void);
329 HRESULT InitNew ([in, unique] IStorage *pStg);
330 HRESULT Load ([in, unique] IStorage *pStg);
331 HRESULT Save ([in, unique] IStorage *pStgSave,[in] BOOL fSameAsLoad);
332 HRESULT SaveCompleted ([in, unique] IStorage *pStgNew);
333 HRESULT HandsOffStorage (void);
334}
335
336cpp_quote("#endif")
337
338cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)")
339[object, uuid (0000000a-0000-0000-C000-000000000046), pointer_default (unique)]
340
341interface ILockBytes : IUnknown {
342 typedef [unique] ILockBytes *LPLOCKBYTES;
343 [local]
344 HRESULT ReadAt ([in] ULARGE_INTEGER ulOffset,[out, size_is (cb), length_is (*pcbRead)]void *pv,[in] ULONG cb,[out] ULONG *pcbRead);
345 [call_as (ReadAt)]
346 HRESULT _stdcall RemoteReadAt ([in] ULARGE_INTEGER ulOffset,[out, size_is (cb), length_is (*pcbRead)]byte *pv,[in] ULONG cb,[out] ULONG *pcbRead);
347 [local]
348 HRESULT WriteAt ([in] ULARGE_INTEGER ulOffset,[in, size_is (cb)] void const *pv,[in] ULONG cb,[out] ULONG *pcbWritten);
349 [call_as (WriteAt)]
350 HRESULT RemoteWriteAt ([in] ULARGE_INTEGER ulOffset,[in, size_is (cb)] byte const *pv,[in] ULONG cb,[out] ULONG *pcbWritten);
351 HRESULT Flush ();
352 HRESULT SetSize ([in] ULARGE_INTEGER cb);
353 HRESULT LockRegion ([in] ULARGE_INTEGER libOffset,[in] ULARGE_INTEGER cb,[in] DWORD dwLockType);
354 HRESULT UnlockRegion ([in] ULARGE_INTEGER libOffset,[in] ULARGE_INTEGER cb,[in] DWORD dwLockType);
355 HRESULT Stat ([out] STATSTG *pstatstg,[in] DWORD grfStatFlag);
356}
357[object, uuid (00000103-0000-0000-C000-000000000046), pointer_default (unique)]
358
359interface IEnumFORMATETC : IUnknown {
360 typedef [unique] IEnumFORMATETC *LPENUMFORMATETC;
361
362 typedef struct tagDVTARGETDEVICE {
363 DWORD tdSize;
364 WORD tdDriverNameOffset;
365 WORD tdDeviceNameOffset;
366 WORD tdPortNameOffset;
367 WORD tdExtDevmodeOffset;
368 [size_is (tdSize - sizeof (DWORD) - 4 *sizeof (WORD))]
369 BYTE tdData[];
370 } DVTARGETDEVICE;
371
372
373 typedef CLIPFORMAT *LPCLIPFORMAT;
374 typedef struct tagFORMATETC {
375 CLIPFORMAT cfFormat;
376 [unique] DVTARGETDEVICE *ptd;
377 DWORD dwAspect;
378 LONG lindex;
379 DWORD tymed;
380 }FORMATETC,*LPFORMATETC;
381 [local]
382 HRESULT Next ([in] ULONG celt, FORMATETC *rgelt, ULONG *pceltFetched);
383 [call_as (Next)]
384 HRESULT RemoteNext ([in] ULONG celt,[out, size_is (celt), length_is (*pceltFetched)] FORMATETC *rgelt,[out] ULONG *pceltFetched);
385 HRESULT Skip ([in] ULONG celt);
386 HRESULT Reset ();
387 HRESULT Clone ([out] IEnumFORMATETC **ppenum);
388}
389[object, uuid (00000105-0000-0000-C000-000000000046), pointer_default (unique)]
390
391interface IEnumSTATDATA : IUnknown {
392 typedef [unique] IEnumSTATDATA *LPENUMSTATDATA;
393 typedef enum tagADVF {
394 ADVF_NODATA = 1,
395 ADVF_PRIMEFIRST = 2,
396 ADVF_ONLYONCE = 4,
397 ADVF_DATAONSTOP = 64,
398 ADVFCACHE_NOHANDLER = 8,
399 ADVFCACHE_FORCEBUILTIN = 16,
400 ADVFCACHE_ONSAVE = 32
401 } ADVF;
402 typedef struct tagSTATDATA {
403 FORMATETC formatetc;
404 DWORD advf;
405 [unique] IAdviseSink *pAdvSink;
406 DWORD dwConnection;
407 } STATDATA;
408 typedef STATDATA *LPSTATDATA;
409 [local]
410 HRESULT Next ([in] ULONG celt, STATDATA *rgelt, ULONG *pceltFetched);
411 [call_as (Next)]
412 HRESULT RemoteNext ([in] ULONG celt,[out, size_is (celt), length_is (*pceltFetched)] STATDATA *rgelt,[out] ULONG *pceltFetched);
413 HRESULT Skip ([in] ULONG celt);
414 HRESULT Reset ();
415 HRESULT Clone ([out] IEnumSTATDATA **ppenum);
416}
417
418[object, uuid (00000012-0000-0000-C000-000000000046), pointer_default (unique)]
419interface IRootStorage : IUnknown {
420 typedef [unique] IRootStorage *LPROOTSTORAGE;
421 HRESULT SwitchToFile ([in] LPOLESTR pszFile);
422}
423
424[object, uuid (0000010f-0000-0000-C000-000000000046),
425 async_uuid (00000150-0000-0000-C000-000000000046),
426 pointer_default (unique)]
427interface IAdviseSink : IUnknown {
428 typedef IAdviseSink *LPADVISESINK;
429 typedef [v1_enum] enum tagTYMED {
430 TYMED_HGLOBAL = 1,
431 TYMED_FILE = 2,
432 TYMED_ISTREAM = 4,
433 TYMED_ISTORAGE = 8,
434 TYMED_GDI = 16,
435 TYMED_MFPICT = 32,
436 TYMED_ENHMF = 64,
437 TYMED_NULL = 0
438 } TYMED;
439
440 typedef struct tagRemSTGMEDIUM {
441 DWORD tymed;
442 DWORD dwHandleType;
443 unsigned long pData;
444 unsigned long pUnkForRelease;
445 unsigned long cbData;
446 [size_is (cbData)] byte data[];
447 } RemSTGMEDIUM;
448
449 cpp_quote("#ifdef NONAMELESSUNION")
450 cpp_quote("typedef struct tagSTGMEDIUM {")
451 cpp_quote("DWORD tymed;")
452 cpp_quote("union {")
453 cpp_quote("HBITMAP hBitmap;")
454 cpp_quote("HMETAFILEPICT hMetaFilePict;")
455 cpp_quote("HENHMETAFILE hEnhMetaFile;")
456 cpp_quote("HGLOBAL hGlobal;")
457 cpp_quote("LPOLESTR lpszFileName;")
458 cpp_quote("IStream *pstm;")
459 cpp_quote("IStorage *pstg;")
460 cpp_quote("} u;")
461 cpp_quote("IUnknown *pUnkForRelease;")
462 cpp_quote("}uSTGMEDIUM;")
463 cpp_quote("#else")
464
465 typedef struct tagSTGMEDIUM {
466 DWORD tymed;
467 [switch_type (DWORD), switch_is ((DWORD) tymed)]
468 union {
469 [case (TYMED_GDI)]
470 HBITMAP hBitmap;
471 [case (TYMED_MFPICT)]
472 HMETAFILEPICT hMetaFilePict;
473 [case (TYMED_ENHMF)]
474 HENHMETAFILE hEnhMetaFile;
475 [case (TYMED_HGLOBAL)]
476 HGLOBAL hGlobal;
477 [case (TYMED_FILE)]
478 LPOLESTR lpszFileName;
479 [case (TYMED_ISTREAM)]
480 IStream *pstm;
481 [case (TYMED_ISTORAGE)]
482 IStorage *pstg;
483 [default]
484 ;
485 } DUMMYUNIONNAME;
486 [unique] IUnknown *pUnkForRelease;
487 } uSTGMEDIUM;
488 cpp_quote("#endif")
489
490#define OBJ_PEN 1
491#define OBJ_BRUSH 2
492#define OBJ_DC 3
493#define OBJ_METADC 4
494#define OBJ_PAL 5
495#define OBJ_FONT 6
496#define OBJ_BITMAP 7
497#define OBJ_REGION 8
498#define OBJ_METAFILE 9
499#define OBJ_MEMDC 10
500#define OBJ_EXTPEN 11
501#define OBJ_ENHMETADC 12
502#define OBJ_ENHMETAFILE 13
503
504 typedef union _GDI_OBJECT switch (DWORD ObjectType) u {
505 case OBJ_BITMAP: wireHBITMAP hBitmap;
506 case OBJ_PAL: wireHPALETTE hPalette;
507 default: wireHGLOBAL hGeneric;
508 } GDI_OBJECT;
509 typedef struct _userSTGMEDIUM {
510 union _STGMEDIUM_UNION switch (DWORD tymed) u {
511 case TYMED_NULL:;
512 case TYMED_MFPICT: wireHMETAFILEPICT hMetaFilePict;
513 case TYMED_ENHMF: wireHENHMETAFILE hHEnhMetaFile;
514 case TYMED_GDI: GDI_OBJECT *hGdiHandle;
515 case TYMED_HGLOBAL: wireHGLOBAL hGlobal;
516 case TYMED_FILE: LPOLESTR lpszFileName;
517 case TYMED_ISTREAM: BYTE_BLOB *pstm;
518 case TYMED_ISTORAGE: BYTE_BLOB *pstg;
519 } DUMMYUNIONNAME;
520 IUnknown *pUnkForRelease;
521 } userSTGMEDIUM;
522 typedef [unique] userSTGMEDIUM *wireSTGMEDIUM;
523 typedef [wire_marshal (wireSTGMEDIUM)] uSTGMEDIUM STGMEDIUM;
524 typedef [unique] userSTGMEDIUM *wireASYNC_STGMEDIUM;
525 typedef [wire_marshal (wireASYNC_STGMEDIUM)] STGMEDIUM ASYNC_STGMEDIUM;
526 typedef STGMEDIUM *LPSTGMEDIUM;
527 typedef struct _userFLAG_STGMEDIUM {
528 long ContextFlags;
529 long fPassOwnership;
530 userSTGMEDIUM Stgmed;
531 } userFLAG_STGMEDIUM;
532 typedef [unique] userFLAG_STGMEDIUM *wireFLAG_STGMEDIUM;
533 typedef [wire_marshal (wireFLAG_STGMEDIUM)]
534 struct _FLAG_STGMEDIUM {
535 long ContextFlags;
536 long fPassOwnership;
537 STGMEDIUM Stgmed;
538 } FLAG_STGMEDIUM;
539 [local]
540 void OnDataChange ([in, unique] FORMATETC *pFormatetc,[in, unique] STGMEDIUM *pStgmed);
541 [local]
542 void OnViewChange ([in] DWORD dwAspect,[in] LONG lindex);
543 [local]
544 void OnRename ([in] IMoniker *pmk);
545 [local]
546 void OnSave ();
547 [local]
548 void OnClose ();
549 [call_as (OnDataChange)]
550 HRESULT RemoteOnDataChange ([in, unique] FORMATETC *pFormatetc,[in, unique] ASYNC_STGMEDIUM *pStgmed);
551 [call_as (OnViewChange)]
552 HRESULT RemoteOnViewChange ([in] DWORD dwAspect,[in] LONG lindex);
553 [call_as (OnRename)]
554 HRESULT RemoteOnRename ([in] IMoniker *pmk);
555 [call_as (OnSave)]
556 HRESULT RemoteOnSave ();
557 [call_as (OnClose)]
558 HRESULT RemoteOnClose ();
559}
560
561cpp_quote("#endif")
562
563cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)")
564[object, uuid (00000125-0000-0000-C000-000000000046),
565 async_uuid (00000151-0000-0000-C000-000000000046),
566 pointer_default (unique)]
567
568interface IAdviseSink2 : IAdviseSink {
569 typedef [unique] IAdviseSink2 *LPADVISESINK2;
570 [local]
571 void OnLinkSrcChange ([in, unique] IMoniker *pmk);
572 [call_as (OnLinkSrcChange)]
573 HRESULT RemoteOnLinkSrcChange ([in, unique] IMoniker *pmk);
574}
575
576cpp_quote("#endif")
577
578cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)")
579[object, uuid (0000010e-0000-0000-C000-000000000046), pointer_default (unique)]
580
581interface IDataObject : IUnknown {
582 typedef [unique] IDataObject *LPDATAOBJECT;
583 typedef enum tagDATADIR {
584 DATADIR_GET = 1,
585 DATADIR_SET = 2
586 } DATADIR;
587 [local]
588 HRESULT GetData ([in, unique] FORMATETC *pformatetcIn,[out] STGMEDIUM *pmedium);
589 [call_as (GetData)]
590 HRESULT RemoteGetData ([in, unique] FORMATETC *pformatetcIn,[out] STGMEDIUM *pRemoteMedium);
591 [local]
592 HRESULT GetDataHere ([in, unique] FORMATETC *pformatetc,[in, out] STGMEDIUM *pmedium);
593 [call_as (GetDataHere)]
594 HRESULT RemoteGetDataHere ([in, unique] FORMATETC *pformatetc,[in, out] STGMEDIUM *pRemoteMedium);
595 HRESULT QueryGetData ([in, unique] FORMATETC *pformatetc);
596 HRESULT GetCanonicalFormatEtc ([in, unique] FORMATETC *pformatectIn,[out] FORMATETC *pformatetcOut);
597 [local]
598 HRESULT SetData ([in, unique] FORMATETC *pformatetc,[in, unique] STGMEDIUM *pmedium,[in] BOOL fRelease);
599 [call_as (SetData)]
600 HRESULT RemoteSetData ([in, unique] FORMATETC *pformatetc,[in, unique] FLAG_STGMEDIUM *pmedium,[in] BOOL fRelease);
601 HRESULT EnumFormatEtc ([in] DWORD dwDirection,[out] IEnumFORMATETC **ppenumFormatEtc);
602 HRESULT DAdvise ([in] FORMATETC *pformatetc,[in] DWORD advf,[in, unique] IAdviseSink *pAdvSink,[out] DWORD *pdwConnection);
603 HRESULT DUnadvise ([in] DWORD dwConnection);
604 HRESULT EnumDAdvise ([out] IEnumSTATDATA **ppenumAdvise);
605}
606
607cpp_quote("#endif")
608
609cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)")
610[local, object, uuid (00000110-0000-0000-C000-000000000046)]
611
612interface IDataAdviseHolder : IUnknown {
613 typedef [unique] IDataAdviseHolder *LPDATAADVISEHOLDER;
614 HRESULT Advise ([in, unique] IDataObject *pDataObject,[in, unique] FORMATETC *pFetc,[in] DWORD advf,[in, unique] IAdviseSink *pAdvise,[out] DWORD *pdwConnection);
615 HRESULT Unadvise ([in] DWORD dwConnection);
616 HRESULT EnumAdvise ([out] IEnumSTATDATA **ppenumAdvise);
617 HRESULT SendOnDataChange ([in, unique] IDataObject *pDataObject,[in] DWORD dwReserved,[in] DWORD advf);
618}
619[local, object, uuid (00000016-0000-0000-C000-000000000046)]
620
621interface IMessageFilter : IUnknown {
622 typedef [unique] IMessageFilter *LPMESSAGEFILTER;
623 typedef enum tagCALLTYPE {
624 CALLTYPE_TOPLEVEL = 1,
625 CALLTYPE_NESTED = 2,
626 CALLTYPE_ASYNC = 3,
627 CALLTYPE_TOPLEVEL_CALLPENDING = 4,
628 CALLTYPE_ASYNC_CALLPENDING = 5
629 } CALLTYPE;
630 typedef enum tagSERVERCALL {
631 SERVERCALL_ISHANDLED = 0,
632 SERVERCALL_REJECTED = 1,
633 SERVERCALL_RETRYLATER = 2
634 } SERVERCALL;
635 typedef enum tagPENDINGTYPE {
636 PENDINGTYPE_TOPLEVEL = 1,
637 PENDINGTYPE_NESTED = 2
638 } PENDINGTYPE;
639 typedef enum tagPENDINGMSG {
640 PENDINGMSG_CANCELCALL = 0,
641 PENDINGMSG_WAITNOPROCESS = 1,
642 PENDINGMSG_WAITDEFPROCESS = 2
643 } PENDINGMSG;
644 typedef struct tagINTERFACEINFO {
645 IUnknown *pUnk;
646 IID iid;
647 WORD wMethod;
648 } INTERFACEINFO,*LPINTERFACEINFO;
649 DWORD HandleInComingCall ([in] DWORD dwCallType,[in] HTASK htaskCaller,[in] DWORD dwTickCount,[in] LPINTERFACEINFO lpInterfaceInfo);
650 DWORD RetryRejectedCall ([in] HTASK htaskCallee,[in] DWORD dwTickCount,[in] DWORD dwRejectType);
651 DWORD MessagePending ([in] HTASK htaskCallee,[in] DWORD dwTickCount,[in] DWORD dwPendingType);
652}
653
654cpp_quote("")
655extern const FMTID FMTID_SummaryInformation;
656extern const FMTID FMTID_DocSummaryInformation;
657extern const FMTID FMTID_UserDefinedProperties;
658extern const FMTID FMTID_DiscardableInformation;
659extern const FMTID FMTID_ImageSummaryInformation;
660extern const FMTID FMTID_AudioSummaryInformation;
661extern const FMTID FMTID_VideoSummaryInformation;
662extern const FMTID FMTID_MediaFileSummaryInformation;
663#ifdef __INCLUDE_CPIFS
664interface IConnectionPointContainer;
665interface IConnectionPoint;
666interface IEnumConnections;
667interface IEnumConnectionPoints;
668[object, uuid (B196B286-BAB4-101a-B69C-00aa00341d07), pointer_default (unique)]
669interface IConnectionPoint : IUnknown {
670 typedef IConnectionPoint *PCONNECTIONPOINT;
671 typedef IConnectionPoint *LPCONNECTIONPOINT;
672 HRESULT GetConnectionInterface ([out] IID *piid);
673 HRESULT GetConnectionPointContainer ([out] IConnectionPointContainer **ppCPC);
674 HRESULT Advise ([in] IUnknown *pUnkSink,[out] DWORD *pdwCookie);
675 HRESULT Unadvise ([in] DWORD dwCookie);
676 HRESULT EnumConnections ([out] IEnumConnections **ppEnum);
677}
678[object, uuid (B196B284-BAB4-101a-B69C-00aa00341d07), pointer_default (unique)]
679interface IConnectionPointContainer : IUnknown {
680 typedef IConnectionPointContainer *PCONNECTIONPOINTCONTAINER;
681 typedef IConnectionPointContainer *LPCONNECTIONPOINTCONTAINER;
682 HRESULT EnumConnectionPoints ([out] IEnumConnectionPoints **ppEnum);
683 HRESULT FindConnectionPoint ([in] REFIID riid,[out] IConnectionPoint **ppCP);
684}
685[object, uuid (B196B287-BAB4-101a-B69C-00aa00341d07), pointer_default (unique)]
686interface IEnumConnections : IUnknown {
687 typedef IEnumConnections *PENUMCONNECTIONS;
688 typedef IEnumConnections *LPENUMCONNECTIONS;
689 typedef struct tagCONNECTDATA {
690 IUnknown *pUnk;
691 DWORD dwCookie;
692 } CONNECTDATA;
693 typedef struct tagCONNECTDATA *PCONNECTDATA;
694 typedef struct tagCONNECTDATA *LPCONNECTDATA;
695 [local]
696 HRESULT Next ([in] ULONG cConnections, CONNECTDATA *rgcd, ULONG *lpcFetched);
697 [call_as (Next)]
698 HRESULT RemoteNext ([in] ULONG cConnections,[out, size_is (cConnections), length_is (*lpcFetched)] CONNECTDATA *rgcd,[out] ULONG *lpcFetched);
699 HRESULT Skip ([in] ULONG cConnections);
700 HRESULT Reset (void);
701 HRESULT Clone ([out] IEnumConnections **ppEnum);
702}
703[object, uuid (B196B285-BAB4-101a-B69C-00aa00341d07), pointer_default (unique)]
704interface IEnumConnectionPoints : IUnknown {
705 typedef IEnumConnectionPoints *PENUMCONNECTIONPOINTS;
706 typedef IEnumConnectionPoints *LPENUMCONNECTIONPOINTS;
707 [local]
708 HRESULT Next ([in] ULONG cConnections, IConnectionPoint **rgpcn, ULONG *lpcFetched);
709 [call_as (Next)]
710 HRESULT RemoteNext ([in] ULONG cConnections,[out, size_is (cConnections), length_is (*lpcFetched)] IConnectionPoint **rgpcn,[out] ULONG *lpcFetched);
711 HRESULT Skip ([in] ULONG cConnections);
712 HRESULT Reset (void);
713 HRESULT Clone ([out] IEnumConnectionPoints **ppEnum);
714}
715#endif
716[object, uuid (00000140-0000-0000-C000-000000000046)]
717
718interface IClassActivator : IUnknown {
719 HRESULT GetClassObject ([in] REFCLSID rclsid,[in] DWORD dwClassContext,[in] LCID locale,[in] REFIID riid,[out, iid_is (riid)] void **ppv);
720}
721
722cpp_quote("#endif")
723
724cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)")
725[object, uuid (99caf010-415e-11cf-8814-00aa00b569f5), pointer_default (unique)]
726
727interface IFillLockBytes: IUnknown {
728 [local]
729 HRESULT FillAppend ([in, size_is (cb)] void const *pv,[in] ULONG cb,[out] ULONG *pcbWritten);
730 [call_as (FillAppend)]
731 HRESULT _stdcall RemoteFillAppend ([in, size_is (cb)] byte const *pv,[in] ULONG cb,[out] ULONG *pcbWritten);
732 [local]
733 HRESULT FillAt ([in] ULARGE_INTEGER ulOffset,[in, size_is (cb)] void const *pv,[in] ULONG cb,[out] ULONG *pcbWritten);
734 [call_as (FillAt)]
735 HRESULT _stdcall RemoteFillAt ([in] ULARGE_INTEGER ulOffset,[in, size_is (cb)] byte const *pv,[in] ULONG cb,[out] ULONG *pcbWritten);
736 HRESULT SetFillSize ([in] ULARGE_INTEGER ulSize);
737 HRESULT Terminate ([in] BOOL bCanceled);
738}
739
740cpp_quote("#endif")
741
742cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)")
743[object, uuid (a9d758a0-4617-11cf-95fc-00aa00680db4), pointer_default (unique)]
744
745interface IProgressNotify: IUnknown {
746 HRESULT OnProgress ([in] DWORD dwProgressCurrent,[in] DWORD dwProgressMaximum,[in] BOOL fAccurate,[in] BOOL fOwner);
747}
748
749cpp_quote("#endif")
750
751cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)")
752[local, object, uuid (0e6d4d90-6738-11cf-9608-00aa00680db4), pointer_default (unique)]
753
754interface ILayoutStorage: IUnknown {
755 typedef struct tagStorageLayout {
756 DWORD LayoutType;
757 OLECHAR *pwcsElementName;
758 LARGE_INTEGER cOffset;
759 LARGE_INTEGER cBytes;
760 } StorageLayout;
761 HRESULT __stdcall LayoutScript ([in] StorageLayout *pStorageLayout,[in] DWORD nEntries,[in] DWORD glfInterleavedFlag);
762 HRESULT __stdcall BeginMonitor (void);
763 HRESULT __stdcall EndMonitor (void);
764 HRESULT __stdcall ReLayoutDocfile ([in] OLECHAR *pwcsNewDfName);
765 HRESULT __stdcall ReLayoutDocfileOnILockBytes ([in] ILockBytes *pILockBytes);
766}
767
768cpp_quote("#endif")
769
770cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)")
771[object, uuid (30f3d47a-6447-11d1-8e3c-00c04fb9386d)]
772interface IBlockingLock: IUnknown {
773 HRESULT Lock ([in] DWORD dwTimeout);
774 HRESULT Unlock (void);
775}
776[object, uuid (bc0bf6ae-8878-11d1-83e9-00c04fc2c6d4)]
777interface ITimeAndNoticeControl: IUnknown {
778 HRESULT SuppressChanges ([in] DWORD res1,[in] DWORD res2);
779}
780[object, uuid (8d19c834-8879-11d1-83e9-00c04fc2c6d4)]
781interface IOplockStorage: IUnknown {
782 HRESULT CreateStorageEx ([in] LPCWSTR pwcsName,[in] DWORD grfMode,[in] DWORD stgfmt,[in] DWORD grfAttrs,[in] REFIID riid,[out, iid_is (riid)] void **ppstgOpen);
783 HRESULT OpenStorageEx ([in] LPCWSTR pwcsName,[in] DWORD grfMode,[in] DWORD stgfmt,[in] DWORD grfAttrs,[in] REFIID riid,[out, iid_is (riid)] void **ppstgOpen);
784}
785
786cpp_quote("#endif")
787
788cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)")
789[object, uuid (0e6d4d92-6738-11cf-9608-00aa00680db4), pointer_default (unique)]
790
791interface IDirectWriterLock : IUnknown {
792 HRESULT WaitForWriteAccess ([in] DWORD dwTimeout);
793 HRESULT ReleaseWriteAccess ();
794 HRESULT HaveWriteAccess ();
795}
796
797cpp_quote("#endif")
798
799cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)")
800[object, uuid (00000026-0000-0000-C000-000000000046)]
801interface IUrlMon : IUnknown {
802 HRESULT AsyncGetClassBits ([in] REFCLSID rclsid,[in, unique] LPCWSTR pszTYPE,[in, unique] LPCWSTR pszExt,[in] DWORD dwFileVersionMS,[in] DWORD dwFileVersionLS,[in, unique] LPCWSTR pszCodeBase,[in] IBindCtx *pbc,[in] DWORD dwClassContext,[in] REFIID riid,[in] DWORD flags);
803}
804[local, object, uuid (00000145-0000-0000-C000-000000000046)]
805interface IForegroundTransfer : IUnknown {
806 HRESULT AllowForegroundTransfer ([in] void *lpvReserved);
807}
808[uuid (969dc708-5c76-11d1-8d86-0000f804b057), object]
809interface IThumbnailExtractor : IUnknown {
810 HRESULT ExtractThumbnail ([in] IStorage *pStg,[in] ULONG ulLength,[in] ULONG ulHeight,[out] ULONG *pulOutputLength,[out] ULONG *pulOutputHeight,[out] HBITMAP *phOutputBitmap);
811 HRESULT OnFileUpdated ([in] IStorage *pStg);
812}
813[object, pointer_default (unique), uuid (947990de-cc28-11d2-a0f7-00805f858fb1)]
814interface IDummyHICONIncluder : IUnknown {
815 HRESULT Dummy ([in]HICON h1,[in] HDC h2);
816}
817
818typedef enum tagApplicationType {
819 ServerApplication,
820 LibraryApplication
821} ApplicationType;
822typedef enum tagShutdownType {
823 IdleShutdown,
824 ForcedShutdown
825} ShutdownType;
826[object, local, uuid (000001d5-0000-0000-C000-000000000046), pointer_default (unique)]
827interface IProcessLock : IUnknown {
828 ULONG AddRefOnProcess ();
829 ULONG ReleaseRefOnProcess ();
830}
831[object, local, uuid (000001d4-0000-0000-C000-000000000046), pointer_default (unique)]
832interface ISurrogateService : IUnknown {
833 HRESULT Init ([in] REFGUID rguidProcessID,[in] IProcessLock *pProcessLock,[out] BOOL *pfApplicationAware);
834 HRESULT ApplicationLaunch ([in] REFGUID rguidApplID,[in] ApplicationType appType);
835 HRESULT ApplicationFree ([in] REFGUID rguidApplID);
836 HRESULT CatalogRefresh ([in] ULONG ulReserved);
837 HRESULT ProcessShutdown ([in] ShutdownType shutdownType);
838}
839
840[local, object, uuid (00000034-0000-0000-C000-000000000046), pointer_default (unique)]
841interface IInitializeSpy : IUnknown {
842 typedef [unique] IInitializeSpy *LPINITIALIZESPY;
843 HRESULT PreInitialize ([in] DWORD dwCoInit,[in] DWORD dwCurThreadAptRefs);
844 HRESULT PostInitialize ([in] HRESULT hrCoInit,[in] DWORD dwCoInit,[in] DWORD dwNewThreadAptRefs);
845 HRESULT PreUninitialize ([in] DWORD dwCurThreadAptRefs);
846 HRESULT PostUninitialize ([in] DWORD dwNewThreadAptRefs);
847};
848cpp_quote("#endif")
849
850cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)")
851[local, object, uuid (A2F05A09-27a2-42b5-BC0E-AC163EF49D9B), pointer_default (unique)]
852interface IApartmentShutdown : IUnknown {
853 void OnUninitialize ([in] UINT64 ui64ApartmentIdentifier);
854}
855
856cpp_quote("#endif")
Note: See TracBrowser for help on using the repository browser.