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") 857