| // Licensed under the Apache License, Version 2.0 |
| // <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license |
| // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option. |
| // All files in the project carrying such notice may not be copied, modified, or distributed |
| // except according to those terms. |
| //! this ALWAYS GENERATED file contains the definitions for the interfaces |
| use ctypes::c_void; |
| use shared::basetsd::UINT64; |
| use shared::guiddef::{CLSID, IID, REFCLSID, REFIID}; |
| use shared::minwindef::{BOOL, BYTE, DWORD, FILETIME, HGLOBAL, ULONG, WORD}; |
| use shared::ntdef::LONG; |
| use shared::windef::{HBITMAP, HENHMETAFILE}; |
| use shared::wtypes::{CLIPFORMAT, HMETAFILEPICT}; |
| use shared::wtypesbase::{LPCOLESTR, LPOLESTR, OLECHAR}; |
| use um::objidlbase::{IEnumString, IStream, STATSTG}; |
| use um::unknwnbase::{IUnknown, IUnknownVtbl}; |
| use um::winnt::{HRESULT, ULARGE_INTEGER}; |
| //8402 |
| STRUCT!{struct BIND_OPTS { |
| cbStruct: DWORD, |
| grfFlags: DWORD, |
| grfMode: DWORD, |
| dwTickCountDeadline: DWORD, |
| }} |
| pub type LPBIND_OPTS = *mut BIND_OPTS; |
| //8479 |
| RIDL!{#[uuid(0x0000000e, 0x0000, 0x0000, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46)] |
| interface IBindCtx(IBindCtxVtbl): IUnknown(IUnknownVtbl) { |
| fn RegisterObjectBound( |
| punk: *mut IUnknown, |
| ) -> HRESULT, |
| fn RevokeObjectBound( |
| punk: *mut IUnknown, |
| ) -> HRESULT, |
| fn ReleaseBoundObjects() -> HRESULT, |
| fn SetBindOptions( |
| pbindopts: *mut BIND_OPTS, |
| ) -> HRESULT, |
| fn GetBindOptions( |
| pbindopts: *mut BIND_OPTS, |
| ) -> HRESULT, |
| fn GetRunningObjectTable( |
| pprot: *mut *mut IRunningObjectTable, |
| ) -> HRESULT, |
| fn RegisterObjectParam( |
| pszKey: LPOLESTR, |
| punk: *mut IUnknown, |
| ) -> HRESULT, |
| fn GetObjectParam( |
| pszKey: LPOLESTR, |
| ppunk: *mut *mut IUnknown, |
| ) -> HRESULT, |
| fn EnumObjectParam( |
| ppenum: *mut *mut IEnumString, |
| ) -> HRESULT, |
| fn RevokeObjectParam( |
| pszKey: LPOLESTR, |
| ) -> HRESULT, |
| }} |
| //8681 |
| RIDL!{#[uuid(0x00000102, 0x0000, 0x0000, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46)] |
| interface IEnumMoniker(IEnumMonikerVtbl): IUnknown(IUnknownVtbl) { |
| fn Next( |
| celt: ULONG, |
| rgelt: *mut *mut IMoniker, |
| pceltFetched: *mut ULONG, |
| ) -> HRESULT, |
| fn Skip( |
| celt: ULONG, |
| ) -> HRESULT, |
| fn Reset() -> HRESULT, |
| fn Clone( |
| ppenum: *mut *mut IEnumMoniker, |
| ) -> HRESULT, |
| }} |
| //8958 |
| RIDL!{#[uuid(0x00000010, 0x0000, 0x0000, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46)] |
| interface IRunningObjectTable(IRunningObjectTableVtbl): IUnknown(IUnknownVtbl) { |
| fn Register( |
| grfFlags: DWORD, |
| punkObject: *mut IUnknown, |
| pmkObjectName: *mut IMoniker, |
| pdwRegister: *mut DWORD, |
| ) -> HRESULT, |
| fn Revoke( |
| dwRegister: DWORD, |
| ) -> HRESULT, |
| fn IsRunning( |
| pmkObjectName: *mut IMoniker, |
| ) -> HRESULT, |
| fn GetObject( |
| pmkObjectName: *mut IMoniker, |
| ppunkObject: *mut *mut IUnknown, |
| ) -> HRESULT, |
| fn NoteChangeTime( |
| dwRegister: DWORD, |
| pfiletime: *mut FILETIME, |
| ) -> HRESULT, |
| fn GetTimeOfLastChange( |
| pmkObjectName: *mut IMoniker, |
| pfiletime: *mut FILETIME, |
| ) -> HRESULT, |
| fn EnumRunning( |
| ppenumMoniker: *mut *mut IEnumMoniker, |
| ) -> HRESULT, |
| }} |
| //9125 |
| RIDL!{#[uuid(0x0000010c, 0x0000, 0x0000, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46)] |
| interface IPersist(IPersistVtbl): IUnknown(IUnknownVtbl) { |
| fn GetClassID( |
| pClassID: *mut CLSID, |
| ) -> HRESULT, |
| }} |
| //9207 |
| RIDL!{#[uuid(0x00000109, 0x0000, 0x0000, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46)] |
| interface IPersistStream(IPersistStreamVtbl): IPersist(IPersistVtbl) { |
| fn IsDirty() -> HRESULT, |
| fn Load( |
| pStm: *mut IStream, |
| ) -> HRESULT, |
| fn Save( |
| pStm: *mut IStream, |
| fClearDirty: BOOL, |
| ) -> HRESULT, |
| fn GetSizeMax( |
| pcbSize: *mut ULARGE_INTEGER, |
| ) -> HRESULT, |
| }} |
| //9350 |
| RIDL!{#[uuid(0x0000000f, 0x0000, 0x0000, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46)] |
| interface IMoniker(IMonikerVtbl): IPersistStream(IPersistStreamVtbl) { |
| fn BindToObject( |
| pbc: *mut IBindCtx, |
| pmkToLeft: *mut IMoniker, |
| riidResult: REFIID, |
| ppvResult: *mut *mut c_void, |
| ) -> HRESULT, |
| fn BindToStorage( |
| pbc: *mut IBindCtx, |
| pmkToLeft: *mut IMoniker, |
| riid: REFIID, |
| ppvObj: *mut *mut c_void, |
| ) -> HRESULT, |
| fn Reduce( |
| pbc: *mut IBindCtx, |
| dwReduceHowFar: DWORD, |
| ppmkToLeft: *mut *mut IMoniker, |
| ppmkReduced: *mut *mut IMoniker, |
| ) -> HRESULT, |
| fn ComposeWith( |
| pmkRight: *mut IMoniker, |
| fOnlyIfNotGeneric: BOOL, |
| ppmkComposite: *mut *mut IMoniker, |
| ) -> HRESULT, |
| fn Enum( |
| fForward: BOOL, |
| ppenumMoniker: *mut *mut IEnumMoniker, |
| ) -> HRESULT, |
| fn IsEqual( |
| pmkOtherMoniker: *mut IMoniker, |
| ) -> HRESULT, |
| fn Hash( |
| pdwHash: *mut DWORD, |
| ) -> HRESULT, |
| fn IsRunning( |
| pbc: *mut IBindCtx, |
| pmkToLeft: *mut IMoniker, |
| pmkNewlyRunning: *mut IMoniker, |
| ) -> HRESULT, |
| fn GetTimeOfLastChange( |
| pbc: *mut IBindCtx, |
| pmkToLeft: *mut IMoniker, |
| pFileTime: *mut FILETIME, |
| ) -> HRESULT, |
| fn Inverse( |
| ppmk: *mut *mut IMoniker, |
| ) -> HRESULT, |
| fn CommonPrefixWith( |
| pmkOther: *mut IMoniker, |
| ppmkPrefix: *mut *mut IMoniker, |
| ) -> HRESULT, |
| fn RelativePathTo( |
| pmkOther: *mut IMoniker, |
| ppmkRelPath: *mut *mut IMoniker, |
| ) -> HRESULT, |
| fn GetDisplayName( |
| pbc: *mut IBindCtx, |
| pmkToLeft: *mut IMoniker, |
| ppszDisplayName: *mut LPOLESTR, |
| ) -> HRESULT, |
| fn ParseDisplayName( |
| pbc: *mut IBindCtx, |
| pmkToLeft: *mut IMoniker, |
| pszDisplayName: LPOLESTR, |
| pchEaten: *mut ULONG, |
| ppmkOut: *mut *mut IMoniker, |
| ) -> HRESULT, |
| fn IsSystemMoniker( |
| pdwMksys: *mut DWORD, |
| ) -> HRESULT, |
| }} |
| ENUM!{enum EOLE_AUTHENTICATION_CAPABILITIES { |
| EOAC_NONE = 0, |
| EOAC_MUTUAL_AUTH = 0x1, |
| EOAC_STATIC_CLOAKING = 0x20, |
| EOAC_DYNAMIC_CLOAKING = 0x40, |
| EOAC_ANY_AUTHORITY = 0x80, |
| EOAC_MAKE_FULLSIC = 0x100, |
| EOAC_DEFAULT = 0x800, |
| EOAC_SECURE_REFS = 0x2, |
| EOAC_ACCESS_CONTROL = 0x4, |
| EOAC_APPID = 0x8, |
| EOAC_DYNAMIC = 0x10, |
| EOAC_REQUIRE_FULLSIC = 0x200, |
| EOAC_AUTO_IMPERSONATE = 0x400, |
| EOAC_NO_CUSTOM_MARSHAL = 0x2000, |
| EOAC_DISABLE_AAA = 0x1000, |
| }} |
| STRUCT!{struct SOLE_AUTHENTICATION_SERVICE { |
| dwAuthnSvc: DWORD, |
| dwAuthzSvc: DWORD, |
| pPrincipalName: *mut OLECHAR, |
| hr: HRESULT, |
| }} |
| RIDL!{#[uuid(0x0000000d, 0x0000, 0x0000, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46)] |
| interface IEnumSTATSTG(IEnumSTATSTGVtbl): IUnknown(IUnknownVtbl) { |
| fn Next( |
| celt: ULONG, |
| rgelt: *mut STATSTG, |
| pceltFetched: *mut ULONG, |
| ) -> HRESULT, |
| fn Skip( |
| celt: ULONG, |
| ) -> HRESULT, |
| fn Reset() -> HRESULT, |
| fn Clone( |
| ppenum: *mut *mut IEnumSTATSTG, |
| ) -> HRESULT, |
| }} |
| pub type SNB = *const *const OLECHAR; |
| RIDL!{#[uuid(0x0000000b, 0x0000, 0x0000, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46)] |
| interface IStorage(IStorageVtbl): IUnknown(IUnknownVtbl) { |
| fn CreateStream( |
| pwcsName: *const OLECHAR, |
| grfMode: DWORD, |
| reserved1: DWORD, |
| reserved2: DWORD, |
| ppstm: *mut *mut IStream, |
| ) -> HRESULT, |
| fn OpenStream( |
| pwcsName: *const OLECHAR, |
| reserved1: *const c_void, |
| grfMode: DWORD, |
| reserved2: DWORD, |
| ppstm: *mut *mut IStream, |
| ) -> HRESULT, |
| fn CreateStorage( |
| pwcsName: *const OLECHAR, |
| grfMode: DWORD, |
| reserved1: DWORD, |
| reserved2: DWORD, |
| ppstg: *mut *mut IStorage, |
| ) -> HRESULT, |
| fn OpenStorage( |
| pwcsName: *const OLECHAR, |
| pstgPriority: IStorage, |
| grfMode: DWORD, |
| snbExclude: SNB, |
| reserved: DWORD, |
| ppstg: *mut *mut IStorage, |
| ) -> HRESULT, |
| fn CopyTo( |
| ciidExclude: DWORD, |
| rgiidExclude: *const IID, |
| snbExclude: SNB, |
| pstgDest: *const IStorage, |
| ) -> HRESULT, |
| fn MoveElementTo( |
| pwcsName: *const OLECHAR, |
| pstgDest: *const IStorage, |
| pwcsNewName: *const OLECHAR, |
| grfFlags: DWORD, |
| ) -> HRESULT, |
| fn Commit( |
| grfCommitFlags: DWORD, |
| ) -> HRESULT, |
| fn Revert() -> HRESULT, |
| fn EnumElements( |
| reserved1: DWORD, |
| reserved2: *const c_void, |
| reserved3: DWORD, |
| ppenum: *mut *mut IEnumSTATSTG, |
| ) -> HRESULT, |
| fn DestroyElement( |
| pwcsName: *const OLECHAR, |
| ) -> HRESULT, |
| fn RenameElement( |
| pwcsOldName: *const OLECHAR, |
| pwcsNewName: *const OLECHAR, |
| ) -> HRESULT, |
| fn SetElementTimes( |
| pwcsName: *const OLECHAR, |
| pctime: *const FILETIME, |
| patime: *const FILETIME, |
| pmtime: *const FILETIME, |
| ) -> HRESULT, |
| fn SetClass( |
| clsid: REFCLSID, |
| ) -> HRESULT, |
| fn SetStateBits( |
| grfStateBits: DWORD, |
| grfMask: DWORD, |
| ) -> HRESULT, |
| fn Stat( |
| pstatstg: *mut STATSTG, |
| grfStatFlag: DWORD, |
| ) -> HRESULT, |
| }} |
| RIDL!{#[uuid(0x0000010b, 0x0000, 0x0000, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46)] |
| interface IPersistFile(IPersistFileVtbl): IPersist(IPersistVtbl) { |
| fn IsDirty() -> HRESULT, |
| fn Load( |
| pszFileName: LPCOLESTR, |
| dwMode: DWORD, |
| ) -> HRESULT, |
| fn Save( |
| pszFileName: LPCOLESTR, |
| fRemember: BOOL, |
| ) -> HRESULT, |
| fn SaveCompleted( |
| pszFileName: LPCOLESTR, |
| ) -> HRESULT, |
| fn GetCurFile( |
| ppszFileName: *mut LPOLESTR, |
| ) -> HRESULT, |
| }} |
| STRUCT!{struct DVTARGETDEVICE { |
| tdSize: DWORD, |
| tdDriverNameOffset: WORD, |
| tdDeviceNameOffset: WORD, |
| tdPortNameOffset: WORD, |
| tdExtDevmodeOFfset: WORD, |
| tdData: [BYTE; 1], |
| }} |
| STRUCT!{struct FORMATETC { |
| cfFormat: CLIPFORMAT, |
| ptd: *const DVTARGETDEVICE, |
| dwAspect: DWORD, |
| lindex: LONG, |
| tymed: DWORD, |
| }} |
| RIDL!{#[uuid(0x00000103, 0x0000, 0x0000, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46)] |
| interface IEnumFORMATETC(IEnumFORMATETCVtbl): IUnknown(IUnknownVtbl) { |
| fn Next( |
| celt: ULONG, |
| rgelt: *mut FORMATETC, |
| pceltFetched: *mut ULONG, |
| ) -> HRESULT, |
| fn Skip( |
| celt: ULONG, |
| ) -> HRESULT, |
| fn Reset() -> HRESULT, |
| fn Clone( |
| ppenum: *mut *mut IEnumFORMATETC, |
| ) -> HRESULT, |
| }} |
| ENUM!{enum ADVF { |
| ADVF_NODATA = 1, |
| ADVF_PRIMEFIRST = 2, |
| ADVF_ONLYONCE = 4, |
| ADVF_DATAONSTOP = 64, |
| ADVFCACHE_NOHANDLER = 8, |
| ADVFCACHE_FORCEBUILTIN = 16, |
| ADVFCACHE_ONSAVE = 32, |
| }} |
| STRUCT!{struct STATDATA { |
| formatetc: FORMATETC, |
| advf: DWORD, |
| pAdvSInk: *mut IAdviseSink, |
| dwConnection: DWORD, |
| }} |
| RIDL!{#[uuid(0x00000105, 0x0000, 0x0000, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46)] |
| interface IEnumSTATDATA(IEnumSTATDATAVtbl): IUnknown(IUnknownVtbl) { |
| fn Next( |
| celt: ULONG, |
| rgelt: *mut STATDATA, |
| pceltFetched: *mut ULONG, |
| ) -> HRESULT, |
| fn Skip( |
| celt: ULONG, |
| ) -> HRESULT, |
| fn Reset() -> HRESULT, |
| fn Clone( |
| ppenum: *mut *mut IEnumSTATDATA, |
| ) -> HRESULT, |
| }} |
| ENUM!{enum TYMED { |
| TYMED_HGLOBAL = 1, |
| TYMED_FILE = 2, |
| TYMED_ISTREAM = 4, |
| TYMED_ISTORAGE = 8, |
| TYMED_GDI = 16, |
| TYMED_MFPICT = 32, |
| TYMED_ENHMF = 64, |
| TYMED_NULL = 0, |
| }} |
| UNION!{union STGMEDIUM_u { |
| [u64; 7], //TODO: I guessed to move on |
| hBitmap hBitmap_mut: HBITMAP, |
| hMetaFilePict hMetaFilePict_mut: HMETAFILEPICT, |
| hEnhMetaFile hEnhMetaFile_mut: HENHMETAFILE, |
| hGlobal hGlobal_mut: HGLOBAL, |
| lpszFileName lpszFileName_mut: LPOLESTR, |
| pstm pstm_mut: *mut IStream, |
| pstg pstg_mut: *mut IStorage, |
| }} |
| STRUCT!{struct STGMEDIUM { |
| tymed: DWORD, |
| u: *mut STGMEDIUM_u, |
| pUnkForRelease: *mut IUnknown, |
| }} |
| RIDL!{#[uuid(0x0000010f, 0x0000, 0x0000, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46)] |
| interface IAdviseSink(IAdviseSinkVtbl): IUnknown(IUnknownVtbl) { |
| fn OnDataChange( |
| pformatetc: *mut FORMATETC, |
| pStgmed: *mut STGMEDIUM, |
| ) -> c_void, |
| fn OnViewChange( |
| dwAspect: DWORD, |
| lindex: LONG, |
| ) -> c_void, |
| fn OnRename( |
| pmk: *mut IMoniker, |
| ) -> c_void, |
| fn OnSave() -> c_void, |
| fn OnClose() -> c_void, |
| }} |
| ENUM!{enum DATADIR { |
| DATADIR_GET = 1, |
| DATADIR_SET = 2, |
| }} |
| pub type LPDATAOBJECT = *mut IDataObject; |
| RIDL!{#[uuid(0x0000010e, 0x0000, 0x0000, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46)] |
| interface IDataObject(IDataObjectVtbl): IUnknown(IUnknownVtbl) { |
| fn GetData( |
| pformatetcIn: *const FORMATETC, |
| pmedium: *mut STGMEDIUM, |
| ) -> HRESULT, |
| fn GetDataHere( |
| pformatetc: *const FORMATETC, |
| pmedium: *mut STGMEDIUM, |
| ) -> HRESULT, |
| fn QueryGetData( |
| pformatetc: *const FORMATETC, |
| ) -> HRESULT, |
| fn GetCanonicalFormatEtc( |
| pformatetcIn: *const FORMATETC, |
| pformatetcOut: *mut FORMATETC, |
| ) -> HRESULT, |
| fn SetData( |
| pformatetc: *const FORMATETC, |
| pformatetcOut: *const FORMATETC, |
| fRelease: BOOL, |
| ) -> HRESULT, |
| fn EnumFormatEtc( |
| dwDirection: DWORD, |
| ppenumFormatEtc: *mut *mut IEnumFORMATETC, |
| ) -> HRESULT, |
| fn DAdvise( |
| pformatetc: *const FORMATETC, |
| advf: DWORD, |
| pAdvSInk: *const IAdviseSink, |
| pdwConnection: *mut DWORD, |
| ) -> HRESULT, |
| fn DUnadvise( |
| dwConnection: DWORD, |
| ) -> HRESULT, |
| fn EnumDAdvise( |
| ppenumAdvise: *const *const IEnumSTATDATA, |
| ) -> HRESULT, |
| }} |
| RIDL!{#[uuid(0xa2f05a09, 0x27a2, 0x42b5, 0xbc, 0x0e, 0xac, 0x16, 0x3e, 0xf4, 0x9d, 0x9b)] |
| interface IApartmentShutdown(IApartmentShutdownVtbl): IUnknown(IUnknownVtbl) { |
| fn OnUninitialize( |
| ui64ApartmentIdentifier: UINT64, |
| ) -> (), |
| }} |
| RIDL!{#[uuid(0x00000003, 0x0000, 0x0000, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46)] |
| interface IMarshal(IMarshalVtbl): IUnknown(IUnknownVtbl) { |
| fn GetUnmarshalClass( |
| riid: REFIID, |
| pv: *mut c_void, |
| dwDestContext: DWORD, |
| pvDestContext: *mut c_void, |
| mshlflags: DWORD, |
| pCid: *mut CLSID, |
| ) -> HRESULT, |
| fn GetMarshalSizeMax( |
| riid: REFIID, |
| pv: *mut c_void, |
| dwDestContext: DWORD, |
| pvDestContext: *mut c_void, |
| mshlflags: DWORD, |
| pSize: *mut DWORD, |
| ) -> HRESULT, |
| fn MarshalInterface( |
| pStm: *mut IStream, |
| riid: REFIID, |
| pv: *mut c_void, |
| dwDestContext: DWORD, |
| pvDestContext: *mut c_void, |
| mshlflags: DWORD, |
| ) -> HRESULT, |
| fn UnmarshalInterface( |
| pStm: *mut IStream, |
| riid: REFIID, |
| ppv: *mut *mut c_void, |
| ) -> HRESULT, |
| fn ReleaseMarshalData( |
| pStm: *mut IStream, |
| ) -> HRESULT, |
| fn DisconnectObject( |
| dwReserved: DWORD, |
| ) -> HRESULT, |
| }} |