/* Automatically generated by HaskellDirect (ihc.exe), snapshot 150305 Created: 13:52 GMT Standard Time, Tuesday 15 March, 2005 Command line: -fno-qualified-names -fno-export-list -fappend-interface-short-name -fno-overload-variant --gen-headers -c TypeLib.idl -o TypeLib.hs */ #ifndef __INT64_DEFINED__ #ifdef __GNUC__ typedef long long int64; typedef unsigned long long uint64; #else #ifdef _MSC_VER typedef __int64 int64; typedef unsigned __int64 uint64; #else /* Need some help here, please. */ #endif #endif #define __INT64_DEFINED__ #endif #ifndef __TYPELIB_H__ #define __TYPELIB_H__ #ifndef __ICreateTypeInfo_FWD_DEFINED__ #define __ICreateTypeInfo_FWD_DEFINED__ typedef struct ICreateTypeInfo ICreateTypeInfo; #endif #ifndef __ICreateTypeInfo2_FWD_DEFINED__ #define __ICreateTypeInfo2_FWD_DEFINED__ typedef struct ICreateTypeInfo2 ICreateTypeInfo2; #endif #ifndef __ICreateTypeLib_FWD_DEFINED__ #define __ICreateTypeLib_FWD_DEFINED__ typedef struct ICreateTypeLib ICreateTypeLib; #endif #ifndef __ICreateTypeLib2_FWD_DEFINED__ #define __ICreateTypeLib2_FWD_DEFINED__ typedef struct ICreateTypeLib2 ICreateTypeLib2; #endif #ifndef __ITypeComp_FWD_DEFINED__ #define __ITypeComp_FWD_DEFINED__ typedef struct ITypeComp ITypeComp; #endif #ifndef __ITypeInfo_FWD_DEFINED__ #define __ITypeInfo_FWD_DEFINED__ typedef struct ITypeInfo ITypeInfo; #endif #ifndef __ITypeInfo2_FWD_DEFINED__ #define __ITypeInfo2_FWD_DEFINED__ typedef struct ITypeInfo2 ITypeInfo2; #endif #ifndef __ITypeLib_FWD_DEFINED__ #define __ITypeLib_FWD_DEFINED__ typedef struct ITypeLib ITypeLib; #endif #ifndef __ITypeLib2_FWD_DEFINED__ #define __ITypeLib2_FWD_DEFINED__ typedef struct ITypeLib2 ITypeLib2; #endif #ifndef __ITypeChangeEvents_FWD_DEFINED__ #define __ITypeChangeEvents_FWD_DEFINED__ typedef struct ITypeChangeEvents ITypeChangeEvents; #endif #include "StdTypes.h" typedef void* VARIANT; typedef void* BSTR; typedef DWORD HRESULT; typedef void* IUnknown; typedef struct tagSAFEARRAYBOUND { unsigned long cElements; long lLbound; } SAFEARRAYBOUND; typedef SAFEARRAYBOUND* LPSAFEARRAYBOUND; typedef LONG DISPID; typedef DISPID MEMBERID; typedef DWORD HREFTYPE; typedef /*[v1_enum]*/ /*[v1_enum]*/enum tagTYPEKIND { /*[v1_enum]*/ TKIND_ENUM = 0, /*[v1_enum]*/ TKIND_RECORD = 1, /*[v1_enum]*/ TKIND_MODULE = 2, /*[v1_enum]*/ TKIND_INTERFACE = 3, /*[v1_enum]*/ TKIND_DISPATCH = 4, /*[v1_enum]*/ TKIND_COCLASS = 5, /*[v1_enum]*/ TKIND_ALIAS = 6, /*[v1_enum]*/ TKIND_UNION = 7, /*[v1_enum]*/ TKIND_MAX = 8 } TYPEKIND; typedef struct tagTYPEDESC __IHC_TAG_4; typedef struct tagARRAYDESC __IHC_TAG_5; typedef /*[switch_type(unsigned short), switch_is(vt)]*/ /*[switch_is(vt)]*/union __IHC_TAG_0 { /*[case 26, case 27]*/ /*[switch_is(vt)]*/__IHC_TAG_4* lptdesc; /*[case 28]*/ /*[switch_is(vt)]*/__IHC_TAG_5* lpadesc; /*[case 29]*/ /*[switch_is(vt)]*/unsigned long hreftype; /*[default] */; } __IHC_TAG_3; typedef /*[switch_type(unsigned short), switch_is(vt)]*/ __IHC_TAG_3 __IHC_TAG_2; typedef struct tagTYPEDESC { /*[switch_type(unsigned short), switch_is(vt)]*/__IHC_TAG_3 __IHC_TAG_1; unsigned short vt; } TYPEDESC; /*typedef [ignore] TYPEDESC __IHC_TAG_4;*/ typedef struct tagARRAYDESC { TYPEDESC tdescElem; unsigned short cDims; SAFEARRAYBOUND /*[size_is(cDims)]*/ rgbounds[1]; } ARRAYDESC; /*typedef [ignore] ARRAYDESC __IHC_TAG_5;*/ typedef VARIANT VARIANTARG; typedef struct tagPARAMDESCEX { unsigned long cBytes; VARIANTARG varDefaultValue; } PARAMDESCEX; typedef /*[unique]*/ PARAMDESCEX* LPPARAMDESCEX; typedef struct tagPARAMDESC { PARAMDESCEX* pparamdescex; unsigned short wParamFlags; } PARAMDESC; typedef PARAMDESC* LPPARAMDESC; #define PARAMFLAG_NONE 0x0 #define PARAMFLAG_FIN 0x1 #define PARAMFLAG_FOUT 0x2 #define PARAMFLAG_FLCID 0x4 #define PARAMFLAG_FRETVAL 0x8 #define PARAMFLAG_FOPT 0x10 #define PARAMFLAG_FHASDEFAULT 0x20 typedef struct tagIDLDESC { unsigned long dwReserved; unsigned short wIDLFlags; } IDLDESC; typedef IDLDESC* LPIDLDESC; #define IDLFLAG_NONE 0 #define IDLFLAG_FIN 1 #define IDLFLAG_FOUT 2 #define IDLFLAG_FLCID 4 #define IDLFLAG_FRETVAL 8 #if 0 /* the following is what MIDL knows how to remote */ typedef struct tagELEMDESC { TYPEDESC tdesc; PARAMDESC paramdesc; } ELEMDESC; #else /* 0 */ typedef struct tagELEMDESC { TYPEDESC tdesc; /* the type of the element */ union { IDLDESC idldesc; /* info for remoting the element */ PARAMDESC paramdesc; /* info about the parameter */ }; } ELEMDESC, * LPELEMDESC; #endif /* 0 */ typedef /*[nofree]*/ /*[nofree]*/struct tagTYPEATTR { /*[nofree]*/GUID guid; /*[nofree]*/unsigned long lcid; /*[nofree]*/unsigned long dwReserved; /*[nofree]*/long memidConstructor; /*[nofree]*/long memidDestructor; /*[nofree]*/WCHAR* lpstrSchema; /*[nofree]*/unsigned long cbSizeInstance; /*[nofree]*/TYPEKIND typekind; /*[nofree]*/unsigned short cFuncs; /*[nofree]*/unsigned short cVars; /*[nofree]*/unsigned short cImplTypes; /*[nofree]*/unsigned short cbSizeVft; /*[nofree]*/unsigned short cbAlignment; /*[nofree]*/unsigned short wTypeFlags; /*[nofree]*/unsigned short wMajorVerNum; /*[nofree]*/unsigned short wMinorVerNum; /*[nofree]*/TYPEDESC tdescAlias; /*[nofree]*/IDLDESC idldescType; } TYPEATTR; typedef /*[nofree]*/ TYPEATTR* LPTYPEATTR; typedef struct tagDISPPARAMS { /*[size_is(cArgs)]*/VARIANTARG* rgvarg; /*[size_is(cNamedArgs)]*/long* rgdispidNamedArgs; unsigned long cArgs; unsigned long cNamedArgs; } DISPPARAMS; #if 0 /* the following is what MIDL knows how to remote */ typedef struct tagEXCEPINFO { unsigned short wCode; unsigned short wReserved; BSTR bstrSource; BSTR bstrDescription; BSTR bstrHelpFile; unsigned long dwHelpContext; unsigned long pvReserved; unsigned long pfnDeferredFillIn; long scode; } EXCEPINFO; #else /* 0 */ typedef struct tagEXCEPINFO { WORD wCode; WORD wReserved; BSTR bstrSource; BSTR bstrDescription; BSTR bstrHelpFile; DWORD dwHelpContext; PVOID pvReserved; HRESULT (__stdcall *pfnDeferredFillIn)(struct tagEXCEPINFO *); SCODE scode; } EXCEPINFO, * LPEXCEPINFO; #endif /* 0 */ typedef /*[v1_enum]*/ /*[v1_enum]*/enum tagCALLCONV { /*[v1_enum]*/ CC_FASTCALL = 0, /*[v1_enum]*/ CC_CDECL = 1, /*[v1_enum]*/ CC_MSCPASCAL = 2, /*[v1_enum]*/ CC_PASCAL = 2, /*[v1_enum]*/ CC_MACPASCAL = 3, /*[v1_enum]*/ CC_STDCALL = 4, /*[v1_enum]*/ CC_FPFASTCALL = 5, /*[v1_enum]*/ CC_SYSCALL = 6, /*[v1_enum]*/ CC_MPWCDECL = 7, /*[v1_enum]*/ CC_MPWPASCAL = 8, /*[v1_enum]*/ CC_MAX = 9 } CALLCONV; typedef /*[v1_enum]*/ /*[v1_enum]*/enum tagFUNCKIND { /*[v1_enum]*/ FUNC_VIRTUAL = 0, /*[v1_enum]*/ FUNC_PUREVIRTUAL = 1, /*[v1_enum]*/ FUNC_NONVIRTUAL = 2, /*[v1_enum]*/ FUNC_STATIC = 3, /*[v1_enum]*/ FUNC_DISPATCH = 4 } FUNCKIND; typedef /*[v1_enum]*/ /*[v1_enum]*/enum tagINVOKEKIND { /*[v1_enum]*/ INVOKE_FUNC = 1, /*[v1_enum]*/ INVOKE_PROPERTYGET = 2, /*[v1_enum]*/ INVOKE_PROPERTYPUT = 4, /*[v1_enum]*/ INVOKE_PROPERTYPUTREF = 8 } INVOKEKIND; typedef /*[v1_enum]*/ /*[v1_enum]*/enum tagVARKIND { /*[v1_enum]*/ VAR_PERINSTANCE = 0, /*[v1_enum]*/ VAR_STATIC = 1, /*[v1_enum]*/ VAR_CONST = 2, /*[v1_enum]*/ VAR_DISPATCH = 3 } VARKIND; typedef /*[nofree]*/ /*[nofree]*/struct tagFUNCDESC { /*[nofree]*/long memid; /*[size_is(cScodes), nofree]*/long* lprgscode; /*[size_is(cParams), nofree]*/ELEMDESC* lprgelemdescParam; /*[nofree]*/FUNCKIND funckind; /*[nofree]*/INVOKEKIND invkind; /*[nofree]*/CALLCONV callconv; /*[nofree]*/short cParams; /*[nofree]*/short cParamsOpt; /*[nofree]*/short oVft; /*[nofree]*/short cScodes; /*[nofree]*/ELEMDESC elemdescFunc; /*[nofree]*/unsigned short wFuncFlags; } FUNCDESC; typedef /*[nofree]*/ FUNCDESC* LPFUNCDESC; #define IMPLTYPEFLAG_FDEFAULT 0x1 #define IMPLTYPEFLAG_FSOURCE 0x2 #define IMPLTYPEFLAG_FRESTRICTED 0x4 #define IMPLTYPEFLAG_FDEFAULTVTABLE 0x8 typedef /*[switch_type(VARKIND), switch_is(varkind), nofree]*/ /*[switch_is(varkind), nofree]*/union __IHC_TAG_6 { /*[case 0, case 3, case 1]*/ /*[switch_is(varkind), nofree]*/unsigned long oInst; /*[case 2]*/ /*[switch_is(varkind), nofree]*/VARIANT* lpvarValue; } __IHC_TAG_9; typedef /*[switch_type(VARKIND), switch_is(varkind)]*/ __IHC_TAG_9 __IHC_TAG_8; typedef /*[nofree]*/ /*[nofree]*/struct tagVARDESC { /*[nofree]*/long memid; /*[nofree]*/WCHAR* lpstrSchema; /*[switch_type(VARKIND), switch_is(varkind), nofree]*/__IHC_TAG_9 __IHC_TAG_7; /*[nofree]*/ELEMDESC elemdescVar; /*[nofree]*/unsigned short wVarFlags; /*[nofree]*/VARKIND varkind; } VARDESC; typedef /*[nofree]*/ VARDESC* LPVARDESC; typedef enum tagTYPEFLAGS { TYPEFLAG_FAPPOBJECT = 1, TYPEFLAG_FCANCREATE = 2, TYPEFLAG_FLICENSED = 4, TYPEFLAG_FPREDECLID = 8, TYPEFLAG_FHIDDEN = 16, TYPEFLAG_FCONTROL = 32, TYPEFLAG_FDUAL = 64, TYPEFLAG_FNONEXTENSIBLE = 128, TYPEFLAG_FOLEAUTOMATION = 256, TYPEFLAG_FRESTRICTED = 512, TYPEFLAG_FAGGREGATABLE = 1024, TYPEFLAG_FREPLACEABLE = 2048, TYPEFLAG_FDISPATCHABLE = 4096, TYPEFLAG_FREVERSEBIND = 8192 } TYPEFLAGS; typedef enum tagFUNCFLAGS { FUNCFLAG_FRESTRICTED = 1, FUNCFLAG_FSOURCE = 2, FUNCFLAG_FBINDABLE = 4, FUNCFLAG_FREQUESTEDIT = 8, FUNCFLAG_FDISPLAYBIND = 16, FUNCFLAG_FDEFAULTBIND = 32, FUNCFLAG_FHIDDEN = 64, FUNCFLAG_FUSESGETLASTERROR = 128, FUNCFLAG_FDEFAULTCOLLELEM = 256, FUNCFLAG_FUIDEFAULT = 512, FUNCFLAG_FNONBROWSABLE = 1024, FUNCFLAG_FREPLACEABLE = 2048, FUNCFLAG_FIMMEDIATEBIND = 4096 } FUNCFLAGS; typedef enum tagVARFLAGS { VARFLAG_FREADONLY = 1, VARFLAG_FSOURCE = 2, VARFLAG_FBINDABLE = 4, VARFLAG_FREQUESTEDIT = 8, VARFLAG_FDISPLAYBIND = 16, VARFLAG_FDEFAULTBIND = 32, VARFLAG_FHIDDEN = 64, VARFLAG_FRESTRICTED = 128, VARFLAG_FDEFAULTCOLLELEM = 256, VARFLAG_FUIDEFAULT = 512, VARFLAG_FNONBROWSABLE = 1024, VARFLAG_FREPLACEABLE = 2048, VARFLAG_FIMMEDIATEBIND = 4096 } VARFLAGS; typedef /*[wire_marshal(unsigned long)]*/ /*[wire_marshal(unsigned long)]*/struct tagCLEANLOCALSTORAGE { /*[wire_marshal(unsigned long)]*/IUnknown* pInterface; /*[wire_marshal(unsigned long)]*/void* pStorage; /*[wire_marshal(unsigned long)]*/unsigned long flags; } CLEANLOCALSTORAGE; typedef struct tagCUSTDATAITEM { GUID guid; VARIANTARG varValue; } CUSTDATAITEM; typedef CUSTDATAITEM* LPCUSTDATAITEM; typedef struct tagCUSTDATA { unsigned long cCustData; /*[size_is(cCustData)]*/CUSTDATAITEM* prgCustData; } CUSTDATA; typedef CUSTDATA* LPCUSTDATA; typedef /*[unique, pointer_default(unique)]*/ ICreateTypeInfo* LPCREATETYPEINFO; typedef struct ICreateTypeInfoVtbl { void* reserved0; void* reserved1; void* reserved2; HRESULT (__stdcall * SetGuid) ( ICreateTypeInfo* This , /*[in]*/GUID* guid ); HRESULT (__stdcall * SetTypeFlags) ( ICreateTypeInfo* This , /*[in]*/unsigned long uTypeFlags ); HRESULT (__stdcall * SetDocString) ( ICreateTypeInfo* This , /*[in]*/WCHAR* pStrDoc ); HRESULT (__stdcall * SetHelpContext) ( ICreateTypeInfo* This , /*[in]*/unsigned long dwHelpContext ); HRESULT (__stdcall * SetVersion) ( ICreateTypeInfo* This , /*[in]*/unsigned short wMajorVerNum , /*[in]*/unsigned short wMinorVerNum ); HRESULT (__stdcall * AddRefTypeInfo) ( ICreateTypeInfo* This , /*[in]*/ITypeInfo* pTInfo , /*[ref, out]*/unsigned long* phRefType ); HRESULT (__stdcall * AddFuncDesc) ( ICreateTypeInfo* This , /*[in]*/unsigned long index , /*[in]*/FUNCDESC* pFuncDesc ); HRESULT (__stdcall * AddImplType) ( ICreateTypeInfo* This , /*[in]*/unsigned long index , /*[in]*/unsigned long hRefType ); HRESULT (__stdcall * SetImplTypeFlags) ( ICreateTypeInfo* This , /*[in]*/unsigned long index , /*[in]*/int implTypeFlags ); HRESULT (__stdcall * SetAlignment) ( ICreateTypeInfo* This , /*[in]*/unsigned short cbAlignment ); HRESULT (__stdcall * SetSchema) ( ICreateTypeInfo* This , /*[in]*/WCHAR* pStrSchema ); HRESULT (__stdcall * AddVarDesc) ( ICreateTypeInfo* This , /*[in]*/unsigned long index , /*[in]*/VARDESC* pVarDesc ); HRESULT (__stdcall * SetFuncAndParamNames) ( ICreateTypeInfo* This , /*[in]*/unsigned long index , /*[in, size_is((UINT)(cNames)), in]*/WCHAR** rgszNames , /*[in]*/unsigned long cNames ); HRESULT (__stdcall * SetVarName) ( ICreateTypeInfo* This , /*[in]*/unsigned long index , /*[in]*/WCHAR* szName ); HRESULT (__stdcall * SetTypeDescAlias) ( ICreateTypeInfo* This , /*[in]*/TYPEDESC* pTDescAlias ); HRESULT (__stdcall * DefineFuncAsDllEntry) ( ICreateTypeInfo* This , /*[in]*/unsigned long index , /*[in]*/WCHAR* szDllName , /*[in]*/WCHAR* szProcName ); HRESULT (__stdcall * SetFuncDocString) ( ICreateTypeInfo* This , /*[in]*/unsigned long index , /*[in]*/WCHAR* szDocString ); HRESULT (__stdcall * SetVarDocString) ( ICreateTypeInfo* This , /*[in]*/unsigned long index , /*[in]*/WCHAR* szDocString ); HRESULT (__stdcall * SetFuncHelpContext) ( ICreateTypeInfo* This , /*[in]*/unsigned long index , /*[in]*/unsigned long dwHelpContext ); HRESULT (__stdcall * SetVarHelpContext) ( ICreateTypeInfo* This , /*[in]*/unsigned long index , /*[in]*/unsigned long dwHelpContext ); HRESULT (__stdcall * SetMops) ( ICreateTypeInfo* This , /*[in]*/unsigned long index , /*[in]*/BSTR bstrMops ); HRESULT (__stdcall * SetTypeIdldesc) ( ICreateTypeInfo* This , /*[in]*/IDLDESC* pIdlDesc ); HRESULT (__stdcall * LayOut) ( ICreateTypeInfo* This ); } ICreateTypeInfoVtbl; struct ICreateTypeInfo { struct ICreateTypeInfoVtbl *lpVtbl; }; #ifdef COBJMACROS #define ICreateTypeInfo_SetGuid(This,guid1) \ (This)->lpVtbl->SetGuid(This,guid1) #define ICreateTypeInfo_SetTypeFlags(This,uTypeFlags) \ (This)->lpVtbl->SetTypeFlags(This,uTypeFlags) #define ICreateTypeInfo_SetDocString(This,pStrDoc) \ (This)->lpVtbl->SetDocString(This,pStrDoc) #define ICreateTypeInfo_SetHelpContext(This,dwHelpContext0) \ (This)->lpVtbl->SetHelpContext(This,dwHelpContext0) #define ICreateTypeInfo_SetVersion(This,wMajorVerNum0,wMinorVerNum0) \ (This)->lpVtbl->SetVersion(This,wMajorVerNum0,wMinorVerNum0) #define ICreateTypeInfo_AddRefTypeInfo(This,pTInfo,phRefType) \ (This)->lpVtbl->AddRefTypeInfo(This,pTInfo,phRefType) #define ICreateTypeInfo_AddFuncDesc(This,index,pFuncDesc) \ (This)->lpVtbl->AddFuncDesc(This,index,pFuncDesc) #define ICreateTypeInfo_AddImplType(This,index,hRefType) \ (This)->lpVtbl->AddImplType(This,index,hRefType) #define ICreateTypeInfo_SetImplTypeFlags(This,index,implTypeFlags) \ (This)->lpVtbl->SetImplTypeFlags(This,index,implTypeFlags) #define ICreateTypeInfo_SetAlignment(This,cbAlignment0) \ (This)->lpVtbl->SetAlignment(This,cbAlignment0) #define ICreateTypeInfo_SetSchema(This,pStrSchema) \ (This)->lpVtbl->SetSchema(This,pStrSchema) #define ICreateTypeInfo_AddVarDesc(This,index,pVarDesc) \ (This)->lpVtbl->AddVarDesc(This,index,pVarDesc) #define ICreateTypeInfo_SetFuncAndParamNames(This,index,rgszNames,cNames) \ (This)->lpVtbl->SetFuncAndParamNames(This,index,rgszNames,cNames) #define ICreateTypeInfo_SetVarName(This,index,szName) \ (This)->lpVtbl->SetVarName(This,index,szName) #define ICreateTypeInfo_SetTypeDescAlias(This,pTDescAlias) \ (This)->lpVtbl->SetTypeDescAlias(This,pTDescAlias) #define ICreateTypeInfo_DefineFuncAsDllEntry(This,index,szDllName,szProcName) \ (This)->lpVtbl->DefineFuncAsDllEntry(This,index,szDllName,szProcName) #define ICreateTypeInfo_SetFuncDocString(This,index,szDocString) \ (This)->lpVtbl->SetFuncDocString(This,index,szDocString) #define ICreateTypeInfo_SetVarDocString(This,index,szDocString) \ (This)->lpVtbl->SetVarDocString(This,index,szDocString) #define ICreateTypeInfo_SetFuncHelpContext(This,index,dwHelpContext0) \ (This)->lpVtbl->SetFuncHelpContext(This,index,dwHelpContext0) #define ICreateTypeInfo_SetVarHelpContext(This,index,dwHelpContext0) \ (This)->lpVtbl->SetVarHelpContext(This,index,dwHelpContext0) #define ICreateTypeInfo_SetMops(This,index,bstrMops) \ (This)->lpVtbl->SetMops(This,index,bstrMops) #define ICreateTypeInfo_SetTypeIdldesc(This,pIdlDesc) \ (This)->lpVtbl->SetTypeIdldesc(This,pIdlDesc) #define ICreateTypeInfo_LayOut(This) \ (This)->lpVtbl->LayOut(This) #endif /*COBJMACROS*/ typedef /*[unique, pointer_default(unique)]*/ ICreateTypeInfo2* LPCREATETYPEINFO2; typedef struct ICreateTypeInfo2Vtbl { void* reserved0; void* reserved1; void* reserved2; HRESULT (__stdcall * DeleteFuncDesc) ( ICreateTypeInfo2* This , /*[in]*/unsigned long index ); HRESULT (__stdcall * DeleteFuncDescByMemId) ( ICreateTypeInfo2* This , /*[in]*/long memid , /*[in]*/INVOKEKIND invKind ); HRESULT (__stdcall * DeleteVarDesc) ( ICreateTypeInfo2* This , /*[in]*/unsigned long index ); HRESULT (__stdcall * DeleteVarDescByMemId) ( ICreateTypeInfo2* This , /*[in]*/long memid ); HRESULT (__stdcall * DeleteImplType) ( ICreateTypeInfo2* This , /*[in]*/unsigned long index ); HRESULT (__stdcall * SetCustData) ( ICreateTypeInfo2* This , /*[in]*/GUID* guid , /*[in]*/VARIANT* pVarVal ); HRESULT (__stdcall * SetFuncCustData) ( ICreateTypeInfo2* This , /*[in]*/unsigned long index , /*[in]*/GUID* guid , /*[in]*/VARIANT* pVarVal ); HRESULT (__stdcall * SetParamCustData) ( ICreateTypeInfo2* This , /*[in]*/unsigned long indexFunc , /*[in]*/unsigned long indexParam , /*[in]*/GUID* guid , /*[in]*/VARIANT* pVarVal ); HRESULT (__stdcall * SetVarCustData) ( ICreateTypeInfo2* This , /*[in]*/unsigned long index , /*[in]*/GUID* guid , /*[in]*/VARIANT* pVarVal ); HRESULT (__stdcall * SetImplTypeCustData) ( ICreateTypeInfo2* This , /*[in]*/unsigned long index , /*[in]*/GUID* guid , /*[in]*/VARIANT* pVarVal ); HRESULT (__stdcall * SetHelpStringContext) ( ICreateTypeInfo2* This , /*[in]*/unsigned long dwHelpStringContext ); HRESULT (__stdcall * SetFuncHelpStringContext) ( ICreateTypeInfo2* This , /*[in]*/unsigned long index , /*[in]*/unsigned long dwHelpStringContext ); HRESULT (__stdcall * SetVarHelpStringContext) ( ICreateTypeInfo2* This , /*[in]*/unsigned long index , /*[in]*/unsigned long dwHelpStringContext ); HRESULT (__stdcall * Invalidate) ( ICreateTypeInfo2* This ); HRESULT (__stdcall * SetName) ( ICreateTypeInfo2* This , /*[in]*/WCHAR* szName ); } ICreateTypeInfo2Vtbl; struct ICreateTypeInfo2 { struct ICreateTypeInfo2Vtbl *lpVtbl; }; #ifdef COBJMACROS #define ICreateTypeInfo2_DeleteFuncDesc(This,index) \ (This)->lpVtbl->DeleteFuncDesc(This,index) #define ICreateTypeInfo2_DeleteFuncDescByMemId(This,memid1,invKind) \ (This)->lpVtbl->DeleteFuncDescByMemId(This,memid1,invKind) #define ICreateTypeInfo2_DeleteVarDesc(This,index) \ (This)->lpVtbl->DeleteVarDesc(This,index) #define ICreateTypeInfo2_DeleteVarDescByMemId(This,memid1) \ (This)->lpVtbl->DeleteVarDescByMemId(This,memid1) #define ICreateTypeInfo2_DeleteImplType(This,index) \ (This)->lpVtbl->DeleteImplType(This,index) #define ICreateTypeInfo2_SetCustData(This,guid1,pVarVal) \ (This)->lpVtbl->SetCustData(This,guid1,pVarVal) #define ICreateTypeInfo2_SetFuncCustData(This,index,guid1,pVarVal) \ (This)->lpVtbl->SetFuncCustData(This,index,guid1,pVarVal) #define ICreateTypeInfo2_SetParamCustData(This,indexFunc,indexParam,guid1,pVarVal) \ (This)->lpVtbl->SetParamCustData(This,indexFunc,indexParam,guid1,pVarVal) #define ICreateTypeInfo2_SetVarCustData(This,index,guid1,pVarVal) \ (This)->lpVtbl->SetVarCustData(This,index,guid1,pVarVal) #define ICreateTypeInfo2_SetImplTypeCustData(This,index,guid1,pVarVal) \ (This)->lpVtbl->SetImplTypeCustData(This,index,guid1,pVarVal) #define ICreateTypeInfo2_SetHelpStringContext(This,dwHelpStringContext) \ (This)->lpVtbl->SetHelpStringContext(This,dwHelpStringContext) #define ICreateTypeInfo2_SetFuncHelpStringContext(This,index,dwHelpStringContext) \ (This)->lpVtbl->SetFuncHelpStringContext(This,index,dwHelpStringContext) #define ICreateTypeInfo2_SetVarHelpStringContext(This,index,dwHelpStringContext) \ (This)->lpVtbl->SetVarHelpStringContext(This,index,dwHelpStringContext) #define ICreateTypeInfo2_Invalidate(This) \ (This)->lpVtbl->Invalidate(This) #define ICreateTypeInfo2_SetName(This,szName) \ (This)->lpVtbl->SetName(This,szName) #endif /*COBJMACROS*/ typedef /*[unique, pointer_default(unique)]*/ ICreateTypeLib* LPCREATETYPELIB; typedef struct ICreateTypeLibVtbl { void* reserved0; void* reserved1; void* reserved2; HRESULT (__stdcall * CreateTypeInfo) ( ICreateTypeLib* This , /*[in]*/WCHAR* szName , /*[in]*/TYPEKIND tkind , /*[ref, out]*/ICreateTypeInfo** ppCTInfo ); HRESULT (__stdcall * SetName) ( ICreateTypeLib* This , /*[in]*/WCHAR* szName ); HRESULT (__stdcall * SetVersion) ( ICreateTypeLib* This , /*[in]*/unsigned short wMajorVerNum , /*[in]*/unsigned short wMinorVerNum ); HRESULT (__stdcall * SetGuid) ( ICreateTypeLib* This , /*[in]*/GUID* guid ); HRESULT (__stdcall * SetDocString) ( ICreateTypeLib* This , /*[in]*/WCHAR* szDoc ); HRESULT (__stdcall * SetHelpFileName) ( ICreateTypeLib* This , /*[in]*/WCHAR* szHelpFileName ); HRESULT (__stdcall * SetHelpContext) ( ICreateTypeLib* This , /*[in]*/unsigned long dwHelpContext ); HRESULT (__stdcall * SetLcid) ( ICreateTypeLib* This , /*[in]*/unsigned long lcid ); HRESULT (__stdcall * SetLibFlags) ( ICreateTypeLib* This , /*[in]*/unsigned long uLibFlags ); HRESULT (__stdcall * SaveAllChanges) ( ICreateTypeLib* This ); } ICreateTypeLibVtbl; struct ICreateTypeLib { struct ICreateTypeLibVtbl *lpVtbl; }; #ifdef COBJMACROS #define ICreateTypeLib_CreateTypeInfo(This,szName,tkind,ppCTInfo) \ (This)->lpVtbl->CreateTypeInfo(This,szName,tkind,ppCTInfo) #define ICreateTypeLib_SetName(This,szName) \ (This)->lpVtbl->SetName(This,szName) #define ICreateTypeLib_SetVersion(This,wMajorVerNum0,wMinorVerNum0) \ (This)->lpVtbl->SetVersion(This,wMajorVerNum0,wMinorVerNum0) #define ICreateTypeLib_SetGuid(This,guid1) \ (This)->lpVtbl->SetGuid(This,guid1) #define ICreateTypeLib_SetDocString(This,szDoc) \ (This)->lpVtbl->SetDocString(This,szDoc) #define ICreateTypeLib_SetHelpFileName(This,szHelpFileName) \ (This)->lpVtbl->SetHelpFileName(This,szHelpFileName) #define ICreateTypeLib_SetHelpContext(This,dwHelpContext0) \ (This)->lpVtbl->SetHelpContext(This,dwHelpContext0) #define ICreateTypeLib_SetLcid(This,lcid0) \ (This)->lpVtbl->SetLcid(This,lcid0) #define ICreateTypeLib_SetLibFlags(This,uLibFlags) \ (This)->lpVtbl->SetLibFlags(This,uLibFlags) #define ICreateTypeLib_SaveAllChanges(This) \ (This)->lpVtbl->SaveAllChanges(This) #endif /*COBJMACROS*/ typedef /*[unique, pointer_default(unique)]*/ ICreateTypeLib2* LPCREATETYPELIB2; typedef struct ICreateTypeLib2Vtbl { void* reserved0; void* reserved1; void* reserved2; HRESULT (__stdcall * DeleteTypeInfo) ( ICreateTypeLib2* This , /*[in]*/WCHAR* szName ); HRESULT (__stdcall * SetCustData) ( ICreateTypeLib2* This , /*[in]*/GUID* guid , /*[in]*/VARIANT* pVarVal ); HRESULT (__stdcall * SetHelpStringContext) ( ICreateTypeLib2* This , /*[in]*/unsigned long dwHelpStringContext ); HRESULT (__stdcall * SetHelpStringDll) ( ICreateTypeLib2* This , /*[in]*/WCHAR* szFileName ); } ICreateTypeLib2Vtbl; struct ICreateTypeLib2 { struct ICreateTypeLib2Vtbl *lpVtbl; }; #ifdef COBJMACROS #define ICreateTypeLib2_DeleteTypeInfo(This,szName) \ (This)->lpVtbl->DeleteTypeInfo(This,szName) #define ICreateTypeLib2_SetCustData(This,guid1,pVarVal) \ (This)->lpVtbl->SetCustData(This,guid1,pVarVal) #define ICreateTypeLib2_SetHelpStringContext(This,dwHelpStringContext) \ (This)->lpVtbl->SetHelpStringContext(This,dwHelpStringContext) #define ICreateTypeLib2_SetHelpStringDll(This,szFileName) \ (This)->lpVtbl->SetHelpStringDll(This,szFileName) #endif /*COBJMACROS*/ /* DISPID reserved to indicate an "unknown" name */ /* only reserved for data members (properties); reused as a method dispid below */ #define DISPID_UNKNOWN (- 1) /* DISPID reserved for the "value" property */ #define DISPID_VALUE 0 /* The following DISPID is reserved to indicate the param * that is the right-hand-side (or "put" value) of a PropertyPut */ #define DISPID_PROPERTYPUT (- 3) /* DISPID reserved for the standard "NewEnum" method */ #define DISPID_NEWENUM (- 4) /* DISPID reserved for the standard "Evaluate" method */ #define DISPID_EVALUATE (- 5) #define DISPID_CONSTRUCTOR (- 6) #define DISPID_DESTRUCTOR (- 7) #define DISPID_COLLECT (- 8) typedef /*[unique, pointer_default(unique)]*/ ITypeComp* LPTYPECOMP; typedef /*[v1_enum, pointer_default(unique)]*/ /*[v1_enum, pointer_default(unique)]*/enum tagDESCKIND { /*[v1_enum, pointer_default(unique)]*/ DESCKIND_NONE = 0, /*[v1_enum, pointer_default(unique)]*/ DESCKIND_FUNCDESC = 1, /*[v1_enum, pointer_default(unique)]*/ DESCKIND_VARDESC = 2, /*[v1_enum, pointer_default(unique)]*/ DESCKIND_TYPECOMP = 3, /*[v1_enum, pointer_default(unique)]*/ DESCKIND_IMPLICITAPPOBJ = 4, /*[v1_enum, pointer_default(unique)]*/ DESCKIND_MAX = 5 } DESCKIND; typedef /*[pointer_default(unique)]*/ /*[pointer_default(unique)]*/union tagBINDPTR { /*[pointer_default(unique)]*/FUNCDESC* lpfuncdesc; /*[pointer_default(unique)]*/VARDESC* lpvardesc; /*[pointer_default(unique)]*/ITypeComp* lptcomp; } BINDPTR; typedef BINDPTR* LPBINDPTR; typedef struct ITypeCompVtbl { void* reserved0; void* reserved1; void* reserved2; HRESULT (__stdcall * Bind) ( ITypeComp* This , /*[in]*/WCHAR* szName , /*[in]*/unsigned long lHashVal , /*[in]*/unsigned short wFlags , /*[ref, out]*/ITypeInfo** ppTInfo , /*[ref, out]*/DESCKIND* pDescKind , /*[ref, out]*/BINDPTR* pBindPtr ); HRESULT (__stdcall * BindType) ( ITypeComp* This , /*[in]*/WCHAR* szName , /*[in]*/unsigned long lHashVal , /*[ref, out]*/ITypeInfo** ppTInfo , /*[ref, out]*/ITypeComp** ppTComp ); } ITypeCompVtbl; struct ITypeComp { struct ITypeCompVtbl *lpVtbl; }; #ifdef COBJMACROS #define ITypeComp_Bind(This,szName,lHashVal,wFlags,ppTInfo,pDescKind,pBindPtr) \ (This)->lpVtbl->Bind(This,szName,lHashVal,wFlags,ppTInfo,pDescKind,pBindPtr) #define ITypeComp_BindType(This,szName,lHashVal,ppTInfo,ppTComp) \ (This)->lpVtbl->BindType(This,szName,lHashVal,ppTInfo,ppTComp) #endif /*COBJMACROS*/ typedef /*[unique, pointer_default(unique)]*/ ITypeInfo* LPTYPEINFO; typedef struct ITypeInfoVtbl { void* reserved0; void* reserved1; void* reserved2; HRESULT (__stdcall * GetTypeAttr) ( ITypeInfo* This , /*[ref, out]*/TYPEATTR** ppTypeAttr ); HRESULT (__stdcall * GetTypeComp) ( ITypeInfo* This , /*[ref, out]*/ITypeComp** ppTComp ); HRESULT (__stdcall * GetFuncDesc) ( ITypeInfo* This , /*[in]*/unsigned long index , /*[ref, out]*/FUNCDESC** ppFuncDesc ); HRESULT (__stdcall * GetVarDesc) ( ITypeInfo* This , /*[in]*/unsigned long index , /*[ref, out]*/VARDESC** ppVarDesc ); HRESULT (__stdcall * GetNames) ( ITypeInfo* This , /*[in]*/long memid , /*[ref, out, size_is(cMaxNames), length_is(*pcNames)]*/BSTR* rgBstrNames , /*[in]*/unsigned long cMaxNames , /*[ref, out]*/unsigned long* pcNames ); HRESULT (__stdcall * GetRefTypeOfImplType) ( ITypeInfo* This , /*[in]*/unsigned long index , /*[ref, out]*/unsigned long* pRefType ); HRESULT (__stdcall * GetImplTypeFlags) ( ITypeInfo* This , /*[in]*/unsigned long index , /*[ref, out]*/int* pImplTypeFlags ); HRESULT (__stdcall * GetIDsOfNames) ( ITypeInfo* This , /*[in, size_is(cNames)]*/WCHAR** rgszNames , /*[in]*/unsigned long cNames , /*[ref, out, size_is(cNames)]*/long* pMemId ); HRESULT (__stdcall * Invoke) ( ITypeInfo* This , /*[in]*/void* pvInstance , /*[in]*/long memid , /*[in]*/unsigned short wFlags , /*[in, out]*/DISPPARAMS* pDispParams , /*[ref, out]*/VARIANT* pVarResult , /*[ref, out]*/EXCEPINFO* pExcepInfo , /*[ref, out]*/unsigned long* puArgErr ); HRESULT (__stdcall * GetDocumentation) ( ITypeInfo* This , /*[in]*/long memid , /*[ref, out]*/BSTR* pBstrName , /*[ref, out]*/BSTR* pBstrDocString , /*[ref, out]*/unsigned long* pdwHelpContext , /*[ref, out]*/BSTR* pBstrHelpFile ); HRESULT (__stdcall * GetDllEntry) ( ITypeInfo* This , /*[in]*/long memid , /*[in]*/INVOKEKIND invKind , /*[ref, out]*/BSTR* pBstrDllName , /*[ref, out]*/BSTR* pBstrName , /*[ref, out]*/unsigned short* pwOrdinal ); HRESULT (__stdcall * GetRefTypeInfo) ( ITypeInfo* This , /*[in]*/unsigned long hRefType , /*[ref, out]*/ITypeInfo** ppTInfo ); HRESULT (__stdcall * AddressOfMember) ( ITypeInfo* This , /*[in]*/long memid , /*[in]*/INVOKEKIND invKind , /*[ref, out]*/void** ppv ); HRESULT (__stdcall * CreateInstance) ( ITypeInfo* This , /*[in]*/IUnknown* pUnkOuter , /*[in, ref]*/IID* riid , /*[ref, out, iid_is(riid)]*/IUnknown** ppvObj ); HRESULT (__stdcall * GetMops) ( ITypeInfo* This , /*[in]*/long memid , /*[ref, out]*/BSTR* pBstrMops ); HRESULT (__stdcall * GetContainingTypeLib) ( ITypeInfo* This , /*[ref, out]*/ITypeLib** ppTLib , /*[ref, out]*/unsigned long* pIndex ); void (__stdcall * ReleaseTypeAttr) ( ITypeInfo* This , /*[in, ptr]*/TYPEATTR* pTypeAttr ); void (__stdcall * ReleaseFuncDesc) ( ITypeInfo* This , /*[in, ptr]*/FUNCDESC* pFuncDesc ); void (__stdcall * ReleaseVarDesc) ( ITypeInfo* This , /*[in, ptr]*/VARDESC* pVarDesc ); } ITypeInfoVtbl; struct ITypeInfo { struct ITypeInfoVtbl *lpVtbl; }; #ifdef COBJMACROS #define ITypeInfo_GetTypeAttr(This,ppTypeAttr) \ (This)->lpVtbl->GetTypeAttr(This,ppTypeAttr) #define ITypeInfo_GetTypeComp(This,ppTComp) \ (This)->lpVtbl->GetTypeComp(This,ppTComp) #define ITypeInfo_GetFuncDesc(This,index,ppFuncDesc) \ (This)->lpVtbl->GetFuncDesc(This,index,ppFuncDesc) #define ITypeInfo_GetVarDesc(This,index,ppVarDesc) \ (This)->lpVtbl->GetVarDesc(This,index,ppVarDesc) #define ITypeInfo_GetNames(This,memid1,rgBstrNames,cMaxNames,pcNames) \ (This)->lpVtbl->GetNames(This,memid1,rgBstrNames,cMaxNames,pcNames) #define ITypeInfo_GetRefTypeOfImplType(This,index,pRefType) \ (This)->lpVtbl->GetRefTypeOfImplType(This,index,pRefType) #define ITypeInfo_GetImplTypeFlags(This,index,pImplTypeFlags) \ (This)->lpVtbl->GetImplTypeFlags(This,index,pImplTypeFlags) #define ITypeInfo_GetIDsOfNames(This,rgszNames,cNames,pMemId) \ (This)->lpVtbl->GetIDsOfNames(This,rgszNames,cNames,pMemId) #define ITypeInfo_Invoke(This,pvInstance,memid1,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ (This)->lpVtbl->Invoke(This,pvInstance,memid1,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) #define ITypeInfo_GetDocumentation(This,memid1,pBstrName,pBstrDocString,pdwHelpContext,pBstrHelpFile) \ (This)->lpVtbl->GetDocumentation(This,memid1,pBstrName,pBstrDocString,pdwHelpContext,pBstrHelpFile) #define ITypeInfo_GetDllEntry(This,memid1,invKind,pBstrDllName,pBstrName,pwOrdinal) \ (This)->lpVtbl->GetDllEntry(This,memid1,invKind,pBstrDllName,pBstrName,pwOrdinal) #define ITypeInfo_GetRefTypeInfo(This,hRefType,ppTInfo) \ (This)->lpVtbl->GetRefTypeInfo(This,hRefType,ppTInfo) #define ITypeInfo_AddressOfMember(This,memid1,invKind,ppv) \ (This)->lpVtbl->AddressOfMember(This,memid1,invKind,ppv) #define ITypeInfo_CreateInstance(This,pUnkOuter,riid,ppvObj) \ (This)->lpVtbl->CreateInstance(This,pUnkOuter,riid,ppvObj) #define ITypeInfo_GetMops(This,memid1,pBstrMops) \ (This)->lpVtbl->GetMops(This,memid1,pBstrMops) #define ITypeInfo_GetContainingTypeLib(This,ppTLib,pIndex) \ (This)->lpVtbl->GetContainingTypeLib(This,ppTLib,pIndex) #define ITypeInfo_ReleaseTypeAttr(This,pTypeAttr) \ (This)->lpVtbl->ReleaseTypeAttr(This,pTypeAttr) #define ITypeInfo_ReleaseFuncDesc(This,pFuncDesc) \ (This)->lpVtbl->ReleaseFuncDesc(This,pFuncDesc) #define ITypeInfo_ReleaseVarDesc(This,pVarDesc) \ (This)->lpVtbl->ReleaseVarDesc(This,pVarDesc) #endif /*COBJMACROS*/ typedef /*[unique, pointer_default(unique)]*/ ITypeInfo2* LPTYPEINFO2; typedef struct ITypeInfo2Vtbl { void* reserved0; void* reserved1; void* reserved2; HRESULT (__stdcall * GetTypeKind) ( ITypeInfo2* This , /*[ref, out]*/TYPEKIND* pTypeKind ); HRESULT (__stdcall * GetTypeFlags) ( ITypeInfo2* This , /*[ref, out]*/unsigned long* pTypeFlags ); HRESULT (__stdcall * GetFuncIndexOfMemId) ( ITypeInfo2* This , /*[in]*/long memid , /*[in]*/INVOKEKIND invKind , /*[ref, out]*/unsigned long* pFuncIndex ); HRESULT (__stdcall * GetVarIndexOfMemId) ( ITypeInfo2* This , /*[in]*/long memid , /*[ref, out]*/unsigned long* pVarIndex ); HRESULT (__stdcall * GetCustData) ( ITypeInfo2* This , /*[in]*/GUID* guid , /*[ref, out]*/VARIANT* pVarVal ); HRESULT (__stdcall * GetFuncCustData) ( ITypeInfo2* This , /*[in]*/unsigned long index , /*[in]*/GUID* guid , /*[ref, out]*/VARIANT* pVarVal ); HRESULT (__stdcall * GetParamCustData) ( ITypeInfo2* This , /*[in]*/unsigned long indexFunc , /*[in]*/unsigned long indexParam , /*[in]*/GUID* guid , /*[ref, out]*/VARIANT* pVarVal ); HRESULT (__stdcall * GetVarCustData) ( ITypeInfo2* This , /*[in]*/unsigned long index , /*[in]*/GUID* guid , /*[ref, out]*/VARIANT* pVarVal ); HRESULT (__stdcall * GetImplTypeCustData) ( ITypeInfo2* This , /*[in]*/unsigned long index , /*[in]*/GUID* guid , /*[ref, out]*/VARIANT* pVarVal ); HRESULT (__stdcall * GetDocumentation2) ( ITypeInfo2* This , /*[in]*/long memid , /*[in]*/unsigned long lcid , /*[ref, out]*/BSTR* pbstrHelpString , /*[ref, out]*/unsigned long* pdwHelpStringContext , /*[ref, out]*/BSTR* pbstrHelpStringDll ); HRESULT (__stdcall * GetAllCustData) ( ITypeInfo2* This , /*[ref, out]*/CUSTDATA* pCustData ); HRESULT (__stdcall * GetAllFuncCustData) ( ITypeInfo2* This , /*[in]*/unsigned long index , /*[ref, out]*/CUSTDATA* pCustData ); HRESULT (__stdcall * GetAllParamCustData) ( ITypeInfo2* This , /*[in]*/unsigned long indexFunc , /*[in]*/unsigned long indexParam , /*[ref, out]*/CUSTDATA* pCustData ); HRESULT (__stdcall * GetAllVarCustData) ( ITypeInfo2* This , /*[in]*/unsigned long index , /*[ref, out]*/CUSTDATA* pCustData ); HRESULT (__stdcall * GetAllImplTypeCustData) ( ITypeInfo2* This , /*[in]*/unsigned long index , /*[ref, out]*/CUSTDATA* pCustData ); } ITypeInfo2Vtbl; struct ITypeInfo2 { struct ITypeInfo2Vtbl *lpVtbl; }; #ifdef COBJMACROS #define ITypeInfo2_GetTypeKind(This,pTypeKind) \ (This)->lpVtbl->GetTypeKind(This,pTypeKind) #define ITypeInfo2_GetTypeFlags(This,pTypeFlags) \ (This)->lpVtbl->GetTypeFlags(This,pTypeFlags) #define ITypeInfo2_GetFuncIndexOfMemId(This,memid1,invKind,pFuncIndex) \ (This)->lpVtbl->GetFuncIndexOfMemId(This,memid1,invKind,pFuncIndex) #define ITypeInfo2_GetVarIndexOfMemId(This,memid1,pVarIndex) \ (This)->lpVtbl->GetVarIndexOfMemId(This,memid1,pVarIndex) #define ITypeInfo2_GetCustData(This,guid1,pVarVal) \ (This)->lpVtbl->GetCustData(This,guid1,pVarVal) #define ITypeInfo2_GetFuncCustData(This,index,guid1,pVarVal) \ (This)->lpVtbl->GetFuncCustData(This,index,guid1,pVarVal) #define ITypeInfo2_GetParamCustData(This,indexFunc,indexParam,guid1,pVarVal) \ (This)->lpVtbl->GetParamCustData(This,indexFunc,indexParam,guid1,pVarVal) #define ITypeInfo2_GetVarCustData(This,index,guid1,pVarVal) \ (This)->lpVtbl->GetVarCustData(This,index,guid1,pVarVal) #define ITypeInfo2_GetImplTypeCustData(This,index,guid1,pVarVal) \ (This)->lpVtbl->GetImplTypeCustData(This,index,guid1,pVarVal) #define ITypeInfo2_GetDocumentation2(This,memid1,lcid0,pbstrHelpString,pdwHelpStringContext,pbstrHelpStringDll) \ (This)->lpVtbl->GetDocumentation2(This,memid1,lcid0,pbstrHelpString,pdwHelpStringContext,pbstrHelpStringDll) #define ITypeInfo2_GetAllCustData(This,pCustData) \ (This)->lpVtbl->GetAllCustData(This,pCustData) #define ITypeInfo2_GetAllFuncCustData(This,index,pCustData) \ (This)->lpVtbl->GetAllFuncCustData(This,index,pCustData) #define ITypeInfo2_GetAllParamCustData(This,indexFunc,indexParam,pCustData) \ (This)->lpVtbl->GetAllParamCustData(This,indexFunc,indexParam,pCustData) #define ITypeInfo2_GetAllVarCustData(This,index,pCustData) \ (This)->lpVtbl->GetAllVarCustData(This,index,pCustData) #define ITypeInfo2_GetAllImplTypeCustData(This,index,pCustData) \ (This)->lpVtbl->GetAllImplTypeCustData(This,index,pCustData) #endif /*COBJMACROS*/ typedef /*[v1_enum, pointer_default(unique)]*/ /*[v1_enum, pointer_default(unique)]*/enum tagSYSKIND { /*[v1_enum, pointer_default(unique)]*/ SYS_WIN16 = 0, /*[v1_enum, pointer_default(unique)]*/ SYS_WIN32 = 1, /*[v1_enum, pointer_default(unique)]*/ SYS_MAC = 2 } SYSKIND; typedef /*[v1_enum, pointer_default(unique)]*/ /*[v1_enum, pointer_default(unique)]*/enum tagLIBFLAGS { /*[v1_enum, pointer_default(unique)]*/ LIBFLAG_FRESTRICTED = 1, /*[v1_enum, pointer_default(unique)]*/ LIBFLAG_FCONTROL = 2, /*[v1_enum, pointer_default(unique)]*/ LIBFLAG_FHIDDEN = 4, /*[v1_enum, pointer_default(unique)]*/ LIBFLAG_FHASDISKIMAGE = 8 } LIBFLAGS; typedef /*[unique, pointer_default(unique)]*/ ITypeLib* LPTYPELIB; typedef /*[nofree, pointer_default(unique)]*/ /*[nofree, pointer_default(unique)]*/struct tagTLIBATTR { /*[nofree, pointer_default(unique)]*/GUID guid; /*[nofree, pointer_default(unique)]*/unsigned long lcid; /*[nofree, pointer_default(unique)]*/SYSKIND syskind; /*[nofree, pointer_default(unique)]*/unsigned short wMajorVerNum; /*[nofree, pointer_default(unique)]*/unsigned short wMinorVerNum; /*[nofree, pointer_default(unique)]*/unsigned short wLibFlags; } TLIBATTR; typedef /*[nofree]*/ TLIBATTR* LPTLIBATTR; typedef struct ITypeLibVtbl { void* reserved0; void* reserved1; void* reserved2; UINT (__stdcall * GetTypeInfoCount) ( ITypeLib* This ); HRESULT (__stdcall * GetTypeInfo) ( ITypeLib* This , /*[in]*/unsigned long index , /*[ref, out]*/ITypeInfo** ppTInfo ); HRESULT (__stdcall * GetTypeInfoType) ( ITypeLib* This , /*[in]*/unsigned long index , /*[ref, out]*/TYPEKIND* pTKind ); HRESULT (__stdcall * GetTypeInfoOfGuid) ( ITypeLib* This , /*[in]*/GUID* guid , /*[ref, out]*/ITypeInfo** ppTinfo ); HRESULT (__stdcall * GetLibAttr) ( ITypeLib* This , /*[ref, out]*/TLIBATTR** ppTLibAttr ); HRESULT (__stdcall * GetTypeComp) ( ITypeLib* This , /*[ref, out]*/ITypeComp** ppTComp ); HRESULT (__stdcall * GetDocumentation) ( ITypeLib* This , /*[in]*/int index , /*[ref, out]*/BSTR* pBstrName , /*[ref, out]*/BSTR* pBstrDocString , /*[ref, out]*/unsigned long* pdwHelpContext , /*[ref, out]*/BSTR* pBstrHelpFile ); HRESULT (__stdcall * IsName) ( ITypeLib* This , /*[in, out]*/WCHAR* szNameBuf , /*[in]*/unsigned long lHashVal , /*[ref, out]*/long* pfName ); HRESULT (__stdcall * FindName) ( ITypeLib* This , /*[in, out]*/WCHAR* szNameBuf , /*[in]*/unsigned long lHashVal , /*[ref, out, size_is(*pcFound), length_is(*pcFound)]*/ITypeInfo** ppTInfo , /*[ref, out, size_is(*pcFound), length_is(*pcFound)]*/long* rgMemId , /*[in, out]*/unsigned short* pcFound ); void (__stdcall * ReleaseTLibAttr) ( ITypeLib* This , /*[in, ptr]*/TLIBATTR* pTLibAttr ); } ITypeLibVtbl; struct ITypeLib { struct ITypeLibVtbl *lpVtbl; }; #ifdef COBJMACROS #define ITypeLib_GetTypeInfoCount(This) \ (This)->lpVtbl->GetTypeInfoCount(This) #define ITypeLib_GetTypeInfo(This,index,ppTInfo) \ (This)->lpVtbl->GetTypeInfo(This,index,ppTInfo) #define ITypeLib_GetTypeInfoType(This,index,pTKind) \ (This)->lpVtbl->GetTypeInfoType(This,index,pTKind) #define ITypeLib_GetTypeInfoOfGuid(This,guid2,ppTinfo) \ (This)->lpVtbl->GetTypeInfoOfGuid(This,guid2,ppTinfo) #define ITypeLib_GetLibAttr(This,ppTLibAttr) \ (This)->lpVtbl->GetLibAttr(This,ppTLibAttr) #define ITypeLib_GetTypeComp(This,ppTComp) \ (This)->lpVtbl->GetTypeComp(This,ppTComp) #define ITypeLib_GetDocumentation(This,index,pBstrName,pBstrDocString,pdwHelpContext,pBstrHelpFile) \ (This)->lpVtbl->GetDocumentation(This,index,pBstrName,pBstrDocString,pdwHelpContext,pBstrHelpFile) #define ITypeLib_IsName(This,szNameBuf,lHashVal,pfName) \ (This)->lpVtbl->IsName(This,szNameBuf,lHashVal,pfName) #define ITypeLib_FindName(This,szNameBuf,lHashVal,ppTInfo,rgMemId,pcFound) \ (This)->lpVtbl->FindName(This,szNameBuf,lHashVal,ppTInfo,rgMemId,pcFound) #define ITypeLib_ReleaseTLibAttr(This,pTLibAttr) \ (This)->lpVtbl->ReleaseTLibAttr(This,pTLibAttr) #endif /*COBJMACROS*/ typedef /*[unique, pointer_default(unique)]*/ ITypeLib2* LPTYPELIB2; typedef struct ITypeLib2Vtbl { void* reserved0; void* reserved1; void* reserved2; HRESULT (__stdcall * GetCustData) ( ITypeLib2* This , /*[in]*/GUID* guid , /*[ref, out]*/VARIANT* pVarVal ); HRESULT (__stdcall * GetLibStatistics) ( ITypeLib2* This , /*[ref, out]*/unsigned long* pcUniqueNames , /*[ref, out]*/unsigned long* pcchUniqueNames ); HRESULT (__stdcall * GetDocumentation2) ( ITypeLib2* This , /*[in]*/int index , /*[in]*/unsigned long lcid , /*[ref, out]*/BSTR* pbstrHelpString , /*[ref, out]*/unsigned long* pdwHelpStringContext , /*[ref, out]*/BSTR* pbstrHelpStringDll ); HRESULT (__stdcall * GetAllCustData) ( ITypeLib2* This , /*[ref, out]*/CUSTDATA* pCustData ); } ITypeLib2Vtbl; struct ITypeLib2 { struct ITypeLib2Vtbl *lpVtbl; }; #ifdef COBJMACROS #define ITypeLib2_GetCustData(This,guid2,pVarVal) \ (This)->lpVtbl->GetCustData(This,guid2,pVarVal) #define ITypeLib2_GetLibStatistics(This,pcUniqueNames,pcchUniqueNames) \ (This)->lpVtbl->GetLibStatistics(This,pcUniqueNames,pcchUniqueNames) #define ITypeLib2_GetDocumentation2(This,index,lcid1,pbstrHelpString,pdwHelpStringContext,pbstrHelpStringDll) \ (This)->lpVtbl->GetDocumentation2(This,index,lcid1,pbstrHelpString,pdwHelpStringContext,pbstrHelpStringDll) #define ITypeLib2_GetAllCustData(This,pCustData) \ (This)->lpVtbl->GetAllCustData(This,pCustData) #endif /*COBJMACROS*/ typedef /*[unique, pointer_default(unique)]*/ ITypeChangeEvents* LPTYPECHANGEEVENTS; typedef /*[pointer_default(unique)]*/ /*[pointer_default(unique)]*/enum tagCHANGEKIND { /*[pointer_default(unique)]*/ CHANGEKIND_ADDMEMBER = 0, /*[pointer_default(unique)]*/ CHANGEKIND_DELETEMEMBER = 1, /*[pointer_default(unique)]*/ CHANGEKIND_SETNAMES = 2, /*[pointer_default(unique)]*/ CHANGEKIND_SETDOCUMENTATION = 3, /*[pointer_default(unique)]*/ CHANGEKIND_GENERAL = 4, /*[pointer_default(unique)]*/ CHANGEKIND_INVALIDATE = 5, /*[pointer_default(unique)]*/ CHANGEKIND_CHANGEFAILED = 6, /*[pointer_default(unique)]*/ CHANGEKIND_MAX = 7 } CHANGEKIND; typedef struct ITypeChangeEventsVtbl { void* reserved0; void* reserved1; void* reserved2; HRESULT (__stdcall * RequestTypeChange) ( ITypeChangeEvents* This , /*[in]*/CHANGEKIND changeKind , /*[in]*/ITypeInfo* pTInfoBefore , /*[in]*/WCHAR* pStrName , /*[ref, out]*/int* pfCancel ); HRESULT (__stdcall * AfterTypeChange) ( ITypeChangeEvents* This , /*[in]*/CHANGEKIND changeKind , /*[in]*/ITypeInfo* pTInfoAfter , /*[in]*/WCHAR* pStrName ); } ITypeChangeEventsVtbl; struct ITypeChangeEvents { struct ITypeChangeEventsVtbl *lpVtbl; }; #ifdef COBJMACROS #define ITypeChangeEvents_RequestTypeChange(This,changeKind,pTInfoBefore,pStrName,pfCancel) \ (This)->lpVtbl->RequestTypeChange(This,changeKind,pTInfoBefore,pStrName,pfCancel) #define ITypeChangeEvents_AfterTypeChange(This,changeKind,pTInfoAfter,pStrName) \ (This)->lpVtbl->AfterTypeChange(This,changeKind,pTInfoAfter,pStrName) #endif /*COBJMACROS*/ #endif