/* * oaidl.h OLE automation interfaces * * ========================================================================= * * Open Watcom Project * * Copyright (c) 2004-2010 The Open Watcom Contributors. All Rights Reserved. * * This file is automatically generated. Do not edit directly. * * ========================================================================= */ #include #include #ifndef COM_NO_WINDOWS_H #include #include #endif #ifndef __oaidl_h__ #define __oaidl_h__ #ifndef _ENABLE_AUTODEPEND #pragma read_only_file; #endif #include #ifdef __cplusplus extern "C" { #endif /* Forward declarations */ typedef interface IDispatch IDispatch; typedef interface IRecordInfo IRecordInfo; typedef interface ITypeComp ITypeComp; typedef interface ITypeInfo ITypeInfo; typedef interface ITypeLib ITypeLib; /* Primitive data types for automation */ typedef LONG DISPID; typedef DISPID MEMBERID; typedef DWORD HREFTYPE; /* Safe array features */ #define FADF_AUTO 0x0001 #define FADF_STATIC 0x0002 #define FADF_EMBEDDED 0x0004 #define FADF_FIXEDSIZE 0x0010 #define FADF_RECORD 0x0020 #define FADF_HAVEIID 0x0040 #define FADF_HAVEVARTYPE 0x0080 #define FADF_BSTR 0x0100 #define FADF_UNKNOWN 0x0200 #define FADF_DISPATCH 0x0400 #define FADF_VARIANT 0x0800 /* Parameter flags */ #define PARAMFLAG_NONE 0x0000 #define PARAMFLAG_FIN 0x0001 #define PARAMFLAG_FOUT 0x0002 #define PARAMFLAG_FLCID 0x0004 #define PARAMFLAG_FRETVAL 0x0008 #define PARAMFLAG_FOPT 0x0010 #define PARAMFLAG_FHASDEFAULT 0x0020 #define PARAMFLAG_FHASCUSTDATA 0x0040 /* IDL flags */ #define IDLFLAG_NONE PARAMFLAG_NONE #define IDLFLAG_FIN PARAMFLAG_FIN #define IDLFLAG_FOUT PARAMFLAG_FOUT #define IDLFLAG_FLCID PARAMFLAG_FLCID #define IDLFLAG_FRETVAL PARAMFLAG_FRETVAL /* Implementation type flags */ #define IMPLTYPEFLAG_FDEFAULT 0x0001 #define IMPLTYPEFLAG_FSOURCE 0x0002 #define IMPLTYPEFLAG_FRESTRICTED 0x0004 #define IMPLTYPEFLAG_FDEFAULTVTABLE 0x0008 /* Dispatch identifier special values */ #define DISPID_UNKNOWN (-1) #define DISPID_VALUE 0 #define DISPID_PROPERTYPUT (-3) #define DISPID_NEWENUM (-4) #define DISPID_EVALUATE (-5) #define DISPID_CONSTRUCTOR (-6) #define DISPID_DESTRUCTOR (-7) #define DISPID_COLLECT (-8) /* Currency data type */ typedef CY CURRENCY; /* Safe array bound */ typedef struct tagSAFEARRAYBOUND { ULONG cElements; LONG lLbound; } SAFEARRAYBOUND; typedef SAFEARRAYBOUND *LPSAFEARRAYBOUND; /* Safe array types */ typedef enum tagSF_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) } SF_TYPE; /* Safe array */ typedef struct tagSAFEARRAY { USHORT cDims; USHORT fFeatures; ULONG cbElements; ULONG cLocks; PVOID pvData; SAFEARRAYBOUND rgsabound[1]; } SAFEARRAY; typedef SAFEARRAY *LPSAFEARRAY; /* Variant */ #if (__STDC__ && !defined( _FORCENAMELESSUNION )) || defined( NONAMELESSUNION ) #define __VARIANT_NAME_1 n1 #define __VARIANT_NAME_2 n2 #define __VARIANT_NAME_3 n3 #define __VARIANT_NAME_4 brecVal #else #define __tagVARIANT #define __VARIANT_NAME_1 #define __VARIANT_NAME_2 #define __VARIANT_NAME_3 #define __VARIANT_NAME_4 #define __tagBRECORD #endif typedef struct tagVARIANT { union { struct __tagVARIANT { VARTYPE vt; WORD wReserved1; WORD wReserved2; WORD wReserved3; union { LONGLONG llVal; LONG lVal; BYTE bVal; SHORT iVal; FLOAT fltVal; DOUBLE dblVal; VARIANT_BOOL boolVal; SCODE scode; CY cyVal; DATE date; BSTR bstrVal; IUnknown *punkVal; IDispatch *pdispVal; SAFEARRAY *parray; BYTE *pbVal; SHORT *piVal; LONG *plVal; LONGLONG *pllVal; FLOAT *pfltVal; DOUBLE *pdblVal; VARIANT_BOOL *pboolVal; SCODE *pscode; CY *pcyVal; DATE *pdate; BSTR *pbstrVal; IUnknown **ppunkVal; IDispatch **ppdispVal; SAFEARRAY **pparray; struct tagVARIANT *pvarVal; PVOID byref; CHAR cVal; USHORT uiVal; ULONG ulVal; ULONGLONG ullVal; INT intVal; UINT uintVal; DECIMAL *pdecVal; CHAR *pcVal; USHORT *puiVal; ULONG *pulVal; ULONGLONG *pullVal; INT *pintVal; UINT *puintVal; struct __tagBRECORD { PVOID pvRecord; IRecordInfo *pRecInfo; } __VARIANT_NAME_4; } __VARIANT_NAME_3; } __VARIANT_NAME_2; DECIMAL decVal; } __VARIANT_NAME_1; } VARIANT; typedef VARIANT *LPVARIANT; typedef VARIANT VARIANTARG; typedef VARIANT *LPVARIANTARG; #ifdef __cplusplus #define REFVARIANT const VARIANT & #else #define REFVARIANT const VARIANT *const #endif /* Type kinds */ typedef enum tagTYPEKIND { TKIND_ENUM = 0, TKIND_RECORD = 1, TKIND_MODULE = 2, TKIND_INTERFACE = 3, TKIND_DISPATCH = 4, TKIND_COCLASS = 5, TKIND_ALIAS = 6, TKIND_UNION = 7, TKIND_MAX = 8 } TYPEKIND; /* Type descriptor */ typedef struct tagTYPEDESC { union { struct tagTYPEDESC *lptdesc; struct tagARRAYDESC *lpadesc; HREFTYPE hreftype; }; VARTYPE vt; } TYPEDESC; /* Array descriptor */ typedef struct tagARRAYDESC { TYPEDESC tdescElem; USHORT cDims; SAFEARRAYBOUND rgbounds[1]; } ARRAYDESC; /* Parameter descriptor (extended version) */ typedef struct tagPARAMDESCEX { ULONG cBytes; VARIANTARG varDefaultValue; } PARAMDESCEX; typedef PARAMDESCEX *LPPARAMDESCEX; /* Parameter descriptor */ typedef struct tagPARAMDESC { LPPARAMDESCEX pparamdescex; USHORT wParamFlags; } PARAMDESC; typedef PARAMDESC *LPPARAMDESC; /* IDL descriptor */ typedef struct tagIDLDESC { ULONG_PTR dwReserved; USHORT wIDLFlags; } IDLDESC; typedef IDLDESC *LPIDLDESC; /* Element descriptor */ typedef struct tagELEMDESC { TYPEDESC tdesc; union { IDLDESC idldesc; PARAMDESC paramdesc; }; } ELEMDESC; typedef ELEMDESC *LPELEMDESC; /* Type attributes */ typedef struct tagTYPEATTR { GUID guid; LCID lcid; DWORD dwReserved; MEMBERID memidConstructor; MEMBERID memidDestructor; LPOLESTR lpstrSchema; ULONG cbSizeInstance; TYPEKIND typekind; WORD cFuncs; WORD cVars; WORD cImplTypes; WORD cbSizeVft; WORD cbAlignment; WORD wTypeFlags; WORD wMajorVerNum; WORD wMinorVerNum; TYPEDESC tdescAlias; IDLDESC idldescType; } TYPEATTR; typedef TYPEATTR *LPTYPEATTR; /* Dispatch parameters */ typedef struct tagDISPPARAMS { VARIANTARG *rgvarg; DISPID *rgdispidNamedArgs; UINT cArgs; UINT cNamedArgs; } DISPPARAMS; /* Exception information */ 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; typedef EXCEPINFO *LPEXCEPINFO; /* Calling conventions */ typedef enum tagCALLCONV { CC_FASTCALL = 0, CC_CDECL = 1, CC_MSCPASCAL = 2, CC_PASCAL = CC_MSCPASCAL, CC_MACPASCAL = 3, CC_STDCALL = 4, CC_FPFASTCALL = 5, CC_SYSCALL = 6, CC_MPWCDECL = 7, CC_MPWPASCAL = 8, CC_MAX = 9 } CALLCONV; /* Function kinds */ typedef enum tagFUNCKIND { FUNC_VIRTUAL = 0, FUNC_PUREVIRTUAL = 1, FUNC_NONVIRTUAL = 2, FUNC_STATIC = 3, FUNC_DISPATCH = 4 } FUNCKIND; /* Invoke kinds */ typedef enum tagINVOKEKIND { INVOKE_FUNC = 1, INVOKE_PROPERTYGET = 2, INVOKE_PROPERTYPUT = 4, INVOKE_PROPERTYPUTREF = 8 } INVOKEKIND; /* Function descriptor */ typedef struct tagFUNCDESC { MEMBERID memid; SCODE *lprgscode; ELEMDESC *lprgelemdescParam; FUNCKIND funckind; INVOKEKIND invkind; CALLCONV callconv; SHORT cParams; SHORT cParamsOpt; SHORT oVft; SHORT cScodes; ELEMDESC elemdescFunc; WORD wFuncFlags; } FUNCDESC; typedef FUNCDESC *LPFUNCDESC; /* Variable kinds */ typedef enum tagVARKIND { VAR_PERINSTANCE = 0, VAR_STATIC = 1, VAR_CONST = 2, VAR_DISPATCH = 3 } VARKIND; /* Variable descriptor */ typedef struct tagVARDESC { MEMBERID memid; LPOLESTR lpstrSchema; union { ULONG oInst; VARIANT *lpvarValue; }; ELEMDESC elemdescVar; WORD wVarFlags; VARKIND varkind; } VARDESC; typedef VARDESC *LPVARDESC; /* Type flags */ typedef enum tagTYPEFLAGS { TYPEFLAG_FAPPOBJECT = 0x0001, TYPEFLAG_FCANCREATE = 0x0002, TYPEFLAG_FLICENSED = 0x0004, TYPEFLAG_FPREDECLID = 0x0008, TYPEFLAG_FHIDDEN = 0x0010, TYPEFLAG_FCONTROL = 0x0020, TYPEFLAG_FDUAL = 0x0040, TYPEFLAG_FNONEXTENSIBLE = 0x0080, TYPEFLAG_FOLEAUTOMATION = 0x0100, TYPEFLAG_FRESTRICTED = 0x0200, TYPEFLAG_FAGGREGATABLE = 0x0400, TYPEFLAG_FREPLACEABLE = 0x0800, TYPEFLAG_FDISPATCHABLE = 0x1000, TYPEFLAG_FREVERSEBIND = 0x2000, TYPEFLAG_FPROXY = 0x4000 } TYPEFLAGS; /* Function flags */ typedef enum tagFUNCFLAGS { FUNCFLAG_FRESTRICTED = 0x0001, FUNCFLAG_FSOURCE = 0x0002, FUNCFLAG_FBINDABLE = 0x0004, FUNCFLAG_FREQUESTEDIT = 0x0008, FUNCFLAG_FDISPLAYBIND = 0x0010, FUNCFLAG_FDEFAULTBIND = 0x0020, FUNCFLAG_FHIDDEN = 0x0040, FUNCFLAG_FUSESGETLASTERROR = 0x0080, FUNCFLAG_FDEFAULTCOLLELEM = 0x0100, FUNCFLAG_FUIDEFAULT = 0x0200, FUNCFLAG_FNONBROWSABLE = 0x0400, FUNCFLAG_FREPLACEABLE = 0x0800, FUNCFLAG_FIMMEDIATEBIND = 0x1000 } FUNCFLAG; /* Variable flags */ typedef enum tagVARFLAGS { VARFLAG_FREADONLY = 0x0001, VARFLAG_FSOURCE = 0x0002, VARFLAG_FBINDABLE = 0x0004, VARFLAG_FREQUESTEDIT = 0x0008, VARFLAG_FDISPLAYBIND = 0x0010, VARFLAG_FDEFAULTBIND = 0x0020, VARFLAG_FHIDDEN = 0x0040, VARFLAG_FRESTRICTED = 0x0080, VARFLAG_FDEFAULTCOLLELEM = 0x0100, VARFLAG_FUIDEFAULT = 0x0200, VARFLAG_FNONBROWSABLE = 0x0400, VARFLAG_FREPLACEABLE = 0x0800, VARFLAG_FIMMEDIATEBIND = 0x1000, } VARFLAGS; /* Clean local storage */ typedef struct tagCLEANLOCALSTORAGE { IUnknown *pInterface; PVOID pStorage; DWORD flags; } CLEANLOCALSTORAGE; /* Custom data item */ typedef struct tagCUSTDATAITEM { GUID guid; VARIANTARG varValue; } CUSTDATAITEM; typedef CUSTDATAITEM *LPCUSTDATAITEM; /* Custom data */ typedef struct tagCUSTDATA { DWORD cCustData; LPCUSTDATAITEM prgCustData; } CUSTDATA; typedef CUSTDATA *LPCUSTDATA; /* Descriptor kinds */ typedef enum tagDESCKIND { DESCKIND_NONE = 0, DESCKIND_FUNCDESC = 1, DESCKIND_VARDESC = 2, DESCKIND_TYPECOMP = 3, DESCKIND_IMPLICITAPPOBJ = 4, DESCKIND_MAX = 5 } DESCKIND; /* Bind pointer */ typedef struct tagBINDPTR { FUNCDESC *lpfuncdesc; VARDESC *lpvardesc; ITypeComp *lptcomp; } BINDPTR; typedef BINDPTR *LPBINDPTR; /* System kinds */ typedef enum tagSYSKIND { SYS_WIN16 = 0, SYS_WIN32 = 1, SYS_MAC = 2, SYS_WIN64 = 3 } SYSKIND; /* Library flags */ typedef enum tagLIBFLAGS { LIBFLAG_FRESTRICTED = 0x0001, LIBFLAG_FCONTROL = 0x0002, LIBFLAG_FHIDDEN = 0x0004, LIBFLAG_FHASDISKIMAGE = 0x0008 } LIBFLAGS; /* Type library attribute */ typedef struct tagTLIBATTR { GUID guid; LCID lcid; SYSKIND syskind; WORD wMajorVerNum; WORD wMinorVerNum; WORD wLibFlags; } TLIBATTR; typedef TLIBATTR *LPTLIBATTR; /* Change kinds */ typedef enum tagCHANGEKIND { CHANGEKIND_ADDMEMBER = 0, CHANGEKIND_DELETEMEMBER = 1, CHANGEKIND_SETNAMES = 2, CHANGEKIND_SETDOCUMENTATION = 3, CHANGEKIND_GENERAL = 4, CHANGEKIND_INVALIDATE = 5, CHANGEKIND_CHANGEFAILED = 6, CHANGEKIND_MAX = 7 } CHANGEKIND; /* GUIDs */ EXTERN_C const IID IID_ICreateTypeInfo; EXTERN_C const IID IID_ICreateTypeInfo2; EXTERN_C const IID IID_ICreateTypeLib; EXTERN_C const IID IID_ICreateTypeLib2; EXTERN_C const IID IID_IDispatch; EXTERN_C const IID IID_IEnumVARIANT; EXTERN_C const IID IID_ITypeComp; EXTERN_C const IID IID_ITypeInfo; EXTERN_C const IID IID_ITypeInfo2; EXTERN_C const IID IID_ITypeLib; EXTERN_C const IID IID_ITypeLib2; EXTERN_C const IID IID_ITypeChangeEvents; EXTERN_C const IID IID_IErrorInfo; EXTERN_C const IID IID_ICreateErrorInfo; EXTERN_C const IID IID_ISupportErrorInfo; EXTERN_C const IID IID_ITypeFactory; EXTERN_C const IID IID_ITypeMarshal; EXTERN_C const IID IID_IRecordInfo; EXTERN_C const IID IID_IErrorLog; EXTERN_C const IID IID_IPropertyBag; /* ICreateTypeInfo interface */ #undef INTERFACE #define INTERFACE ICreateTypeInfo DECLARE_INTERFACE_( ICreateTypeInfo, IUnknown ) { /* IUnknown methods */ STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE; STDMETHOD_( ULONG, AddRef )( THIS ) PURE; STDMETHOD_( ULONG, Release )( THIS ) PURE; /* ICreateTypeInfo methods */ STDMETHOD( SetGuid )( THIS_ REFGUID ) PURE; STDMETHOD( SetTypeFlags )( THIS_ UINT ) PURE; STDMETHOD( SetDocString )( THIS_ LPOLESTR ) PURE; STDMETHOD( SetHelpContext )( THIS_ DWORD ) PURE; STDMETHOD( SetVersion )( THIS_ WORD, WORD ) PURE; STDMETHOD( AddRefTypeInfo )( THIS_ ITypeInfo *, HREFTYPE * ) PURE; STDMETHOD( AddFuncDesc )( THIS_ UINT, FUNCDESC * ) PURE; STDMETHOD( AddImplType )( THIS_ UINT, HREFTYPE ) PURE; STDMETHOD( SetImplTypeFlags )( THIS_ UINT, INT ) PURE; STDMETHOD( SetAlignment )( THIS_ WORD ) PURE; STDMETHOD( SetSchema )( THIS_ LPOLESTR ) PURE; STDMETHOD( AddVarDesc )( THIS_ UINT, VARDESC * ) PURE; STDMETHOD( SetFuncAndParamNames )( THIS_ UINT, LPOLESTR *, UINT ) PURE; STDMETHOD( SetVarName )( THIS_ UINT, LPOLESTR ) PURE; STDMETHOD( SetTypeDescAlias )( THIS_ TYPEDESC * ) PURE; STDMETHOD( DefineFuncAsDllEntry )( THIS_ UINT, LPOLESTR, LPOLESTR ) PURE; STDMETHOD( SetFuncDocString )( THIS_ UINT, LPOLESTR ) PURE; STDMETHOD( SetVarDocString )( THIS_ UINT, LPOLESTR ) PURE; STDMETHOD( SetFuncHelpContext )( THIS_ UINT, DWORD ) PURE; STDMETHOD( SetVarHelpContext )( THIS_ UINT, DWORD ) PURE; STDMETHOD( SetMops )( THIS_ UINT, BSTR ) PURE; STDMETHOD( SetTypeIdlDesc )( THIS_ IDLDESC * ) PURE; STDMETHOD( LayOut )( THIS ) PURE; }; typedef ICreateTypeInfo *LPCREATETYPEINFO; /* ICreateTypeInfo2 interface */ #undef INTERFACE #define INTERFACE ICreateTypeInfo2 DECLARE_INTERFACE_( ICreateTypeInfo2, ICreateTypeInfo ) { /* IUnknown methods */ STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE; STDMETHOD_( ULONG, AddRef )( THIS ) PURE; STDMETHOD_( ULONG, Release )( THIS ) PURE; /* ICreateTypeInfo methods */ STDMETHOD( SetGuid )( THIS_ REFGUID ) PURE; STDMETHOD( SetTypeFlags )( THIS_ UINT ) PURE; STDMETHOD( SetDocString )( THIS_ LPOLESTR ) PURE; STDMETHOD( SetHelpContext )( THIS_ DWORD ) PURE; STDMETHOD( SetVersion )( THIS_ WORD, WORD ) PURE; STDMETHOD( AddRefTypeInfo )( THIS_ ITypeInfo *, HREFTYPE * ) PURE; STDMETHOD( AddFuncDesc )( THIS_ UINT, FUNCDESC * ) PURE; STDMETHOD( AddImplType )( THIS_ UINT, HREFTYPE ) PURE; STDMETHOD( SetImplTypeFlags )( THIS_ UINT, INT ) PURE; STDMETHOD( SetAlignment )( THIS_ WORD ) PURE; STDMETHOD( SetSchema )( THIS_ LPOLESTR ) PURE; STDMETHOD( AddVarDesc )( THIS_ UINT, VARDESC * ) PURE; STDMETHOD( SetFuncAndParamNames )( THIS_ UINT, LPOLESTR *, UINT ) PURE; STDMETHOD( SetVarName )( THIS_ UINT, LPOLESTR ) PURE; STDMETHOD( SetTypeDescAlias )( THIS_ TYPEDESC * ) PURE; STDMETHOD( DefineFuncAsDllEntry )( THIS_ UINT, LPOLESTR, LPOLESTR ) PURE; STDMETHOD( SetFuncDocString )( THIS_ UINT, LPOLESTR ) PURE; STDMETHOD( SetVarDocString )( THIS_ UINT, LPOLESTR ) PURE; STDMETHOD( SetFuncHelpContext )( THIS_ UINT, DWORD ) PURE; STDMETHOD( SetVarHelpContext )( THIS_ UINT, DWORD ) PURE; STDMETHOD( SetMops )( THIS_ UINT, BSTR ) PURE; STDMETHOD( SetTypeIdlDesc )( THIS_ IDLDESC * ) PURE; STDMETHOD( LayOut )( THIS ) PURE; /* ICreateTypeInfo2 methods */ STDMETHOD( DeleteFuncDesc )( THIS_ UINT ) PURE; STDMETHOD( DeleteFuncDescByMemId )( THIS_ MEMBERID, INVOKEKIND ) PURE; STDMETHOD( DeleteVarDesc )( THIS_ UINT ) PURE; STDMETHOD( DeleteVarDescByMemId )( THIS_ MEMBERID ) PURE; STDMETHOD( DeleteImplType )( THIS_ UINT ) PURE; STDMETHOD( SetCustData )( THIS_ REFGUID, VARIANT * ) PURE; STDMETHOD( SetFuncCustData )( THIS_ UINT, REFGUID, VARIANT * ) PURE; STDMETHOD( SetParamCustData )( THIS_ UINT, UINT, REFGUID, VARIANT * ) PURE; STDMETHOD( SetVarCustData )( THIS_ UINT, REFGUID, VARIANT * ) PURE; STDMETHOD( SetImplTypeCustData )( THIS_ UINT, REFGUID, VARIANT * ) PURE; STDMETHOD( SetHelpStringContext )( THIS_ ULONG ) PURE; STDMETHOD( SetFuncHelpStringContext )( THIS_ UINT, ULONG ) PURE; STDMETHOD( SetVarHelpStringContext )( THIS_ UINT, ULONG ) PURE; STDMETHOD( Invalidate )( THIS ) PURE; STDMETHOD( SetName )( THIS_ LPOLESTR ) PURE; }; typedef ICreateTypeInfo2 *LPCREATETYPEINFO2; /* ICreateTypeLib interface */ #undef INTERFACE #define INTERFACE ICreateTypeLib DECLARE_INTERFACE_( ICreateTypeLib, IUnknown ) { /* IUnknown methods */ STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE; STDMETHOD_( ULONG, AddRef )( THIS ) PURE; STDMETHOD_( ULONG, Release )( THIS ) PURE; /* ICreateTypeLib methods */ STDMETHOD( CreateTypeInfo )( THIS_ LPOLESTR, TYPEKIND, ICreateTypeInfo ** ) PURE; STDMETHOD( SetName )( THIS_ LPOLESTR ) PURE; STDMETHOD( SetVersion )( THIS_ WORD, WORD ) PURE; STDMETHOD( SetGuid )( THIS_ REFGUID ) PURE; STDMETHOD( SetDocString )( THIS_ LPOLESTR ) PURE; STDMETHOD( SetHelpFileName )( THIS_ LPOLESTR ) PURE; STDMETHOD( SetHelpContext )( THIS_ DWORD ) PURE; STDMETHOD( SetLcid )( THIS_ LCID ) PURE; STDMETHOD( SetLibFlags )( THIS_ UINT ) PURE; STDMETHOD( SaveAllChanges )( THIS ) PURE; }; typedef ICreateTypeLib *LPCREATETYPELIB; /* ICreateTypeLib2 interface */ #undef INTERFACE #define INTERFACE ICreateTypeLib2 DECLARE_INTERFACE_( ICreateTypeLib2, IUnknown ) { /* IUnknown methods */ STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE; STDMETHOD_( ULONG, AddRef )( THIS ) PURE; STDMETHOD_( ULONG, Release )( THIS ) PURE; /* ICreateTypeLib methods */ STDMETHOD( CreateTypeInfo )( THIS_ LPOLESTR, TYPEKIND, ICreateTypeInfo ** ) PURE; STDMETHOD( SetName )( THIS_ LPOLESTR ) PURE; STDMETHOD( SetVersion )( THIS_ WORD, WORD ) PURE; STDMETHOD( SetGuid )( THIS_ REFGUID ) PURE; STDMETHOD( SetDocString )( THIS_ LPOLESTR ) PURE; STDMETHOD( SetHelpFileName )( THIS_ LPOLESTR ) PURE; STDMETHOD( SetHelpContext )( THIS_ DWORD ) PURE; STDMETHOD( SetLcid )( THIS_ LCID ) PURE; STDMETHOD( SetLibFlags )( THIS_ UINT ) PURE; STDMETHOD( SaveAllChanges )( THIS ) PURE; /* ICreateTypeLib2 methods */ STDMETHOD( DeleteTypeInfo )( THIS_ LPOLESTR ) PURE; STDMETHOD( SetCustData )( THIS_ REFGUID, VARIANT * ) PURE; STDMETHOD( SetHelpStringContext )( THIS_ ULONG ) PURE; STDMETHOD( SetHelpStringDll )( THIS_ LPOLESTR ) PURE; }; typedef ICreateTypeLib2 *LPCREATETYPELIB2; /* IDispatch interface */ #undef INTERFACE #define INTERFACE IDispatch DECLARE_INTERFACE_( IDispatch, IUnknown ) { /* IUnknown methods */ STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE; STDMETHOD_( ULONG, AddRef )( THIS ) PURE; STDMETHOD_( ULONG, Release )( THIS ) PURE; /* IDispatch methods */ STDMETHOD( GetTypeInfoCount )( THIS_ UINT * ) PURE; STDMETHOD( GetTypeInfo )( THIS_ UINT, LCID, ITypeInfo ** ) PURE; STDMETHOD( GetIDsOfNames )( THIS_ REFIID, LPOLESTR *, UINT, LCID, DISPID * ) PURE; STDMETHOD( Invoke )( THIS_ DISPID, REFIID, LCID, WORD, DISPPARAMS *, VARIANT *, EXCEPINFO *, UINT * ) PURE; }; typedef IDispatch *LPDISPATCH; /* IEnumVARIANT interface */ #undef INTERFACE #define INTERFACE IEnumVARIANT DECLARE_INTERFACE_( IEnumVARIANT, IUnknown ) { /* IUnknown methods */ STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE; STDMETHOD_( ULONG, AddRef )( THIS ) PURE; STDMETHOD_( ULONG, Release )( THIS ) PURE; /* IEnumVARIANT methods */ STDMETHOD( Next )( THIS_ ULONG, VARIANT *, ULONG * ) PURE; STDMETHOD( Skip )( THIS_ ULONG ) PURE; STDMETHOD( Reset )( THIS ) PURE; STDMETHOD( Clone )( THIS_ IEnumVARIANT ** ) PURE; }; typedef IEnumVARIANT *LPENUMVARIANT; /* ITypeComp interface */ #undef INTERFACE #define INTERFACE ITypeComp DECLARE_INTERFACE_( ITypeComp, IUnknown ) { /* IUnknown methods */ STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE; STDMETHOD_( ULONG, AddRef )( THIS ) PURE; STDMETHOD_( ULONG, Release )( THIS ) PURE; /* ITypeComp methods */ STDMETHOD( Bind )( THIS_ LPOLESTR, ULONG, WORD, ITypeInfo **, DESCKIND *, BINDPTR * ) PURE; STDMETHOD( BindType )( THIS_ LPOLESTR, ULONG, ITypeInfo **, ITypeComp ** ) PURE; }; typedef ITypeComp *LPTYPECOMP; /* ITypeInfo interface */ #undef INTERFACE #define INTERFACE ITypeInfo DECLARE_INTERFACE_( ITypeInfo, IUnknown ) { /* IUnknown methods */ STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE; STDMETHOD_( ULONG, AddRef )( THIS ) PURE; STDMETHOD_( ULONG, Release )( THIS ) PURE; /* ITypeInfo methods */ STDMETHOD( GetTypeAttr )( THIS_ TYPEATTR ** ) PURE; STDMETHOD( GetTypeComp )( THIS_ ITypeComp ** ) PURE; STDMETHOD( GetFuncDesc )( THIS_ UINT, FUNCDESC ** ) PURE; STDMETHOD( GetVarDesc )( THIS_ UINT, VARDESC ** ) PURE; STDMETHOD( GetNames )( THIS_ MEMBERID, BSTR *, UINT, UINT * ) PURE; STDMETHOD( GetRefTypeOfImplType )( THIS_ UINT, HREFTYPE * ) PURE; STDMETHOD( GetImplTypeFlags )( THIS_ UINT, INT * ) PURE; STDMETHOD( GetIDsOfNames )( THIS_ LPOLESTR *, UINT, MEMBERID * ) PURE; STDMETHOD( Invoke )( THIS_ PVOID, MEMBERID, WORD, DISPPARAMS *, VARIANT *, EXCEPINFO *, UINT * ) PURE; STDMETHOD( GetDocumentation )( THIS_ MEMBERID, BSTR *, BSTR *, DWORD *, BSTR * ) PURE; STDMETHOD( GetDllEntry )( THIS_ MEMBERID, INVOKEKIND, BSTR *, BSTR *, WORD * ) PURE; STDMETHOD( GetRefTypeInfo )( THIS_ HREFTYPE, ITypeInfo ** ) PURE; STDMETHOD( AddressOfMember )( THIS_ MEMBERID, INVOKEKIND, PVOID * ) PURE; STDMETHOD( CreateInstance )( THIS_ IUnknown *, REFIID, PVOID * ) PURE; STDMETHOD( GetMops )( THIS_ MEMBERID, BSTR * ) PURE; STDMETHOD( GetContainingTypeLib )( THIS_ ITypeLib **, UINT * ) PURE; STDMETHOD_( void, ReleaseTypeAttr )( THIS_ TYPEATTR * ) PURE; STDMETHOD_( void, ReleaseFuncDesc )( THIS_ FUNCDESC * ) PURE; STDMETHOD_( void, ReleaseVarDesc )( THIS_ VARDESC * ) PURE; }; typedef ITypeInfo *LPTYPEINFO; /* ITypeInfo2 interface */ #undef INTERFACE #define INTERFACE ITypeInfo2 DECLARE_INTERFACE_( ITypeInfo2, ITypeInfo ) { /* IUnknown methods */ STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE; STDMETHOD_( ULONG, AddRef )( THIS ) PURE; STDMETHOD_( ULONG, Release )( THIS ) PURE; /* ITypeInfo methods */ STDMETHOD( GetTypeAttr )( THIS_ TYPEATTR ** ) PURE; STDMETHOD( GetTypeComp )( THIS_ ITypeComp ** ) PURE; STDMETHOD( GetFuncDesc )( THIS_ UINT, FUNCDESC ** ) PURE; STDMETHOD( GetVarDesc )( THIS_ UINT, VARDESC ** ) PURE; STDMETHOD( GetNames )( THIS_ MEMBERID, BSTR *, UINT, UINT * ) PURE; STDMETHOD( GetRefTypeOfImplType )( THIS_ UINT, HREFTYPE * ) PURE; STDMETHOD( GetImplTypeFlags )( THIS_ UINT, INT * ) PURE; STDMETHOD( GetIDsOfNames )( THIS_ LPOLESTR *, UINT, MEMBERID * ) PURE; STDMETHOD( Invoke )( THIS_ PVOID, MEMBERID, WORD, DISPPARAMS *, VARIANT *, EXCEPINFO *, UINT * ) PURE; STDMETHOD( GetDocumentation )( THIS_ MEMBERID, BSTR *, BSTR *, DWORD *, BSTR * ) PURE; STDMETHOD( GetDllEntry )( THIS_ MEMBERID, INVOKEKIND, BSTR *, BSTR *, WORD * ) PURE; STDMETHOD( GetRefTypeInfo )( THIS_ HREFTYPE, ITypeInfo ** ) PURE; STDMETHOD( AddressOfMember )( THIS_ MEMBERID, INVOKEKIND, PVOID * ) PURE; STDMETHOD( CreateInstance )( THIS_ IUnknown *, REFIID, PVOID * ) PURE; STDMETHOD( GetMops )( THIS_ MEMBERID, BSTR * ) PURE; STDMETHOD( GetContainingTypeLib )( THIS_ ITypeLib **, UINT * ) PURE; STDMETHOD_( void, ReleaseTypeAttr )( THIS_ TYPEATTR * ) PURE; STDMETHOD_( void, ReleaseFuncDesc )( THIS_ FUNCDESC * ) PURE; STDMETHOD_( void, ReleaseVarDesc )( THIS_ VARDESC * ) PURE; /* ITypeInfo2 methods */ STDMETHOD( GetTypeKind )( THIS_ TYPEKIND * ) PURE; STDMETHOD( GetTypeFlags )( THIS_ ULONG * ) PURE; STDMETHOD( GetFuncIndexOfMemId )( THIS_ MEMBERID, INVOKEKIND, UINT * ) PURE; STDMETHOD( GetVarIndexOfMemId )( THIS_ MEMBERID, UINT * ) PURE; STDMETHOD( GetCustData )( THIS_ REFGUID, VARIANT * ) PURE; STDMETHOD( GetFuncCustData )( THIS_ UINT, REFGUID, VARIANT * ) PURE; STDMETHOD( GetParamCustData )( THIS_ UINT, UINT, REFGUID, VARIANT * ) PURE; STDMETHOD( GetVarCustData )( THIS_ UINT, REFGUID, VARIANT * ) PURE; STDMETHOD( GetImplTypeCustData )( THIS_ UINT, REFGUID, VARIANT * ) PURE; STDMETHOD( GetDocumentation2 )( THIS_ MEMBERID, LCID, BSTR *, DWORD *, BSTR * ) PURE; STDMETHOD( GetAllCustData )( THIS_ CUSTDATA * ) PURE; STDMETHOD( GetAllFuncCustData )( THIS_ UINT, CUSTDATA * ) PURE; STDMETHOD( GetAllParamCustData )( THIS_ UINT, UINT, CUSTDATA * ) PURE; STDMETHOD( GetAllVarCustData )( THIS_ UINT, CUSTDATA * ) PURE; STDMETHOD( GetAllImplTypeCustData )( THIS_ UINT, CUSTDATA * ) PURE; }; typedef ITypeInfo2 *LPTYPEINFO2; /* ITypeLib interface */ #undef INTERFACE #define INTERFACE ITypeLib DECLARE_INTERFACE_( ITypeLib, IUnknown ) { /* IUnknown methods */ STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE; STDMETHOD_( ULONG, AddRef )( THIS ) PURE; STDMETHOD_( ULONG, Release )( THIS ) PURE; /* ITypeLib methods */ STDMETHOD_( UINT, GetTypeInfoCount )( THIS ) PURE; STDMETHOD( GetTypeInfo )( THIS_ UINT, ITypeInfo ** ) PURE; STDMETHOD( GetTypeInfoType )( THIS_ UINT, TYPEKIND * ) PURE; STDMETHOD( GetTypeInfoOfGuid )( THIS_ REFGUID, ITypeInfo ** ) PURE; STDMETHOD( GetLibAttr )( THIS_ TLIBATTR ** ) PURE; STDMETHOD( GetTypeComp )( THIS_ ITypeComp ** ) PURE; STDMETHOD( GetDocumentation )( THIS_ INT, BSTR *, BSTR *, DWORD *, BSTR * ) PURE; STDMETHOD( IsName )( THIS_ LPOLESTR, ULONG, BOOL * ) PURE; STDMETHOD( FindName )( THIS_ LPOLESTR, ULONG, ITypeInfo **, MEMBERID *, USHORT * ) PURE; STDMETHOD_( void, ReleaseTLibAttr )( THIS_ TLIBATTR * ) PURE; }; typedef ITypeLib *LPTYPELIB; /* ITypeLib2 interface */ #undef INTERFACE #define INTERFACE ITypeLib2 DECLARE_INTERFACE_( ITypeLib2, ITypeLib ) { /* IUnknown methods */ STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE; STDMETHOD_( ULONG, AddRef )( THIS ) PURE; STDMETHOD_( ULONG, Release )( THIS ) PURE; /* ITypeLib methods */ STDMETHOD_( UINT, GetTypeInfoCount )( THIS ) PURE; STDMETHOD( GetTypeInfo )( THIS_ UINT, ITypeInfo ** ) PURE; STDMETHOD( GetTypeInfoType )( THIS_ UINT, TYPEKIND * ) PURE; STDMETHOD( GetTypeInfoOfGuid )( THIS_ REFGUID, ITypeInfo ** ) PURE; STDMETHOD( GetLibAttr )( THIS_ TLIBATTR ** ) PURE; STDMETHOD( GetTypeComp )( THIS_ ITypeComp ** ) PURE; STDMETHOD( GetDocumentation )( THIS_ INT, BSTR *, BSTR *, DWORD *, BSTR * ) PURE; STDMETHOD( IsName )( THIS_ LPOLESTR, ULONG, BOOL * ) PURE; STDMETHOD( FindName )( THIS_ LPOLESTR, ULONG, ITypeInfo **, MEMBERID *, USHORT * ) PURE; STDMETHOD_( void, ReleaseTLibAttr )( THIS_ TLIBATTR * ) PURE; /* ITypeLib2 methods */ STDMETHOD( GetCustData )( THIS_ REFGUID, VARIANT * ) PURE; STDMETHOD( GetLibStatistics )( THIS_ ULONG *, ULONG * ) PURE; STDMETHOD( GetDocumentation2 )( THIS_ INT, LCID, BSTR *, DWORD *, BSTR * ) PURE; STDMETHOD( GetAllCustData )( THIS_ CUSTDATA * ) PURE; }; typedef ITypeLib2 *LPTYPELIB2; /* ITypeChangeEvents interface */ #undef INTERFACE #define INTERFACE ITypeChangeEvents DECLARE_INTERFACE_( ITypeChangeEvents, IUnknown ) { /* IUnknown methods */ STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE; STDMETHOD_( ULONG, AddRef )( THIS ) PURE; STDMETHOD_( ULONG, Release )( THIS ) PURE; /* ITypeChangeEvents methods */ STDMETHOD( RequestTypeChange )( THIS_ CHANGEKIND, ITypeInfo *, LPOLESTR, INT * ) PURE; STDMETHOD( AfterTypeChange )( THIS_ CHANGEKIND, ITypeInfo *, LPOLESTR ) PURE; }; typedef ITypeChangeEvents *LPTYPECHANGEEVENTS; /* IErrorInfo interface */ #undef INTERFACE #define INTERFACE IErrorInfo DECLARE_INTERFACE_( IErrorInfo, IUnknown ) { /* IUnknown methods */ STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE; STDMETHOD_( ULONG, AddRef )( THIS ) PURE; STDMETHOD_( ULONG, Release )( THIS ) PURE; /* IErrorInfo methods */ STDMETHOD( GetGUID )( THIS_ GUID * ) PURE; STDMETHOD( GetSource )( THIS_ BSTR * ) PURE; STDMETHOD( GetDescription )( THIS_ BSTR * ) PURE; STDMETHOD( GetHelpFile )( THIS_ BSTR * ) PURE; STDMETHOD( GetHelpContext )( THIS_ DWORD * ) PURE; }; typedef IErrorInfo *LPERRORINFO; /* ICreateErrorInfo interface */ #undef INTERFACE #define INTERFACE ICreateErrorInfo DECLARE_INTERFACE_( ICreateErrorInfo, IUnknown ) { /* IUnknown methods */ STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE; STDMETHOD_( ULONG, AddRef )( THIS ) PURE; STDMETHOD_( ULONG, Release )( THIS ) PURE; /* ICreateErrorInfo methods */ STDMETHOD( SetGUID )( THIS_ REFGUID ) PURE; STDMETHOD( SetSource )( THIS_ LPOLESTR ) PURE; STDMETHOD( SetDescription )( THIS_ LPOLESTR ) PURE; STDMETHOD( SetHelpFile )( THIS_ LPOLESTR ) PURE; STDMETHOD( SetHelpContext )( THIS_ DWORD ) PURE; }; typedef ICreateErrorInfo *LPCREATEERRORINFO; /* ISupportErrorInfo interface */ #undef INTERFACE #define INTERFACE ISupportErrorInfo DECLARE_INTERFACE_( ISupportErrorInfo, IUnknown ) { /* IUnknown methods */ STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE; STDMETHOD_( ULONG, AddRef )( THIS ) PURE; STDMETHOD_( ULONG, Release )( THIS ) PURE; /* ISupportErrorInfo methods */ STDMETHOD( InterfaceSupportsErrorInfo )( THIS_ REFIID ) PURE; }; typedef ISupportErrorInfo *LPSUPPORTERRORINFO; /* ITypeFactory interface */ #undef INTERFACE #define INTERFACE ITypeFactory DECLARE_INTERFACE_( ITypeFactory, IUnknown ) { /* IUnknown methods */ STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE; STDMETHOD_( ULONG, AddRef )( THIS ) PURE; STDMETHOD_( ULONG, Release )( THIS ) PURE; /* ITypeFactory methods */ STDMETHOD( CreateFromTypeInfo )( THIS_ ITypeInfo *, REFIID, IUnknown ** ) PURE; }; /* ITypeMarshal interface */ #undef INTERFACE #define INTERFACE ITypeMarshal DECLARE_INTERFACE_( ITypeMarshal, IUnknown ) { /* IUnknown methods */ STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE; STDMETHOD_( ULONG, AddRef )( THIS ) PURE; STDMETHOD_( ULONG, Release )( THIS ) PURE; /* ITypeMarshal methods */ STDMETHOD( Size )( THIS_ PVOID, DWORD, PVOID, ULONG * ) PURE; STDMETHOD( Marshal )( THIS_ PVOID, DWORD, PVOID, ULONG, BYTE *, ULONG * ) PURE; STDMETHOD( Unmarshal )( THIS_ PVOID, DWORD, ULONG, BYTE *, ULONG * ) PURE; STDMETHOD( Free )( THIS_ PVOID ) PURE; }; /* IRecordInfo interface */ #undef INTERFACE #define INTERFACE IRecordInfo DECLARE_INTERFACE_( IRecordInfo, IUnknown ) { /* IUnknown methods */ STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE; STDMETHOD_( ULONG, AddRef )( THIS ) PURE; STDMETHOD_( ULONG, Release )( THIS ) PURE; /* IRecordInfo methods */ STDMETHOD( RecordInit )( THIS_ PVOID ) PURE; STDMETHOD( RecordClear )( THIS_ PVOID ) PURE; STDMETHOD( RecordCopy )( THIS_ PVOID, PVOID ) PURE; STDMETHOD( GetGuid )( THIS_ GUID * ) PURE; STDMETHOD( GetName )( THIS_ BSTR * ) PURE; STDMETHOD( GetSize )( THIS_ ULONG * ) PURE; STDMETHOD( GetTypeInfo )( THIS_ ITypeInfo ** ) PURE; STDMETHOD( GetField )( THIS_ PVOID, LPCOLESTR, VARIANT * ) PURE; STDMETHOD( GetFieldNoCopy )( THIS_ PVOID, LPCOLESTR, VARIANT *, PVOID * ) PURE; STDMETHOD( PutField )( THIS_ ULONG, PVOID, LPCOLESTR, VARIANT * ) PURE; STDMETHOD( PutFieldNoCopy )( THIS_ ULONG, PVOID, LPCOLESTR, VARIANT * ) PURE; STDMETHOD( GetFieldNames )( THIS_ ULONG *, BSTR * ) PURE; STDMETHOD_( BOOL, IsMatchingType )( THIS_ IRecordInfo * ) PURE; STDMETHOD_( PVOID, RecordCreate )( THIS ) PURE; STDMETHOD( RecordCreateCopy )( THIS_ PVOID, PVOID * ) PURE; STDMETHOD( RecordDestroy )( THIS_ PVOID ) PURE; }; typedef IRecordInfo *LPRECORDINFO; /* IErrorLog interface */ #undef INTERFACE #define INTERFACE IErrorLog DECLARE_INTERFACE_( IErrorLog, IUnknown ) { /* IUnknown methods */ STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE; STDMETHOD_( ULONG, AddRef )( THIS ) PURE; STDMETHOD_( ULONG, Release )( THIS ) PURE; /* IErrorLog methods */ STDMETHOD( AddError )( THIS_ LPCOLESTR, EXCEPINFO * ) PURE; }; typedef IErrorLog *LPERRORLOG; /* IPropertyBag interface */ #undef INTERFACE #define INTERFACE IPropertyBag DECLARE_INTERFACE_( IPropertyBag, IUnknown ) { /* IUnknown methods */ STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE; STDMETHOD_( ULONG, AddRef )( THIS ) PURE; STDMETHOD_( ULONG, Release )( THIS ) PURE; /* IPropertyBag methods */ STDMETHOD( Read )( THIS_ LPCOLESTR, VARIANT *, IErrorLog * ) PURE; STDMETHOD( Write )( THIS_ LPCOLESTR, VARIANT * ) PURE; }; typedef IPropertyBag *LPPROPERTYBAG; /* C object macros */ #if (!defined( __cplusplus ) || defined( CINTERFACE )) && defined( COBJMACROS ) #define ICreateTypeInfo_QueryInterface( x, p1, p2 ) \ (x)->lpVtbl->QueryInterface( x, p1, p2 ) #define ICreateTypeInfo_AddRef( x ) \ (x)->lpVtbl->AddRef( x ) #define ICreateTypeInfo_Release( x ) \ (x)->lpVtbl->Release( x ) #define ICreateTypeInfo_SetGuid( x, p ) \ (x)->lpVtbl->SetGuid( x, p ) #define ICreateTypeInfo_SetTypeFlags( x, p ) \ (x)->lpVtbl->SetTypeFlags( x, p ) #define ICreateTypeInfo_SetDocString( x, p ) \ (x)->lpVtbl->SetDocString( x, p ) #define ICreateTypeInfo_SetHelpContext( x, p ) \ (x)->lpVtbl->SetHelpContext( x, p ) #define ICreateTypeInfo_SetVersion( x, p1, p2 ) \ (x)->lpVtbl->SetVersion( x, p1, p2 ) #define ICreateTypeInfo_AddRefTypeInfo( x, p1, p2 ) \ (x)->lpVtbl->AddRefTypeInfo( x, p1, p2 ) #define ICreateTypeInfo_AddFuncDesc( x, p1, p2 ) \ (x)->lpVtbl->AddFuncDesc( x, p1, p2 ) #define ICreateTypeInfo_AddImplDesc( x, p1, p2 ) \ (x)->lpVtbl->AddImplDesc( x, p1, p2 ) #define ICreateTypeInfo_SetImplTypeFlags( x, p1, p2 ) \ (x)->lpVtbl->SetImplTypeFlags( x, p1, p2 ) #define ICreateTypeInfo_SetAlignment( x, p ) \ (x)->lpVtbl->SetAlignment( x, p ) #define ICreateTypeInfo_SetSchema( x, p ) \ (x)->lpVtbl->SetSchema( x, p ) #define ICreateTypeInfo_AddVarDesc( x, p1, p2 ) \ (x)->lpVtbl->AddVarDesc( x, p1, p2 ) #define ICreateTypeInfo_SetFuncAndParamNames( x, p1, p2, p3 ) \ (x)->lpVtbl->SetFuncAndParamNames( x, p1, p2, p3 ) #define ICreateTypeInfo_SetVarName( x, p1, p2 ) \ (x)->lpVtbl->SetVarName( x, p1, p2 ) #define ICreateTypeInfo_SetTypeDescAlias( x, p ) \ (x)->lpVtbl->SetTypeDescAlias( x, p ) #define ICreateTypeInfo_DefineFuncAsDllEntry( x, p1, p2, p3 ) \ (x)->lpVtbl->DefineFuncAsDllEntry( x, p1, p2, p3 ) #define ICreateTypeInfo_SetFuncDocString( x, p1, p2 ) \ (x)->lpVtbl->SetFuncDocString( x, p1, p2 ) #define ICreateTypeInfo_SetVarDocString( x, p1, p2 ) \ (x)->lpVtbl->SetVarDocString( x, p1, p2 ) #define ICreateTypeInfo_SetFuncHelpContext( x, p1, p2 ) \ (x)->lpVtbl->SetFuncHelpContext( x, p1, p2 ) #define ICreateTypeInfo_SetVarHelpContext( x, p1, p2 ) \ (x)->lpVtbl->SetVarHelpContext( x, p1, p2 ) #define ICreateTypeInfo_SetMops( x, p1, p2 ) \ (x)->lpVtbl->SetMops( x, p1, p2 ) #define ICreateTypeInfo_SetTypeIdldesc( x, p ) \ (x)->lpVtbl->SetTypeIdldesc( x, p ) #define ICreateTypeInfo_LayOut( x ) \ (x)->lpVtbl->LayOut( x ) #define ICreateTypeInfo2_QueryInterface( x, p1, p2 ) \ (x)->lpVtbl->QueryInterface( x, p1, p2 ) #define ICreateTypeInfo2_AddRef( x ) \ (x)->lpVtbl->AddRef( x ) #define ICreateTypeInfo2_Release( x ) \ (x)->lpVtbl->Release( x ) #define ICreateTypeInfo2_SetGuid( x, p ) \ (x)->lpVtbl->SetGuid( x, p ) #define ICreateTypeInfo2_SetTypeFlags( x, p ) \ (x)->lpVtbl->SetTypeFlags( x, p ) #define ICreateTypeInfo2_SetDocString( x, p ) \ (x)->lpVtbl->SetDocString( x, p ) #define ICreateTypeInfo2_SetHelpContext( x, p ) \ (x)->lpVtbl->SetHelpContext( x, p ) #define ICreateTypeInfo2_SetVersion( x, p1, p2 ) \ (x)->lpVtbl->SetVersion( x, p1, p2 ) #define ICreateTypeInfo2_AddRefTypeInfo( x, p1, p2 ) \ (x)->lpVtbl->AddRefTypeInfo( x, p1, p2 ) #define ICreateTypeInfo2_AddFuncDesc( x, p1, p2 ) \ (x)->lpVtbl->AddFuncDesc( x, p1, p2 ) #define ICreateTypeInfo2_AddImplDesc( x, p1, p2 ) \ (x)->lpVtbl->AddImplDesc( x, p1, p2 ) #define ICreateTypeInfo2_SetImplTypeFlags( x, p1, p2 ) \ (x)->lpVtbl->SetImplTypeFlags( x, p1, p2 ) #define ICreateTypeInfo2_SetAlignment( x, p ) \ (x)->lpVtbl->SetAlignment( x, p ) #define ICreateTypeInfo2_SetSchema( x, p ) \ (x)->lpVtbl->SetSchema( x, p ) #define ICreateTypeInfo2_AddVarDesc( x, p1, p2 ) \ (x)->lpVtbl->AddVarDesc( x, p1, p2 ) #define ICreateTypeInfo2_SetFuncAndParamNames( x, p1, p2, p3 ) \ (x)->lpVtbl->SetFuncAndParamNames( x, p1, p2, p3 ) #define ICreateTypeInfo2_SetVarName( x, p1, p2 ) \ (x)->lpVtbl->SetVarName( x, p1, p2 ) #define ICreateTypeInfo2_SetTypeDescAlias( x, p ) \ (x)->lpVtbl->SetTypeDescAlias( x, p ) #define ICreateTypeInfo2_DefineFuncAsDllEntry( x, p1, p2, p3 ) \ (x)->lpVtbl->DefineFuncAsDllEntry( x, p1, p2, p3 ) #define ICreateTypeInfo2_SetFuncDocString( x, p1, p2 ) \ (x)->lpVtbl->SetFuncDocString( x, p1, p2 ) #define ICreateTypeInfo2_SetVarDocString( x, p1, p2 ) \ (x)->lpVtbl->SetVarDocString( x, p1, p2 ) #define ICreateTypeInfo2_SetFuncHelpContext( x, p1, p2 ) \ (x)->lpVtbl->SetFuncHelpContext( x, p1, p2 ) #define ICreateTypeInfo2_SetVarHelpContext( x, p1, p2 ) \ (x)->lpVtbl->SetVarHelpContext( x, p1, p2 ) #define ICreateTypeInfo2_SetMops( x, p1, p2 ) \ (x)->lpVtbl->SetMops( x, p1, p2 ) #define ICreateTypeInfo2_SetTypeIdldesc( x, p ) \ (x)->lpVtbl->SetTypeIdldesc( x, p ) #define ICreateTypeInfo2_LayOut( x ) \ (x)->lpVtbl->LayOut( x ) #define ICreateTypeInfo2_DeleteFuncDesc( x, p ) \ (x)->lpVtbl->DeleteFuncDesc( x, p ) #define ICreateTypeInfo2_DeleteFuncDescByMemId( x, p1, p2 ) \ (x)->lpVtbl->DeleteFuncDescByMemId( x, p1, p2 ) #define ICreateTypeInfo2_DeleteVarDesc( x, p ) \ (x)->lpVtbl->DeleteVarDesc( x, p ) #define ICreateTypeInfo2_DeleteVarDescByMemId( x, p1, p2 ) \ (x)->lpVtbl->DeleteVarDescByMemId( x, p1, p2 ) #define ICreateTypeInfo2_DeleteImplType( x, p ) \ (x)->lpVtbl->DeleteImplType( x, p ) #define ICreateTypeInfo2_SetCustData( x, p1, p2 ) \ (x)->lpVtbl->SetCustData( x, p1, p2 ) #define ICreateTypeInfo2_SetFuncCustData( x, p1, p2, p3 ) \ (x)->lpVtbl->SetFuncCustData( x, p1, p2, p3 ) #define ICreateTypeInfo2_SetParamCustData( x, p1, p2, p3, p4 ) \ (x)->lpVtbl->SetParamCustData( x, p1, p2, p3, p4 ) #define ICreateTypeInfo2_SetVarCustData( x, p1, p2, p3 ) \ (x)->lpVtbl->SetVarCustData( x, p1, p2, p3 ) #define ICreateTypeInfo2_SetImplTypeCustData( x, p1, p2, p3 ) \ (x)->lpVtbl->SetImplTypeCustData( x, p1, p2, p3 ) #define ICreateTypeInfo2_SetHelpStringContext( x, p ) \ (x)->lpVtbl->SetHelpStringContext( x, p ) #define ICreateTypeInfo2_SetFuncHelpStringContext( x, p1, p2 ) \ (x)->lpVtbl->SetFuncHelpStringContext( x, p1, p2 ) #define ICreateTypeInfo2_SetVarHelpStringContext( x, p1, p2 ) \ (x)->lpVtbl->SetVarHelpStringContext( x, p1, p2 ) #define ICreateTypeInfo2_Invalidate( x ) \ (x)->lpVtbl->Invalidate( x ) #define ICreateTypeInfo2_SetName( x, p ) \ (x)->lpVtbl->SetName( x, p ) #define ICreateTypeLib_QueryInterface( x, p1, p2 ) \ (x)->lpVtbl->QueryInterface( x, p1, p2 ) #define ICreateTypeLib_AddRef( x ) \ (x)->lpVtbl->AddRef( x ) #define ICreateTypeLib_Release( x ) \ (x)->lpVtbl->Release( x ) #define ICreateTypeLib_CreateTypeInfo( x, p1, p2, p3 ) \ (x)->lpVtbl->CreateTypeInfo( x, p1, p2, p3 ) #define ICreateTypeLib_SetName( x, p ) \ (x)->lpVtbl->SetName( x, p ) #define ICreateTypeLib_SetVersion( x, p1, p2 ) \ (x)->lpVtbl->SetVersion( x, p1, p2 ) #define ICreateTypeLib_SetGuid( x, p ) \ (x)->lpVtbl->SetGuid( x, p ) #define ICreateTypeLib_SetDocString( x, p ) \ (x)->lpVtbl->SetDocString( x, p ) #define ICreateTypeLib_SetHelpFileName( x, p ) \ (x)->lpVtbl->SetHelpFileName( x, p ) #define ICreateTypeLib_SetHelpContext( x, p ) \ (x)->lpVtbl->SetHelpContext( x, p ) #define ICreateTypeLib_SetLcid( x, p ) \ (x)->lpVtbl->SetLcid( x, p ) #define ICreateTypeLib_SetLibFlags( x, p ) \ (x)->lpVtbl->SetLibFlags( x, p ) #define ICreateTypeLib_SaveAllChanges( x ) \ (x)->lpVtbl->SaveAllChanges( x ) #define ICreateTypeLib2_QueryInterface( x, p1, p2 ) \ (x)->lpVtbl->QueryInterface( x, p1, p2 ) #define ICreateTypeLib2_AddRef( x ) \ (x)->lpVtbl->AddRef( x ) #define ICreateTypeLib2_Release( x ) \ (x)->lpVtbl->Release( x ) #define ICreateTypeLib2_CreateTypeInfo( x, p1, p2, p3 ) \ (x)->lpVtbl->CreateTypeInfo( x, p1, p2, p3 ) #define ICreateTypeLib2_SetName( x, p ) \ (x)->lpVtbl->SetName( x, p ) #define ICreateTypeLib2_SetVersion( x, p1, p2 ) \ (x)->lpVtbl->SetVersion( x, p1, p2 ) #define ICreateTypeLib2_SetGuid( x, p ) \ (x)->lpVtbl->SetGuid( x, p ) #define ICreateTypeLib2_SetDocString( x, p ) \ (x)->lpVtbl->SetDocString( x, p ) #define ICreateTypeLib2_SetHelpFileName( x, p ) \ (x)->lpVtbl->SetHelpFileName( x, p ) #define ICreateTypeLib2_SetHelpContext( x, p ) \ (x)->lpVtbl->SetHelpContext( x, p ) #define ICreateTypeLib2_SetLcid( x, p ) \ (x)->lpVtbl->SetLcid( x, p ) #define ICreateTypeLib2_SetLibFlags( x, p ) \ (x)->lpVtbl->SetLibFlags( x, p ) #define ICreateTypeLib2_SaveAllChanges( x ) \ (x)->lpVtbl->SaveAllChanges( x ) #define ICreateTypeLib2_DeleteTypeInfo( x, p ) \ (x)->lpVtbl->DeleteTypeInfo( x, p ) #define ICreateTypeLib2_SetCustData( x, p1, p2 ) \ (x)->lpVtbl->SetCustData( x, p1, p2 ) #define ICreateTypeLib2_SetHelpStringContext( x, p ) \ (x)->lpVtbl->SetHelpStringContext( x, p ) #define ICreateTypeLib2_SetHelpStringDll( x, p ) \ (x)->lpVtbl->SetHelpStringDll( x, p ) #define IDispatch_QueryInterface( x, p1, p2 ) \ (x)->lpVtbl->QueryInterface( x, p1, p2 ) #define IDispatch_AddRef( x ) \ (x)->lpVtbl->AddRef( x ) #define IDispatch_Release( x ) \ (x)->lpVtbl->Release( x ) #define IDispatch_GetTypeInfoCount( x, p ) \ (x)->lpVtbl->GetTypeInfoCount( x, p ) #define IDispatch_GetTypeInfo( x, p1, p2, p3 ) \ (x)->lpVtbl->GetTypeInfo( x, p1, p2, p3 ) #define IDispatch_GetIDsOfNames( x, p1, p2, p3, p4, p5 ) \ (x)->lpVtbl->GetIDsOfNames( x, p1, p2, p3, p4, p5 ) #define IDispatch_Invoke( x, p1, p2, p3, p4, p5, p6, p7, p8 ) \ (x)->lpVtbl->Invoke( x, p1, p2, p3, p4, p5, p6, p7, p8 ) #define IEnumVARIANT_QueryInterface( x, p1, p2 ) \ (x)->lpVtbl->QueryInterface( x, p1, p2 ) #define IEnumVARIANT_AddRef( x ) \ (x)->lpVtbl->AddRef( x ) #define IEnumVARIANT_Release( x ) \ (x)->lpVtbl->Release( x ) #define IEnumVARIANT_Next( x, p1, p2, p3 ) \ (x)->lpVtbl->Next( x, p1, p2, p3 ) #define IEnumVARIANT_Skip( x, p ) \ (x)->lpVtbl->Skip( x, p ) #define IEnumVARIANT_Reset( x ) \ (x)->lpVtbl->Reset( x ) #define IEnumVARIANT_Clone( x, p ) \ (x)->lpVtbl->Clone( x, p ) #define ITypeComp_QueryInterface( x, p1, p2 ) \ (x)->lpVtbl->QueryInterface( x, p1, p2 ) #define ITypeComp_AddRef( x ) \ (x)->lpVtbl->AddRef( x ) #define ITypeComp_Release( x ) \ (x)->lpVtbl->Release( x ) #define ITypeComp_Bind( x, p1, p2, p3, p4, p5, p6 ) \ (x)->lpVtbl->Bind( x, p1, p2, p3, p4, p5, p6 ) #define ITypeComp_BindType( x, p1, p2, p3, p4 ) \ (x)->lpVtbl->BindType( x, p1, p2, p3, p4 ) #define ITypeInfo_QueryInterface( x, p1, p2 ) \ (x)->lpVtbl->QueryInterface( x, p1, p2 ) #define ITypeInfo_AddRef( x ) \ (x)->lpVtbl->AddRef( x ) #define ITypeInfo_Release( x ) \ (x)->lpVtbl->Release( x ) #define ITypeInfo_GetTypeAttr( x, p ) \ (x)->lpVtbl->GetTypeAttr( x, p ) #define ITypeInfo_GetTypeComp( x, p ) \ (x)->lpVtbl->GetTypeComp( x, p ) #define ITypeInfo_GetFuncDesc( x, p1, p2 ) \ (x)->lpVtbl->GetFuncDesc( x, p1, p2 ) #define ITypeInfo_GetVarDesc( x, p1, p2 ) \ (x)->lpVtbl->GetVarDesc( x, p1, p2 ) #define ITypeInfo_GetNames( x, p1, p2, p3, p4 ) \ (x)->lpVtbl->GetNames( x, p1, p2, p3, p4 ) #define ITypeInfo_GetRefTypeOfImplType( x, p1, p2 ) \ (x)->lpVtbl->GetRefTypeOfImplType( x, p1, p2 ) #define ITypeInfo_GetImplTypeFlags( x, p1, p2 ) \ (x)->lpVtbl->GetImplTypeFlags( x, p1, p2 ) #define ITypeInfo_GetIDsOfNames( x, p1, p2, p3 ) \ (x)->lpVtbl->GetIDsOfNames( x, p1, p2, p3 ) #define ITypeInfo_Invoke( x, p1, p2, p3, p4, p5, p6, p7 ) \ (x)->lpVtbl->Invoke( x, p1, p2, p3, p4, p5, p6, p7 ) #define ITypeInfo_GetDocumentation( x, p1, p2, p3, p4, p5 ) \ (x)->lpVtbl->GetDocumentation( x, p1, p2, p3, p4, p5 ) #define ITypeInfo_GetDllEntry( x, p1, p2, p3, p4, p5 ) \ (x)->lpVtbl->GetDllEntry( x, p1, p2, p3, p4, p5 ) #define ITypeInfo_GetRefTypeInfo( x, p1, p2 ) \ (x)->lpVtbl->GetRefTypeInfo( x, p1, p2 ) #define ITypeInfo_AddressOfMember( x, p1, p2, p3 ) \ (x)->lpVtbl->AddressOfMember( x, p1, p2, p3 ) #define ITypeInfo_CreateInstance( x, p1, p2, p3 ) \ (x)->lpVtbl->CreateInstance( x, p1, p2, p3 ) #define ITypeInfo_GetMops( x, p1, p2 ) \ (x)->lpVtbl->GetMops( x, p1, p2 ) #define ITypeInfo_GetContainingTypeLib( x, p1, p2 ) \ (x)->lpVtbl->GetContainingTypeLib( x, p1, p2 ) #define ITypeInfo_ReleaseTypeAttr( x, p ) \ (x)->lpVtbl->ReleaseTypeAttr( x, p ) #define ITypeInfo_ReleaseFuncDesc( x, p ) \ (x)->lpVtbl->ReleaseFuncDesc( x, p ) #define ITypeInfo_ReleaseVarDesc( x, p ) \ (x)->lpVtbl->ReleaseVarDesc( x, p ) #define ITypeInfo2_QueryInterface( x, p1, p2 ) \ (x)->lpVtbl->QueryInterface( x, p1, p2 ) #define ITypeInfo2_AddRef( x ) \ (x)->lpVtbl->AddRef( x ) #define ITypeInfo2_Release( x ) \ (x)->lpVtbl->Release( x ) #define ITypeInfo2_GetTypeAttr( x, p ) \ (x)->lpVtbl->GetTypeAttr( x, p ) #define ITypeInfo2_GetTypeComp( x, p ) \ (x)->lpVtbl->GetTypeComp( x, p ) #define ITypeInfo2_GetFuncDesc( x, p1, p2 ) \ (x)->lpVtbl->GetFuncDesc( x, p1, p2 ) #define ITypeInfo2_GetVarDesc( x, p1, p2 ) \ (x)->lpVtbl->GetVarDesc( x, p1, p2 ) #define ITypeInfo2_GetNames( x, p1, p2, p3, p4 ) \ (x)->lpVtbl->GetNames( x, p1, p2, p3, p4 ) #define ITypeInfo2_GetRefTypeOfImplType( x, p1, p2 ) \ (x)->lpVtbl->GetRefTypeOfImplType( x, p1, p2 ) #define ITypeInfo2_GetImplTypeFlags( x, p1, p2 ) \ (x)->lpVtbl->GetImplTypeFlags( x, p1, p2 ) #define ITypeInfo2_GetIDsOfNames( x, p1, p2, p3 ) \ (x)->lpVtbl->GetIDsOfNames( x, p1, p2, p3 ) #define ITypeInfo2_Invoke( x, p1, p2, p3, p4, p5, p6, p7 ) \ (x)->lpVtbl->Invoke( x, p1, p2, p3, p4, p5, p6, p7 ) #define ITypeInfo2_GetDocumentation( x, p1, p2, p3, p4, p5 ) \ (x)->lpVtbl->GetDocumentation( x, p1, p2, p3, p4, p5 ) #define ITypeInfo2_GetDllEntry( x, p1, p2, p3, p4, p5 ) \ (x)->lpVtbl->GetDllEntry( x, p1, p2, p3, p4, p5 ) #define ITypeInfo2_GetRefTypeInfo( x, p1, p2 ) \ (x)->lpVtbl->GetRefTypeInfo( x, p1, p2 ) #define ITypeInfo2_AddressOfMember( x, p1, p2, p3 ) \ (x)->lpVtbl->AddressOfMember( x, p1, p2, p3 ) #define ITypeInfo2_CreateInstance( x, p1, p2, p3 ) \ (x)->lpVtbl->CreateInstance( x, p1, p2, p3 ) #define ITypeInfo2_GetMops( x, p1, p2 ) \ (x)->lpVtbl->GetMops( x, p1, p2 ) #define ITypeInfo2_GetContainingTypeLib( x, p1, p2 ) \ (x)->lpVtbl->GetContainingTypeLib( x, p1, p2 ) #define ITypeInfo2_ReleaseTypeAttr( x, p ) \ (x)->lpVtbl->ReleaseTypeAttr( x, p ) #define ITypeInfo2_ReleaseFuncDesc( x, p ) \ (x)->lpVtbl->ReleaseFuncDesc( x, p ) #define ITypeInfo2_ReleaseVarDesc( x, p ) \ (x)->lpVtbl->ReleaseVarDesc( x, p ) #define ITypeInfo2_GetTypeKind( x, p ) \ (x)->lpVtbl->GetTypeKind( x, p ) #define ITypeInfo2_GetTypeFlags( x, p ) \ (x)->lpVtbl->GetTypeFlags( x, p ) #define ITypeInfo2_GetFuncIndexOfMemId( x, p1, p2, p3 ) \ (x)->lpVtbl->GetFuncIndexOfMemId( x, p1, p2, p3 ) #define ITypeInfo2_GetVarIndexOfMemId( x, p1, p2 ) \ (x)->lpVtbl->GetVarIndexOfMemId( x, p1, p2 ) #define ITypeInfo2_GetCustData( x, p1, p2 ) \ (x)->lpVtbl->GetCustData( x, p1, p2 ) #define ITypeInfo2_GetFuncCustData( x, p1, p2, p3 ) \ (x)->lpVtbl->GetFuncCustData( x, p1, p2, p3 ) #define ITypeInfo2_GetParamCustData( x, p1, p2, p3, p4 ) \ (x)->lpVtbl->GetParamCustData( x, p1, p2, p3, p4 ) #define ITypeInfo2_GetVarCustData( x, p1, p2, p3 ) \ (x)->lpVtbl->GetVarCustData( x, p1, p2, p3 ) #define ITypeInfo2_GetImplTypeCustData( x, p1, p2, p3 ) \ (x)->lpVtbl->GetImplTypeCustData( x, p1, p2, p3 ) #define ITypeInfo2_GetDocumentation2( x, p1, p2, p3, p4, p5 ) \ (x)->lpVtbl->GetDocumentation2( x, p1, p2, p3, p4, p5 ) #define ITypeInfo2_GetAllCustData( x, p ) \ (x)->lpVtbl->GetAllCustData( x, p ) #define ITypeInfo2_GetAllFuncCustData( x, p1, p2 ) \ (x)->lpVtbl->GetAllFuncCustData( x, p1, p2 ) #define ITypeInfo2_GetAllParamCustData( x, p1, p2, p3 ) \ (x)->lpVtbl->GetAllParamCustData( x, p1, p2, p3 ) #define ITypeInfo2_GetAllVarCustData( x, p1, p2 ) \ (x)->lpVtbl->GetAllVarCustData( x, p1, p2 ) #define ITypeInfo2_GetAllImplTypeCustData( x, p1, p2 ) \ (x)->lpVtbl->GetAllImplTypeCustData( x, p1, p2 ) #define ITypeLib_QueryInterface( x, p1, p2 ) \ (x)->lpVtbl->QueryInterface( x, p1, p2 ) #define ITypeLib_AddRef( x ) \ (x)->lpVtbl->AddRef( x ) #define ITypeLib_Release( x ) \ (x)->lpVtbl->Release( x ) #define ITypeLib_GetTypeInfoCount( x ) \ (x)->lpVtbl->GetTypeInfoCount( x ) #define ITypeLib_GetTypeInfo( x, p1, p2 ) \ (x)->lpVtbl->GetTypeInfo( x, p1, p2 ) #define ITypeLib_GetTypeInfoType( x, p1, p2 ) \ (x)->lpVtbl->GetTypeInfoType( x, p1, p2 ) #define ITypeLib_GetTypeInfoOfGuid( x, p1, p2 ) \ (x)->lpVtbl->GetTypeInfoOfGuid( x, p1, p2 ) #define ITypeLib_GetLibAttr( x, p ) \ (x)->lpVtbl->GetLibAttr( x, p ) #define ITypeLib_GetTypeComp( x, p ) \ (x)->lpVtbl->GetTypeComp( x, p ) #define ITypeLib_GetDocumentation( x, p1, p2, p3, p4, p5 ) \ (x)->lpVtbl->GetDocumentation( x, p1, p2, p3, p4, p5 ) #define ITypeLib_IsName( x, p1, p2, p3 ) \ (x)->lpVtbl->IsName( x, p1, p2, p3 ) #define ITypeLib_FindName( x, p1, p2, p3, p4, p5 ) \ (x)->lpVtbl->FindName( x, p1, p2, p3, p4, p5 ) #define ITypeLib_ReleaseTLibAttr( x, p ) \ (x)->lpVtbl->ReleaseTLibAttr( x, p ) #define ITypeLib2_QueryInterface( x, p1, p2 ) \ (x)->lpVtbl->QueryInterface( x, p1, p2 ) #define ITypeLib2_AddRef( x ) \ (x)->lpVtbl->AddRef( x ) #define ITypeLib2_Release( x ) \ (x)->lpVtbl->Release( x ) #define ITypeLib2_GetTypeInfoCount( x ) \ (x)->lpVtbl->GetTypeInfoCount( x ) #define ITypeLib2_GetTypeInfo( x, p1, p2 ) \ (x)->lpVtbl->GetTypeInfo( x, p1, p2 ) #define ITypeLib2_GetTypeInfoType( x, p1, p2 ) \ (x)->lpVtbl->GetTypeInfoType( x, p1, p2 ) #define ITypeLib2_GetTypeInfoOfGuid( x, p1, p2 ) \ (x)->lpVtbl->GetTypeInfoOfGuid( x, p1, p2 ) #define ITypeLib2_GetLibAttr( x, p ) \ (x)->lpVtbl->GetLibAttr( x, p ) #define ITypeLib2_GetTypeComp( x, p ) \ (x)->lpVtbl->GetTypeComp( x, p ) #define ITypeLib2_GetDocumentation( x, p1, p2, p3, p4, p5 ) \ (x)->lpVtbl->GetDocumentation( x, p1, p2, p3, p4, p5 ) #define ITypeLib2_IsName( x, p1, p2, p3 ) \ (x)->lpVtbl->IsName( x, p1, p2, p3 ) #define ITypeLib2_FindName( x, p1, p2, p3, p4, p5 ) \ (x)->lpVtbl->FindName( x, p1, p2, p3, p4, p5 ) #define ITypeLib2_ReleaseTLibAttr( x, p ) \ (x)->lpVtbl->ReleaseTLibAttr( x, p ) #define ITypeLib2_GetCustData( x, p1, p2 ) \ (x)->lpVtbl->GetCustData( x, p1, p2 ) #define ITypeLib2_GetLibStatistics( x, p1, p2 ) \ (x)->lpVtbl->GetLibStatistics( x, p1, p2 ) #define ITypeLib2_GetDocumentation2( x, p1, p2, p3, p4, p5 ) \ (x)->lpVtbl->GetDocumentation2( x, p1, p2, p3, p4, p5 ) #define ITypeLib2_GetAllCustData( x, p ) \ (x)->lpVtbl->GetAllCustData( x, p ) #define ITypeChangeEvents_QueryInterface( x, p1, p2 ) \ (x)->lpVtbl->QueryInterface( x, p1, p2 ) #define ITypeChangeEvents_AddRef( x ) \ (x)->lpVtbl->AddRef( x ) #define ITypeChangeEvents_Release( x ) \ (x)->lpVtbl->Release( x ) #define ITypeChangeEvents_RequestTypeChange( x, p1, p2, p3, p4 ) \ (x)->lpVtbl->RequestTypeChange( x, p1, p2, p3, p4 ) #define ITypeChangeEvents_AfterTypeChange( x, p1, p2, p3 ) \ (x)->lpVtbl->AfterTypeChange( x, p1, p2, p3 ) #define IErrorInfo_QueryInterface( x, p1, p2 ) \ (x)->lpVtbl->QueryInterface( x, p1, p2 ) #define IErrorInfo_AddRef( x ) \ (x)->lpVtbl->AddRef( x ) #define IErrorInfo_Release( x ) \ (x)->lpVtbl->Release( x ) #define IErrorInfo_GetGUID( x, p ) \ (x)->lpVtbl->GetGUID( x, p ) #define IErrorInfo_GetSource( x, p ) \ (x)->lpVtbl->GetSource( x, p ) #define IErrorInfo_GetDescription( x, p ) \ (x)->lpVtbl->GetDescription( x, p ) #define IErrorInfo_GetHelpFile( x, p ) \ (x)->lpVtbl->GetHelpFile( x, p ) #define IErrorInfo_GetHelpContext( x, p ) \ (x)->lpVtbl->GetHelpContext( x, p ) #define ICreateErrorInfo_QueryInterface( x, p1, p2 ) \ (x)->lpVtbl->QueryInterface( x, p1, p2 ) #define ICreateErrorInfo_AddRef( x ) \ (x)->lpVtbl->AddRef( x ) #define ICreateErrorInfo_Release( x ) \ (x)->lpVtbl->Release( x ) #define ICreateErrorInfo_SetGUID( x, p ) \ (x)->lpVtbl->SetGUID( x, p ) #define ICreateErrorInfo_SetSource( x, p ) \ (x)->lpVtbl->SetSource( x, p ) #define ICreateErrorInfo_SetDescription( x, p ) \ (x)->lpVtbl->SetDescription( x, p ) #define ICreateErrorInfo_SetHelpFile( x, p ) \ (x)->lpVtbl->SetHelpFile( x, p ) #define ICreateErrorInfo_SetHelpContext( x, p ) \ (x)->lpVtbl->SetHelpContext( x, p ) #define ISupportErrorInfo_QueryInterface( x, p1, p2 ) \ (x)->lpVtbl->QueryInterface( x, p1, p2 ) #define ISupportErrorInfo_AddRef( x ) \ (x)->lpVtbl->AddRef( x ) #define ISupportErrorInfo_Release( x ) \ (x)->lpVtbl->Release( x ) #define ISupportErrorInfo_InterfaceSupportsErrorInfo( x, p ) \ (x)->lpVtbl->InterfaceSupportsErrorInfo( x, p ) #define ITypeFactory_QueryInterface( x, p1, p2 ) \ (x)->lpVtbl->QueryInterface( x, p1, p2 ) #define ITypeFactory_AddRef( x ) \ (x)->lpVtbl->AddRef( x ) #define ITypeFactory_Release( x ) \ (x)->lpVtbl->Release( x ) #define ITypeFactory_CreateFromTypeInfo( x, p1, p2, p3 ) \ (x)->lpVtbl->CreateFromTypeInfo( x, p1, p2, p3 ) #define ITypeMarshal_QueryInterface( x, p1, p2 ) \ (x)->lpVtbl->QueryInterface( x, p1, p2 ) #define ITypeMarshal_AddRef( x ) \ (x)->lpVtbl->AddRef( x ) #define ITypeMarshal_Release( x ) \ (x)->lpVtbl->Release( x ) #define ITypeMarshal_Size( x, p1, p2, p3, p4 ) \ (x)->lpVtbl->Size( x, p1, p2, p3, p4 ) #define ITypeMarshal_Marshal( x, p1, p2, p3, p4, p5, p6 ) \ (x)->lpVtbl->Marshal( x, p1, p2, p3, p4, p5, p6 ) #define ITypeMarshal_Unmarshal( x, p1, p2, p3, p4, p5 ) \ (x)->lpVtbl->Unmarshal( x, p1, p2, p3, p4, p5 ) #define ITypeMarshal_Free( x, p ) \ (x)->lpVtbl->Free( x, p ) #define IRecordInfo_QueryInterface( x, p1, p2 ) \ (x)->lpVtbl->QueryInterface( x, p1, p2 ) #define IRecordInfo_AddRef( x ) \ (x)->lpVtbl->AddRef( x ) #define IRecordInfo_Release( x ) \ (x)->lpVtbl->Release( x ) #define IRecordInfo_RecordInit( x, p ) \ (x)->lpVtbl->RecordInit( x, p ) #define IRecordInfo_RecordClear( x, p ) \ (x)->lpVtbl->RecordClear( x, p ) #define IRecordInfo_RecordCopy( x, p1, p2 ) \ (x)->lpVtbl->RecordCopy( x, p1, p2 ) #define IRecordInfo_GetGuid( x, p ) \ (x)->lpVtbl->GetGuid( x, p ) #define IRecordInfo_GetName( x, p ) \ (x)->lpVtbl->GetName( x, p ) #define IRecordInfo_GetSize( x, p ) \ (x)->lpVtbl->GetSize( x, p ) #define IRecordInfo_GetTypeInfo( x, p ) \ (x)->lpVtbl->GetTypeInfo( x, p ) #define IRecordInfo_GetField( x, p1, p2, p3 ) \ (x)->lpVtbl->GetField( x, p1, p2, p3 ) #define IRecordInfo_GetFieldNoCopy( x, p1, p2, p3, p4 ) \ (x)->lpVtbl->GetFieldNoCopy( x, p1, p2, p3, p4 ) #define IRecordInfo_PutField( x, p1, p2, p3, p4 ) \ (x)->lpVtbl->PutField( x, p1, p2, p3, p4 ) #define IRecordInfo_PutFieldNoCopy( x, p1, p2, p3, p4 ) \ (x)->lpVtbl->PutFieldNoCopy( x, p1, p2, p3, p4 ) #define IRecordInfo_GetFieldNames( x, p1, p2 ) \ (x)->lpVtbl->GetFieldNames( x, p1, p2 ) #define IRecordInfo_IsMatchingType( x, p ) \ (x)->lpVtbl->IsMatchingType( x, p ) #define IRecordInfo_RecordCreate( x ) \ (x)->lpVtbl->RecordCreate( x ) #define IRecordInfo_RecordCreateCopy( x, p1, p2 ) \ (x)->lpVtbl->RecordCreateCopy( x, p1, p2 ) #define IRecordInfo_RecordDestroy( x ) \ (x)->lpVtbl->RecordDestroy( x ) #define IErrorLog_QueryInterface( x, p1, p2 ) \ (x)->lpVtbl->QueryInterface( x, p1, p2 ) #define IErrorLog_AddRef( x ) \ (x)->lpVtbl->AddRef( x ) #define IErrorLog_Release( x ) \ (x)->lpVtbl->Release( x ) #define IErrorLog_AddError( x, p1, p2 ) \ (x)->lpVtbl->AddError( x, p1, p2 ) #define IPropertyBag_QueryInterface( x, p1, p2 ) \ (x)->lpVtbl->QueryInterface( x, p1, p2 ) #define IPropertyBag_AddRef( x ) \ (x)->lpVtbl->AddRef( x ) #define IPropertyBag_Release( x ) \ (x)->lpVtbl->Release( x ) #define IPropertyBag_Read( x, p1, p2, p3 ) \ (x)->lpVtbl->Read( x, p1, p2, p3 ) #define IPropertyBag_Write( x, p1, p2 ) \ (x)->lpVtbl->Write( x, p1, p2 ) #endif #ifdef __cplusplus } /* extern "C" */ #endif #endif /* __oaidl_h__ */