cpp_quote("/**") cpp_quote(" * This file is part of the mingw-w64 runtime package.") cpp_quote(" * No warranty is given; refer to the file DISCLAIMER within this package.") cpp_quote(" */") cpp_quote("") cpp_quote("#include ") cpp_quote("") cpp_quote("#if (NTDDI_VERSION >= NTDDI_VISTA && !defined(_WIN32_WINNT))") cpp_quote("#define _WIN32_WINNT 0x0600") cpp_quote("#endif") cpp_quote("#if(NTDDI_VERSION >= NTDDI_WS03 && !defined(_WIN32_WINNT))") cpp_quote("#define _WIN32_WINNT 0x0502") cpp_quote("#endif") cpp_quote("#if(NTDDI_VERSION >= NTDDI_WINXP && !defined(_WIN32_WINNT))") cpp_quote("#define _WIN32_WINNT 0x0501") cpp_quote("#endif") #ifndef DO_NO_IMPORTS import "unknwn.idl"; import "wtypes.idl"; #define DO_NO_IMPORTS #define OBJIDL_UNDEF_DO_NO_IMPORTS #endif #include "objidlbase.idl" #ifdef OBJIDL_UNDEF_DO_NO_IMPORTS #undef DO_NO_IMPORTS #endif interface IMoniker; interface IEnumMoniker; interface IRunningObjectTable; interface IStorage; interface IEnumSTATSTG; interface IAdviseSink; interface IBindCtx; interface IEnumMoniker; cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)") [local, object, uuid (0000001d-0000-0000-C000-000000000046)] interface IMallocSpy : IUnknown { typedef [unique] IMallocSpy *LPMALLOCSPY; SIZE_T PreAlloc ([in] SIZE_T cbRequest); void *PostAlloc ([in] void *pActual); void *PreFree ([in] void *pRequest,[in] BOOL fSpyed); void PostFree ([in] BOOL fSpyed); SIZE_T PreRealloc ([in] void *pRequest,[in] SIZE_T cbRequest,[out] void **ppNewRequest,[in] BOOL fSpyed); void *PostRealloc ([in] void *pActual,[in] BOOL fSpyed); void *PreGetSize ([in] void *pRequest,[in] BOOL fSpyed); SIZE_T PostGetSize ([in] SIZE_T cbActual,[in] BOOL fSpyed); void *PreDidAlloc ([in] void *pRequest,[in] BOOL fSpyed); int PostDidAlloc ([in] void *pRequest,[in] BOOL fSpyed,[in] int fActual); void PreHeapMinimize (void); void PostHeapMinimize (void); } cpp_quote("#endif") cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)") [object, uuid (0000000e-0000-0000-C000-000000000046), pointer_default (unique)] interface IBindCtx : IUnknown { typedef [unique] IBindCtx *LPBC; typedef [unique] IBindCtx *LPBINDCTX; cpp_quote("#if defined(__cplusplus)") cpp_quote("typedef struct tagBIND_OPTS {") cpp_quote(" DWORD cbStruct;") cpp_quote(" DWORD grfFlags;") cpp_quote(" DWORD grfMode;") cpp_quote(" DWORD dwTickCountDeadline;") cpp_quote("} BIND_OPTS, *LPBIND_OPTS;") cpp_quote("#else") typedef struct tagBIND_OPTS { DWORD cbStruct; DWORD grfFlags; DWORD grfMode; DWORD dwTickCountDeadline; } BIND_OPTS,*LPBIND_OPTS; cpp_quote("#endif") cpp_quote("#if defined(__cplusplus)") cpp_quote("typedef struct tagBIND_OPTS2 : tagBIND_OPTS {") cpp_quote("DWORD dwTrackFlags;") cpp_quote("DWORD dwClassContext;") cpp_quote("LCID locale;") cpp_quote("COSERVERINFO * pServerInfo;") cpp_quote("} BIND_OPTS2, * LPBIND_OPTS2;") cpp_quote("#else") typedef struct tagBIND_OPTS2 { DWORD cbStruct; DWORD grfFlags; DWORD grfMode; DWORD dwTickCountDeadline; DWORD dwTrackFlags; DWORD dwClassContext; LCID locale; COSERVERINFO *pServerInfo; } BIND_OPTS2,*LPBIND_OPTS2; cpp_quote("#endif") cpp_quote("#if defined(__cplusplus)") cpp_quote("typedef struct tagBIND_OPTS3 : tagBIND_OPTS2 {") cpp_quote("HWND hwnd;") cpp_quote("} BIND_OPTS3, * LPBIND_OPTS3;") cpp_quote("#else") typedef struct tagBIND_OPTS3 { DWORD cbStruct; DWORD grfFlags; DWORD grfMode; DWORD dwTickCountDeadline; DWORD dwTrackFlags; DWORD dwClassContext; LCID locale; COSERVERINFO *pServerInfo; HWND hwnd; } BIND_OPTS3,*LPBIND_OPTS3; cpp_quote("#endif") typedef enum tagBIND_FLAGS { BIND_MAYBOTHERUSER = 1, BIND_JUSTTESTEXISTENCE = 2 } BIND_FLAGS; HRESULT RegisterObjectBound ([in, unique] IUnknown *punk); HRESULT RevokeObjectBound ([in, unique] IUnknown *punk); HRESULT ReleaseBoundObjects (void); [local] HRESULT SetBindOptions ([in] BIND_OPTS *pbindopts); [call_as (SetBindOptions)] HRESULT RemoteSetBindOptions ([in] BIND_OPTS2 *pbindopts); [local] HRESULT GetBindOptions ([in, out] BIND_OPTS *pbindopts); [call_as (GetBindOptions)] HRESULT RemoteGetBindOptions ([in, out] BIND_OPTS2 *pbindopts); HRESULT GetRunningObjectTable ([out] IRunningObjectTable **pprot); HRESULT RegisterObjectParam ([in] LPOLESTR pszKey,[in, unique] IUnknown *punk); HRESULT GetObjectParam ([in] LPOLESTR pszKey,[out] IUnknown **ppunk); HRESULT EnumObjectParam ([out] IEnumString **ppenum); HRESULT RevokeObjectParam ([in] LPOLESTR pszKey); } [object, uuid (00000102-0000-0000-C000-000000000046), pointer_default (unique)] interface IEnumMoniker : IUnknown { typedef [unique] IEnumMoniker *LPENUMMONIKER; [local] HRESULT Next ([in] ULONG celt, IMoniker **rgelt, ULONG *pceltFetched); [call_as (Next)] HRESULT RemoteNext ([in] ULONG celt,[out, size_is (celt), length_is (*pceltFetched)]IMoniker **rgelt,[out] ULONG *pceltFetched); HRESULT Skip ([in] ULONG celt); HRESULT Reset (); HRESULT Clone ([out] IEnumMoniker **ppenum); } cpp_quote("#endif") cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)") [object, uuid (00000126-0000-0000-C000-000000000046)] interface IRunnableObject : IUnknown { typedef [unique] IRunnableObject *LPRUNNABLEOBJECT; HRESULT GetRunningClass ([out] LPCLSID lpClsid); HRESULT Run ([in] LPBINDCTX pbc); [local] BOOL IsRunning (); [call_as (IsRunning)] HRESULT RemoteIsRunning (); HRESULT LockRunning ([in] BOOL fLock,[in] BOOL fLastUnlockCloses); HRESULT SetContainedObject ([in] BOOL fContained); } [object, uuid (00000010-0000-0000-C000-000000000046)] interface IRunningObjectTable : IUnknown { typedef [unique] IRunningObjectTable *LPRUNNINGOBJECTTABLE; HRESULT Register ([in] DWORD grfFlags,[in, unique] IUnknown *punkObject,[in, unique] IMoniker *pmkObjectName,[out] DWORD *pdwRegister); HRESULT Revoke ([in] DWORD dwRegister); HRESULT IsRunning ([in, unique] IMoniker *pmkObjectName); HRESULT GetObject ([in, unique] IMoniker *pmkObjectName,[out] IUnknown **ppunkObject); HRESULT NoteChangeTime ([in] DWORD dwRegister,[in] FILETIME *pfiletime); HRESULT GetTimeOfLastChange ([in, unique] IMoniker *pmkObjectName,[out] FILETIME *pfiletime); HRESULT EnumRunning ([out] IEnumMoniker **ppenumMoniker); } cpp_quote("#endif") cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)") [object, uuid (0000010c-0000-0000-C000-000000000046)] interface IPersist : IUnknown { typedef [unique] IPersist *LPPERSIST; HRESULT GetClassID ([out] CLSID *pClassID); } [object, uuid (00000109-0000-0000-C000-000000000046), pointer_default (unique)] interface IPersistStream : IPersist { typedef [unique] IPersistStream *LPPERSISTSTREAM; HRESULT IsDirty (void); HRESULT Load ([in, unique] IStream *pStm); HRESULT Save ([in, unique] IStream *pStm,[in] BOOL fClearDirty); HRESULT GetSizeMax ([out] ULARGE_INTEGER *pcbSize); } [object, uuid (0000000f-0000-0000-C000-000000000046), pointer_default (unique)] interface IMoniker : IPersistStream { typedef [unique] IMoniker *LPMONIKER; typedef enum tagMKSYS { MKSYS_NONE = 0, MKSYS_GENERICCOMPOSITE = 1, MKSYS_FILEMONIKER = 2, MKSYS_ANTIMONIKER = 3, MKSYS_ITEMMONIKER = 4, MKSYS_POINTERMONIKER = 5, MKSYS_CLASSMONIKER = 7, MKSYS_OBJREFMONIKER = 8, MKSYS_SESSIONMONIKER = 9, MKSYS_LUAMONIKER = 10 }MKSYS; typedef [v1_enum] enum tagMKREDUCE { MKRREDUCE_ONE = 3<<16, MKRREDUCE_TOUSER = 2<<16, MKRREDUCE_THROUGHUSER = 1<<16, MKRREDUCE_ALL = 0 } MKRREDUCE; [local] HRESULT BindToObject ([in, unique] IBindCtx *pbc,[in, unique] IMoniker *pmkToLeft,[in] REFIID riidResult,[out, iid_is (riidResult)] void **ppvResult); [call_as (BindToObject)] HRESULT RemoteBindToObject ([in, unique] IBindCtx *pbc,[in, unique] IMoniker *pmkToLeft,[in] REFIID riidResult,[out, iid_is (riidResult)] IUnknown **ppvResult); [local] HRESULT BindToStorage ([in, unique] IBindCtx *pbc,[in, unique] IMoniker *pmkToLeft,[in] REFIID riid,[out, iid_is (riid)] void **ppvObj); [call_as (BindToStorage)] HRESULT RemoteBindToStorage ([in, unique] IBindCtx *pbc,[in, unique] IMoniker *pmkToLeft,[in] REFIID riid,[out, iid_is (riid)] IUnknown **ppvObj); HRESULT Reduce ([in, unique] IBindCtx *pbc,[in] DWORD dwReduceHowFar,[in, out, unique] IMoniker **ppmkToLeft,[out] IMoniker **ppmkReduced); HRESULT ComposeWith ([in, unique] IMoniker *pmkRight,[in] BOOL fOnlyIfNotGeneric,[out] IMoniker **ppmkComposite); HRESULT Enum ([in] BOOL fForward,[out] IEnumMoniker **ppenumMoniker); HRESULT IsEqual ([in, unique] IMoniker *pmkOtherMoniker); HRESULT Hash ([out] DWORD *pdwHash); HRESULT IsRunning ([in, unique] IBindCtx *pbc,[in, unique] IMoniker *pmkToLeft,[in, unique] IMoniker *pmkNewlyRunning); HRESULT GetTimeOfLastChange ([in, unique] IBindCtx *pbc,[in, unique] IMoniker *pmkToLeft,[out] FILETIME *pFileTime); HRESULT Inverse ([out] IMoniker **ppmk); HRESULT CommonPrefixWith ([in, unique] IMoniker *pmkOther,[out] IMoniker **ppmkPrefix); HRESULT RelativePathTo ([in, unique] IMoniker *pmkOther,[out] IMoniker **ppmkRelPath); HRESULT GetDisplayName ([in, unique] IBindCtx *pbc,[in, unique] IMoniker *pmkToLeft,[out] LPOLESTR *ppszDisplayName); HRESULT ParseDisplayName ([in, unique] IBindCtx *pbc,[in, unique] IMoniker *pmkToLeft,[in] LPOLESTR pszDisplayName,[out] ULONG *pchEaten,[out] IMoniker **ppmkOut); HRESULT IsSystemMoniker ([out] DWORD *pdwMksys); } cpp_quote("#endif") cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)") [object, uuid (f29f6bc0-5021-11ce-aa15-00006901293f), pointer_default (unique)] interface IROTData : IUnknown { HRESULT GetComparisonData ([out, size_is (cbMax)] byte *pbData,[in] ULONG cbMax,[out] ULONG *pcbData); } cpp_quote("#endif") cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)") [object, uuid (0000000d-0000-0000-C000-000000000046), pointer_default (unique)] interface IEnumSTATSTG : IUnknown { typedef [unique] IEnumSTATSTG *LPENUMSTATSTG; [local] HRESULT Next ([in] ULONG celt, STATSTG *rgelt, ULONG *pceltFetched); [call_as (Next)] HRESULT RemoteNext ([in] ULONG celt,[out, size_is (celt), length_is (*pceltFetched)] STATSTG *rgelt,[out] ULONG *pceltFetched); HRESULT Skip ([in] ULONG celt); HRESULT Reset (); HRESULT Clone ([out] IEnumSTATSTG **ppenum); } [object, uuid (0000000b-0000-0000-C000-000000000046), pointer_default (unique)] interface IStorage : IUnknown { typedef [unique] IStorage *LPSTORAGE; typedef struct tagRemSNB { unsigned long ulCntStr; unsigned long ulCntChar; [size_is (ulCntChar)] OLECHAR rgString[]; } RemSNB; typedef [unique] RemSNB *wireSNB; typedef [wire_marshal (wireSNB)] LPOLESTR *SNB; HRESULT CreateStream ([in, string] const OLECHAR *pwcsName,[in] DWORD grfMode,[in] DWORD reserved1,[in] DWORD reserved2,[out] IStream **ppstm); [local] HRESULT OpenStream ([in, string] const OLECHAR *pwcsName,[in, unique] void *reserved1,[in] DWORD grfMode,[in] DWORD reserved2,[out] IStream **ppstm); [call_as (OpenStream)] 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); HRESULT CreateStorage ([in, string] const OLECHAR *pwcsName,[in] DWORD grfMode,[in] DWORD reserved1,[in] DWORD reserved2,[out] IStorage **ppstg); 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); [local] HRESULT CopyTo ([in] DWORD ciidExclude,[in, unique, size_is (ciidExclude)] IID const *rgiidExclude,[in, unique] SNB snbExclude,[in, unique] IStorage *pstgDest); [call_as (CopyTo)] HRESULT RemoteCopyTo ([in] DWORD ciidExclude,[in, unique, size_is (ciidExclude)] IID const *rgiidExclude,[in, unique] SNB snbExclude,[in, unique] IStorage *pstgDest); HRESULT MoveElementTo ([in, string] const OLECHAR *pwcsName,[in, unique] IStorage *pstgDest,[in, string] const OLECHAR *pwcsNewName,[in] DWORD grfFlags); HRESULT Commit ([in] DWORD grfCommitFlags); HRESULT Revert (); [local] HRESULT EnumElements ([in] DWORD reserved1,[in, unique, size_is (1)] void *reserved2,[in] DWORD reserved3,[out] IEnumSTATSTG **ppenum); [call_as (EnumElements)] HRESULT RemoteEnumElements ([in] DWORD reserved1,[in] unsigned long cbReserved2,[in, unique, size_is (cbReserved2)] byte *reserved2,[in] DWORD reserved3,[out] IEnumSTATSTG **ppenum); HRESULT DestroyElement ([in, string] const OLECHAR *pwcsName); HRESULT RenameElement ([in, string] const OLECHAR *pwcsOldName,[in, string] const OLECHAR *pwcsNewName); HRESULT SetElementTimes ([in, unique, string] const OLECHAR *pwcsName,[in, unique] FILETIME const *pctime,[in, unique] FILETIME const *patime,[in, unique] FILETIME const *pmtime); HRESULT SetClass ([in] REFCLSID clsid); HRESULT SetStateBits ([in] DWORD grfStateBits,[in] DWORD grfMask); HRESULT Stat ([out] STATSTG *pstatstg,[in] DWORD grfStatFlag); } cpp_quote("#endif") cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)") [object, uuid (0000010b-0000-0000-C000-000000000046), pointer_default (unique)] interface IPersistFile : IPersist { typedef [unique] IPersistFile *LPPERSISTFILE; HRESULT IsDirty (void); HRESULT Load ([in] LPCOLESTR pszFileName,[in] DWORD dwMode); HRESULT Save ([in, unique] LPCOLESTR pszFileName,[in] BOOL fRemember); HRESULT SaveCompleted ([in, unique] LPCOLESTR pszFileName); HRESULT GetCurFile ([out] LPOLESTR *ppszFileName); } [object, uuid (0000010a-0000-0000-C000-000000000046), pointer_default (unique)] interface IPersistStorage : IPersist { typedef [unique] IPersistStorage *LPPERSISTSTORAGE; HRESULT IsDirty (void); HRESULT InitNew ([in, unique] IStorage *pStg); HRESULT Load ([in, unique] IStorage *pStg); HRESULT Save ([in, unique] IStorage *pStgSave,[in] BOOL fSameAsLoad); HRESULT SaveCompleted ([in, unique] IStorage *pStgNew); HRESULT HandsOffStorage (void); } cpp_quote("#endif") cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)") [object, uuid (0000000a-0000-0000-C000-000000000046), pointer_default (unique)] interface ILockBytes : IUnknown { typedef [unique] ILockBytes *LPLOCKBYTES; [local] HRESULT ReadAt ([in] ULARGE_INTEGER ulOffset,[out, size_is (cb), length_is (*pcbRead)]void *pv,[in] ULONG cb,[out] ULONG *pcbRead); [call_as (ReadAt)] HRESULT _stdcall RemoteReadAt ([in] ULARGE_INTEGER ulOffset,[out, size_is (cb), length_is (*pcbRead)]byte *pv,[in] ULONG cb,[out] ULONG *pcbRead); [local] HRESULT WriteAt ([in] ULARGE_INTEGER ulOffset,[in, size_is (cb)] void const *pv,[in] ULONG cb,[out] ULONG *pcbWritten); [call_as (WriteAt)] HRESULT RemoteWriteAt ([in] ULARGE_INTEGER ulOffset,[in, size_is (cb)] byte const *pv,[in] ULONG cb,[out] ULONG *pcbWritten); HRESULT Flush (); HRESULT SetSize ([in] ULARGE_INTEGER cb); HRESULT LockRegion ([in] ULARGE_INTEGER libOffset,[in] ULARGE_INTEGER cb,[in] DWORD dwLockType); HRESULT UnlockRegion ([in] ULARGE_INTEGER libOffset,[in] ULARGE_INTEGER cb,[in] DWORD dwLockType); HRESULT Stat ([out] STATSTG *pstatstg,[in] DWORD grfStatFlag); } [object, uuid (00000103-0000-0000-C000-000000000046), pointer_default (unique)] interface IEnumFORMATETC : IUnknown { typedef [unique] IEnumFORMATETC *LPENUMFORMATETC; typedef struct tagDVTARGETDEVICE { DWORD tdSize; WORD tdDriverNameOffset; WORD tdDeviceNameOffset; WORD tdPortNameOffset; WORD tdExtDevmodeOffset; [size_is (tdSize - sizeof (DWORD) - 4 *sizeof (WORD))] BYTE tdData[]; } DVTARGETDEVICE; typedef CLIPFORMAT *LPCLIPFORMAT; typedef struct tagFORMATETC { CLIPFORMAT cfFormat; [unique] DVTARGETDEVICE *ptd; DWORD dwAspect; LONG lindex; DWORD tymed; }FORMATETC,*LPFORMATETC; [local] HRESULT Next ([in] ULONG celt, FORMATETC *rgelt, ULONG *pceltFetched); [call_as (Next)] HRESULT RemoteNext ([in] ULONG celt,[out, size_is (celt), length_is (*pceltFetched)] FORMATETC *rgelt,[out] ULONG *pceltFetched); HRESULT Skip ([in] ULONG celt); HRESULT Reset (); HRESULT Clone ([out] IEnumFORMATETC **ppenum); } [object, uuid (00000105-0000-0000-C000-000000000046), pointer_default (unique)] interface IEnumSTATDATA : IUnknown { typedef [unique] IEnumSTATDATA *LPENUMSTATDATA; typedef enum tagADVF { ADVF_NODATA = 1, ADVF_PRIMEFIRST = 2, ADVF_ONLYONCE = 4, ADVF_DATAONSTOP = 64, ADVFCACHE_NOHANDLER = 8, ADVFCACHE_FORCEBUILTIN = 16, ADVFCACHE_ONSAVE = 32 } ADVF; typedef struct tagSTATDATA { FORMATETC formatetc; DWORD advf; [unique] IAdviseSink *pAdvSink; DWORD dwConnection; } STATDATA; typedef STATDATA *LPSTATDATA; [local] HRESULT Next ([in] ULONG celt, STATDATA *rgelt, ULONG *pceltFetched); [call_as (Next)] HRESULT RemoteNext ([in] ULONG celt,[out, size_is (celt), length_is (*pceltFetched)] STATDATA *rgelt,[out] ULONG *pceltFetched); HRESULT Skip ([in] ULONG celt); HRESULT Reset (); HRESULT Clone ([out] IEnumSTATDATA **ppenum); } [object, uuid (00000012-0000-0000-C000-000000000046), pointer_default (unique)] interface IRootStorage : IUnknown { typedef [unique] IRootStorage *LPROOTSTORAGE; HRESULT SwitchToFile ([in] LPOLESTR pszFile); } [object, uuid (0000010f-0000-0000-C000-000000000046), async_uuid (00000150-0000-0000-C000-000000000046), pointer_default (unique)] interface IAdviseSink : IUnknown { typedef IAdviseSink *LPADVISESINK; typedef [v1_enum] enum tagTYMED { TYMED_HGLOBAL = 1, TYMED_FILE = 2, TYMED_ISTREAM = 4, TYMED_ISTORAGE = 8, TYMED_GDI = 16, TYMED_MFPICT = 32, TYMED_ENHMF = 64, TYMED_NULL = 0 } TYMED; typedef struct tagRemSTGMEDIUM { DWORD tymed; DWORD dwHandleType; unsigned long pData; unsigned long pUnkForRelease; unsigned long cbData; [size_is (cbData)] byte data[]; } RemSTGMEDIUM; cpp_quote("#ifdef NONAMELESSUNION") cpp_quote("typedef struct tagSTGMEDIUM {") cpp_quote("DWORD tymed;") cpp_quote("union {") cpp_quote("HBITMAP hBitmap;") cpp_quote("HMETAFILEPICT hMetaFilePict;") cpp_quote("HENHMETAFILE hEnhMetaFile;") cpp_quote("HGLOBAL hGlobal;") cpp_quote("LPOLESTR lpszFileName;") cpp_quote("IStream *pstm;") cpp_quote("IStorage *pstg;") cpp_quote("} u;") cpp_quote("IUnknown *pUnkForRelease;") cpp_quote("}uSTGMEDIUM;") cpp_quote("#else") typedef struct tagSTGMEDIUM { DWORD tymed; [switch_type (DWORD), switch_is ((DWORD) tymed)] union { [case (TYMED_GDI)] HBITMAP hBitmap; [case (TYMED_MFPICT)] HMETAFILEPICT hMetaFilePict; [case (TYMED_ENHMF)] HENHMETAFILE hEnhMetaFile; [case (TYMED_HGLOBAL)] HGLOBAL hGlobal; [case (TYMED_FILE)] LPOLESTR lpszFileName; [case (TYMED_ISTREAM)] IStream *pstm; [case (TYMED_ISTORAGE)] IStorage *pstg; [default] ; } DUMMYUNIONNAME; [unique] IUnknown *pUnkForRelease; } uSTGMEDIUM; cpp_quote("#endif") #define OBJ_PEN 1 #define OBJ_BRUSH 2 #define OBJ_DC 3 #define OBJ_METADC 4 #define OBJ_PAL 5 #define OBJ_FONT 6 #define OBJ_BITMAP 7 #define OBJ_REGION 8 #define OBJ_METAFILE 9 #define OBJ_MEMDC 10 #define OBJ_EXTPEN 11 #define OBJ_ENHMETADC 12 #define OBJ_ENHMETAFILE 13 typedef union _GDI_OBJECT switch (DWORD ObjectType) u { case OBJ_BITMAP: wireHBITMAP hBitmap; case OBJ_PAL: wireHPALETTE hPalette; default: wireHGLOBAL hGeneric; } GDI_OBJECT; typedef struct _userSTGMEDIUM { union _STGMEDIUM_UNION switch (DWORD tymed) u { case TYMED_NULL:; case TYMED_MFPICT: wireHMETAFILEPICT hMetaFilePict; case TYMED_ENHMF: wireHENHMETAFILE hHEnhMetaFile; case TYMED_GDI: GDI_OBJECT *hGdiHandle; case TYMED_HGLOBAL: wireHGLOBAL hGlobal; case TYMED_FILE: LPOLESTR lpszFileName; case TYMED_ISTREAM: BYTE_BLOB *pstm; case TYMED_ISTORAGE: BYTE_BLOB *pstg; } DUMMYUNIONNAME; IUnknown *pUnkForRelease; } userSTGMEDIUM; typedef [unique] userSTGMEDIUM *wireSTGMEDIUM; typedef [wire_marshal (wireSTGMEDIUM)] uSTGMEDIUM STGMEDIUM; typedef [unique] userSTGMEDIUM *wireASYNC_STGMEDIUM; typedef [wire_marshal (wireASYNC_STGMEDIUM)] STGMEDIUM ASYNC_STGMEDIUM; typedef STGMEDIUM *LPSTGMEDIUM; typedef struct _userFLAG_STGMEDIUM { long ContextFlags; long fPassOwnership; userSTGMEDIUM Stgmed; } userFLAG_STGMEDIUM; typedef [unique] userFLAG_STGMEDIUM *wireFLAG_STGMEDIUM; typedef [wire_marshal (wireFLAG_STGMEDIUM)] struct _FLAG_STGMEDIUM { long ContextFlags; long fPassOwnership; STGMEDIUM Stgmed; } FLAG_STGMEDIUM; [local] void OnDataChange ([in, unique] FORMATETC *pFormatetc,[in, unique] STGMEDIUM *pStgmed); [local] void OnViewChange ([in] DWORD dwAspect,[in] LONG lindex); [local] void OnRename ([in] IMoniker *pmk); [local] void OnSave (); [local] void OnClose (); [call_as (OnDataChange)] HRESULT RemoteOnDataChange ([in, unique] FORMATETC *pFormatetc,[in, unique] ASYNC_STGMEDIUM *pStgmed); [call_as (OnViewChange)] HRESULT RemoteOnViewChange ([in] DWORD dwAspect,[in] LONG lindex); [call_as (OnRename)] HRESULT RemoteOnRename ([in] IMoniker *pmk); [call_as (OnSave)] HRESULT RemoteOnSave (); [call_as (OnClose)] HRESULT RemoteOnClose (); } cpp_quote("#endif") cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)") [object, uuid (00000125-0000-0000-C000-000000000046), async_uuid (00000151-0000-0000-C000-000000000046), pointer_default (unique)] interface IAdviseSink2 : IAdviseSink { typedef [unique] IAdviseSink2 *LPADVISESINK2; [local] void OnLinkSrcChange ([in, unique] IMoniker *pmk); [call_as (OnLinkSrcChange)] HRESULT RemoteOnLinkSrcChange ([in, unique] IMoniker *pmk); } cpp_quote("#endif") cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)") [object, uuid (0000010e-0000-0000-C000-000000000046), pointer_default (unique)] interface IDataObject : IUnknown { typedef [unique] IDataObject *LPDATAOBJECT; typedef enum tagDATADIR { DATADIR_GET = 1, DATADIR_SET = 2 } DATADIR; [local] HRESULT GetData ([in, unique] FORMATETC *pformatetcIn,[out] STGMEDIUM *pmedium); [call_as (GetData)] HRESULT RemoteGetData ([in, unique] FORMATETC *pformatetcIn,[out] STGMEDIUM *pRemoteMedium); [local] HRESULT GetDataHere ([in, unique] FORMATETC *pformatetc,[in, out] STGMEDIUM *pmedium); [call_as (GetDataHere)] HRESULT RemoteGetDataHere ([in, unique] FORMATETC *pformatetc,[in, out] STGMEDIUM *pRemoteMedium); HRESULT QueryGetData ([in, unique] FORMATETC *pformatetc); HRESULT GetCanonicalFormatEtc ([in, unique] FORMATETC *pformatectIn,[out] FORMATETC *pformatetcOut); [local] HRESULT SetData ([in, unique] FORMATETC *pformatetc,[in, unique] STGMEDIUM *pmedium,[in] BOOL fRelease); [call_as (SetData)] HRESULT RemoteSetData ([in, unique] FORMATETC *pformatetc,[in, unique] FLAG_STGMEDIUM *pmedium,[in] BOOL fRelease); HRESULT EnumFormatEtc ([in] DWORD dwDirection,[out] IEnumFORMATETC **ppenumFormatEtc); HRESULT DAdvise ([in] FORMATETC *pformatetc,[in] DWORD advf,[in, unique] IAdviseSink *pAdvSink,[out] DWORD *pdwConnection); HRESULT DUnadvise ([in] DWORD dwConnection); HRESULT EnumDAdvise ([out] IEnumSTATDATA **ppenumAdvise); } cpp_quote("#endif") cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)") [local, object, uuid (00000110-0000-0000-C000-000000000046)] interface IDataAdviseHolder : IUnknown { typedef [unique] IDataAdviseHolder *LPDATAADVISEHOLDER; HRESULT Advise ([in, unique] IDataObject *pDataObject,[in, unique] FORMATETC *pFetc,[in] DWORD advf,[in, unique] IAdviseSink *pAdvise,[out] DWORD *pdwConnection); HRESULT Unadvise ([in] DWORD dwConnection); HRESULT EnumAdvise ([out] IEnumSTATDATA **ppenumAdvise); HRESULT SendOnDataChange ([in, unique] IDataObject *pDataObject,[in] DWORD dwReserved,[in] DWORD advf); } [local, object, uuid (00000016-0000-0000-C000-000000000046)] interface IMessageFilter : IUnknown { typedef [unique] IMessageFilter *LPMESSAGEFILTER; typedef enum tagCALLTYPE { CALLTYPE_TOPLEVEL = 1, CALLTYPE_NESTED = 2, CALLTYPE_ASYNC = 3, CALLTYPE_TOPLEVEL_CALLPENDING = 4, CALLTYPE_ASYNC_CALLPENDING = 5 } CALLTYPE; typedef enum tagSERVERCALL { SERVERCALL_ISHANDLED = 0, SERVERCALL_REJECTED = 1, SERVERCALL_RETRYLATER = 2 } SERVERCALL; typedef enum tagPENDINGTYPE { PENDINGTYPE_TOPLEVEL = 1, PENDINGTYPE_NESTED = 2 } PENDINGTYPE; typedef enum tagPENDINGMSG { PENDINGMSG_CANCELCALL = 0, PENDINGMSG_WAITNOPROCESS = 1, PENDINGMSG_WAITDEFPROCESS = 2 } PENDINGMSG; typedef struct tagINTERFACEINFO { IUnknown *pUnk; IID iid; WORD wMethod; } INTERFACEINFO,*LPINTERFACEINFO; DWORD HandleInComingCall ([in] DWORD dwCallType,[in] HTASK htaskCaller,[in] DWORD dwTickCount,[in] LPINTERFACEINFO lpInterfaceInfo); DWORD RetryRejectedCall ([in] HTASK htaskCallee,[in] DWORD dwTickCount,[in] DWORD dwRejectType); DWORD MessagePending ([in] HTASK htaskCallee,[in] DWORD dwTickCount,[in] DWORD dwPendingType); } cpp_quote("") extern const FMTID FMTID_SummaryInformation; extern const FMTID FMTID_DocSummaryInformation; extern const FMTID FMTID_UserDefinedProperties; extern const FMTID FMTID_DiscardableInformation; extern const FMTID FMTID_ImageSummaryInformation; extern const FMTID FMTID_AudioSummaryInformation; extern const FMTID FMTID_VideoSummaryInformation; extern const FMTID FMTID_MediaFileSummaryInformation; #ifdef __INCLUDE_CPIFS interface IConnectionPointContainer; interface IConnectionPoint; interface IEnumConnections; interface IEnumConnectionPoints; [object, uuid (B196B286-BAB4-101a-B69C-00aa00341d07), pointer_default (unique)] interface IConnectionPoint : IUnknown { typedef IConnectionPoint *PCONNECTIONPOINT; typedef IConnectionPoint *LPCONNECTIONPOINT; HRESULT GetConnectionInterface ([out] IID *piid); HRESULT GetConnectionPointContainer ([out] IConnectionPointContainer **ppCPC); HRESULT Advise ([in] IUnknown *pUnkSink,[out] DWORD *pdwCookie); HRESULT Unadvise ([in] DWORD dwCookie); HRESULT EnumConnections ([out] IEnumConnections **ppEnum); } [object, uuid (B196B284-BAB4-101a-B69C-00aa00341d07), pointer_default (unique)] interface IConnectionPointContainer : IUnknown { typedef IConnectionPointContainer *PCONNECTIONPOINTCONTAINER; typedef IConnectionPointContainer *LPCONNECTIONPOINTCONTAINER; HRESULT EnumConnectionPoints ([out] IEnumConnectionPoints **ppEnum); HRESULT FindConnectionPoint ([in] REFIID riid,[out] IConnectionPoint **ppCP); } [object, uuid (B196B287-BAB4-101a-B69C-00aa00341d07), pointer_default (unique)] interface IEnumConnections : IUnknown { typedef IEnumConnections *PENUMCONNECTIONS; typedef IEnumConnections *LPENUMCONNECTIONS; typedef struct tagCONNECTDATA { IUnknown *pUnk; DWORD dwCookie; } CONNECTDATA; typedef struct tagCONNECTDATA *PCONNECTDATA; typedef struct tagCONNECTDATA *LPCONNECTDATA; [local] HRESULT Next ([in] ULONG cConnections, CONNECTDATA *rgcd, ULONG *lpcFetched); [call_as (Next)] HRESULT RemoteNext ([in] ULONG cConnections,[out, size_is (cConnections), length_is (*lpcFetched)] CONNECTDATA *rgcd,[out] ULONG *lpcFetched); HRESULT Skip ([in] ULONG cConnections); HRESULT Reset (void); HRESULT Clone ([out] IEnumConnections **ppEnum); } [object, uuid (B196B285-BAB4-101a-B69C-00aa00341d07), pointer_default (unique)] interface IEnumConnectionPoints : IUnknown { typedef IEnumConnectionPoints *PENUMCONNECTIONPOINTS; typedef IEnumConnectionPoints *LPENUMCONNECTIONPOINTS; [local] HRESULT Next ([in] ULONG cConnections, IConnectionPoint **rgpcn, ULONG *lpcFetched); [call_as (Next)] HRESULT RemoteNext ([in] ULONG cConnections,[out, size_is (cConnections), length_is (*lpcFetched)] IConnectionPoint **rgpcn,[out] ULONG *lpcFetched); HRESULT Skip ([in] ULONG cConnections); HRESULT Reset (void); HRESULT Clone ([out] IEnumConnectionPoints **ppEnum); } #endif [object, uuid (00000140-0000-0000-C000-000000000046)] interface IClassActivator : IUnknown { HRESULT GetClassObject ([in] REFCLSID rclsid,[in] DWORD dwClassContext,[in] LCID locale,[in] REFIID riid,[out, iid_is (riid)] void **ppv); } cpp_quote("#endif") cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)") [object, uuid (99caf010-415e-11cf-8814-00aa00b569f5), pointer_default (unique)] interface IFillLockBytes: IUnknown { [local] HRESULT FillAppend ([in, size_is (cb)] void const *pv,[in] ULONG cb,[out] ULONG *pcbWritten); [call_as (FillAppend)] HRESULT _stdcall RemoteFillAppend ([in, size_is (cb)] byte const *pv,[in] ULONG cb,[out] ULONG *pcbWritten); [local] HRESULT FillAt ([in] ULARGE_INTEGER ulOffset,[in, size_is (cb)] void const *pv,[in] ULONG cb,[out] ULONG *pcbWritten); [call_as (FillAt)] HRESULT _stdcall RemoteFillAt ([in] ULARGE_INTEGER ulOffset,[in, size_is (cb)] byte const *pv,[in] ULONG cb,[out] ULONG *pcbWritten); HRESULT SetFillSize ([in] ULARGE_INTEGER ulSize); HRESULT Terminate ([in] BOOL bCanceled); } cpp_quote("#endif") cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)") [object, uuid (a9d758a0-4617-11cf-95fc-00aa00680db4), pointer_default (unique)] interface IProgressNotify: IUnknown { HRESULT OnProgress ([in] DWORD dwProgressCurrent,[in] DWORD dwProgressMaximum,[in] BOOL fAccurate,[in] BOOL fOwner); } cpp_quote("#endif") cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)") [local, object, uuid (0e6d4d90-6738-11cf-9608-00aa00680db4), pointer_default (unique)] interface ILayoutStorage: IUnknown { typedef struct tagStorageLayout { DWORD LayoutType; OLECHAR *pwcsElementName; LARGE_INTEGER cOffset; LARGE_INTEGER cBytes; } StorageLayout; HRESULT __stdcall LayoutScript ([in] StorageLayout *pStorageLayout,[in] DWORD nEntries,[in] DWORD glfInterleavedFlag); HRESULT __stdcall BeginMonitor (void); HRESULT __stdcall EndMonitor (void); HRESULT __stdcall ReLayoutDocfile ([in] OLECHAR *pwcsNewDfName); HRESULT __stdcall ReLayoutDocfileOnILockBytes ([in] ILockBytes *pILockBytes); } cpp_quote("#endif") cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)") [object, uuid (30f3d47a-6447-11d1-8e3c-00c04fb9386d)] interface IBlockingLock: IUnknown { HRESULT Lock ([in] DWORD dwTimeout); HRESULT Unlock (void); } [object, uuid (bc0bf6ae-8878-11d1-83e9-00c04fc2c6d4)] interface ITimeAndNoticeControl: IUnknown { HRESULT SuppressChanges ([in] DWORD res1,[in] DWORD res2); } [object, uuid (8d19c834-8879-11d1-83e9-00c04fc2c6d4)] interface IOplockStorage: IUnknown { HRESULT CreateStorageEx ([in] LPCWSTR pwcsName,[in] DWORD grfMode,[in] DWORD stgfmt,[in] DWORD grfAttrs,[in] REFIID riid,[out, iid_is (riid)] void **ppstgOpen); HRESULT OpenStorageEx ([in] LPCWSTR pwcsName,[in] DWORD grfMode,[in] DWORD stgfmt,[in] DWORD grfAttrs,[in] REFIID riid,[out, iid_is (riid)] void **ppstgOpen); } cpp_quote("#endif") cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)") [object, uuid (0e6d4d92-6738-11cf-9608-00aa00680db4), pointer_default (unique)] interface IDirectWriterLock : IUnknown { HRESULT WaitForWriteAccess ([in] DWORD dwTimeout); HRESULT ReleaseWriteAccess (); HRESULT HaveWriteAccess (); } cpp_quote("#endif") cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)") [object, uuid (00000026-0000-0000-C000-000000000046)] interface IUrlMon : IUnknown { 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); } [local, object, uuid (00000145-0000-0000-C000-000000000046)] interface IForegroundTransfer : IUnknown { HRESULT AllowForegroundTransfer ([in] void *lpvReserved); } [uuid (969dc708-5c76-11d1-8d86-0000f804b057), object] interface IThumbnailExtractor : IUnknown { HRESULT ExtractThumbnail ([in] IStorage *pStg,[in] ULONG ulLength,[in] ULONG ulHeight,[out] ULONG *pulOutputLength,[out] ULONG *pulOutputHeight,[out] HBITMAP *phOutputBitmap); HRESULT OnFileUpdated ([in] IStorage *pStg); } [object, pointer_default (unique), uuid (947990de-cc28-11d2-a0f7-00805f858fb1)] interface IDummyHICONIncluder : IUnknown { HRESULT Dummy ([in]HICON h1,[in] HDC h2); } typedef enum tagApplicationType { ServerApplication, LibraryApplication } ApplicationType; typedef enum tagShutdownType { IdleShutdown, ForcedShutdown } ShutdownType; [object, local, uuid (000001d5-0000-0000-C000-000000000046), pointer_default (unique)] interface IProcessLock : IUnknown { ULONG AddRefOnProcess (); ULONG ReleaseRefOnProcess (); } [object, local, uuid (000001d4-0000-0000-C000-000000000046), pointer_default (unique)] interface ISurrogateService : IUnknown { HRESULT Init ([in] REFGUID rguidProcessID,[in] IProcessLock *pProcessLock,[out] BOOL *pfApplicationAware); HRESULT ApplicationLaunch ([in] REFGUID rguidApplID,[in] ApplicationType appType); HRESULT ApplicationFree ([in] REFGUID rguidApplID); HRESULT CatalogRefresh ([in] ULONG ulReserved); HRESULT ProcessShutdown ([in] ShutdownType shutdownType); } [local, object, uuid (00000034-0000-0000-C000-000000000046), pointer_default (unique)] interface IInitializeSpy : IUnknown { typedef [unique] IInitializeSpy *LPINITIALIZESPY; HRESULT PreInitialize ([in] DWORD dwCoInit,[in] DWORD dwCurThreadAptRefs); HRESULT PostInitialize ([in] HRESULT hrCoInit,[in] DWORD dwCoInit,[in] DWORD dwNewThreadAptRefs); HRESULT PreUninitialize ([in] DWORD dwCurThreadAptRefs); HRESULT PostUninitialize ([in] DWORD dwNewThreadAptRefs); }; cpp_quote("#endif") cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)") [local, object, uuid (A2F05A09-27a2-42b5-BC0E-AC163EF49D9B), pointer_default (unique)] interface IApartmentShutdown : IUnknown { void OnUninitialize ([in] UINT64 ui64ApartmentIdentifier); } cpp_quote("#endif")