This repository has been archived on 2024-12-16. You can view files and clone it, but cannot push or open issues or pull requests.
CodeBlocksPortable/WATCOM/h/nt/oaidl.h

1564 lines
61 KiB
C
Raw Permalink Normal View History

/*
* 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 <rpc.h>
#include <rpcndr.h>
#ifndef COM_NO_WINDOWS_H
#include <windows.h>
#include <ole2.h>
#endif
#ifndef __oaidl_h__
#define __oaidl_h__
#ifndef _ENABLE_AUTODEPEND
#pragma read_only_file;
#endif
#include <objidl.h>
#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__ */