| // 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. |
| //! Mappings for the contents of OAIdl.h |
| use shared::basetsd::ULONG_PTR; |
| use shared::guiddef::{GUID, IID, REFGUID, REFIID}; |
| use shared::minwindef::{BOOL, BYTE, DWORD, FLOAT, INT, UINT, ULONG, USHORT, WORD}; |
| use shared::rpcndr::byte; |
| use shared::wtypes::{ |
| BSTR, CY, DATE, DECIMAL, VARIANT_BOOL, VARTYPE, VT_BSTR, VT_DISPATCH, VT_ERROR, |
| VT_I1, VT_I2, VT_I4, VT_I8, VT_RECORD, VT_RESERVED, VT_UNKNOWN, VT_VARIANT, |
| wireBSTR |
| }; |
| use shared::wtypesbase::{ |
| BYTE_SIZEDARR, DOUBLE, DWORD_SIZEDARR, HYPER_SIZEDARR, LPCOLESTR, LPOLESTR, SCODE, |
| WORD_SIZEDARR |
| }; |
| use um::unknwnbase::{IUnknown, IUnknownVtbl}; |
| use um::winnt::{CHAR, HRESULT, LCID, LONG, LONGLONG, PVOID, SHORT, ULONGLONG}; |
| pub type CURRENCY = CY; |
| STRUCT!{struct SAFEARRAYBOUND { |
| cElements: ULONG, |
| lLbound: LONG, |
| }} |
| pub type LPSAFEARRAYBOUND = *mut SAFEARRAYBOUND; |
| pub type wireBRECORD = *mut _wireBRECORD; |
| pub type wireVARIANT = *mut _wireVARIANT; |
| STRUCT!{struct SAFEARR_BSTR { |
| Size: ULONG, |
| aBstr: *mut wireBSTR, |
| }} |
| STRUCT!{struct SAFEARR_UNKNOWN { |
| Size: ULONG, |
| apUnknown: *mut *mut IUnknown, |
| }} |
| STRUCT!{struct SAFEARR_DISPATCH { |
| Size: ULONG, |
| apDispatch: *mut *mut IDispatch, |
| }} |
| STRUCT!{struct SAFEARR_VARIANT { |
| Size: ULONG, |
| aVariant: *mut wireVARIANT, |
| }} |
| STRUCT!{struct SAFEARR_BRECORD { |
| Size: ULONG, |
| aRecord: *mut wireBRECORD, |
| }} |
| STRUCT!{struct SAFEARR_HAVEIID { |
| Size: ULONG, |
| apUnknown: *mut *mut IUnknown, |
| iid: IID, |
| }} |
| ENUM!{enum SF_TYPE { |
| SF_ERROR = VT_ERROR, |
| SF_I1 = VT_I1, |
| SF_I2 = VT_I2, |
| SF_I4 = VT_I4, |
| SF_I8 = VT_I8, |
| SF_BSTR = VT_BSTR, |
| SF_UNKNOWN = VT_UNKNOWN, |
| SF_DISPATCH = VT_DISPATCH, |
| SF_VARIANT = VT_VARIANT, |
| SF_RECORD = VT_RECORD, |
| SF_HAVEIID = VT_UNKNOWN | VT_RESERVED, |
| }} |
| #[cfg(target_pointer_width = "32")] |
| UNION!{union __MIDL_IOleAutomationTypes_0001 { |
| [u32; 6], |
| BstrStr BstrStr_mut: SAFEARR_BSTR, |
| UnknownStr UnknownStr_mut: SAFEARR_UNKNOWN, |
| DispatchStr DispatchStr_mut: SAFEARR_DISPATCH, |
| VariantStr VariantStr_mut: SAFEARR_VARIANT, |
| RecordStr RecordStr_mut: SAFEARR_BRECORD, |
| HaveIidStr HaveIidStr_mut: SAFEARR_HAVEIID, |
| ByteStr ByteStr_mut: BYTE_SIZEDARR, |
| WordStr WordStr_mut: WORD_SIZEDARR, |
| LongStr LongStr_mut: DWORD_SIZEDARR, |
| HyperStr HyperStr_mut: HYPER_SIZEDARR, |
| }} |
| #[cfg(target_pointer_width = "64")] |
| UNION!{union __MIDL_IOleAutomationTypes_0001 { |
| [u64; 4], |
| BstrStr BstrStr_mut: SAFEARR_BSTR, |
| UnknownStr UnknownStr_mut: SAFEARR_UNKNOWN, |
| DispatchStr DispatchStr_mut: SAFEARR_DISPATCH, |
| VariantStr VariantStr_mut: SAFEARR_VARIANT, |
| RecordStr RecordStr_mut: SAFEARR_BRECORD, |
| HaveIidStr HaveIidStr_mut: SAFEARR_HAVEIID, |
| ByteStr ByteStr_mut: BYTE_SIZEDARR, |
| WordStr WordStr_mut: WORD_SIZEDARR, |
| LongStr LongStr_mut: DWORD_SIZEDARR, |
| HyperStr HyperStr_mut: HYPER_SIZEDARR, |
| }} |
| STRUCT!{struct SAFEARRAYUNION { |
| sfType: ULONG, |
| u: __MIDL_IOleAutomationTypes_0001, |
| }} |
| STRUCT!{struct _wireSAFEARRAY { |
| cDims: USHORT, |
| fFeatures: USHORT, |
| cbElements: ULONG, |
| cLocks: ULONG, |
| uArrayStructs: SAFEARRAYUNION, |
| rgsaBound: [SAFEARRAYBOUND; 1], |
| }} |
| pub type wireSAFEARRAY = *mut _wireSAFEARRAY; |
| pub type wirePSAFEARRAY = *mut wireSAFEARRAY; |
| STRUCT!{struct SAFEARRAY { |
| cDims: USHORT, |
| fFeatures: USHORT, |
| cbElements: ULONG, |
| cLocks: ULONG, |
| pvData: PVOID, |
| rgsabound: [SAFEARRAYBOUND; 1], |
| }} |
| pub type LPSAFEARRAY = *mut SAFEARRAY; |
| pub const FADF_AUTO: DWORD = 0x1; |
| pub const FADF_STATIC: DWORD = 0x2; |
| pub const FADF_EMBEDDED: DWORD = 0x4; |
| pub const FADF_FIXEDSIZE: DWORD = 0x10; |
| pub const FADF_RECORD: DWORD = 0x20; |
| pub const FADF_HAVEIID: DWORD = 0x40; |
| pub const FADF_HAVEVARTYPE: DWORD = 0x80; |
| pub const FADF_BSTR: DWORD = 0x100; |
| pub const FADF_UNKNOWN: DWORD = 0x200; |
| pub const FADF_DISPATCH: DWORD = 0x400; |
| pub const FADF_VARIANT: DWORD = 0x800; |
| pub const FADF_RESERVED: DWORD = 0xf008; |
| STRUCT!{struct __tagBRECORD { |
| pvRecord: PVOID, |
| pRecInfo: *mut IRecordInfo, |
| }} |
| UNION!{union VARIANT_n3 { |
| [u64; 1] [u64; 2], |
| llVal llVal_mut: LONGLONG, |
| lVal lVal_mut: LONG, |
| bVal bVal_mut: BYTE, |
| iVal iVal_mut: SHORT, |
| fltVal fltVal_mut: FLOAT, |
| dblVal dblVal_mut: DOUBLE, |
| boolVal boolVal_mut: VARIANT_BOOL, |
| scode scode_mut: SCODE, |
| cyVal cyVal_mut: CY, |
| date date_mut: DATE, |
| bstrVal bstrVal_mut: BSTR, |
| punkVal punkVal_mut: *mut IUnknown, |
| pdispVal pdispVal_mut: *mut IDispatch, |
| parray parray_mut: *mut SAFEARRAY, |
| pbVal pbVal_mut: *mut BYTE, |
| piVal piVal_mut: *mut SHORT, |
| plVal plVal_mut: *mut LONG, |
| pllVal pllVal_mut: *mut LONGLONG, |
| pfltVal pfltVal_mut: *mut FLOAT, |
| pdblVal pdblVal_mut: *mut DOUBLE, |
| pboolVal pboolVal_mut: *mut VARIANT_BOOL, |
| pscode pscode_mut: *mut SCODE, |
| pcyVal pcyVal_mut: *mut CY, |
| pdate pdate_mut: *mut DATE, |
| pbstrVal pbstrVal_mut: *mut BSTR, |
| ppunkVal ppunkVal_mut: *mut *mut IUnknown, |
| ppdispVal ppdispVal_mut: *mut *mut IDispatch, |
| pparray pparray_mut: *mut *mut SAFEARRAY, |
| pvarVal pvarVal_mut: *mut VARIANT, |
| byref byref_mut: PVOID, |
| cVal cVal_mut: CHAR, |
| uiVal uiVal_mut: USHORT, |
| ulVal ulVal_mut: ULONG, |
| ullVal ullVal_mut: ULONGLONG, |
| intVal intVal_mut: INT, |
| uintVal uintVal_mut: UINT, |
| pdecVal pdecVal_mut: *mut DECIMAL, |
| pcVal pcVal_mut: *mut CHAR, |
| puiVal puiVal_mut: *mut USHORT, |
| pulVal pulVal_mut: *mut ULONG, |
| pullVal pullVal_mut: *mut ULONGLONG, |
| pintVal pintVal_mut: *mut INT, |
| puintVal puintVal_mut: *mut UINT, |
| n4 n4_mut: __tagBRECORD, |
| }} |
| STRUCT!{struct __tagVARIANT { |
| vt: VARTYPE, |
| wReserved1: WORD, |
| wReserved2: WORD, |
| wReserved3: WORD, |
| n3: VARIANT_n3, |
| }} |
| UNION!{union VARIANT_n1 { |
| [u64; 2] [u64; 3], |
| n2 n2_mut: __tagVARIANT, |
| decVal decVal_mut: DECIMAL, |
| }} |
| STRUCT!{struct VARIANT { |
| n1: VARIANT_n1, |
| }} |
| pub type LPVARIANT = *mut VARIANT; |
| pub type VARIANTARG = VARIANT; |
| pub type LPVARIANTARG = *mut VARIANT; |
| pub type REFVARIANT = *const VARIANT; |
| STRUCT!{struct _wireBRECORD { |
| fFlags: ULONG, |
| clSize: ULONG, |
| pRecInfo: *mut IRecordInfo, |
| pRecord: *mut byte, |
| }} |
| UNION!{union _wireVARIANT_u { |
| [u64; 2], |
| llVal llVal_mut: LONGLONG, |
| lVal lVal_mut: LONG, |
| bVal bVal_mut: BYTE, |
| iVal iVal_mut: SHORT, |
| fltVal fltVal_mut: FLOAT, |
| dblVal dblVal_mut: DOUBLE, |
| boolVal boolVal_mut: VARIANT_BOOL, |
| scode scode_mut: SCODE, |
| cyVal cyVal_mut: CY, |
| date date_mut: DATE, |
| bstrVal bstrVal_mut: wireBSTR, |
| punkVal punkVal_mut: *mut IUnknown, |
| pdispVal pdispVal_mut: *mut IDispatch, |
| parray parray_mut: wirePSAFEARRAY, |
| brecVal brecVal_mut: wireBRECORD, |
| pbVal pbVal_mut: *mut BYTE, |
| piVal piVal_mut: *mut SHORT, |
| plVal plVal_mut: *mut LONG, |
| pllVal pllVal_mut: *mut LONGLONG, |
| pfltVal pfltVal_mut: *mut FLOAT, |
| pdblVal pdblVal_mut: *mut DOUBLE, |
| pboolVal pboolVal_mut: *mut VARIANT_BOOL, |
| pscode pscode_mut: *mut SCODE, |
| pcyVal pcyVal_mut: *mut CY, |
| pdate pdate_mut: *mut DATE, |
| pbstrVal pbstrVal_mut: *mut wireBSTR, |
| ppunkVal ppunkVal_mut: *mut *mut IUnknown, |
| ppdispVal ppdispVal_mut: *mut *mut IDispatch, |
| pparray pparray_mut: *mut wirePSAFEARRAY, |
| pvarVal pvarVal_mut: *mut wireVARIANT, |
| cVal cVal_mut: CHAR, |
| uiVal uiVal_mut: USHORT, |
| ulVal ulVal_mut: ULONG, |
| ullVal ullVal_mut: ULONGLONG, |
| intVal intVal_mut: INT, |
| uintVal uintVal_mut: UINT, |
| decVal decVal_mut: DECIMAL, |
| pdecVal pdecVal_mut: *mut DECIMAL, |
| pcVal pcVal_mut: *mut CHAR, |
| puiVal puiVal_mut: *mut USHORT, |
| pulVal pulVal_mut: *mut ULONG, |
| pullVal pullVal_mut: *mut ULONGLONG, |
| pintVal pintVal_mut: *mut INT, |
| puintVal puintVal_mut: *mut UINT, |
| }} |
| STRUCT!{struct _wireVARIANT { |
| clSize: DWORD, |
| rpcReserved: DWORD, |
| vt: USHORT, |
| wReserved1: USHORT, |
| wReserved2: USHORT, |
| wReserved3: USHORT, |
| u: _wireVARIANT_u, |
| }} |
| pub type DISPID = LONG; |
| pub type MEMBERID = DISPID; |
| pub type HREFTYPE = DWORD; |
| ENUM!{enum TYPEKIND { |
| TKIND_ENUM = 0, |
| TKIND_RECORD, |
| TKIND_MODULE, |
| TKIND_INTERFACE, |
| TKIND_DISPATCH, |
| TKIND_COCLASS, |
| TKIND_ALIAS, |
| TKIND_UNION, |
| TKIND_MAX, |
| }} |
| UNION!{union TYPEDESC_u { |
| [usize; 1], |
| lptdesc lptdesc_mut: *mut TYPEDESC, |
| lpadesc lpadesc_mut: *mut ARRAYDESC, |
| hreftype hreftype_mut: HREFTYPE, |
| }} |
| STRUCT!{struct TYPEDESC { |
| u: TYPEDESC_u, |
| vt: VARTYPE, |
| }} |
| STRUCT!{struct ARRAYDESC { |
| tdescElem: TYPEDESC, |
| cDims: USHORT, |
| rgbounds: [SAFEARRAYBOUND; 1], |
| }} |
| STRUCT!{struct PARAMDESCEX { |
| cBytes: ULONG, |
| varDefaultValue: VARIANTARG, |
| }} |
| pub type LPPARAMDESCEX = *mut PARAMDESCEX; |
| STRUCT!{struct PARAMDESC { |
| pparamdescex: LPPARAMDESCEX, |
| wParamFlags: USHORT, |
| }} |
| pub type LPPARAMDESC = *mut PARAMDESC; |
| pub const PARAMFLAG_NONE: DWORD = 0; |
| pub const PARAMFLAG_FIN: DWORD = 0x1; |
| pub const PARAMFLAG_FOUT: DWORD = 0x2; |
| pub const PARAMFLAG_FLCID: DWORD = 0x4; |
| pub const PARAMFLAG_FRETVAL: DWORD = 0x8; |
| pub const PARAMFLAG_FOPT: DWORD = 0x10; |
| pub const PARAMFLAG_FHASDEFAULT: DWORD = 0x20; |
| pub const PARAMFLAG_FHASCUSTDATA: DWORD = 0x40; |
| STRUCT!{struct IDLDESC { |
| dwReserved: ULONG_PTR, |
| wIDLFlags: USHORT, |
| }} |
| pub type LPIDLDESC = *mut IDLDESC; |
| pub const IDLFLAG_NONE: DWORD = PARAMFLAG_NONE; |
| pub const IDLFLAG_FIN: DWORD = PARAMFLAG_FIN; |
| pub const IDLFLAG_FOUT: DWORD = PARAMFLAG_FOUT; |
| pub const IDLFLAG_FLCID: DWORD = PARAMFLAG_FLCID; |
| pub const IDLFLAG_FRETVAL: DWORD = PARAMFLAG_FRETVAL; |
| UNION!{union ELEMDESC_u { |
| [usize; 2], |
| idldesc idldesc_mut: IDLDESC, |
| paramdesc paramdesc_mut: PARAMDESC, |
| }} |
| STRUCT!{struct ELEMDESC { |
| tdesc: TYPEDESC, |
| u: ELEMDESC_u, |
| }} |
| pub type LPELEMDESC = *mut ELEMDESC; |
| STRUCT!{struct TYPEATTR { |
| guid: GUID, |
| lcid: LCID, |
| dwReserved: DWORD, |
| memidConstructor: MEMBERID, |
| memidDestructor: MEMBERID, |
| lpstrSchema: LPOLESTR, |
| cbSizeInstance: ULONG, |
| typekind: TYPEKIND, |
| cFuncs: WORD, |
| cVars: WORD, |
| cImplTypes: WORD, |
| cbSizeVft: WORD, |
| cbAlignment: WORD, |
| wTypeFlags: WORD, |
| wMajorVerNum: WORD, |
| wMinorVerNum: WORD, |
| tdescAlias: TYPEDESC, |
| idldescType: IDLDESC, |
| }} |
| pub type LPTYPEATTR = *mut TYPEATTR; |
| STRUCT!{struct DISPPARAMS { |
| rgvarg: *mut VARIANTARG, |
| rgdispidNamedArgs: *mut DISPID, |
| cArgs: UINT, |
| cNamedArgs: UINT, |
| }} |
| STRUCT!{struct EXCEPINFO { |
| wCode: WORD, |
| wReserved: WORD, |
| bstrSource: BSTR, |
| bstrDescription: BSTR, |
| bstrHelpFile: BSTR, |
| dwHelpContext: DWORD, |
| pvReserved: PVOID, |
| pfnDeferredFillIn: Option<unsafe extern "system" fn( |
| einfo: *mut EXCEPINFO, |
| ) -> HRESULT>, |
| scode: SCODE, |
| }} |
| ENUM!{enum CALLCONV { |
| CC_FASTCALL = 0, |
| CC_CDECL = 1, |
| CC_MSCPASCAL, |
| CC_PASCAL, |
| CC_MACPASCAL, |
| CC_STDCALL, |
| CC_FPFASTCALL, |
| CC_SYSCALL, |
| CC_MPWCDECL, |
| CC_MPWPASCAL, |
| CC_MAX, |
| }} |
| ENUM!{enum FUNCKIND { |
| FUNC_VIRTUAL = 0, |
| FUNC_PUREVIRTUAL, |
| FUNC_NONVIRTUAL, |
| FUNC_STATIC, |
| FUNC_DISPATCH, |
| }} |
| ENUM!{enum INVOKEKIND { |
| INVOKE_FUNC = 1, |
| INVOKE_PROPERTYGET = 2, |
| INVOKE_PROPERTYPUT = 4, |
| INVOKE_PROPERTYPUTREF = 8, |
| }} |
| STRUCT!{struct FUNCDESC { |
| memid: MEMBERID, |
| lprgscode: *mut SCODE, |
| lprgelemdescParam: *mut ELEMDESC, |
| funckind: FUNCKIND, |
| invkind: INVOKEKIND, |
| callconv: CALLCONV, |
| cParams: SHORT, |
| cParamsOpt: SHORT, |
| oVft: SHORT, |
| cScodes: SHORT, |
| elemdescFunc: ELEMDESC, |
| wFuncFlags: WORD, |
| }} |
| pub type LPFUNCDESC = *mut FUNCDESC; |
| ENUM!{enum VARKIND { |
| VAR_PERINSTANCE = 0, |
| VAR_STATIC, |
| VAR_CONST, |
| VAR_DISPATCH, |
| }} |
| pub const IMPLTYPEFLAG_FDEFAULT: DWORD = 0x1; |
| pub const IMPLTYPEFLAG_FSOURCE: DWORD = 0x2; |
| pub const IMPLTYPEFLAG_FRESTRICTED: DWORD = 0x4; |
| pub const IMPLTYPEFLAG_FDEFAULTVTABLE: DWORD = 0x8; |
| UNION!{union VARDESC_u { |
| [usize; 1], |
| oInst oInst_mut: ULONG, |
| lpvarValue lpvarValue_mut: *mut VARIANT, |
| }} |
| STRUCT!{struct VARDESC { |
| memid: MEMBERID, |
| lpstrSchema: LPOLESTR, |
| u: VARDESC_u, |
| elemdescVar: ELEMDESC, |
| wVarFlags: WORD, |
| varkind: VARKIND, |
| }} |
| pub type LPVARDESC = *mut VARDESC; |
| ENUM!{enum TYPEFLAGS { |
| TYPEFLAG_FAPPOBJECT = 0x1, |
| TYPEFLAG_FCANCREATE = 0x2, |
| TYPEFLAG_FLICENSED = 0x4, |
| TYPEFLAG_FPREDECLID = 0x8, |
| TYPEFLAG_FHIDDEN = 0x10, |
| TYPEFLAG_FCONTROL = 0x20, |
| TYPEFLAG_FDUAL = 0x40, |
| TYPEFLAG_FNONEXTENSIBLE = 0x80, |
| TYPEFLAG_FOLEAUTOMATION = 0x100, |
| TYPEFLAG_FRESTRICTED = 0x200, |
| TYPEFLAG_FAGGREGATABLE = 0x400, |
| TYPEFLAG_FREPLACEABLE = 0x800, |
| TYPEFLAG_FDISPATCHABLE = 0x1000, |
| TYPEFLAG_FREVERSEBIND = 0x2000, |
| TYPEFLAG_FPROXY = 0x4000, |
| }} |
| ENUM!{enum FUNCFLAGS { |
| FUNCFLAG_FRESTRICTED = 0x1, |
| FUNCFLAG_FSOURCE = 0x2, |
| FUNCFLAG_FBINDABLE = 0x4, |
| FUNCFLAG_FREQUESTEDIT = 0x8, |
| FUNCFLAG_FDISPLAYBIND = 0x10, |
| FUNCFLAG_FDEFAULTBIND = 0x20, |
| FUNCFLAG_FHIDDEN = 0x40, |
| FUNCFLAG_FUSESGETLASTERROR = 0x80, |
| FUNCFLAG_FDEFAULTCOLLELEM = 0x100, |
| FUNCFLAG_FUIDEFAULT = 0x200, |
| FUNCFLAG_FNONBROWSABLE = 0x400, |
| FUNCFLAG_FREPLACEABLE = 0x800, |
| FUNCFLAG_FIMMEDIATEBIND = 0x1000, |
| }} |
| ENUM!{enum VARFLAGS { |
| VARFLAG_FREADONLY = 0x1, |
| VARFLAG_FSOURCE = 0x2, |
| VARFLAG_FBINDABLE = 0x4, |
| VARFLAG_FREQUESTEDIT = 0x8, |
| VARFLAG_FDISPLAYBIND = 0x10, |
| VARFLAG_FDEFAULTBIND = 0x20, |
| VARFLAG_FHIDDEN = 0x40, |
| VARFLAG_FRESTRICTED = 0x80, |
| VARFLAG_FDEFAULTCOLLELEM = 0x100, |
| VARFLAG_FUIDEFAULT = 0x200, |
| VARFLAG_FNONBROWSABLE = 0x400, |
| VARFLAG_FREPLACEABLE = 0x800, |
| VARFLAG_FIMMEDIATEBIND = 0x1000, |
| }} |
| STRUCT!{struct CLEANLOCALSTORAGE { |
| pInterface: *mut IUnknown, |
| pStorage: PVOID, |
| flags: DWORD, |
| }} |
| STRUCT!{struct CUSTDATAITEM { |
| guid: GUID, |
| varValue: VARIANTARG, |
| }} |
| pub type LPCUSTDATAITEM = *mut CUSTDATAITEM; |
| STRUCT!{struct CUSTDATA { |
| cCustData: DWORD, |
| prgCustData: LPCUSTDATAITEM, |
| }} |
| pub type LPCUSTDATA = *mut CUSTDATA; |
| pub type LPCREATETYPEINFO = *mut ICreateTypeInfo; |
| RIDL!{#[uuid(0x00020405, 0x0000, 0x0000, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46)] |
| interface ICreateTypeInfo(ICreateTypeInfoVtbl): IUnknown(IUnknownVtbl) { |
| fn SetGuid( |
| guid: REFGUID, |
| ) -> HRESULT, |
| fn SetTypeFlags( |
| uTypeFlags: UINT, |
| ) -> HRESULT, |
| fn SetDocString( |
| pStrDoc: LPOLESTR, |
| ) -> HRESULT, |
| fn SetHelpContext( |
| dwHelpContext: DWORD, |
| ) -> HRESULT, |
| fn SetVersion( |
| wMajorVerNum: WORD, |
| wMinorVerNum: WORD, |
| ) -> HRESULT, |
| fn AddRefTypeInfo( |
| pTInfo: *mut ITypeInfo, |
| ) -> HRESULT, |
| fn AddFuncDesc( |
| index: UINT, |
| pFuncDesc: *mut FUNCDESC, |
| ) -> HRESULT, |
| fn SetImplTypeFlags( |
| index: UINT, |
| implTypeFlags: INT, |
| ) -> HRESULT, |
| fn SetAlignment( |
| cbAlignment: WORD, |
| ) -> HRESULT, |
| fn SetSchema( |
| pStrSchema: LPOLESTR, |
| ) -> HRESULT, |
| fn AddVarDesc( |
| index: UINT, |
| pVarDesc: *mut VARDESC, |
| ) -> HRESULT, |
| fn SetFuncAndParamNames( |
| index: UINT, |
| rgszNames: *mut LPOLESTR, |
| cNames: UINT, |
| ) -> HRESULT, |
| fn SetVarName( |
| index: UINT, |
| szName: LPOLESTR, |
| ) -> HRESULT, |
| fn SetTypeDescAlias( |
| pTDescAlias: *mut TYPEDESC, |
| ) -> HRESULT, |
| fn DefineFuncAsDllEntry( |
| index: UINT, |
| szDllName: LPOLESTR, |
| szProcName: LPOLESTR, |
| ) -> HRESULT, |
| fn SetFuncDocString( |
| index: UINT, |
| szDocString: LPOLESTR, |
| ) -> HRESULT, |
| fn SetVarDocString( |
| index: UINT, |
| szDocString: LPOLESTR, |
| ) -> HRESULT, |
| fn SetFuncHelpContext( |
| index: UINT, |
| dwHelpContext: DWORD, |
| ) -> HRESULT, |
| fn SetVarHelpContext( |
| index: UINT, |
| dwHelpContext: DWORD, |
| ) -> HRESULT, |
| fn SetMops( |
| index: UINT, |
| bstrMops: BSTR, |
| ) -> HRESULT, |
| fn SetTypeIdldesc( |
| pIdlDesc: *mut IDLDESC, |
| ) -> HRESULT, |
| fn LayOut() -> HRESULT, |
| }} |
| // LPCREATETYPEINFO2 |
| // ICreateTypeInfo2 |
| // LPCREATETYPELIB |
| // ICreateTypeLib |
| // LPCREATETYPELIB2 |
| // ICreateTypeLib2 |
| pub type LPDISPATCH = *mut IDispatch; |
| pub const DISPID_UNKNOWN: INT = -1; |
| pub const DISPID_VALUE: INT = 0; |
| pub const DISPID_PROPERTYPUT: INT = -3; |
| pub const DISPID_NEWENUM: INT = -4; |
| pub const DISPID_EVALUATE: INT = -5; |
| pub const DISPID_CONSTRUCTOR: INT = -6; |
| pub const DISPID_DESTRUCTOR: INT = -7; |
| pub const DISPID_COLLECT: INT = -8; |
| RIDL!{#[uuid(0x00020400, 0x0000, 0x0000, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46)] |
| interface IDispatch(IDispatchVtbl): IUnknown(IUnknownVtbl) { |
| fn GetTypeInfoCount( |
| pctinfo: *mut UINT, |
| ) -> HRESULT, |
| fn GetTypeInfo( |
| iTInfo: UINT, |
| lcid: LCID, |
| ppTInfo: *mut *mut ITypeInfo, |
| ) -> HRESULT, |
| fn GetIDsOfNames( |
| riid: REFIID, |
| rgszNames: *mut LPOLESTR, |
| cNames: UINT, |
| lcid: LCID, |
| rgDispId: *mut DISPID, |
| ) -> HRESULT, |
| fn Invoke( |
| dispIdMember: DISPID, |
| riid: REFIID, |
| lcid: LCID, |
| wFlags: WORD, |
| pDispParams: *mut DISPPARAMS, |
| pVarResult: *mut VARIANT, |
| pExcepInfo: *mut EXCEPINFO, |
| puArgErr: *mut UINT, |
| ) -> HRESULT, |
| }} |
| // IDispatch_RemoteInvoke_Proxy |
| // IDispatch_RemoteInvoke_Stub |
| // LPENUMVARIANT |
| // IEnumVARIANT |
| // IEnumVARIANT_RemoteNext_Proxy |
| // IEnumVARIANT_RemoteNext_Stub |
| RIDL!{#[uuid(0x0000002F, 0x0000, 0x0000, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46)] |
| interface IRecordInfo(IRecordInfoVtbl): IUnknown(IUnknownVtbl) { |
| fn RecordInit( |
| pvNew: PVOID, |
| ) -> HRESULT, |
| fn RecordClear( |
| pvExisting: PVOID, |
| ) -> HRESULT, |
| fn RecordCopy( |
| pvExisting: PVOID, |
| pvNew: PVOID, |
| ) -> HRESULT, |
| fn GetGuid( |
| pguid: *mut GUID, |
| ) -> HRESULT, |
| fn GetName( |
| pbstrName: *mut BSTR, |
| ) -> HRESULT, |
| fn GetSize( |
| pcbSize: *mut ULONG, |
| ) -> HRESULT, |
| fn GetTypeInfo( |
| ppTypeInfo: *mut *mut ITypeInfo, |
| ) -> HRESULT, |
| fn GetField( |
| pvData: PVOID, |
| szFieldName: LPCOLESTR, |
| pvarField: *mut VARIANT, |
| ) -> HRESULT, |
| fn GetFieldNoCopy( |
| pvData: PVOID, |
| szFieldName: LPCOLESTR, |
| pvarField: *mut VARIANT, |
| ppvDataCArray: *mut PVOID, |
| ) -> HRESULT, |
| fn PutField( |
| wFlags: ULONG, |
| pvData: PVOID, |
| szFieldName: LPCOLESTR, |
| pvarField: *mut VARIANT, |
| ) -> HRESULT, |
| fn PutFieldNoCopy( |
| wFlags: ULONG, |
| pvData: PVOID, |
| szFieldName: LPCOLESTR, |
| pvarField: *mut VARIANT, |
| ) -> HRESULT, |
| fn GetFieldNames( |
| pcNames: *mut ULONG, |
| rgBstrNames: *mut BSTR, |
| ) -> HRESULT, |
| fn IsMatchingType( |
| pRecordInfo: *mut IRecordInfo, |
| ) -> BOOL, |
| fn RecordCreate() -> PVOID, |
| fn RecordCreateCopy( |
| pvSource: PVOID, |
| ppvDest: *mut PVOID, |
| ) -> HRESULT, |
| fn RecordDestroy( |
| pvRecord: PVOID, |
| ) -> HRESULT, |
| }} |
| pub type LPTYPECOMP = *mut ITypeComp; |
| ENUM!{enum DESCKIND { |
| DESCKIND_NONE = 0, |
| DESCKIND_FUNCDESC = DESCKIND_NONE + 1, |
| DESCKIND_VARDESC = DESCKIND_FUNCDESC + 1, |
| DESCKIND_TYPECOMP = DESCKIND_VARDESC + 1, |
| DESCKIND_IMPLICITAPPOBJ = DESCKIND_TYPECOMP + 1, |
| DESCKIND_MAX = DESCKIND_IMPLICITAPPOBJ + 1, |
| }} |
| UNION!{union BINDPTR { |
| [usize; 1], |
| lpfuncdesc lpfuncdesc_mut: *mut FUNCDESC, |
| lpvardesc lpvardesc_mut: *mut VARDESC, |
| lptcomp lptcomp_mut: *mut ITypeComp, |
| }} |
| pub type LPBINDPTR = *mut BINDPTR; |
| RIDL!{#[uuid(0x00020403, 0x0000, 0x0000, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46)] |
| interface ITypeComp(ITypeCompVtbl): IUnknown(IUnknownVtbl) { |
| fn Bind( |
| szName: LPOLESTR, |
| lHashVal: ULONG, |
| wFlags: WORD, |
| ppTInfo: *mut *mut ITypeInfo, |
| pDescKind: *mut DESCKIND, |
| pBindPtr: *mut BINDPTR, |
| ) -> HRESULT, |
| fn BindType( |
| szName: LPOLESTR, |
| lHashVal: ULONG, |
| ppTInfo: *mut *mut ITypeInfo, |
| ppTComp: *mut *mut ITypeComp, |
| ) -> HRESULT, |
| }} |
| ENUM!{enum SYSKIND { |
| SYS_WIN16 = 0, |
| SYS_WIN32, |
| SYS_MAC, |
| SYS_WIN64, |
| }} |
| STRUCT!{struct TLIBATTR { |
| guid: GUID, |
| lcid: LCID, |
| syskind: SYSKIND, |
| wMajorVerNum: WORD, |
| wMinorVerNum: WORD, |
| wLibFlags: WORD, |
| }} |
| RIDL!{#[uuid(0x00020402, 0x0000, 0x0000, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46)] |
| interface ITypeLib(ITypeLibVtbl): IUnknown(IUnknownVtbl) { |
| fn GetTypeInfoCount() -> UINT, |
| fn GetTypeInfo( |
| index: UINT, |
| ppTInfo: *mut *mut ITypeInfo, |
| ) -> HRESULT, |
| fn GetTypeInfoType( |
| index: UINT, |
| pTKind: *mut TYPEKIND, |
| ) -> HRESULT, |
| fn GetTypeInfoOfGuid( |
| guid: REFGUID, |
| ppTInfo: *mut *mut ITypeInfo, |
| ) -> HRESULT, |
| fn GetLibAttr( |
| ppTLibAttr: *mut *mut TLIBATTR, |
| ) -> HRESULT, |
| fn GetTypeComp( |
| ppTComp: *mut *mut ITypeComp, |
| ) -> HRESULT, |
| fn GetDocumentation( |
| index: INT, |
| pbstrName: *mut BSTR, |
| pBstrDocString: *mut BSTR, |
| pdwHelpContext: *mut DWORD, |
| pBstrHelpFile: *mut BSTR, |
| ) -> HRESULT, |
| fn IsName( |
| szNameBuf: LPOLESTR, |
| lHashVal: ULONG, |
| pfName: *mut BOOL, |
| ) -> HRESULT, |
| fn FindName( |
| szNameBuf: LPOLESTR, |
| lHashVal: ULONG, |
| ppTInfo: *mut *mut ITypeInfo, |
| rgMemId: *mut MEMBERID, |
| pcFound: *mut USHORT, |
| ) -> HRESULT, |
| fn ReleaseTLibAttr( |
| pTLibAttr: *const TLIBATTR, |
| ) -> HRESULT, |
| }} |
| RIDL!{#[uuid(0x00020401, 0x0000, 0x0000, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46)] |
| interface ITypeInfo(ITypeInfoVtbl): IUnknown(IUnknownVtbl) { |
| fn GetTypeAttr( |
| ppTypeAttr: *mut *mut TYPEATTR, |
| ) -> HRESULT, |
| fn GetTypeComp( |
| ppTComp: *mut *mut ITypeComp, |
| ) -> HRESULT, |
| fn GetFuncDesc( |
| index: UINT, |
| ppFunDesc: *mut *mut FUNCDESC, |
| ) -> HRESULT, |
| fn GetVarDesc( |
| index: UINT, |
| pPVarDesc: *mut *mut VARDESC, |
| ) -> HRESULT, |
| fn GetNames( |
| memid: MEMBERID, |
| rgBstrNames: *mut BSTR, |
| cMaxNames: UINT, |
| pcNames: *mut UINT, |
| ) -> HRESULT, |
| fn GetRefTypeOfImplType( |
| index: UINT, |
| pRefType: *mut HREFTYPE, |
| ) -> HRESULT, |
| fn GetImplTypeFlags( |
| index: UINT, |
| pImplTypeFlags: *mut INT, |
| ) -> HRESULT, |
| fn GetIDsOfNames( |
| rgszNames: *mut LPOLESTR, |
| cNames: UINT, |
| pMemId: *mut MEMBERID, |
| ) -> HRESULT, |
| fn Invoke( |
| pvInstance: PVOID, |
| memid: MEMBERID, |
| wFlags: WORD, |
| pDispParams: *mut DISPPARAMS, |
| pVarResult: *mut VARIANT, |
| pExcepInfo: *mut EXCEPINFO, |
| puArgErr: *mut UINT, |
| ) -> HRESULT, |
| fn GetDocumentation( |
| memid: MEMBERID, |
| pBstrName: *mut BSTR, |
| pBstrDocString: *mut BSTR, |
| pdwHelpContext: *mut DWORD, |
| pBstrHelpFile: *mut BSTR, |
| ) -> HRESULT, |
| fn GetDllEntry( |
| memid: MEMBERID, |
| invKind: INVOKEKIND, |
| pBstrDllName: *mut BSTR, |
| pBstrName: *mut BSTR, |
| pwOrdinal: *mut WORD, |
| ) -> HRESULT, |
| fn GetRefTypeInfo( |
| hRefType: HREFTYPE, |
| ppTInfo: *mut *mut ITypeInfo, |
| ) -> HRESULT, |
| fn AddressOfMember( |
| memid: MEMBERID, |
| invKind: INVOKEKIND, |
| ppv: *mut PVOID, |
| ) -> HRESULT, |
| fn CreateInstance( |
| pUnkOuter: *mut IUnknown, |
| riid: REFIID, |
| ppvObj: *mut PVOID, |
| ) -> HRESULT, |
| fn GetMops( |
| memid: MEMBERID, |
| pBstrMops: *mut BSTR, |
| ) -> HRESULT, |
| fn GetContainingTypeLib( |
| ppTLib: *mut *mut ITypeLib, |
| pIndex: *mut UINT, |
| ) -> HRESULT, |
| fn ReleaseTypeAttr( |
| pTypeAttr: *mut TYPEATTR, |
| ) -> (), |
| fn ReleaseFuncDesc( |
| pFuncDesc: *mut FUNCDESC, |
| ) -> (), |
| fn ReleaseVarDesc( |
| pVarDesc: *mut VARDESC, |
| ) -> (), |
| }} |
| RIDL!{#[uuid(0x1cf2b120, 0x547d, 0x101b, 0x8e, 0x65, 0x08, 0x00, 0x2b, 0x2b, 0xd1, 0x19)] |
| interface IErrorInfo(IErrorInfoVtbl): IUnknown(IUnknownVtbl) { |
| fn GetGUID( |
| pGUID: *mut GUID, |
| ) -> HRESULT, |
| fn GetSource( |
| pBstrSource: *mut BSTR, |
| ) -> HRESULT, |
| fn GetDescription( |
| pBstrDescription: *mut BSTR, |
| ) -> HRESULT, |
| fn GetHelpFile( |
| pBstrHelpFile: *mut BSTR, |
| ) -> HRESULT, |
| fn GetHelpContext( |
| pdwHelpContext: *mut DWORD, |
| ) -> HRESULT, |
| }} |
| RIDL!{#[uuid(0x22f03340, 0x547d, 0x101b, 0x8e, 0x65, 0x08, 0x00, 0x2b, 0x2b, 0xd1, 0x19)] |
| interface ICreateErrorInfo(ICreateErrorInfoVtbl): IUnknown(IUnknownVtbl) { |
| fn SetGUID( |
| rguid: REFGUID, |
| ) -> HRESULT, |
| fn SetSource( |
| szSource: LPOLESTR, |
| ) -> HRESULT, |
| fn SetDescription( |
| szDescription: LPOLESTR, |
| ) -> HRESULT, |
| fn SetHelpFile( |
| szHelpFile: LPOLESTR, |
| ) -> HRESULT, |
| fn SetHelpContext( |
| dwHelpContext: DWORD, |
| ) -> HRESULT, |
| }} |
| RIDL!{#[uuid(0x3127ca40, 0x446e, 0x11ce, 0x81, 0x35, 0x00, 0xaa, 0x00, 0x4b, 0xb8, 0x51)] |
| interface IErrorLog(IErrorLogVtbl): IUnknown(IUnknownVtbl) { |
| fn AddError( |
| pszPropName: LPCOLESTR, |
| pExcepInfo: *const EXCEPINFO, |
| ) -> HRESULT, |
| }} |
| pub type LPERRORLOG = *mut IErrorLog; |