diff --git a/include/Makefile.in b/include/Makefile.in index ca23ac69737..3bac23b4fd0 100644 --- a/include/Makefile.in +++ b/include/Makefile.in @@ -5,6 +5,7 @@ VPATH = @srcdir@ MODULE = none IDL_SRCS = \ + oaidl.idl \ objidl.idl \ unknwn.idl \ wtypes.idl @@ -88,7 +89,6 @@ WINDOWS_INCLUDES = \ ntddstor.h \ ntsecapi.h \ ntstatus.h \ - oaidl.h \ objbase.h \ ocidl.h \ ole2.h \ @@ -214,10 +214,8 @@ WINE_INCLUDES = \ obj_dragdrophelper.h \ obj_enumguid.h \ obj_enumidlist.h \ - obj_errorinfo.h \ obj_extracticon.h \ obj_inplace.h \ - obj_oleaut.h \ obj_olefont.h \ obj_oleobj.h \ obj_oleundo.h \ diff --git a/include/oaidl.h b/include/oaidl.h index 24f7c91fdf4..a957830e54c 100644 --- a/include/oaidl.h +++ b/include/oaidl.h @@ -1,38 +1,5013 @@ -/* - * Copyright (C) 1999 Francis Beaudet - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - +/*** Autogenerated by WIDL 0.1 from oaidl.idl - Do not edit ***/ #include "rpc.h" #include "rpcndr.h" -#ifndef COM_NO_WINDOWS_H -#include "windows.h" -#include "ole2.h" + +#ifndef __WIDL_OAIDL_H +#define __WIDL_OAIDL_H +#ifdef __cplusplus +extern "C" { +#endif +#include "objidl.h" +typedef struct IDispatch IDispatch; +typedef struct ITypeInfo ITypeInfo; +typedef struct ITypeLib ITypeLib; +typedef struct IRecordInfo IRecordInfo; +typedef CY CURRENCY; + +typedef struct tagSAFEARRAYBOUND { + ULONG cElements; + LONG lLbound; +} SAFEARRAYBOUND, *LPSAFEARRAYBOUND; + +typedef struct _wireVARIANT *wireVARIANT; + +typedef struct _wireBRECORD *wireBRECORD; + +typedef struct _wireSAFEARR_BSTR { + ULONG Size; + wireBSTR *aBstr; +} SAFEARR_BSTR; + +typedef struct _wireSAFEARR_UNKNOWN { + ULONG Size; + IUnknown **apUnknown; +} SAFEARR_UNKNOWN; + +typedef struct _wireSAFEARR_DISPATCH { + ULONG Size; + IDispatch **apDispatch; +} SAFEARR_DISPATCH; + +typedef struct _wireSAFEARR_VARIANT { + ULONG Size; + wireVARIANT *aVariant; +} SAFEARR_VARIANT; + +typedef struct _wireSAFEARR_BRECORD { + ULONG Size; + wireBRECORD *aRecord; +} SAFEARR_BRECORD; + +typedef struct _wireSAFEARR_HAVEIID { + ULONG Size; + IUnknown **apUnknown; + IID iid; +} SAFEARR_HAVEIID; + +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; + +typedef struct _wireSAFEARRAY_UNION { + ULONG sfType; + union { + SAFEARR_BSTR BstrStr; + SAFEARR_UNKNOWN UnknownStr; + SAFEARR_DISPATCH DispatchStr; + SAFEARR_VARIANT VariantStr; + SAFEARR_BRECORD RecordStr; + SAFEARR_HAVEIID HaveIidStr; + BYTE_SIZEDARR ByteStr; + WORD_SIZEDARR WordStr; + DWORD_SIZEDARR LongStr; + HYPER_SIZEDARR HyperStr; + } u; +} SAFEARRAYUNION; + +typedef struct _wireSAFEARRAY { + USHORT cDims; + USHORT fFeatures; + ULONG cbElements; + ULONG cLocks; + SAFEARRAYUNION uArrayStructs; + SAFEARRAYBOUND rgsabound[1]; +} *wireSAFEARRAY; + +typedef wireSAFEARRAY *wirePSAFEARRAY; + +typedef struct tagSAFEARRAY { + USHORT cDims; + USHORT fFeatures; + ULONG cbElements; + ULONG cLocks; + PVOID pvData; + SAFEARRAYBOUND rgsabound[1]; +} SAFEARRAY; + +typedef SAFEARRAY *LPSAFEARRAY; + +#define FADF_AUTO (0x1) + +#define FADF_STATIC (0x2) + +#define FADF_EMBEDDED (0x4) + +#define FADF_FIXEDSIZE (0x10) + +#define FADF_RECORD (0x20) + +#define FADF_HAVEIID (0x40) + +#define FADF_HAVEVARTYPE (0x80) + +#define FADF_BSTR (0x100) + +#define FADF_UNKNOWN (0x200) + +#define FADF_DISPATCH (0x400) + +#define FADF_VARIANT (0x800) + +#define FADF_RESERVED (0xf008) + +#define FADF_CREATEVECTOR (0x2000) + +#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 __tagBRECORD +#define __VARIANT_NAME_4 +#endif +typedef struct tagVARIANT VARIANT; + +struct tagVARIANT { + union { + struct __tagVARIANT { + VARTYPE vt; + WORD wReserved1; + WORD wReserved2; + WORD wReserved3; + union { + CHAR cVal; + USHORT uiVal; + ULONG ulVal; + INT intVal; + UINT uintVal; + BYTE bVal; + SHORT iVal; + LONG lVal; + FLOAT fltVal; + DOUBLE dblVal; + VARIANT_BOOL boolVal; + SCODE scode; + DATE date; + BSTR bstrVal; + CY cyVal; + IUnknown *punkVal; + IDispatch *pdispVal; + SAFEARRAY *parray; + CHAR *pcVal; + USHORT *puiVal; + ULONG *pulVal; + INT *pintVal; + UINT *puintVal; + BYTE *pbVal; + SHORT *piVal; + LONG *plVal; + FLOAT *pfltVal; + DOUBLE *pdblVal; + VARIANT_BOOL *pboolVal; + SCODE *pscode; + DATE *pdate; + BSTR *pbstrVal; + VARIANT *pvarVal; + PVOID byref; + CY *pcyVal; + DECIMAL *pdecVal; + IUnknown **ppunkVal; + IDispatch **ppdispVal; + SAFEARRAY **pparray; + struct __tagBRECORD { + PVOID pvRecord; + IRecordInfo *pRecInfo; + } __VARIANT_NAME_4; + } __VARIANT_NAME_3; + } __VARIANT_NAME_2; + DECIMAL decVal; + } __VARIANT_NAME_1; +}; + +typedef VARIANT *LPVARIANT; + +typedef VARIANT VARIANTARG; + +typedef VARIANTARG *LPVARIANTARG; + +struct _wireBRECORD { + ULONG fFlags; + ULONG clSize; + IRecordInfo *pRecInfo; + byte *pRecord; +}; + +struct _wireVARIANT { + DWORD clSize; + DWORD rpcReserved; + USHORT vt; + USHORT wReserved1; + USHORT wReserved2; + USHORT wReserved3; + union { + CHAR cVal; + USHORT uiVal; + ULONG ulVal; + INT intVal; + UINT uintVal; + BYTE bVal; + SHORT iVal; + LONG lVal; + FLOAT fltVal; + DOUBLE dblVal; + VARIANT_BOOL boolVal; + SCODE scode; + DATE date; + wireBSTR bstrVal; + CY cyVal; + DECIMAL decVal; + IUnknown *punkVal; + IDispatch *pdispVal; + wireSAFEARRAY parray; + CHAR *pcVal; + USHORT *puiVal; + ULONG *pulVal; + INT *pintVal; + UINT *puintVal; + BYTE *pbVal; + SHORT *piVal; + LONG *plVal; + FLOAT *pfltVal; + DOUBLE *pdblVal; + VARIANT_BOOL *pboolVal; + SCODE *pscode; + DATE *pdate; + wireBSTR *pbstrVal; + wireVARIANT *pvarVal; + CY *pcyVal; + DECIMAL *pdecVal; + IUnknown **ppunkVal; + IDispatch **ppdispVal; + wireSAFEARRAY *pparray; + wireBRECORD brecVal; + } DUMMYUNIONNAME; +}; + +typedef LONG DISPID; + +typedef DWORD HREFTYPE; + +typedef DISPID MEMBERID; + +typedef enum tagTYPEKIND { + TKIND_ENUM = 0, + TKIND_RECORD, + TKIND_MODULE, + TKIND_INTERFACE, + TKIND_DISPATCH, + TKIND_COCLASS, + TKIND_ALIAS, + TKIND_UNION, + TKIND_MAX +} TYPEKIND; + +typedef struct tagTYPEDESC { + union { + struct tagTYPEDESC *lptdesc; + struct tagARRAYDESC *lpadesc; + HREFTYPE hreftype; + } DUMMYUNIONNAME; + VARTYPE vt; +} TYPEDESC; + +typedef struct tagARRAYDESC { + TYPEDESC tdescElem; + USHORT cDims; + SAFEARRAYBOUND rgbounds[1]; +} ARRAYDESC; + +typedef struct tagPARAMDESCEX { + ULONG cBytes; + VARIANTARG varDefaultValue; +} PARAMDESCEX, *LPPARAMDESCEX; + +typedef struct tagPARAMDESC { + LPPARAMDESCEX pparamdescex; + USHORT wParamFlags; +} PARAMDESC, *LPPARAMDESC; + +#define PARAMFLAG_NONE (0x0) + +#define PARAMFLAG_FIN (0x1) + +#define PARAMFLAG_FOUT (0x2) + +#define PARAMFLAG_FLCID (0x4) + +#define PARAMFLAG_FRETVAL (0x8) + +#define PARAMFLAG_FOPT (0x10) + +#define PARAMFLAG_FHASDEFAULT (0x20) + +#define PARAMFLAG_FHASCUSTDATA (0x40) + +typedef struct tagIDLDESC { + ULONG dwReserved; + USHORT wIDLFlags; +} IDLDESC, *LPIDLDESC; + +#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) + +#if 0 +typedef struct tagELEMDESC { + TYPEDESC tdesc; + PARAMDESC paramdesc; +} ELEMDESC; + +#else +typedef struct tagELEMDESC { + TYPEDESC tdesc; + union { + IDLDESC idldesc; + PARAMDESC paramdesc; + } DUMMYUNIONNAME; +} ELEMDESC, *LPELEMDESC; +#endif +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, *LPTYPEATTR; + +typedef struct tagDISPPARAMS { + VARIANTARG *rgvarg; + DISPID *rgdispidNamedArgs; + UINT cArgs; + UINT cNamedArgs; +} DISPPARAMS; + +#if 0 +typedef struct tagEXCEPINFO { + WORD wCode; + WORD wReserved; + BSTR bstrSource; + BSTR bstrDescription; + BSTR bstrHelpFile; + DWORD dwHelpContext; + ULONG pvReserved; + ULONG pfnDeferredFillIn; + SCODE scode; +} EXCEPINFO; + +#else +typedef struct tagEXCEPINFO { + WORD wCode; + WORD wReserved; + BSTR bstrSource; + BSTR bstrDescription; + BSTR bstrHelpFile; + DWORD dwHelpContext; + PVOID pvReserved; + HRESULT (__stdcall *pfnDeferredFillIn)(struct tagEXCEPINFO *); + SCODE scode; +} EXCEPINFO, *LPEXCEPINFO; +#endif +typedef enum tagCALLCONV { + CC_FASTCALL = 0, + CC_CDECL = 1, + CC_MSCPASCAL, + CC_PASCAL = CC_MSCPASCAL, + CC_MACPASCAL, + CC_STDCALL, + CC_FPFASTCALL, + CC_SYSCALL, + CC_MPWCDECL, + CC_MPWPASCAL, + CC_MAX +} CALLCONV; + +typedef enum tagFUNCKIND { + FUNC_VIRTUAL, + FUNC_PUREVIRTUAL, + FUNC_NONVIRTUAL, + FUNC_STATIC, + FUNC_DISPATCH +} FUNCKIND; + +typedef enum tagINVOKEKIND { + INVOKE_FUNC = 1, + INVOKE_PROPERTYGET = 2, + INVOKE_PROPERTYPUT = 4, + INVOKE_PROPERTYPUTREF = 8 +} INVOKEKIND; + +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, *LPFUNCDESC; + +typedef enum tagVARKIND { + VAR_PERINSTANCE, + VAR_STATIC, + VAR_CONST, + VAR_DISPATCH +} VARKIND; + +#define IMPLTYPEFLAG_FDEFAULT (0x1) + +#define IMPLTYPEFLAG_FSOURCE (0x2) + +#define IMPLTYPEFLAG_FRESTRICTED (0x4) + +#define IMPLTYPEFLAG_FDEFAULTVTABLE (0x8) + +typedef struct tagVARDESC { + MEMBERID memid; + LPOLESTR lpstrSchema; + union { + ULONG oInst; + VARIANT *lpvarValue; + } DUMMYUNIONNAME; + ELEMDESC elemdescVar; + WORD wVarFlags; + VARKIND varkind; +} VARDESC, *LPVARDESC; + +typedef enum tagTYPEFLAGS { + TYPEFLAG_FAPPOBJECT = 0x1, + TYPEFLAG_FCANCREATE = 0x2, + TYPEFLAG_FLICENSED = 0x4, + TYPEFLAG_FPREDECLID = 0x8, + TYPEFLAG_FHIDDEN = 0x10, + TYPEFLAG_FCONTROL = 0x20, + TYPEFLAG_FDUAL = 0x40, + TYPEFLAG_FNONEXTENSIBLE = 0x80, + TYPEFLAG_FOLEAUTOMATION = 0x100, + TYPEFLAG_FRESTRICTED = 0x200, + TYPEFLAG_FAGGREGATABLE = 0x400, + TYPEFLAG_FREPLACEABLE = 0x800, + TYPEFLAG_FDISPATCHABLE = 0x1000, + TYPEFLAG_FREVERSEBIND = 0x2000, + TYPEFLAG_FPROXY = 0x4000 +} TYPEFLAGS; + +typedef enum tagFUNCFLAGS { + FUNCFLAG_FRESTRICTED = 0x1, + FUNCFLAG_FSOURCE = 0x2, + FUNCFLAG_FBINDABLE = 0x4, + FUNCFLAG_FREQUESTEDIT = 0x8, + FUNCFLAG_FDISPLAYBIND = 0x10, + FUNCFLAG_FDEFAULTBIND = 0x20, + FUNCFLAG_FHIDDEN = 0x40, + FUNCFLAG_FUSESGETLASTERROR = 0x80, + FUNCFLAG_FDEFAULTCOLLELEM = 0x100, + FUNCFLAG_FUIDEFAULT = 0x200, + FUNCFLAG_FNONBROWSABLE = 0x400, + FUNCFLAG_FREPLACEABLE = 0x800, + FUNCFLAG_FIMMEDIATEBIND = 0x1000 +} FUNCFLAGS; + +typedef enum tagVARFLAGS { + VARFLAG_FREADONLY = 0x1, + VARFLAG_FSOURCE = 0x2, + VARFLAG_FBINDABLE = 0x4, + VARFLAG_FREQUESTEDIT = 0x8, + VARFLAG_FDISPLAYBIND = 0x10, + VARFLAG_FDEFAULTBIND = 0x20, + VARFLAG_FHIDDEN = 0x40, + VARFLAG_FRESTRICTED = 0x80, + VARFLAG_FDEFAULTCOLLELEM = 0x100, + VARFLAG_FUIDEFAULT = 0x200, + VARFLAG_FNONBROWSABLE = 0x400, + VARFLAG_FREPLACEABLE = 0x800, + VARFLAG_FIMMEDIATEBIND = 0x1000 +} VARFLAGS; + +typedef struct tagCLEANLOCALSTORAGE { + IUnknown *pInterface; + PVOID pStorage; + DWORD flags; +} CLEANLOCALSTORAGE; + +typedef struct tagCUSTDATAITEM { + GUID guid; + VARIANTARG varValue; +} CUSTDATAITEM, *LPCUSTDATAITEM; + +typedef struct tagCUSTDATA { + DWORD cCustData; + LPCUSTDATAITEM prgCustData; +} CUSTDATA, *LPCUSTDATA; + +typedef IDispatch *LPDISPATCH; + +#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) + +/***************************************************************************** + * IDispatch interface + */ +DEFINE_GUID(IID_IDispatch, 0x00020400, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46); +#if defined(__cplusplus) && !defined(CINTERFACE) +struct IDispatch: IUnknown { + + virtual HRESULT CALLBACK GetTypeInfoCount( + UINT* pctinfo) = 0; + + virtual HRESULT CALLBACK GetTypeInfo( + UINT iTInfo, + LCID lcid, + ITypeInfo** ppTInfo) = 0; + + virtual HRESULT CALLBACK GetIDsOfNames( + REFIID riid, + LPOLESTR* rgszNames, + UINT cNames, + LCID lcid, + DISPID* rgDispId) = 0; + + virtual HRESULT CALLBACK Invoke( + DISPID dispIdMember, + REFIID riid, + LCID lcid, + WORD wFlags, + DISPPARAMS* pDispParams, + VARIANT* pVarResult, + EXCEPINFO* pExcepInfo, + UINT* puArgErr) = 0; + +} ICOM_COM_INTERFACE_ATTRIBUTE; +#else +typedef struct IDispatchVtbl IDispatchVtbl; +struct IDispatch { + const IDispatchVtbl* lpVtbl; +}; +struct IDispatchVtbl { + ICOM_MSVTABLE_COMPAT_FIELDS + + /*** IUnknown methods ***/ + HRESULT (CALLBACK *QueryInterface)( + IDispatch* This, + REFIID riid, + void** ppvObject); + + ULONG (CALLBACK *AddRef)( + IDispatch* This); + + ULONG (CALLBACK *Release)( + IDispatch* This); + + /*** IDispatch methods ***/ + HRESULT (CALLBACK *GetTypeInfoCount)( + IDispatch* This, + UINT* pctinfo); + + HRESULT (CALLBACK *GetTypeInfo)( + IDispatch* This, + UINT iTInfo, + LCID lcid, + ITypeInfo** ppTInfo); + + HRESULT (CALLBACK *GetIDsOfNames)( + IDispatch* This, + REFIID riid, + LPOLESTR* rgszNames, + UINT cNames, + LCID lcid, + DISPID* rgDispId); + + HRESULT (CALLBACK *Invoke)( + IDispatch* This, + DISPID dispIdMember, + REFIID riid, + LCID lcid, + WORD wFlags, + DISPPARAMS* pDispParams, + VARIANT* pVarResult, + EXCEPINFO* pExcepInfo, + UINT* puArgErr); + +}; + +#define IDispatch_IMETHODS \ + IUnknown_IMETHODS \ + ICOM_METHOD1 (HRESULT,GetTypeInfoCount,UINT*,pctinfo) \ + ICOM_METHOD3 (HRESULT,GetTypeInfo,UINT,iTInfo,LCID,lcid,ITypeInfo**,ppTInfo) \ + ICOM_METHOD5 (HRESULT,GetIDsOfNames,REFIID,riid,LPOLESTR*,rgszNames,UINT,cNames,LCID,lcid,DISPID*,rgDispId) \ + ICOM_METHOD8 (HRESULT,Invoke,DISPID,dispIdMember,REFIID,riid,LCID,lcid,WORD,wFlags,DISPPARAMS*,pDispParams,VARIANT*,pVarResult,EXCEPINFO*,pExcepInfo,UINT*,puArgErr) + +/*** IUnknown methods ***/ +#define IDispatch_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) +#define IDispatch_AddRef(p) (p)->lpVtbl->AddRef(p) +#define IDispatch_Release(p) (p)->lpVtbl->Release(p) +/*** IDispatch methods ***/ +#define IDispatch_GetTypeInfoCount(p,a) (p)->lpVtbl->GetTypeInfoCount(p,a) +#define IDispatch_GetTypeInfo(p,a,b,c) (p)->lpVtbl->GetTypeInfo(p,a,b,c) +#define IDispatch_GetIDsOfNames(p,a,b,c,d,e) (p)->lpVtbl->GetIDsOfNames(p,a,b,c,d,e) +#define IDispatch_Invoke(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->Invoke(p,a,b,c,d,e,f,g,h) + #endif -#ifndef __WINE_OAIDL_H -#define __WINE_OAIDL_H +HRESULT CALLBACK IDispatch_GetTypeInfoCount_Proxy( + IDispatch* This, + UINT* pctinfo); +void __RPC_STUB IDispatch_GetTypeInfoCount_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IDispatch_GetTypeInfo_Proxy( + IDispatch* This, + UINT iTInfo, + LCID lcid, + ITypeInfo** ppTInfo); +void __RPC_STUB IDispatch_GetTypeInfo_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IDispatch_GetIDsOfNames_Proxy( + IDispatch* This, + REFIID riid, + LPOLESTR* rgszNames, + UINT cNames, + LCID lcid, + DISPID* rgDispId); +void __RPC_STUB IDispatch_GetIDsOfNames_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IDispatch_RemoteInvoke_Proxy( + IDispatch* This, + DISPID dispIdMember, + REFIID riid, + LCID lcid, + DWORD dwFlags, + DISPPARAMS* pDispParams, + VARIANT* pVarResult, + EXCEPINFO* pExcepInfo, + UINT* pArgErr, + UINT cVarRef, + UINT* rgVarRefIdx, + VARIANTARG* rgVarRef); +void __RPC_STUB IDispatch_RemoteInvoke_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IDispatch_Invoke_Proxy( + IDispatch* This, + DISPID dispIdMember, + REFIID riid, + LCID lcid, + WORD wFlags, + DISPPARAMS* pDispParams, + VARIANT* pVarResult, + EXCEPINFO* pExcepInfo, + UINT* puArgErr); +HRESULT __RPC_STUB IDispatch_Invoke_Stub( + IDispatch* This, + DISPID dispIdMember, + REFIID riid, + LCID lcid, + DWORD dwFlags, + DISPPARAMS* pDispParams, + VARIANT* pVarResult, + EXCEPINFO* pExcepInfo, + UINT* pArgErr, + UINT cVarRef, + UINT* rgVarRefIdx, + VARIANTARG* rgVarRef); + +typedef struct IEnumVARIANT IEnumVARIANT; +typedef IEnumVARIANT *LPENUMVARIANT; + +/***************************************************************************** + * IEnumVARIANT interface + */ +DEFINE_GUID(IID_IEnumVARIANT, 0x00020404, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46); +#if defined(__cplusplus) && !defined(CINTERFACE) +struct IEnumVARIANT: IUnknown { + + virtual HRESULT CALLBACK Next( + ULONG celt, + VARIANT* rgVar, + ULONG* pCeltFetched) = 0; + + virtual HRESULT CALLBACK Skip( + ULONG celt) = 0; + + virtual HRESULT CALLBACK Reset( + ) = 0; + + virtual HRESULT CALLBACK Clone( + IEnumVARIANT** ppEnum) = 0; + +} ICOM_COM_INTERFACE_ATTRIBUTE; +#else +typedef struct IEnumVARIANTVtbl IEnumVARIANTVtbl; +struct IEnumVARIANT { + const IEnumVARIANTVtbl* lpVtbl; +}; +struct IEnumVARIANTVtbl { + ICOM_MSVTABLE_COMPAT_FIELDS + + /*** IUnknown methods ***/ + HRESULT (CALLBACK *QueryInterface)( + IEnumVARIANT* This, + REFIID riid, + void** ppvObject); + + ULONG (CALLBACK *AddRef)( + IEnumVARIANT* This); + + ULONG (CALLBACK *Release)( + IEnumVARIANT* This); + + /*** IEnumVARIANT methods ***/ + HRESULT (CALLBACK *Next)( + IEnumVARIANT* This, + ULONG celt, + VARIANT* rgVar, + ULONG* pCeltFetched); + + HRESULT (CALLBACK *Skip)( + IEnumVARIANT* This, + ULONG celt); + + HRESULT (CALLBACK *Reset)( + IEnumVARIANT* This); + + HRESULT (CALLBACK *Clone)( + IEnumVARIANT* This, + IEnumVARIANT** ppEnum); + +}; + +#define IEnumVARIANT_IMETHODS \ + IUnknown_IMETHODS \ + ICOM_METHOD3 (HRESULT,Next,ULONG,celt,VARIANT*,rgVar,ULONG*,pCeltFetched) \ + ICOM_METHOD1 (HRESULT,Skip,ULONG,celt) \ + ICOM_METHOD (HRESULT,Reset) \ + ICOM_METHOD1 (HRESULT,Clone,IEnumVARIANT**,ppEnum) + +/*** IUnknown methods ***/ +#define IEnumVARIANT_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) +#define IEnumVARIANT_AddRef(p) (p)->lpVtbl->AddRef(p) +#define IEnumVARIANT_Release(p) (p)->lpVtbl->Release(p) +/*** IEnumVARIANT methods ***/ +#define IEnumVARIANT_Next(p,a,b,c) (p)->lpVtbl->Next(p,a,b,c) +#define IEnumVARIANT_Skip(p,a) (p)->lpVtbl->Skip(p,a) +#define IEnumVARIANT_Reset(p) (p)->lpVtbl->Reset(p) +#define IEnumVARIANT_Clone(p,a) (p)->lpVtbl->Clone(p,a) -#if defined(__WINESRC__) && !defined(INITGUID) && !defined(__WINE_INCLUDE_OAIDL) -#error DO NOT INCLUDE DIRECTLY #endif -#include "objbase.h" -/* the following depend only on obj_base.h */ -#include "wine/obj_oleaut.h" -#include "wine/obj_errorinfo.h" +HRESULT CALLBACK IEnumVARIANT_RemoteNext_Proxy( + IEnumVARIANT* This, + ULONG celt, + VARIANT* rgVar, + ULONG* pCeltFetched); +void __RPC_STUB IEnumVARIANT_RemoteNext_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IEnumVARIANT_Next_Proxy( + IEnumVARIANT* This, + ULONG celt, + VARIANT* rgVar, + ULONG* pCeltFetched); +HRESULT __RPC_STUB IEnumVARIANT_Next_Stub( + IEnumVARIANT* This, + ULONG celt, + VARIANT* rgVar, + ULONG* pCeltFetched); +HRESULT CALLBACK IEnumVARIANT_Skip_Proxy( + IEnumVARIANT* This, + ULONG celt); +void __RPC_STUB IEnumVARIANT_Skip_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IEnumVARIANT_Reset_Proxy( + IEnumVARIANT* This); +void __RPC_STUB IEnumVARIANT_Reset_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IEnumVARIANT_Clone_Proxy( + IEnumVARIANT* This, + IEnumVARIANT** ppEnum); +void __RPC_STUB IEnumVARIANT_Clone_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); -#endif /* _WINE_OAIDL_H */ +typedef struct ITypeComp ITypeComp; +typedef ITypeComp *LPTYPECOMP; + +typedef enum tagDESCKIND { + DESCKIND_NONE = 0, + DESCKIND_FUNCDESC, + DESCKIND_VARDESC, + DESCKIND_TYPECOMP, + DESCKIND_IMPLICITAPPOBJ, + DESCKIND_MAX +} DESCKIND; + +typedef union tagBINDPTR { + FUNCDESC *lpfuncdesc; + VARDESC *lpvardesc; + ITypeComp *lptcomp; +} BINDPTR, *LPBINDPTR; + +/***************************************************************************** + * ITypeComp interface + */ +DEFINE_GUID(IID_ITypeComp, 0x00020403, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46); +#if defined(__cplusplus) && !defined(CINTERFACE) +struct ITypeComp: IUnknown { + + virtual HRESULT CALLBACK Bind( + LPOLESTR szName, + ULONG lHashVal, + WORD wFlags, + ITypeInfo** ppTInfo, + DESCKIND* pDescKind, + BINDPTR* pBindPtr) = 0; + + virtual HRESULT CALLBACK BindType( + LPOLESTR szName, + ULONG lHashVal, + ITypeInfo** ppTInfo, + ITypeComp** ppTComp) = 0; + +} ICOM_COM_INTERFACE_ATTRIBUTE; +#else +typedef struct ITypeCompVtbl ITypeCompVtbl; +struct ITypeComp { + const ITypeCompVtbl* lpVtbl; +}; +struct ITypeCompVtbl { + ICOM_MSVTABLE_COMPAT_FIELDS + + /*** IUnknown methods ***/ + HRESULT (CALLBACK *QueryInterface)( + ITypeComp* This, + REFIID riid, + void** ppvObject); + + ULONG (CALLBACK *AddRef)( + ITypeComp* This); + + ULONG (CALLBACK *Release)( + ITypeComp* This); + + /*** ITypeComp methods ***/ + HRESULT (CALLBACK *Bind)( + ITypeComp* This, + LPOLESTR szName, + ULONG lHashVal, + WORD wFlags, + ITypeInfo** ppTInfo, + DESCKIND* pDescKind, + BINDPTR* pBindPtr); + + HRESULT (CALLBACK *BindType)( + ITypeComp* This, + LPOLESTR szName, + ULONG lHashVal, + ITypeInfo** ppTInfo, + ITypeComp** ppTComp); + +}; + +#define ITypeComp_IMETHODS \ + IUnknown_IMETHODS \ + ICOM_METHOD6 (HRESULT,Bind,LPOLESTR,szName,ULONG,lHashVal,WORD,wFlags,ITypeInfo**,ppTInfo,DESCKIND*,pDescKind,BINDPTR*,pBindPtr) \ + ICOM_METHOD4 (HRESULT,BindType,LPOLESTR,szName,ULONG,lHashVal,ITypeInfo**,ppTInfo,ITypeComp**,ppTComp) + +/*** IUnknown methods ***/ +#define ITypeComp_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) +#define ITypeComp_AddRef(p) (p)->lpVtbl->AddRef(p) +#define ITypeComp_Release(p) (p)->lpVtbl->Release(p) +/*** ITypeComp methods ***/ +#define ITypeComp_Bind(p,a,b,c,d,e,f) (p)->lpVtbl->Bind(p,a,b,c,d,e,f) +#define ITypeComp_BindType(p,a,b,c,d) (p)->lpVtbl->BindType(p,a,b,c,d) + +#endif + +HRESULT CALLBACK ITypeComp_RemoteBind_Proxy( + ITypeComp* This, + LPOLESTR szName, + ULONG lHashVal, + WORD wFlags, + ITypeInfo** ppTInfo, + DESCKIND* pDescKind, + LPFUNCDESC* ppFuncDesc, + LPVARDESC* ppVarDesc, + ITypeComp** ppTypeComp, + CLEANLOCALSTORAGE* pDummy); +void __RPC_STUB ITypeComp_RemoteBind_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK ITypeComp_Bind_Proxy( + ITypeComp* This, + LPOLESTR szName, + ULONG lHashVal, + WORD wFlags, + ITypeInfo** ppTInfo, + DESCKIND* pDescKind, + BINDPTR* pBindPtr); +HRESULT __RPC_STUB ITypeComp_Bind_Stub( + ITypeComp* This, + LPOLESTR szName, + ULONG lHashVal, + WORD wFlags, + ITypeInfo** ppTInfo, + DESCKIND* pDescKind, + LPFUNCDESC* ppFuncDesc, + LPVARDESC* ppVarDesc, + ITypeComp** ppTypeComp, + CLEANLOCALSTORAGE* pDummy); +HRESULT CALLBACK ITypeComp_RemoteBindType_Proxy( + ITypeComp* This, + LPOLESTR szName, + ULONG lHashVal, + ITypeInfo** ppTInfo); +void __RPC_STUB ITypeComp_RemoteBindType_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK ITypeComp_BindType_Proxy( + ITypeComp* This, + LPOLESTR szName, + ULONG lHashVal, + ITypeInfo** ppTInfo, + ITypeComp** ppTComp); +HRESULT __RPC_STUB ITypeComp_BindType_Stub( + ITypeComp* This, + LPOLESTR szName, + ULONG lHashVal, + ITypeInfo** ppTInfo); + +typedef ITypeInfo *LPTYPEINFO; + +/***************************************************************************** + * ITypeInfo interface + */ +DEFINE_GUID(IID_ITypeInfo, 0x00020401, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46); +#if defined(__cplusplus) && !defined(CINTERFACE) +struct ITypeInfo: IUnknown { + + virtual HRESULT CALLBACK GetTypeAttr( + TYPEATTR** ppTypeAttr) = 0; + + virtual HRESULT CALLBACK GetTypeComp( + ITypeComp** ppTComp) = 0; + + virtual HRESULT CALLBACK GetFuncDesc( + UINT index, + FUNCDESC** ppFuncDesc) = 0; + + virtual HRESULT CALLBACK GetVarDesc( + UINT index, + VARDESC** ppVarDesc) = 0; + + virtual HRESULT CALLBACK GetNames( + MEMBERID memid, + BSTR* rgBstrNames, + UINT cMaxNames, + UINT* pcNames) = 0; + + virtual HRESULT CALLBACK GetRefTypeOfImplType( + UINT index, + HREFTYPE* pRefType) = 0; + + virtual HRESULT CALLBACK GetImplTypeFlags( + UINT index, + INT* pImplTypeFlags) = 0; + + virtual HRESULT CALLBACK GetIDsOfNames( + LPOLESTR* rgszNames, + UINT cNames, + MEMBERID* pMemId) = 0; + + virtual HRESULT CALLBACK Invoke( + PVOID pvInstance, + MEMBERID memid, + WORD wFlags, + DISPPARAMS* pDispParams, + VARIANT* pVarResult, + EXCEPINFO* pExcepInfo, + UINT* puArgErr) = 0; + + virtual HRESULT CALLBACK GetDocumentation( + MEMBERID memid, + BSTR* pBstrName, + BSTR* pBstrDocString, + DWORD* pdwHelpContext, + BSTR* pBstrHelpFile) = 0; + + virtual HRESULT CALLBACK GetDllEntry( + MEMBERID memid, + INVOKEKIND invKind, + BSTR* pBstrDllName, + BSTR* pBstrName, + WORD* pwOrdinal) = 0; + + virtual HRESULT CALLBACK GetRefTypeInfo( + HREFTYPE hRefType, + ITypeInfo** ppTInfo) = 0; + + virtual HRESULT CALLBACK AddressOfMember( + MEMBERID memid, + INVOKEKIND invKind, + PVOID* ppv) = 0; + + virtual HRESULT CALLBACK CreateInstance( + IUnknown* pUnkOuter, + REFIID riid, + PVOID* ppvObj) = 0; + + virtual HRESULT CALLBACK GetMops( + MEMBERID memid, + BSTR* pBstrMops) = 0; + + virtual HRESULT CALLBACK GetContainingTypeLib( + ITypeLib** ppTLib, + UINT* pIndex) = 0; + + virtual void CALLBACK ReleaseTypeAttr( + TYPEATTR* pTypeAttr) = 0; + + virtual void CALLBACK ReleaseFuncDesc( + FUNCDESC* pFuncDesc) = 0; + + virtual void CALLBACK ReleaseVarDesc( + VARDESC* pVarDesc) = 0; + +} ICOM_COM_INTERFACE_ATTRIBUTE; +#else +typedef struct ITypeInfoVtbl ITypeInfoVtbl; +struct ITypeInfo { + const ITypeInfoVtbl* lpVtbl; +}; +struct ITypeInfoVtbl { + ICOM_MSVTABLE_COMPAT_FIELDS + + /*** IUnknown methods ***/ + HRESULT (CALLBACK *QueryInterface)( + ITypeInfo* This, + REFIID riid, + void** ppvObject); + + ULONG (CALLBACK *AddRef)( + ITypeInfo* This); + + ULONG (CALLBACK *Release)( + ITypeInfo* This); + + /*** ITypeInfo methods ***/ + HRESULT (CALLBACK *GetTypeAttr)( + ITypeInfo* This, + TYPEATTR** ppTypeAttr); + + HRESULT (CALLBACK *GetTypeComp)( + ITypeInfo* This, + ITypeComp** ppTComp); + + HRESULT (CALLBACK *GetFuncDesc)( + ITypeInfo* This, + UINT index, + FUNCDESC** ppFuncDesc); + + HRESULT (CALLBACK *GetVarDesc)( + ITypeInfo* This, + UINT index, + VARDESC** ppVarDesc); + + HRESULT (CALLBACK *GetNames)( + ITypeInfo* This, + MEMBERID memid, + BSTR* rgBstrNames, + UINT cMaxNames, + UINT* pcNames); + + HRESULT (CALLBACK *GetRefTypeOfImplType)( + ITypeInfo* This, + UINT index, + HREFTYPE* pRefType); + + HRESULT (CALLBACK *GetImplTypeFlags)( + ITypeInfo* This, + UINT index, + INT* pImplTypeFlags); + + HRESULT (CALLBACK *GetIDsOfNames)( + ITypeInfo* This, + LPOLESTR* rgszNames, + UINT cNames, + MEMBERID* pMemId); + + HRESULT (CALLBACK *Invoke)( + ITypeInfo* This, + PVOID pvInstance, + MEMBERID memid, + WORD wFlags, + DISPPARAMS* pDispParams, + VARIANT* pVarResult, + EXCEPINFO* pExcepInfo, + UINT* puArgErr); + + HRESULT (CALLBACK *GetDocumentation)( + ITypeInfo* This, + MEMBERID memid, + BSTR* pBstrName, + BSTR* pBstrDocString, + DWORD* pdwHelpContext, + BSTR* pBstrHelpFile); + + HRESULT (CALLBACK *GetDllEntry)( + ITypeInfo* This, + MEMBERID memid, + INVOKEKIND invKind, + BSTR* pBstrDllName, + BSTR* pBstrName, + WORD* pwOrdinal); + + HRESULT (CALLBACK *GetRefTypeInfo)( + ITypeInfo* This, + HREFTYPE hRefType, + ITypeInfo** ppTInfo); + + HRESULT (CALLBACK *AddressOfMember)( + ITypeInfo* This, + MEMBERID memid, + INVOKEKIND invKind, + PVOID* ppv); + + HRESULT (CALLBACK *CreateInstance)( + ITypeInfo* This, + IUnknown* pUnkOuter, + REFIID riid, + PVOID* ppvObj); + + HRESULT (CALLBACK *GetMops)( + ITypeInfo* This, + MEMBERID memid, + BSTR* pBstrMops); + + HRESULT (CALLBACK *GetContainingTypeLib)( + ITypeInfo* This, + ITypeLib** ppTLib, + UINT* pIndex); + + void (CALLBACK *ReleaseTypeAttr)( + ITypeInfo* This, + TYPEATTR* pTypeAttr); + + void (CALLBACK *ReleaseFuncDesc)( + ITypeInfo* This, + FUNCDESC* pFuncDesc); + + void (CALLBACK *ReleaseVarDesc)( + ITypeInfo* This, + VARDESC* pVarDesc); + +}; + +#define ITypeInfo_IMETHODS \ + IUnknown_IMETHODS \ + ICOM_METHOD1 (HRESULT,GetTypeAttr,TYPEATTR**,ppTypeAttr) \ + ICOM_METHOD1 (HRESULT,GetTypeComp,ITypeComp**,ppTComp) \ + ICOM_METHOD2 (HRESULT,GetFuncDesc,UINT,index,FUNCDESC**,ppFuncDesc) \ + ICOM_METHOD2 (HRESULT,GetVarDesc,UINT,index,VARDESC**,ppVarDesc) \ + ICOM_METHOD4 (HRESULT,GetNames,MEMBERID,memid,BSTR*,rgBstrNames,UINT,cMaxNames,UINT*,pcNames) \ + ICOM_METHOD2 (HRESULT,GetRefTypeOfImplType,UINT,index,HREFTYPE*,pRefType) \ + ICOM_METHOD2 (HRESULT,GetImplTypeFlags,UINT,index,INT*,pImplTypeFlags) \ + ICOM_METHOD3 (HRESULT,GetIDsOfNames,LPOLESTR*,rgszNames,UINT,cNames,MEMBERID*,pMemId) \ + ICOM_METHOD7 (HRESULT,Invoke,PVOID,pvInstance,MEMBERID,memid,WORD,wFlags,DISPPARAMS*,pDispParams,VARIANT*,pVarResult,EXCEPINFO*,pExcepInfo,UINT*,puArgErr) \ + ICOM_METHOD5 (HRESULT,GetDocumentation,MEMBERID,memid,BSTR*,pBstrName,BSTR*,pBstrDocString,DWORD*,pdwHelpContext,BSTR*,pBstrHelpFile) \ + ICOM_METHOD5 (HRESULT,GetDllEntry,MEMBERID,memid,INVOKEKIND,invKind,BSTR*,pBstrDllName,BSTR*,pBstrName,WORD*,pwOrdinal) \ + ICOM_METHOD2 (HRESULT,GetRefTypeInfo,HREFTYPE,hRefType,ITypeInfo**,ppTInfo) \ + ICOM_METHOD3 (HRESULT,AddressOfMember,MEMBERID,memid,INVOKEKIND,invKind,PVOID*,ppv) \ + ICOM_METHOD3 (HRESULT,CreateInstance,IUnknown*,pUnkOuter,REFIID,riid,PVOID*,ppvObj) \ + ICOM_METHOD2 (HRESULT,GetMops,MEMBERID,memid,BSTR*,pBstrMops) \ + ICOM_METHOD2 (HRESULT,GetContainingTypeLib,ITypeLib**,ppTLib,UINT*,pIndex) \ + ICOM_VMETHOD1(ReleaseTypeAttr,TYPEATTR*,pTypeAttr) \ + ICOM_VMETHOD1(ReleaseFuncDesc,FUNCDESC*,pFuncDesc) \ + ICOM_VMETHOD1(ReleaseVarDesc,VARDESC*,pVarDesc) + +/*** IUnknown methods ***/ +#define ITypeInfo_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) +#define ITypeInfo_AddRef(p) (p)->lpVtbl->AddRef(p) +#define ITypeInfo_Release(p) (p)->lpVtbl->Release(p) +/*** ITypeInfo methods ***/ +#define ITypeInfo_GetTypeAttr(p,a) (p)->lpVtbl->GetTypeAttr(p,a) +#define ITypeInfo_GetTypeComp(p,a) (p)->lpVtbl->GetTypeComp(p,a) +#define ITypeInfo_GetFuncDesc(p,a,b) (p)->lpVtbl->GetFuncDesc(p,a,b) +#define ITypeInfo_GetVarDesc(p,a,b) (p)->lpVtbl->GetVarDesc(p,a,b) +#define ITypeInfo_GetNames(p,a,b,c,d) (p)->lpVtbl->GetNames(p,a,b,c,d) +#define ITypeInfo_GetRefTypeOfImplType(p,a,b) (p)->lpVtbl->GetRefTypeOfImplType(p,a,b) +#define ITypeInfo_GetImplTypeFlags(p,a,b) (p)->lpVtbl->GetImplTypeFlags(p,a,b) +#define ITypeInfo_GetIDsOfNames(p,a,b,c) (p)->lpVtbl->GetIDsOfNames(p,a,b,c) +#define ITypeInfo_Invoke(p,a,b,c,d,e,f,g) (p)->lpVtbl->Invoke(p,a,b,c,d,e,f,g) +#define ITypeInfo_GetDocumentation(p,a,b,c,d,e) (p)->lpVtbl->GetDocumentation(p,a,b,c,d,e) +#define ITypeInfo_GetDllEntry(p,a,b,c,d,e) (p)->lpVtbl->GetDllEntry(p,a,b,c,d,e) +#define ITypeInfo_GetRefTypeInfo(p,a,b) (p)->lpVtbl->GetRefTypeInfo(p,a,b) +#define ITypeInfo_AddressOfMember(p,a,b,c) (p)->lpVtbl->AddressOfMember(p,a,b,c) +#define ITypeInfo_CreateInstance(p,a,b,c) (p)->lpVtbl->CreateInstance(p,a,b,c) +#define ITypeInfo_GetMops(p,a,b) (p)->lpVtbl->GetMops(p,a,b) +#define ITypeInfo_GetContainingTypeLib(p,a,b) (p)->lpVtbl->GetContainingTypeLib(p,a,b) +#define ITypeInfo_ReleaseTypeAttr(p,a) (p)->lpVtbl->ReleaseTypeAttr(p,a) +#define ITypeInfo_ReleaseFuncDesc(p,a) (p)->lpVtbl->ReleaseFuncDesc(p,a) +#define ITypeInfo_ReleaseVarDesc(p,a) (p)->lpVtbl->ReleaseVarDesc(p,a) + +#endif + +HRESULT CALLBACK ITypeInfo_RemoteGetTypeAttr_Proxy( + ITypeInfo* This, + LPTYPEATTR* ppTypeAttr, + CLEANLOCALSTORAGE* pDummy); +void __RPC_STUB ITypeInfo_RemoteGetTypeAttr_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK ITypeInfo_GetTypeAttr_Proxy( + ITypeInfo* This, + TYPEATTR** ppTypeAttr); +HRESULT __RPC_STUB ITypeInfo_GetTypeAttr_Stub( + ITypeInfo* This, + LPTYPEATTR* ppTypeAttr, + CLEANLOCALSTORAGE* pDummy); +HRESULT CALLBACK ITypeInfo_GetTypeComp_Proxy( + ITypeInfo* This, + ITypeComp** ppTComp); +void __RPC_STUB ITypeInfo_GetTypeComp_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK ITypeInfo_RemoteGetFuncDesc_Proxy( + ITypeInfo* This, + UINT index, + LPFUNCDESC* ppFuncDesc, + CLEANLOCALSTORAGE* pDummy); +void __RPC_STUB ITypeInfo_RemoteGetFuncDesc_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK ITypeInfo_GetFuncDesc_Proxy( + ITypeInfo* This, + UINT index, + FUNCDESC** ppFuncDesc); +HRESULT __RPC_STUB ITypeInfo_GetFuncDesc_Stub( + ITypeInfo* This, + UINT index, + LPFUNCDESC* ppFuncDesc, + CLEANLOCALSTORAGE* pDummy); +HRESULT CALLBACK ITypeInfo_RemoteGetVarDesc_Proxy( + ITypeInfo* This, + UINT index, + LPVARDESC* ppVarDesc, + CLEANLOCALSTORAGE* pDummy); +void __RPC_STUB ITypeInfo_RemoteGetVarDesc_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK ITypeInfo_GetVarDesc_Proxy( + ITypeInfo* This, + UINT index, + VARDESC** ppVarDesc); +HRESULT __RPC_STUB ITypeInfo_GetVarDesc_Stub( + ITypeInfo* This, + UINT index, + LPVARDESC* ppVarDesc, + CLEANLOCALSTORAGE* pDummy); +HRESULT CALLBACK ITypeInfo_RemoteGetNames_Proxy( + ITypeInfo* This, + MEMBERID memid, + BSTR* rgBstrNames, + UINT cMaxNames, + UINT* pcNames); +void __RPC_STUB ITypeInfo_RemoteGetNames_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK ITypeInfo_GetNames_Proxy( + ITypeInfo* This, + MEMBERID memid, + BSTR* rgBstrNames, + UINT cMaxNames, + UINT* pcNames); +HRESULT __RPC_STUB ITypeInfo_GetNames_Stub( + ITypeInfo* This, + MEMBERID memid, + BSTR* rgBstrNames, + UINT cMaxNames, + UINT* pcNames); +HRESULT CALLBACK ITypeInfo_GetRefTypeOfImplType_Proxy( + ITypeInfo* This, + UINT index, + HREFTYPE* pRefType); +void __RPC_STUB ITypeInfo_GetRefTypeOfImplType_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK ITypeInfo_GetImplTypeFlags_Proxy( + ITypeInfo* This, + UINT index, + INT* pImplTypeFlags); +void __RPC_STUB ITypeInfo_GetImplTypeFlags_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK ITypeInfo_LocalGetIDsOfNames_Proxy( + ITypeInfo* This); +void __RPC_STUB ITypeInfo_LocalGetIDsOfNames_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK ITypeInfo_GetIDsOfNames_Proxy( + ITypeInfo* This, + LPOLESTR* rgszNames, + UINT cNames, + MEMBERID* pMemId); +HRESULT __RPC_STUB ITypeInfo_GetIDsOfNames_Stub( + ITypeInfo* This); +HRESULT CALLBACK ITypeInfo_LocalInvoke_Proxy( + ITypeInfo* This); +void __RPC_STUB ITypeInfo_LocalInvoke_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK ITypeInfo_Invoke_Proxy( + ITypeInfo* This, + PVOID pvInstance, + MEMBERID memid, + WORD wFlags, + DISPPARAMS* pDispParams, + VARIANT* pVarResult, + EXCEPINFO* pExcepInfo, + UINT* puArgErr); +HRESULT __RPC_STUB ITypeInfo_Invoke_Stub( + ITypeInfo* This); +HRESULT CALLBACK ITypeInfo_RemoteGetDocumentation_Proxy( + ITypeInfo* This, + MEMBERID memid, + DWORD refPtrFlags, + BSTR* pBstrName, + BSTR* pBstrDocString, + DWORD* pdwHelpContext, + BSTR* pBstrHelpFile); +void __RPC_STUB ITypeInfo_RemoteGetDocumentation_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK ITypeInfo_GetDocumentation_Proxy( + ITypeInfo* This, + MEMBERID memid, + BSTR* pBstrName, + BSTR* pBstrDocString, + DWORD* pdwHelpContext, + BSTR* pBstrHelpFile); +HRESULT __RPC_STUB ITypeInfo_GetDocumentation_Stub( + ITypeInfo* This, + MEMBERID memid, + DWORD refPtrFlags, + BSTR* pBstrName, + BSTR* pBstrDocString, + DWORD* pdwHelpContext, + BSTR* pBstrHelpFile); +HRESULT CALLBACK ITypeInfo_RemoteGetDllEntry_Proxy( + ITypeInfo* This, + MEMBERID memid, + INVOKEKIND invKind, + DWORD refPtrFlags, + BSTR* pBstrDllName, + BSTR* pBstrName, + WORD* pwOrdinal); +void __RPC_STUB ITypeInfo_RemoteGetDllEntry_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK ITypeInfo_GetDllEntry_Proxy( + ITypeInfo* This, + MEMBERID memid, + INVOKEKIND invKind, + BSTR* pBstrDllName, + BSTR* pBstrName, + WORD* pwOrdinal); +HRESULT __RPC_STUB ITypeInfo_GetDllEntry_Stub( + ITypeInfo* This, + MEMBERID memid, + INVOKEKIND invKind, + DWORD refPtrFlags, + BSTR* pBstrDllName, + BSTR* pBstrName, + WORD* pwOrdinal); +HRESULT CALLBACK ITypeInfo_GetRefTypeInfo_Proxy( + ITypeInfo* This, + HREFTYPE hRefType, + ITypeInfo** ppTInfo); +void __RPC_STUB ITypeInfo_GetRefTypeInfo_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK ITypeInfo_LocalAddressOfMember_Proxy( + ITypeInfo* This); +void __RPC_STUB ITypeInfo_LocalAddressOfMember_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK ITypeInfo_AddressOfMember_Proxy( + ITypeInfo* This, + MEMBERID memid, + INVOKEKIND invKind, + PVOID* ppv); +HRESULT __RPC_STUB ITypeInfo_AddressOfMember_Stub( + ITypeInfo* This); +HRESULT CALLBACK ITypeInfo_RemoteCreateInstance_Proxy( + ITypeInfo* This, + REFIID riid, + IUnknown** ppvObj); +void __RPC_STUB ITypeInfo_RemoteCreateInstance_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK ITypeInfo_CreateInstance_Proxy( + ITypeInfo* This, + IUnknown* pUnkOuter, + REFIID riid, + PVOID* ppvObj); +HRESULT __RPC_STUB ITypeInfo_CreateInstance_Stub( + ITypeInfo* This, + REFIID riid, + IUnknown** ppvObj); +HRESULT CALLBACK ITypeInfo_GetMops_Proxy( + ITypeInfo* This, + MEMBERID memid, + BSTR* pBstrMops); +void __RPC_STUB ITypeInfo_GetMops_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK ITypeInfo_RemoteGetContainingTypeLib_Proxy( + ITypeInfo* This, + ITypeLib** ppTLib, + UINT* pIndex); +void __RPC_STUB ITypeInfo_RemoteGetContainingTypeLib_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK ITypeInfo_GetContainingTypeLib_Proxy( + ITypeInfo* This, + ITypeLib** ppTLib, + UINT* pIndex); +HRESULT __RPC_STUB ITypeInfo_GetContainingTypeLib_Stub( + ITypeInfo* This, + ITypeLib** ppTLib, + UINT* pIndex); +HRESULT CALLBACK ITypeInfo_LocalReleaseTypeAttr_Proxy( + ITypeInfo* This); +void __RPC_STUB ITypeInfo_LocalReleaseTypeAttr_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +void CALLBACK ITypeInfo_ReleaseTypeAttr_Proxy( + ITypeInfo* This, + TYPEATTR* pTypeAttr); +HRESULT __RPC_STUB ITypeInfo_ReleaseTypeAttr_Stub( + ITypeInfo* This); +HRESULT CALLBACK ITypeInfo_LocalReleaseFuncDesc_Proxy( + ITypeInfo* This); +void __RPC_STUB ITypeInfo_LocalReleaseFuncDesc_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +void CALLBACK ITypeInfo_ReleaseFuncDesc_Proxy( + ITypeInfo* This, + FUNCDESC* pFuncDesc); +HRESULT __RPC_STUB ITypeInfo_ReleaseFuncDesc_Stub( + ITypeInfo* This); +HRESULT CALLBACK ITypeInfo_LocalReleaseVarDesc_Proxy( + ITypeInfo* This); +void __RPC_STUB ITypeInfo_LocalReleaseVarDesc_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +void CALLBACK ITypeInfo_ReleaseVarDesc_Proxy( + ITypeInfo* This, + VARDESC* pVarDesc); +HRESULT __RPC_STUB ITypeInfo_ReleaseVarDesc_Stub( + ITypeInfo* This); + +typedef struct ITypeInfo2 ITypeInfo2; +typedef ITypeInfo2 *LPTYPEINFO2; + +/***************************************************************************** + * ITypeInfo2 interface + */ +DEFINE_GUID(IID_ITypeInfo2, 0x00020412, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46); +#if defined(__cplusplus) && !defined(CINTERFACE) +struct ITypeInfo2: ITypeInfo { + + virtual HRESULT CALLBACK GetTypeKind( + TYPEKIND* pTypeKind) = 0; + + virtual HRESULT CALLBACK GetTypeFlags( + ULONG* pTypeFlags) = 0; + + virtual HRESULT CALLBACK GetFuncIndexOfMemId( + MEMBERID memid, + INVOKEKIND invKind, + UINT* pFuncIndex) = 0; + + virtual HRESULT CALLBACK GetVarIndexOfMemId( + MEMBERID memid, + UINT* pVarIndex) = 0; + + virtual HRESULT CALLBACK GetCustData( + REFGUID guid, + VARIANT* pVarVal) = 0; + + virtual HRESULT CALLBACK GetFuncCustData( + UINT index, + REFGUID guid, + VARIANT* pVarVal) = 0; + + virtual HRESULT CALLBACK GetParamCustData( + UINT indexFunc, + UINT indexParam, + REFGUID guid, + VARIANT* pVarVal) = 0; + + virtual HRESULT CALLBACK GetVarCustData( + UINT index, + REFGUID guid, + VARIANT* pVarVal) = 0; + + virtual HRESULT CALLBACK GetImplTypeCustData( + UINT index, + REFGUID guid, + VARIANT* pVarVal) = 0; + + virtual HRESULT CALLBACK GetDocumentation2( + MEMBERID memid, + LCID lcid, + BSTR* pbstrHelpString, + DWORD* pdwHelpStringContext, + BSTR* pbstrHelpStringDll) = 0; + + virtual HRESULT CALLBACK GetAllCustData( + CUSTDATA* pCustData) = 0; + + virtual HRESULT CALLBACK GetAllFuncCustData( + UINT index, + CUSTDATA* pCustData) = 0; + + virtual HRESULT CALLBACK GetAllParamCustData( + UINT indexFunc, + UINT indexParam, + CUSTDATA* pCustData) = 0; + + virtual HRESULT CALLBACK GetAllVarCustData( + UINT index, + CUSTDATA* pCustData) = 0; + + virtual HRESULT CALLBACK GetAllImplTypeCustData( + UINT index, + CUSTDATA* pCustData) = 0; + +} ICOM_COM_INTERFACE_ATTRIBUTE; +#else +typedef struct ITypeInfo2Vtbl ITypeInfo2Vtbl; +struct ITypeInfo2 { + const ITypeInfo2Vtbl* lpVtbl; +}; +struct ITypeInfo2Vtbl { + ICOM_MSVTABLE_COMPAT_FIELDS + + /*** IUnknown methods ***/ + HRESULT (CALLBACK *QueryInterface)( + ITypeInfo2* This, + REFIID riid, + void** ppvObject); + + ULONG (CALLBACK *AddRef)( + ITypeInfo2* This); + + ULONG (CALLBACK *Release)( + ITypeInfo2* This); + + /*** ITypeInfo methods ***/ + HRESULT (CALLBACK *GetTypeAttr)( + ITypeInfo2* This, + TYPEATTR** ppTypeAttr); + + HRESULT (CALLBACK *GetTypeComp)( + ITypeInfo2* This, + ITypeComp** ppTComp); + + HRESULT (CALLBACK *GetFuncDesc)( + ITypeInfo2* This, + UINT index, + FUNCDESC** ppFuncDesc); + + HRESULT (CALLBACK *GetVarDesc)( + ITypeInfo2* This, + UINT index, + VARDESC** ppVarDesc); + + HRESULT (CALLBACK *GetNames)( + ITypeInfo2* This, + MEMBERID memid, + BSTR* rgBstrNames, + UINT cMaxNames, + UINT* pcNames); + + HRESULT (CALLBACK *GetRefTypeOfImplType)( + ITypeInfo2* This, + UINT index, + HREFTYPE* pRefType); + + HRESULT (CALLBACK *GetImplTypeFlags)( + ITypeInfo2* This, + UINT index, + INT* pImplTypeFlags); + + HRESULT (CALLBACK *GetIDsOfNames)( + ITypeInfo2* This, + LPOLESTR* rgszNames, + UINT cNames, + MEMBERID* pMemId); + + HRESULT (CALLBACK *Invoke)( + ITypeInfo2* This, + PVOID pvInstance, + MEMBERID memid, + WORD wFlags, + DISPPARAMS* pDispParams, + VARIANT* pVarResult, + EXCEPINFO* pExcepInfo, + UINT* puArgErr); + + HRESULT (CALLBACK *GetDocumentation)( + ITypeInfo2* This, + MEMBERID memid, + BSTR* pBstrName, + BSTR* pBstrDocString, + DWORD* pdwHelpContext, + BSTR* pBstrHelpFile); + + HRESULT (CALLBACK *GetDllEntry)( + ITypeInfo2* This, + MEMBERID memid, + INVOKEKIND invKind, + BSTR* pBstrDllName, + BSTR* pBstrName, + WORD* pwOrdinal); + + HRESULT (CALLBACK *GetRefTypeInfo)( + ITypeInfo2* This, + HREFTYPE hRefType, + ITypeInfo** ppTInfo); + + HRESULT (CALLBACK *AddressOfMember)( + ITypeInfo2* This, + MEMBERID memid, + INVOKEKIND invKind, + PVOID* ppv); + + HRESULT (CALLBACK *CreateInstance)( + ITypeInfo2* This, + IUnknown* pUnkOuter, + REFIID riid, + PVOID* ppvObj); + + HRESULT (CALLBACK *GetMops)( + ITypeInfo2* This, + MEMBERID memid, + BSTR* pBstrMops); + + HRESULT (CALLBACK *GetContainingTypeLib)( + ITypeInfo2* This, + ITypeLib** ppTLib, + UINT* pIndex); + + void (CALLBACK *ReleaseTypeAttr)( + ITypeInfo2* This, + TYPEATTR* pTypeAttr); + + void (CALLBACK *ReleaseFuncDesc)( + ITypeInfo2* This, + FUNCDESC* pFuncDesc); + + void (CALLBACK *ReleaseVarDesc)( + ITypeInfo2* This, + VARDESC* pVarDesc); + + /*** ITypeInfo2 methods ***/ + HRESULT (CALLBACK *GetTypeKind)( + ITypeInfo2* This, + TYPEKIND* pTypeKind); + + HRESULT (CALLBACK *GetTypeFlags)( + ITypeInfo2* This, + ULONG* pTypeFlags); + + HRESULT (CALLBACK *GetFuncIndexOfMemId)( + ITypeInfo2* This, + MEMBERID memid, + INVOKEKIND invKind, + UINT* pFuncIndex); + + HRESULT (CALLBACK *GetVarIndexOfMemId)( + ITypeInfo2* This, + MEMBERID memid, + UINT* pVarIndex); + + HRESULT (CALLBACK *GetCustData)( + ITypeInfo2* This, + REFGUID guid, + VARIANT* pVarVal); + + HRESULT (CALLBACK *GetFuncCustData)( + ITypeInfo2* This, + UINT index, + REFGUID guid, + VARIANT* pVarVal); + + HRESULT (CALLBACK *GetParamCustData)( + ITypeInfo2* This, + UINT indexFunc, + UINT indexParam, + REFGUID guid, + VARIANT* pVarVal); + + HRESULT (CALLBACK *GetVarCustData)( + ITypeInfo2* This, + UINT index, + REFGUID guid, + VARIANT* pVarVal); + + HRESULT (CALLBACK *GetImplTypeCustData)( + ITypeInfo2* This, + UINT index, + REFGUID guid, + VARIANT* pVarVal); + + HRESULT (CALLBACK *GetDocumentation2)( + ITypeInfo2* This, + MEMBERID memid, + LCID lcid, + BSTR* pbstrHelpString, + DWORD* pdwHelpStringContext, + BSTR* pbstrHelpStringDll); + + HRESULT (CALLBACK *GetAllCustData)( + ITypeInfo2* This, + CUSTDATA* pCustData); + + HRESULT (CALLBACK *GetAllFuncCustData)( + ITypeInfo2* This, + UINT index, + CUSTDATA* pCustData); + + HRESULT (CALLBACK *GetAllParamCustData)( + ITypeInfo2* This, + UINT indexFunc, + UINT indexParam, + CUSTDATA* pCustData); + + HRESULT (CALLBACK *GetAllVarCustData)( + ITypeInfo2* This, + UINT index, + CUSTDATA* pCustData); + + HRESULT (CALLBACK *GetAllImplTypeCustData)( + ITypeInfo2* This, + UINT index, + CUSTDATA* pCustData); + +}; + +#define ITypeInfo2_IMETHODS \ + ITypeInfo_IMETHODS \ + ICOM_METHOD1 (HRESULT,GetTypeKind,TYPEKIND*,pTypeKind) \ + ICOM_METHOD1 (HRESULT,GetTypeFlags,ULONG*,pTypeFlags) \ + ICOM_METHOD3 (HRESULT,GetFuncIndexOfMemId,MEMBERID,memid,INVOKEKIND,invKind,UINT*,pFuncIndex) \ + ICOM_METHOD2 (HRESULT,GetVarIndexOfMemId,MEMBERID,memid,UINT*,pVarIndex) \ + ICOM_METHOD2 (HRESULT,GetCustData,REFGUID,guid,VARIANT*,pVarVal) \ + ICOM_METHOD3 (HRESULT,GetFuncCustData,UINT,index,REFGUID,guid,VARIANT*,pVarVal) \ + ICOM_METHOD4 (HRESULT,GetParamCustData,UINT,indexFunc,UINT,indexParam,REFGUID,guid,VARIANT*,pVarVal) \ + ICOM_METHOD3 (HRESULT,GetVarCustData,UINT,index,REFGUID,guid,VARIANT*,pVarVal) \ + ICOM_METHOD3 (HRESULT,GetImplTypeCustData,UINT,index,REFGUID,guid,VARIANT*,pVarVal) \ + ICOM_METHOD5 (HRESULT,GetDocumentation2,MEMBERID,memid,LCID,lcid,BSTR*,pbstrHelpString,DWORD*,pdwHelpStringContext,BSTR*,pbstrHelpStringDll) \ + ICOM_METHOD1 (HRESULT,GetAllCustData,CUSTDATA*,pCustData) \ + ICOM_METHOD2 (HRESULT,GetAllFuncCustData,UINT,index,CUSTDATA*,pCustData) \ + ICOM_METHOD3 (HRESULT,GetAllParamCustData,UINT,indexFunc,UINT,indexParam,CUSTDATA*,pCustData) \ + ICOM_METHOD2 (HRESULT,GetAllVarCustData,UINT,index,CUSTDATA*,pCustData) \ + ICOM_METHOD2 (HRESULT,GetAllImplTypeCustData,UINT,index,CUSTDATA*,pCustData) + +/*** IUnknown methods ***/ +#define ITypeInfo2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) +#define ITypeInfo2_AddRef(p) (p)->lpVtbl->AddRef(p) +#define ITypeInfo2_Release(p) (p)->lpVtbl->Release(p) +/*** ITypeInfo methods ***/ +#define ITypeInfo2_GetTypeAttr(p,a) (p)->lpVtbl->GetTypeAttr(p,a) +#define ITypeInfo2_GetTypeComp(p,a) (p)->lpVtbl->GetTypeComp(p,a) +#define ITypeInfo2_GetFuncDesc(p,a,b) (p)->lpVtbl->GetFuncDesc(p,a,b) +#define ITypeInfo2_GetVarDesc(p,a,b) (p)->lpVtbl->GetVarDesc(p,a,b) +#define ITypeInfo2_GetNames(p,a,b,c,d) (p)->lpVtbl->GetNames(p,a,b,c,d) +#define ITypeInfo2_GetRefTypeOfImplType(p,a,b) (p)->lpVtbl->GetRefTypeOfImplType(p,a,b) +#define ITypeInfo2_GetImplTypeFlags(p,a,b) (p)->lpVtbl->GetImplTypeFlags(p,a,b) +#define ITypeInfo2_GetIDsOfNames(p,a,b,c) (p)->lpVtbl->GetIDsOfNames(p,a,b,c) +#define ITypeInfo2_Invoke(p,a,b,c,d,e,f,g) (p)->lpVtbl->Invoke(p,a,b,c,d,e,f,g) +#define ITypeInfo2_GetDocumentation(p,a,b,c,d,e) (p)->lpVtbl->GetDocumentation(p,a,b,c,d,e) +#define ITypeInfo2_GetDllEntry(p,a,b,c,d,e) (p)->lpVtbl->GetDllEntry(p,a,b,c,d,e) +#define ITypeInfo2_GetRefTypeInfo(p,a,b) (p)->lpVtbl->GetRefTypeInfo(p,a,b) +#define ITypeInfo2_AddressOfMember(p,a,b,c) (p)->lpVtbl->AddressOfMember(p,a,b,c) +#define ITypeInfo2_CreateInstance(p,a,b,c) (p)->lpVtbl->CreateInstance(p,a,b,c) +#define ITypeInfo2_GetMops(p,a,b) (p)->lpVtbl->GetMops(p,a,b) +#define ITypeInfo2_GetContainingTypeLib(p,a,b) (p)->lpVtbl->GetContainingTypeLib(p,a,b) +#define ITypeInfo2_ReleaseTypeAttr(p,a) (p)->lpVtbl->ReleaseTypeAttr(p,a) +#define ITypeInfo2_ReleaseFuncDesc(p,a) (p)->lpVtbl->ReleaseFuncDesc(p,a) +#define ITypeInfo2_ReleaseVarDesc(p,a) (p)->lpVtbl->ReleaseVarDesc(p,a) +/*** ITypeInfo2 methods ***/ +#define ITypeInfo2_GetTypeKind(p,a) (p)->lpVtbl->GetTypeKind(p,a) +#define ITypeInfo2_GetTypeFlags(p,a) (p)->lpVtbl->GetTypeFlags(p,a) +#define ITypeInfo2_GetFuncIndexOfMemId(p,a,b,c) (p)->lpVtbl->GetFuncIndexOfMemId(p,a,b,c) +#define ITypeInfo2_GetVarIndexOfMemId(p,a,b) (p)->lpVtbl->GetVarIndexOfMemId(p,a,b) +#define ITypeInfo2_GetCustData(p,a,b) (p)->lpVtbl->GetCustData(p,a,b) +#define ITypeInfo2_GetFuncCustData(p,a,b,c) (p)->lpVtbl->GetFuncCustData(p,a,b,c) +#define ITypeInfo2_GetParamCustData(p,a,b,c,d) (p)->lpVtbl->GetParamCustData(p,a,b,c,d) +#define ITypeInfo2_GetVarCustData(p,a,b,c) (p)->lpVtbl->GetVarCustData(p,a,b,c) +#define ITypeInfo2_GetImplTypeCustData(p,a,b,c) (p)->lpVtbl->GetImplTypeCustData(p,a,b,c) +#define ITypeInfo2_GetDocumentation2(p,a,b,c,d,e) (p)->lpVtbl->GetDocumentation2(p,a,b,c,d,e) +#define ITypeInfo2_GetAllCustData(p,a) (p)->lpVtbl->GetAllCustData(p,a) +#define ITypeInfo2_GetAllFuncCustData(p,a,b) (p)->lpVtbl->GetAllFuncCustData(p,a,b) +#define ITypeInfo2_GetAllParamCustData(p,a,b,c) (p)->lpVtbl->GetAllParamCustData(p,a,b,c) +#define ITypeInfo2_GetAllVarCustData(p,a,b) (p)->lpVtbl->GetAllVarCustData(p,a,b) +#define ITypeInfo2_GetAllImplTypeCustData(p,a,b) (p)->lpVtbl->GetAllImplTypeCustData(p,a,b) + +#endif + +HRESULT CALLBACK ITypeInfo2_GetTypeKind_Proxy( + ITypeInfo2* This, + TYPEKIND* pTypeKind); +void __RPC_STUB ITypeInfo2_GetTypeKind_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK ITypeInfo2_GetTypeFlags_Proxy( + ITypeInfo2* This, + ULONG* pTypeFlags); +void __RPC_STUB ITypeInfo2_GetTypeFlags_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK ITypeInfo2_GetFuncIndexOfMemId_Proxy( + ITypeInfo2* This, + MEMBERID memid, + INVOKEKIND invKind, + UINT* pFuncIndex); +void __RPC_STUB ITypeInfo2_GetFuncIndexOfMemId_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK ITypeInfo2_GetVarIndexOfMemId_Proxy( + ITypeInfo2* This, + MEMBERID memid, + UINT* pVarIndex); +void __RPC_STUB ITypeInfo2_GetVarIndexOfMemId_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK ITypeInfo2_GetCustData_Proxy( + ITypeInfo2* This, + REFGUID guid, + VARIANT* pVarVal); +void __RPC_STUB ITypeInfo2_GetCustData_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK ITypeInfo2_GetFuncCustData_Proxy( + ITypeInfo2* This, + UINT index, + REFGUID guid, + VARIANT* pVarVal); +void __RPC_STUB ITypeInfo2_GetFuncCustData_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK ITypeInfo2_GetParamCustData_Proxy( + ITypeInfo2* This, + UINT indexFunc, + UINT indexParam, + REFGUID guid, + VARIANT* pVarVal); +void __RPC_STUB ITypeInfo2_GetParamCustData_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK ITypeInfo2_GetVarCustData_Proxy( + ITypeInfo2* This, + UINT index, + REFGUID guid, + VARIANT* pVarVal); +void __RPC_STUB ITypeInfo2_GetVarCustData_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK ITypeInfo2_GetImplTypeCustData_Proxy( + ITypeInfo2* This, + UINT index, + REFGUID guid, + VARIANT* pVarVal); +void __RPC_STUB ITypeInfo2_GetImplTypeCustData_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK ITypeInfo2_RemoteGetDocumentation2_Proxy( + ITypeInfo2* This, + MEMBERID memid, + LCID lcid, + DWORD refPtrFlags, + BSTR* pbstrHelpString, + DWORD* pdwHelpStringContext, + BSTR* pbstrHelpStringDll); +void __RPC_STUB ITypeInfo2_RemoteGetDocumentation2_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK ITypeInfo2_GetDocumentation2_Proxy( + ITypeInfo2* This, + MEMBERID memid, + LCID lcid, + BSTR* pbstrHelpString, + DWORD* pdwHelpStringContext, + BSTR* pbstrHelpStringDll); +HRESULT __RPC_STUB ITypeInfo2_GetDocumentation2_Stub( + ITypeInfo2* This, + MEMBERID memid, + LCID lcid, + DWORD refPtrFlags, + BSTR* pbstrHelpString, + DWORD* pdwHelpStringContext, + BSTR* pbstrHelpStringDll); +HRESULT CALLBACK ITypeInfo2_GetAllCustData_Proxy( + ITypeInfo2* This, + CUSTDATA* pCustData); +void __RPC_STUB ITypeInfo2_GetAllCustData_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK ITypeInfo2_GetAllFuncCustData_Proxy( + ITypeInfo2* This, + UINT index, + CUSTDATA* pCustData); +void __RPC_STUB ITypeInfo2_GetAllFuncCustData_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK ITypeInfo2_GetAllParamCustData_Proxy( + ITypeInfo2* This, + UINT indexFunc, + UINT indexParam, + CUSTDATA* pCustData); +void __RPC_STUB ITypeInfo2_GetAllParamCustData_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK ITypeInfo2_GetAllVarCustData_Proxy( + ITypeInfo2* This, + UINT index, + CUSTDATA* pCustData); +void __RPC_STUB ITypeInfo2_GetAllVarCustData_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK ITypeInfo2_GetAllImplTypeCustData_Proxy( + ITypeInfo2* This, + UINT index, + CUSTDATA* pCustData); +void __RPC_STUB ITypeInfo2_GetAllImplTypeCustData_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); + +typedef ITypeLib *LPTYPELIB; + +typedef enum tagSYSKIND { + SYS_WIN16 = 0, + SYS_WIN32, + SYS_MAC +} SYSKIND; + +typedef enum tagLIBFLAGS { + LIBFLAG_FRESTRICTED = 0x1, + LIBFLAG_FCONTROL = 0x2, + LIBFLAG_FHIDDEN = 0x4, + LIBFLAG_FHASDISKIMAGE = 0x8 +} LIBFLAGS; + +typedef struct tagTLIBATTR { + GUID guid; + LCID lcid; + SYSKIND syskind; + WORD wMajorVerNum; + WORD wMinorVerNum; + WORD wLibFlags; +} TLIBATTR, *LPTLIBATTR; + +/***************************************************************************** + * ITypeLib interface + */ +DEFINE_GUID(IID_ITypeLib, 0x00020402, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46); +#if defined(__cplusplus) && !defined(CINTERFACE) +struct ITypeLib: IUnknown { + + virtual UINT CALLBACK GetTypeInfoCount( + ) = 0; + + virtual HRESULT CALLBACK GetTypeInfo( + UINT index, + ITypeInfo** ppTInfo) = 0; + + virtual HRESULT CALLBACK GetTypeInfoType( + UINT index, + TYPEKIND* pTKind) = 0; + + virtual HRESULT CALLBACK GetTypeInfoOfGuid( + REFGUID guid, + ITypeInfo** ppTinfo) = 0; + + virtual HRESULT CALLBACK GetLibAttr( + TLIBATTR** ppTLibAttr) = 0; + + virtual HRESULT CALLBACK GetTypeComp( + ITypeComp** ppTComp) = 0; + + virtual HRESULT CALLBACK GetDocumentation( + INT index, + BSTR* pBstrName, + BSTR* pBstrDocString, + DWORD* pdwHelpContext, + BSTR* pBstrHelpFile) = 0; + + virtual HRESULT CALLBACK IsName( + LPOLESTR szNameBuf, + ULONG lHashVal, + BOOL* pfName) = 0; + + virtual HRESULT CALLBACK FindName( + LPOLESTR szNameBuf, + ULONG lHashVal, + ITypeInfo** ppTInfo, + MEMBERID* rgMemId, + USHORT* pcFound) = 0; + + virtual void CALLBACK ReleaseTLibAttr( + TLIBATTR* pTLibAttr) = 0; + +} ICOM_COM_INTERFACE_ATTRIBUTE; +#else +typedef struct ITypeLibVtbl ITypeLibVtbl; +struct ITypeLib { + const ITypeLibVtbl* lpVtbl; +}; +struct ITypeLibVtbl { + ICOM_MSVTABLE_COMPAT_FIELDS + + /*** IUnknown methods ***/ + HRESULT (CALLBACK *QueryInterface)( + ITypeLib* This, + REFIID riid, + void** ppvObject); + + ULONG (CALLBACK *AddRef)( + ITypeLib* This); + + ULONG (CALLBACK *Release)( + ITypeLib* This); + + /*** ITypeLib methods ***/ + UINT (CALLBACK *GetTypeInfoCount)( + ITypeLib* This); + + HRESULT (CALLBACK *GetTypeInfo)( + ITypeLib* This, + UINT index, + ITypeInfo** ppTInfo); + + HRESULT (CALLBACK *GetTypeInfoType)( + ITypeLib* This, + UINT index, + TYPEKIND* pTKind); + + HRESULT (CALLBACK *GetTypeInfoOfGuid)( + ITypeLib* This, + REFGUID guid, + ITypeInfo** ppTinfo); + + HRESULT (CALLBACK *GetLibAttr)( + ITypeLib* This, + TLIBATTR** ppTLibAttr); + + HRESULT (CALLBACK *GetTypeComp)( + ITypeLib* This, + ITypeComp** ppTComp); + + HRESULT (CALLBACK *GetDocumentation)( + ITypeLib* This, + INT index, + BSTR* pBstrName, + BSTR* pBstrDocString, + DWORD* pdwHelpContext, + BSTR* pBstrHelpFile); + + HRESULT (CALLBACK *IsName)( + ITypeLib* This, + LPOLESTR szNameBuf, + ULONG lHashVal, + BOOL* pfName); + + HRESULT (CALLBACK *FindName)( + ITypeLib* This, + LPOLESTR szNameBuf, + ULONG lHashVal, + ITypeInfo** ppTInfo, + MEMBERID* rgMemId, + USHORT* pcFound); + + void (CALLBACK *ReleaseTLibAttr)( + ITypeLib* This, + TLIBATTR* pTLibAttr); + +}; + +#define ITypeLib_IMETHODS \ + IUnknown_IMETHODS \ + ICOM_METHOD (UINT,GetTypeInfoCount) \ + ICOM_METHOD2 (HRESULT,GetTypeInfo,UINT,index,ITypeInfo**,ppTInfo) \ + ICOM_METHOD2 (HRESULT,GetTypeInfoType,UINT,index,TYPEKIND*,pTKind) \ + ICOM_METHOD2 (HRESULT,GetTypeInfoOfGuid,REFGUID,guid,ITypeInfo**,ppTinfo) \ + ICOM_METHOD1 (HRESULT,GetLibAttr,TLIBATTR**,ppTLibAttr) \ + ICOM_METHOD1 (HRESULT,GetTypeComp,ITypeComp**,ppTComp) \ + ICOM_METHOD5 (HRESULT,GetDocumentation,INT,index,BSTR*,pBstrName,BSTR*,pBstrDocString,DWORD*,pdwHelpContext,BSTR*,pBstrHelpFile) \ + ICOM_METHOD3 (HRESULT,IsName,LPOLESTR,szNameBuf,ULONG,lHashVal,BOOL*,pfName) \ + ICOM_METHOD5 (HRESULT,FindName,LPOLESTR,szNameBuf,ULONG,lHashVal,ITypeInfo**,ppTInfo,MEMBERID*,rgMemId,USHORT*,pcFound) \ + ICOM_VMETHOD1(ReleaseTLibAttr,TLIBATTR*,pTLibAttr) + +/*** IUnknown methods ***/ +#define ITypeLib_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) +#define ITypeLib_AddRef(p) (p)->lpVtbl->AddRef(p) +#define ITypeLib_Release(p) (p)->lpVtbl->Release(p) +/*** ITypeLib methods ***/ +#define ITypeLib_GetTypeInfoCount(p) (p)->lpVtbl->GetTypeInfoCount(p) +#define ITypeLib_GetTypeInfo(p,a,b) (p)->lpVtbl->GetTypeInfo(p,a,b) +#define ITypeLib_GetTypeInfoType(p,a,b) (p)->lpVtbl->GetTypeInfoType(p,a,b) +#define ITypeLib_GetTypeInfoOfGuid(p,a,b) (p)->lpVtbl->GetTypeInfoOfGuid(p,a,b) +#define ITypeLib_GetLibAttr(p,a) (p)->lpVtbl->GetLibAttr(p,a) +#define ITypeLib_GetTypeComp(p,a) (p)->lpVtbl->GetTypeComp(p,a) +#define ITypeLib_GetDocumentation(p,a,b,c,d,e) (p)->lpVtbl->GetDocumentation(p,a,b,c,d,e) +#define ITypeLib_IsName(p,a,b,c) (p)->lpVtbl->IsName(p,a,b,c) +#define ITypeLib_FindName(p,a,b,c,d,e) (p)->lpVtbl->FindName(p,a,b,c,d,e) +#define ITypeLib_ReleaseTLibAttr(p,a) (p)->lpVtbl->ReleaseTLibAttr(p,a) + +#endif + +HRESULT CALLBACK ITypeLib_RemoteGetTypeInfoCount_Proxy( + ITypeLib* This, + UINT* pcTInfo); +void __RPC_STUB ITypeLib_RemoteGetTypeInfoCount_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +UINT CALLBACK ITypeLib_GetTypeInfoCount_Proxy( + ITypeLib* This); +HRESULT __RPC_STUB ITypeLib_GetTypeInfoCount_Stub( + ITypeLib* This, + UINT* pcTInfo); +HRESULT CALLBACK ITypeLib_GetTypeInfo_Proxy( + ITypeLib* This, + UINT index, + ITypeInfo** ppTInfo); +void __RPC_STUB ITypeLib_GetTypeInfo_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK ITypeLib_GetTypeInfoType_Proxy( + ITypeLib* This, + UINT index, + TYPEKIND* pTKind); +void __RPC_STUB ITypeLib_GetTypeInfoType_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK ITypeLib_GetTypeInfoOfGuid_Proxy( + ITypeLib* This, + REFGUID guid, + ITypeInfo** ppTinfo); +void __RPC_STUB ITypeLib_GetTypeInfoOfGuid_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK ITypeLib_RemoteGetLibAttr_Proxy( + ITypeLib* This, + LPTLIBATTR* ppTLibAttr, + CLEANLOCALSTORAGE* pDummy); +void __RPC_STUB ITypeLib_RemoteGetLibAttr_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK ITypeLib_GetLibAttr_Proxy( + ITypeLib* This, + TLIBATTR** ppTLibAttr); +HRESULT __RPC_STUB ITypeLib_GetLibAttr_Stub( + ITypeLib* This, + LPTLIBATTR* ppTLibAttr, + CLEANLOCALSTORAGE* pDummy); +HRESULT CALLBACK ITypeLib_GetTypeComp_Proxy( + ITypeLib* This, + ITypeComp** ppTComp); +void __RPC_STUB ITypeLib_GetTypeComp_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK ITypeLib_RemoteGetDocumentation_Proxy( + ITypeLib* This, + INT index, + DWORD refPtrFlags, + BSTR* pBstrName, + BSTR* pBstrDocString, + DWORD* pdwHelpContext, + BSTR* pBstrHelpFile); +void __RPC_STUB ITypeLib_RemoteGetDocumentation_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK ITypeLib_GetDocumentation_Proxy( + ITypeLib* This, + INT index, + BSTR* pBstrName, + BSTR* pBstrDocString, + DWORD* pdwHelpContext, + BSTR* pBstrHelpFile); +HRESULT __RPC_STUB ITypeLib_GetDocumentation_Stub( + ITypeLib* This, + INT index, + DWORD refPtrFlags, + BSTR* pBstrName, + BSTR* pBstrDocString, + DWORD* pdwHelpContext, + BSTR* pBstrHelpFile); +HRESULT CALLBACK ITypeLib_RemoteIsName_Proxy( + ITypeLib* This, + LPOLESTR szNameBuf, + ULONG lHashVal, + BOOL* pfName, + BSTR* pBstrLibName); +void __RPC_STUB ITypeLib_RemoteIsName_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK ITypeLib_IsName_Proxy( + ITypeLib* This, + LPOLESTR szNameBuf, + ULONG lHashVal, + BOOL* pfName); +HRESULT __RPC_STUB ITypeLib_IsName_Stub( + ITypeLib* This, + LPOLESTR szNameBuf, + ULONG lHashVal, + BOOL* pfName, + BSTR* pBstrLibName); +HRESULT CALLBACK ITypeLib_RemoteFindName_Proxy( + ITypeLib* This, + LPOLESTR szNameBuf, + ULONG lHashVal, + ITypeInfo** ppTInfo, + MEMBERID* rgMemId, + USHORT* pcFound, + BSTR* pBstrLibName); +void __RPC_STUB ITypeLib_RemoteFindName_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK ITypeLib_FindName_Proxy( + ITypeLib* This, + LPOLESTR szNameBuf, + ULONG lHashVal, + ITypeInfo** ppTInfo, + MEMBERID* rgMemId, + USHORT* pcFound); +HRESULT __RPC_STUB ITypeLib_FindName_Stub( + ITypeLib* This, + LPOLESTR szNameBuf, + ULONG lHashVal, + ITypeInfo** ppTInfo, + MEMBERID* rgMemId, + USHORT* pcFound, + BSTR* pBstrLibName); +HRESULT CALLBACK ITypeLib_LocalReleaseTLibAttr_Proxy( + ITypeLib* This); +void __RPC_STUB ITypeLib_LocalReleaseTLibAttr_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +void CALLBACK ITypeLib_ReleaseTLibAttr_Proxy( + ITypeLib* This, + TLIBATTR* pTLibAttr); +HRESULT __RPC_STUB ITypeLib_ReleaseTLibAttr_Stub( + ITypeLib* This); + +typedef struct ITypeLib2 ITypeLib2; +typedef ITypeLib2 *LPTYPELIB2; + +/***************************************************************************** + * ITypeLib2 interface + */ +DEFINE_GUID(IID_ITypeLib2, 0x00020411, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46); +#if defined(__cplusplus) && !defined(CINTERFACE) +struct ITypeLib2: ITypeLib { + + virtual HRESULT CALLBACK GetCustData( + REFGUID guid, + VARIANT* pVarVal) = 0; + + virtual HRESULT CALLBACK GetLibStatistics( + ULONG* pcUniqueNames, + ULONG* pcchUniqueNames) = 0; + + virtual HRESULT CALLBACK GetDocumentation2( + INT index, + LCID lcid, + BSTR* pbstrHelpString, + DWORD* pdwHelpStringContext, + BSTR* pbstrHelpStringDll) = 0; + + virtual HRESULT CALLBACK GetAllCustData( + CUSTDATA* pCustData) = 0; + +} ICOM_COM_INTERFACE_ATTRIBUTE; +#else +typedef struct ITypeLib2Vtbl ITypeLib2Vtbl; +struct ITypeLib2 { + const ITypeLib2Vtbl* lpVtbl; +}; +struct ITypeLib2Vtbl { + ICOM_MSVTABLE_COMPAT_FIELDS + + /*** IUnknown methods ***/ + HRESULT (CALLBACK *QueryInterface)( + ITypeLib2* This, + REFIID riid, + void** ppvObject); + + ULONG (CALLBACK *AddRef)( + ITypeLib2* This); + + ULONG (CALLBACK *Release)( + ITypeLib2* This); + + /*** ITypeLib methods ***/ + UINT (CALLBACK *GetTypeInfoCount)( + ITypeLib2* This); + + HRESULT (CALLBACK *GetTypeInfo)( + ITypeLib2* This, + UINT index, + ITypeInfo** ppTInfo); + + HRESULT (CALLBACK *GetTypeInfoType)( + ITypeLib2* This, + UINT index, + TYPEKIND* pTKind); + + HRESULT (CALLBACK *GetTypeInfoOfGuid)( + ITypeLib2* This, + REFGUID guid, + ITypeInfo** ppTinfo); + + HRESULT (CALLBACK *GetLibAttr)( + ITypeLib2* This, + TLIBATTR** ppTLibAttr); + + HRESULT (CALLBACK *GetTypeComp)( + ITypeLib2* This, + ITypeComp** ppTComp); + + HRESULT (CALLBACK *GetDocumentation)( + ITypeLib2* This, + INT index, + BSTR* pBstrName, + BSTR* pBstrDocString, + DWORD* pdwHelpContext, + BSTR* pBstrHelpFile); + + HRESULT (CALLBACK *IsName)( + ITypeLib2* This, + LPOLESTR szNameBuf, + ULONG lHashVal, + BOOL* pfName); + + HRESULT (CALLBACK *FindName)( + ITypeLib2* This, + LPOLESTR szNameBuf, + ULONG lHashVal, + ITypeInfo** ppTInfo, + MEMBERID* rgMemId, + USHORT* pcFound); + + void (CALLBACK *ReleaseTLibAttr)( + ITypeLib2* This, + TLIBATTR* pTLibAttr); + + /*** ITypeLib2 methods ***/ + HRESULT (CALLBACK *GetCustData)( + ITypeLib2* This, + REFGUID guid, + VARIANT* pVarVal); + + HRESULT (CALLBACK *GetLibStatistics)( + ITypeLib2* This, + ULONG* pcUniqueNames, + ULONG* pcchUniqueNames); + + HRESULT (CALLBACK *GetDocumentation2)( + ITypeLib2* This, + INT index, + LCID lcid, + BSTR* pbstrHelpString, + DWORD* pdwHelpStringContext, + BSTR* pbstrHelpStringDll); + + HRESULT (CALLBACK *GetAllCustData)( + ITypeLib2* This, + CUSTDATA* pCustData); + +}; + +#define ITypeLib2_IMETHODS \ + ITypeLib_IMETHODS \ + ICOM_METHOD2 (HRESULT,GetCustData,REFGUID,guid,VARIANT*,pVarVal) \ + ICOM_METHOD2 (HRESULT,GetLibStatistics,ULONG*,pcUniqueNames,ULONG*,pcchUniqueNames) \ + ICOM_METHOD5 (HRESULT,GetDocumentation2,INT,index,LCID,lcid,BSTR*,pbstrHelpString,DWORD*,pdwHelpStringContext,BSTR*,pbstrHelpStringDll) \ + ICOM_METHOD1 (HRESULT,GetAllCustData,CUSTDATA*,pCustData) + +/*** IUnknown methods ***/ +#define ITypeLib2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) +#define ITypeLib2_AddRef(p) (p)->lpVtbl->AddRef(p) +#define ITypeLib2_Release(p) (p)->lpVtbl->Release(p) +/*** ITypeLib methods ***/ +#define ITypeLib2_GetTypeInfoCount(p) (p)->lpVtbl->GetTypeInfoCount(p) +#define ITypeLib2_GetTypeInfo(p,a,b) (p)->lpVtbl->GetTypeInfo(p,a,b) +#define ITypeLib2_GetTypeInfoType(p,a,b) (p)->lpVtbl->GetTypeInfoType(p,a,b) +#define ITypeLib2_GetTypeInfoOfGuid(p,a,b) (p)->lpVtbl->GetTypeInfoOfGuid(p,a,b) +#define ITypeLib2_GetLibAttr(p,a) (p)->lpVtbl->GetLibAttr(p,a) +#define ITypeLib2_GetTypeComp(p,a) (p)->lpVtbl->GetTypeComp(p,a) +#define ITypeLib2_GetDocumentation(p,a,b,c,d,e) (p)->lpVtbl->GetDocumentation(p,a,b,c,d,e) +#define ITypeLib2_IsName(p,a,b,c) (p)->lpVtbl->IsName(p,a,b,c) +#define ITypeLib2_FindName(p,a,b,c,d,e) (p)->lpVtbl->FindName(p,a,b,c,d,e) +#define ITypeLib2_ReleaseTLibAttr(p,a) (p)->lpVtbl->ReleaseTLibAttr(p,a) +/*** ITypeLib2 methods ***/ +#define ITypeLib2_GetCustData(p,a,b) (p)->lpVtbl->GetCustData(p,a,b) +#define ITypeLib2_GetLibStatistics(p,a,b) (p)->lpVtbl->GetLibStatistics(p,a,b) +#define ITypeLib2_GetDocumentation2(p,a,b,c,d,e) (p)->lpVtbl->GetDocumentation2(p,a,b,c,d,e) +#define ITypeLib2_GetAllCustData(p,a) (p)->lpVtbl->GetAllCustData(p,a) + +#endif + +HRESULT CALLBACK ITypeLib2_GetCustData_Proxy( + ITypeLib2* This, + REFGUID guid, + VARIANT* pVarVal); +void __RPC_STUB ITypeLib2_GetCustData_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK ITypeLib2_RemoteGetLibStatistics_Proxy( + ITypeLib2* This, + ULONG* pcUniqueNames, + ULONG* pcchUniqueNames); +void __RPC_STUB ITypeLib2_RemoteGetLibStatistics_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK ITypeLib2_GetLibStatistics_Proxy( + ITypeLib2* This, + ULONG* pcUniqueNames, + ULONG* pcchUniqueNames); +HRESULT __RPC_STUB ITypeLib2_GetLibStatistics_Stub( + ITypeLib2* This, + ULONG* pcUniqueNames, + ULONG* pcchUniqueNames); +HRESULT CALLBACK ITypeLib2_RemoteGetDocumentation2_Proxy( + ITypeLib2* This, + INT index, + LCID lcid, + DWORD refPtrFlags, + BSTR* pbstrHelpString, + DWORD* pdwHelpStringContext, + BSTR* pbstrHelpStringDll); +void __RPC_STUB ITypeLib2_RemoteGetDocumentation2_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK ITypeLib2_GetDocumentation2_Proxy( + ITypeLib2* This, + INT index, + LCID lcid, + BSTR* pbstrHelpString, + DWORD* pdwHelpStringContext, + BSTR* pbstrHelpStringDll); +HRESULT __RPC_STUB ITypeLib2_GetDocumentation2_Stub( + ITypeLib2* This, + INT index, + LCID lcid, + DWORD refPtrFlags, + BSTR* pbstrHelpString, + DWORD* pdwHelpStringContext, + BSTR* pbstrHelpStringDll); +HRESULT CALLBACK ITypeLib2_GetAllCustData_Proxy( + ITypeLib2* This, + CUSTDATA* pCustData); +void __RPC_STUB ITypeLib2_GetAllCustData_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); + +typedef struct ITypeChangeEvents ITypeChangeEvents; +typedef ITypeChangeEvents *LPTYPECHANGEEVENTS; + +typedef enum tagCHANGEKIND { + CHANGEKIND_ADDMEMBER, + CHANGEKIND_DELETEMEMBER, + CHANGEKIND_SETNAMES, + CHANGEKIND_SETDOCUMENTATION, + CHANGEKIND_GENERAL, + CHANGEKIND_INVALIDATE, + CHANGEKIND_CHANGEFAILED, + CHANGEKIND_MAX +} CHANGEKIND; + +/***************************************************************************** + * ITypeChangeEvents interface + */ +DEFINE_GUID(IID_ITypeChangeEvents, 0x00020410, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46); +#if defined(__cplusplus) && !defined(CINTERFACE) +struct ITypeChangeEvents: IUnknown { + + virtual HRESULT CALLBACK RequestTypeChange( + CHANGEKIND changeKind, + ITypeInfo* pTInfoBefore, + LPOLESTR pStrName, + INT* pfCancel) = 0; + + virtual HRESULT CALLBACK AfterTypeChange( + CHANGEKIND changeKind, + ITypeInfo* pTInfoAfter, + LPOLESTR pStrName) = 0; + +} ICOM_COM_INTERFACE_ATTRIBUTE; +#else +typedef struct ITypeChangeEventsVtbl ITypeChangeEventsVtbl; +struct ITypeChangeEvents { + const ITypeChangeEventsVtbl* lpVtbl; +}; +struct ITypeChangeEventsVtbl { + ICOM_MSVTABLE_COMPAT_FIELDS + + /*** IUnknown methods ***/ + HRESULT (CALLBACK *QueryInterface)( + ITypeChangeEvents* This, + REFIID riid, + void** ppvObject); + + ULONG (CALLBACK *AddRef)( + ITypeChangeEvents* This); + + ULONG (CALLBACK *Release)( + ITypeChangeEvents* This); + + /*** ITypeChangeEvents methods ***/ + HRESULT (CALLBACK *RequestTypeChange)( + ITypeChangeEvents* This, + CHANGEKIND changeKind, + ITypeInfo* pTInfoBefore, + LPOLESTR pStrName, + INT* pfCancel); + + HRESULT (CALLBACK *AfterTypeChange)( + ITypeChangeEvents* This, + CHANGEKIND changeKind, + ITypeInfo* pTInfoAfter, + LPOLESTR pStrName); + +}; + +#define ITypeChangeEvents_IMETHODS \ + IUnknown_IMETHODS \ + ICOM_METHOD4 (HRESULT,RequestTypeChange,CHANGEKIND,changeKind,ITypeInfo*,pTInfoBefore,LPOLESTR,pStrName,INT*,pfCancel) \ + ICOM_METHOD3 (HRESULT,AfterTypeChange,CHANGEKIND,changeKind,ITypeInfo*,pTInfoAfter,LPOLESTR,pStrName) + +/*** IUnknown methods ***/ +#define ITypeChangeEvents_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) +#define ITypeChangeEvents_AddRef(p) (p)->lpVtbl->AddRef(p) +#define ITypeChangeEvents_Release(p) (p)->lpVtbl->Release(p) +/*** ITypeChangeEvents methods ***/ +#define ITypeChangeEvents_RequestTypeChange(p,a,b,c,d) (p)->lpVtbl->RequestTypeChange(p,a,b,c,d) +#define ITypeChangeEvents_AfterTypeChange(p,a,b,c) (p)->lpVtbl->AfterTypeChange(p,a,b,c) + +#endif + +HRESULT CALLBACK ITypeChangeEvents_RequestTypeChange_Proxy( + ITypeChangeEvents* This, + CHANGEKIND changeKind, + ITypeInfo* pTInfoBefore, + LPOLESTR pStrName, + INT* pfCancel); +void __RPC_STUB ITypeChangeEvents_RequestTypeChange_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK ITypeChangeEvents_AfterTypeChange_Proxy( + ITypeChangeEvents* This, + CHANGEKIND changeKind, + ITypeInfo* pTInfoAfter, + LPOLESTR pStrName); +void __RPC_STUB ITypeChangeEvents_AfterTypeChange_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); + +typedef struct IErrorInfo IErrorInfo; +typedef IErrorInfo *LPERRORINFO; + +/***************************************************************************** + * IErrorInfo interface + */ +DEFINE_GUID(IID_IErrorInfo, 0x1cf2b120, 0x547d, 0x101b, 0x8e,0x65, 0x08,0x00,0x2b,0x2b,0xd1,0x19); +#if defined(__cplusplus) && !defined(CINTERFACE) +struct IErrorInfo: IUnknown { + + virtual HRESULT CALLBACK GetGUID( + GUID* pGUID) = 0; + + virtual HRESULT CALLBACK GetSource( + BSTR* pBstrSource) = 0; + + virtual HRESULT CALLBACK GetDescription( + BSTR* pBstrDescription) = 0; + + virtual HRESULT CALLBACK GetHelpFile( + BSTR* pBstrHelpFile) = 0; + + virtual HRESULT CALLBACK GetHelpContext( + DWORD* pdwHelpContext) = 0; + +} ICOM_COM_INTERFACE_ATTRIBUTE; +#else +typedef struct IErrorInfoVtbl IErrorInfoVtbl; +struct IErrorInfo { + const IErrorInfoVtbl* lpVtbl; +}; +struct IErrorInfoVtbl { + ICOM_MSVTABLE_COMPAT_FIELDS + + /*** IUnknown methods ***/ + HRESULT (CALLBACK *QueryInterface)( + IErrorInfo* This, + REFIID riid, + void** ppvObject); + + ULONG (CALLBACK *AddRef)( + IErrorInfo* This); + + ULONG (CALLBACK *Release)( + IErrorInfo* This); + + /*** IErrorInfo methods ***/ + HRESULT (CALLBACK *GetGUID)( + IErrorInfo* This, + GUID* pGUID); + + HRESULT (CALLBACK *GetSource)( + IErrorInfo* This, + BSTR* pBstrSource); + + HRESULT (CALLBACK *GetDescription)( + IErrorInfo* This, + BSTR* pBstrDescription); + + HRESULT (CALLBACK *GetHelpFile)( + IErrorInfo* This, + BSTR* pBstrHelpFile); + + HRESULT (CALLBACK *GetHelpContext)( + IErrorInfo* This, + DWORD* pdwHelpContext); + +}; + +#define IErrorInfo_IMETHODS \ + IUnknown_IMETHODS \ + ICOM_METHOD1 (HRESULT,GetGUID,GUID*,pGUID) \ + ICOM_METHOD1 (HRESULT,GetSource,BSTR*,pBstrSource) \ + ICOM_METHOD1 (HRESULT,GetDescription,BSTR*,pBstrDescription) \ + ICOM_METHOD1 (HRESULT,GetHelpFile,BSTR*,pBstrHelpFile) \ + ICOM_METHOD1 (HRESULT,GetHelpContext,DWORD*,pdwHelpContext) + +/*** IUnknown methods ***/ +#define IErrorInfo_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) +#define IErrorInfo_AddRef(p) (p)->lpVtbl->AddRef(p) +#define IErrorInfo_Release(p) (p)->lpVtbl->Release(p) +/*** IErrorInfo methods ***/ +#define IErrorInfo_GetGUID(p,a) (p)->lpVtbl->GetGUID(p,a) +#define IErrorInfo_GetSource(p,a) (p)->lpVtbl->GetSource(p,a) +#define IErrorInfo_GetDescription(p,a) (p)->lpVtbl->GetDescription(p,a) +#define IErrorInfo_GetHelpFile(p,a) (p)->lpVtbl->GetHelpFile(p,a) +#define IErrorInfo_GetHelpContext(p,a) (p)->lpVtbl->GetHelpContext(p,a) + +#endif + +HRESULT CALLBACK IErrorInfo_GetGUID_Proxy( + IErrorInfo* This, + GUID* pGUID); +void __RPC_STUB IErrorInfo_GetGUID_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IErrorInfo_GetSource_Proxy( + IErrorInfo* This, + BSTR* pBstrSource); +void __RPC_STUB IErrorInfo_GetSource_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IErrorInfo_GetDescription_Proxy( + IErrorInfo* This, + BSTR* pBstrDescription); +void __RPC_STUB IErrorInfo_GetDescription_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IErrorInfo_GetHelpFile_Proxy( + IErrorInfo* This, + BSTR* pBstrHelpFile); +void __RPC_STUB IErrorInfo_GetHelpFile_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IErrorInfo_GetHelpContext_Proxy( + IErrorInfo* This, + DWORD* pdwHelpContext); +void __RPC_STUB IErrorInfo_GetHelpContext_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); + +typedef struct ICreateErrorInfo ICreateErrorInfo; +typedef ICreateErrorInfo *LPCREATEERRORINFO; + +/***************************************************************************** + * ICreateErrorInfo interface + */ +DEFINE_GUID(IID_ICreateErrorInfo, 0x22f03340, 0x547d, 0x101b, 0x8e,0x65, 0x08,0x00,0x2b,0x2b,0xd1,0x19); +#if defined(__cplusplus) && !defined(CINTERFACE) +struct ICreateErrorInfo: IUnknown { + + virtual HRESULT CALLBACK SetGUID( + REFGUID rguid) = 0; + + virtual HRESULT CALLBACK SetSource( + LPOLESTR szSource) = 0; + + virtual HRESULT CALLBACK SetDescription( + LPOLESTR szDescription) = 0; + + virtual HRESULT CALLBACK SetHelpFile( + LPOLESTR szHelpFile) = 0; + + virtual HRESULT CALLBACK SetHelpContext( + DWORD dwHelpContext) = 0; + +} ICOM_COM_INTERFACE_ATTRIBUTE; +#else +typedef struct ICreateErrorInfoVtbl ICreateErrorInfoVtbl; +struct ICreateErrorInfo { + const ICreateErrorInfoVtbl* lpVtbl; +}; +struct ICreateErrorInfoVtbl { + ICOM_MSVTABLE_COMPAT_FIELDS + + /*** IUnknown methods ***/ + HRESULT (CALLBACK *QueryInterface)( + ICreateErrorInfo* This, + REFIID riid, + void** ppvObject); + + ULONG (CALLBACK *AddRef)( + ICreateErrorInfo* This); + + ULONG (CALLBACK *Release)( + ICreateErrorInfo* This); + + /*** ICreateErrorInfo methods ***/ + HRESULT (CALLBACK *SetGUID)( + ICreateErrorInfo* This, + REFGUID rguid); + + HRESULT (CALLBACK *SetSource)( + ICreateErrorInfo* This, + LPOLESTR szSource); + + HRESULT (CALLBACK *SetDescription)( + ICreateErrorInfo* This, + LPOLESTR szDescription); + + HRESULT (CALLBACK *SetHelpFile)( + ICreateErrorInfo* This, + LPOLESTR szHelpFile); + + HRESULT (CALLBACK *SetHelpContext)( + ICreateErrorInfo* This, + DWORD dwHelpContext); + +}; + +#define ICreateErrorInfo_IMETHODS \ + IUnknown_IMETHODS \ + ICOM_METHOD1 (HRESULT,SetGUID,REFGUID,rguid) \ + ICOM_METHOD1 (HRESULT,SetSource,LPOLESTR,szSource) \ + ICOM_METHOD1 (HRESULT,SetDescription,LPOLESTR,szDescription) \ + ICOM_METHOD1 (HRESULT,SetHelpFile,LPOLESTR,szHelpFile) \ + ICOM_METHOD1 (HRESULT,SetHelpContext,DWORD,dwHelpContext) + +/*** IUnknown methods ***/ +#define ICreateErrorInfo_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) +#define ICreateErrorInfo_AddRef(p) (p)->lpVtbl->AddRef(p) +#define ICreateErrorInfo_Release(p) (p)->lpVtbl->Release(p) +/*** ICreateErrorInfo methods ***/ +#define ICreateErrorInfo_SetGUID(p,a) (p)->lpVtbl->SetGUID(p,a) +#define ICreateErrorInfo_SetSource(p,a) (p)->lpVtbl->SetSource(p,a) +#define ICreateErrorInfo_SetDescription(p,a) (p)->lpVtbl->SetDescription(p,a) +#define ICreateErrorInfo_SetHelpFile(p,a) (p)->lpVtbl->SetHelpFile(p,a) +#define ICreateErrorInfo_SetHelpContext(p,a) (p)->lpVtbl->SetHelpContext(p,a) + +#endif + +HRESULT CALLBACK ICreateErrorInfo_SetGUID_Proxy( + ICreateErrorInfo* This, + REFGUID rguid); +void __RPC_STUB ICreateErrorInfo_SetGUID_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK ICreateErrorInfo_SetSource_Proxy( + ICreateErrorInfo* This, + LPOLESTR szSource); +void __RPC_STUB ICreateErrorInfo_SetSource_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK ICreateErrorInfo_SetDescription_Proxy( + ICreateErrorInfo* This, + LPOLESTR szDescription); +void __RPC_STUB ICreateErrorInfo_SetDescription_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK ICreateErrorInfo_SetHelpFile_Proxy( + ICreateErrorInfo* This, + LPOLESTR szHelpFile); +void __RPC_STUB ICreateErrorInfo_SetHelpFile_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK ICreateErrorInfo_SetHelpContext_Proxy( + ICreateErrorInfo* This, + DWORD dwHelpContext); +void __RPC_STUB ICreateErrorInfo_SetHelpContext_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); + +typedef struct ISupportErrorInfo ISupportErrorInfo; +typedef ISupportErrorInfo *LPSUPPORTERRORINFO; + +/***************************************************************************** + * ISupportErrorInfo interface + */ +DEFINE_GUID(IID_ISupportErrorInfo, 0xdf0b3d60, 0x548f, 0x101b, 0x8e,0x65, 0x08,0x00,0x2b,0x2b,0xd1,0x19); +#if defined(__cplusplus) && !defined(CINTERFACE) +struct ISupportErrorInfo: IUnknown { + + virtual HRESULT CALLBACK InterfaceSupportsErrorInfo( + REFIID riid) = 0; + +} ICOM_COM_INTERFACE_ATTRIBUTE; +#else +typedef struct ISupportErrorInfoVtbl ISupportErrorInfoVtbl; +struct ISupportErrorInfo { + const ISupportErrorInfoVtbl* lpVtbl; +}; +struct ISupportErrorInfoVtbl { + ICOM_MSVTABLE_COMPAT_FIELDS + + /*** IUnknown methods ***/ + HRESULT (CALLBACK *QueryInterface)( + ISupportErrorInfo* This, + REFIID riid, + void** ppvObject); + + ULONG (CALLBACK *AddRef)( + ISupportErrorInfo* This); + + ULONG (CALLBACK *Release)( + ISupportErrorInfo* This); + + /*** ISupportErrorInfo methods ***/ + HRESULT (CALLBACK *InterfaceSupportsErrorInfo)( + ISupportErrorInfo* This, + REFIID riid); + +}; + +#define ISupportErrorInfo_IMETHODS \ + IUnknown_IMETHODS \ + ICOM_METHOD1 (HRESULT,InterfaceSupportsErrorInfo,REFIID,riid) + +/*** IUnknown methods ***/ +#define ISupportErrorInfo_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) +#define ISupportErrorInfo_AddRef(p) (p)->lpVtbl->AddRef(p) +#define ISupportErrorInfo_Release(p) (p)->lpVtbl->Release(p) +/*** ISupportErrorInfo methods ***/ +#define ISupportErrorInfo_InterfaceSupportsErrorInfo(p,a) (p)->lpVtbl->InterfaceSupportsErrorInfo(p,a) + +#endif + +HRESULT CALLBACK ISupportErrorInfo_InterfaceSupportsErrorInfo_Proxy( + ISupportErrorInfo* This, + REFIID riid); +void __RPC_STUB ISupportErrorInfo_InterfaceSupportsErrorInfo_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); + +typedef struct ITypeFactory ITypeFactory; +/***************************************************************************** + * ITypeFactory interface + */ +DEFINE_GUID(IID_ITypeFactory, 0x0000002e, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46); +#if defined(__cplusplus) && !defined(CINTERFACE) +struct ITypeFactory: IUnknown { + + virtual HRESULT CALLBACK CreateFromTypeInfo( + ITypeInfo* pTypeInfo, + REFIID riid, + IUnknown** ppv) = 0; + +} ICOM_COM_INTERFACE_ATTRIBUTE; +#else +typedef struct ITypeFactoryVtbl ITypeFactoryVtbl; +struct ITypeFactory { + const ITypeFactoryVtbl* lpVtbl; +}; +struct ITypeFactoryVtbl { + ICOM_MSVTABLE_COMPAT_FIELDS + + /*** IUnknown methods ***/ + HRESULT (CALLBACK *QueryInterface)( + ITypeFactory* This, + REFIID riid, + void** ppvObject); + + ULONG (CALLBACK *AddRef)( + ITypeFactory* This); + + ULONG (CALLBACK *Release)( + ITypeFactory* This); + + /*** ITypeFactory methods ***/ + HRESULT (CALLBACK *CreateFromTypeInfo)( + ITypeFactory* This, + ITypeInfo* pTypeInfo, + REFIID riid, + IUnknown** ppv); + +}; + +#define ITypeFactory_IMETHODS \ + IUnknown_IMETHODS \ + ICOM_METHOD3 (HRESULT,CreateFromTypeInfo,ITypeInfo*,pTypeInfo,REFIID,riid,IUnknown**,ppv) + +/*** IUnknown methods ***/ +#define ITypeFactory_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) +#define ITypeFactory_AddRef(p) (p)->lpVtbl->AddRef(p) +#define ITypeFactory_Release(p) (p)->lpVtbl->Release(p) +/*** ITypeFactory methods ***/ +#define ITypeFactory_CreateFromTypeInfo(p,a,b,c) (p)->lpVtbl->CreateFromTypeInfo(p,a,b,c) + +#endif + +HRESULT CALLBACK ITypeFactory_CreateFromTypeInfo_Proxy( + ITypeFactory* This, + ITypeInfo* pTypeInfo, + REFIID riid, + IUnknown** ppv); +void __RPC_STUB ITypeFactory_CreateFromTypeInfo_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); + +typedef struct ITypeMarshal ITypeMarshal; +/***************************************************************************** + * ITypeMarshal interface + */ +DEFINE_GUID(IID_ITypeMarshal, 0x0000002d, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46); +#if defined(__cplusplus) && !defined(CINTERFACE) +struct ITypeMarshal: IUnknown { + + virtual HRESULT CALLBACK Size( + PVOID pvType, + DWORD dwDestContext, + PVOID pvDestContext, + ULONG* pSize) = 0; + + virtual HRESULT CALLBACK Marshal( + PVOID pvType, + DWORD dwDestContext, + PVOID pvDestContext, + ULONG cbBufferLength, + BYTE* pBuffer, + ULONG* pcbWritten) = 0; + + virtual HRESULT CALLBACK Unmarshal( + PVOID pvType, + DWORD dwFlags, + ULONG cbBufferLength, + BYTE* pBuffer, + ULONG* pcbRead) = 0; + + virtual HRESULT CALLBACK Free( + PVOID pvType) = 0; + +} ICOM_COM_INTERFACE_ATTRIBUTE; +#else +typedef struct ITypeMarshalVtbl ITypeMarshalVtbl; +struct ITypeMarshal { + const ITypeMarshalVtbl* lpVtbl; +}; +struct ITypeMarshalVtbl { + ICOM_MSVTABLE_COMPAT_FIELDS + + /*** IUnknown methods ***/ + HRESULT (CALLBACK *QueryInterface)( + ITypeMarshal* This, + REFIID riid, + void** ppvObject); + + ULONG (CALLBACK *AddRef)( + ITypeMarshal* This); + + ULONG (CALLBACK *Release)( + ITypeMarshal* This); + + /*** ITypeMarshal methods ***/ + HRESULT (CALLBACK *Size)( + ITypeMarshal* This, + PVOID pvType, + DWORD dwDestContext, + PVOID pvDestContext, + ULONG* pSize); + + HRESULT (CALLBACK *Marshal)( + ITypeMarshal* This, + PVOID pvType, + DWORD dwDestContext, + PVOID pvDestContext, + ULONG cbBufferLength, + BYTE* pBuffer, + ULONG* pcbWritten); + + HRESULT (CALLBACK *Unmarshal)( + ITypeMarshal* This, + PVOID pvType, + DWORD dwFlags, + ULONG cbBufferLength, + BYTE* pBuffer, + ULONG* pcbRead); + + HRESULT (CALLBACK *Free)( + ITypeMarshal* This, + PVOID pvType); + +}; + +#define ITypeMarshal_IMETHODS \ + IUnknown_IMETHODS \ + ICOM_METHOD4 (HRESULT,Size,PVOID,pvType,DWORD,dwDestContext,PVOID,pvDestContext,ULONG*,pSize) \ + ICOM_METHOD6 (HRESULT,Marshal,PVOID,pvType,DWORD,dwDestContext,PVOID,pvDestContext,ULONG,cbBufferLength,BYTE*,pBuffer,ULONG*,pcbWritten) \ + ICOM_METHOD5 (HRESULT,Unmarshal,PVOID,pvType,DWORD,dwFlags,ULONG,cbBufferLength,BYTE*,pBuffer,ULONG*,pcbRead) \ + ICOM_METHOD1 (HRESULT,Free,PVOID,pvType) + +/*** IUnknown methods ***/ +#define ITypeMarshal_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) +#define ITypeMarshal_AddRef(p) (p)->lpVtbl->AddRef(p) +#define ITypeMarshal_Release(p) (p)->lpVtbl->Release(p) +/*** ITypeMarshal methods ***/ +#define ITypeMarshal_Size(p,a,b,c,d) (p)->lpVtbl->Size(p,a,b,c,d) +#define ITypeMarshal_Marshal(p,a,b,c,d,e,f) (p)->lpVtbl->Marshal(p,a,b,c,d,e,f) +#define ITypeMarshal_Unmarshal(p,a,b,c,d,e) (p)->lpVtbl->Unmarshal(p,a,b,c,d,e) +#define ITypeMarshal_Free(p,a) (p)->lpVtbl->Free(p,a) + +#endif + +HRESULT CALLBACK ITypeMarshal_Size_Proxy( + ITypeMarshal* This, + PVOID pvType, + DWORD dwDestContext, + PVOID pvDestContext, + ULONG* pSize); +void __RPC_STUB ITypeMarshal_Size_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK ITypeMarshal_Marshal_Proxy( + ITypeMarshal* This, + PVOID pvType, + DWORD dwDestContext, + PVOID pvDestContext, + ULONG cbBufferLength, + BYTE* pBuffer, + ULONG* pcbWritten); +void __RPC_STUB ITypeMarshal_Marshal_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK ITypeMarshal_Unmarshal_Proxy( + ITypeMarshal* This, + PVOID pvType, + DWORD dwFlags, + ULONG cbBufferLength, + BYTE* pBuffer, + ULONG* pcbRead); +void __RPC_STUB ITypeMarshal_Unmarshal_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK ITypeMarshal_Free_Proxy( + ITypeMarshal* This, + PVOID pvType); +void __RPC_STUB ITypeMarshal_Free_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); + +typedef IRecordInfo *LPRECORDINFO; + +/***************************************************************************** + * IRecordInfo interface + */ +DEFINE_GUID(IID_IRecordInfo, 0x0000002f, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46); +#if defined(__cplusplus) && !defined(CINTERFACE) +struct IRecordInfo: IUnknown { + + virtual HRESULT CALLBACK RecordInit( + PVOID pvNew) = 0; + + virtual HRESULT CALLBACK RecordClear( + PVOID pvExisting) = 0; + + virtual HRESULT CALLBACK RecordCopy( + PVOID pvExisting, + PVOID pvNew) = 0; + + virtual HRESULT CALLBACK GetGuid( + GUID* pguid) = 0; + + virtual HRESULT CALLBACK GetName( + BSTR* pbstrName) = 0; + + virtual HRESULT CALLBACK GetSize( + ULONG* pcbSize) = 0; + + virtual HRESULT CALLBACK GetTypeInfo( + ITypeInfo** ppTypeInfo) = 0; + + virtual HRESULT CALLBACK GetField( + PVOID pvData, + LPCOLESTR szFieldName, + VARIANT* pvarField) = 0; + + virtual HRESULT CALLBACK GetFieldNoCopy( + PVOID pvData, + LPCOLESTR szFieldName, + VARIANT* pvarField, + PVOID* ppvDataCArray) = 0; + + virtual HRESULT CALLBACK PutField( + ULONG wFlags, + PVOID pvData, + LPCOLESTR szFieldName, + VARIANT* pvarField) = 0; + + virtual HRESULT CALLBACK PutFieldNoCopy( + ULONG wFlags, + PVOID pvData, + LPCOLESTR szFieldName, + VARIANT* pvarField) = 0; + + virtual HRESULT CALLBACK GetFieldNames( + ULONG* pcNames, + BSTR* rgBstrNames) = 0; + + virtual BOOL CALLBACK IsMatchingType( + IRecordInfo* pRecordInfo) = 0; + + virtual PVOID CALLBACK RecordCreate( + ) = 0; + + virtual HRESULT CALLBACK RecordCreateCopy( + PVOID pvSource, + PVOID* ppvDest) = 0; + + virtual HRESULT CALLBACK RecordDestroy( + PVOID pvRecord) = 0; + +} ICOM_COM_INTERFACE_ATTRIBUTE; +#else +typedef struct IRecordInfoVtbl IRecordInfoVtbl; +struct IRecordInfo { + const IRecordInfoVtbl* lpVtbl; +}; +struct IRecordInfoVtbl { + ICOM_MSVTABLE_COMPAT_FIELDS + + /*** IUnknown methods ***/ + HRESULT (CALLBACK *QueryInterface)( + IRecordInfo* This, + REFIID riid, + void** ppvObject); + + ULONG (CALLBACK *AddRef)( + IRecordInfo* This); + + ULONG (CALLBACK *Release)( + IRecordInfo* This); + + /*** IRecordInfo methods ***/ + HRESULT (CALLBACK *RecordInit)( + IRecordInfo* This, + PVOID pvNew); + + HRESULT (CALLBACK *RecordClear)( + IRecordInfo* This, + PVOID pvExisting); + + HRESULT (CALLBACK *RecordCopy)( + IRecordInfo* This, + PVOID pvExisting, + PVOID pvNew); + + HRESULT (CALLBACK *GetGuid)( + IRecordInfo* This, + GUID* pguid); + + HRESULT (CALLBACK *GetName)( + IRecordInfo* This, + BSTR* pbstrName); + + HRESULT (CALLBACK *GetSize)( + IRecordInfo* This, + ULONG* pcbSize); + + HRESULT (CALLBACK *GetTypeInfo)( + IRecordInfo* This, + ITypeInfo** ppTypeInfo); + + HRESULT (CALLBACK *GetField)( + IRecordInfo* This, + PVOID pvData, + LPCOLESTR szFieldName, + VARIANT* pvarField); + + HRESULT (CALLBACK *GetFieldNoCopy)( + IRecordInfo* This, + PVOID pvData, + LPCOLESTR szFieldName, + VARIANT* pvarField, + PVOID* ppvDataCArray); + + HRESULT (CALLBACK *PutField)( + IRecordInfo* This, + ULONG wFlags, + PVOID pvData, + LPCOLESTR szFieldName, + VARIANT* pvarField); + + HRESULT (CALLBACK *PutFieldNoCopy)( + IRecordInfo* This, + ULONG wFlags, + PVOID pvData, + LPCOLESTR szFieldName, + VARIANT* pvarField); + + HRESULT (CALLBACK *GetFieldNames)( + IRecordInfo* This, + ULONG* pcNames, + BSTR* rgBstrNames); + + BOOL (CALLBACK *IsMatchingType)( + IRecordInfo* This, + IRecordInfo* pRecordInfo); + + PVOID (CALLBACK *RecordCreate)( + IRecordInfo* This); + + HRESULT (CALLBACK *RecordCreateCopy)( + IRecordInfo* This, + PVOID pvSource, + PVOID* ppvDest); + + HRESULT (CALLBACK *RecordDestroy)( + IRecordInfo* This, + PVOID pvRecord); + +}; + +#define IRecordInfo_IMETHODS \ + IUnknown_IMETHODS \ + ICOM_METHOD1 (HRESULT,RecordInit,PVOID,pvNew) \ + ICOM_METHOD1 (HRESULT,RecordClear,PVOID,pvExisting) \ + ICOM_METHOD2 (HRESULT,RecordCopy,PVOID,pvExisting,PVOID,pvNew) \ + ICOM_METHOD1 (HRESULT,GetGuid,GUID*,pguid) \ + ICOM_METHOD1 (HRESULT,GetName,BSTR*,pbstrName) \ + ICOM_METHOD1 (HRESULT,GetSize,ULONG*,pcbSize) \ + ICOM_METHOD1 (HRESULT,GetTypeInfo,ITypeInfo**,ppTypeInfo) \ + ICOM_METHOD3 (HRESULT,GetField,PVOID,pvData,LPCOLESTR,szFieldName,VARIANT*,pvarField) \ + ICOM_METHOD4 (HRESULT,GetFieldNoCopy,PVOID,pvData,LPCOLESTR,szFieldName,VARIANT*,pvarField,PVOID*,ppvDataCArray) \ + ICOM_METHOD4 (HRESULT,PutField,ULONG,wFlags,PVOID,pvData,LPCOLESTR,szFieldName,VARIANT*,pvarField) \ + ICOM_METHOD4 (HRESULT,PutFieldNoCopy,ULONG,wFlags,PVOID,pvData,LPCOLESTR,szFieldName,VARIANT*,pvarField) \ + ICOM_METHOD2 (HRESULT,GetFieldNames,ULONG*,pcNames,BSTR*,rgBstrNames) \ + ICOM_METHOD1 (BOOL,IsMatchingType,IRecordInfo*,pRecordInfo) \ + ICOM_METHOD (PVOID,RecordCreate) \ + ICOM_METHOD2 (HRESULT,RecordCreateCopy,PVOID,pvSource,PVOID*,ppvDest) \ + ICOM_METHOD1 (HRESULT,RecordDestroy,PVOID,pvRecord) + +/*** IUnknown methods ***/ +#define IRecordInfo_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) +#define IRecordInfo_AddRef(p) (p)->lpVtbl->AddRef(p) +#define IRecordInfo_Release(p) (p)->lpVtbl->Release(p) +/*** IRecordInfo methods ***/ +#define IRecordInfo_RecordInit(p,a) (p)->lpVtbl->RecordInit(p,a) +#define IRecordInfo_RecordClear(p,a) (p)->lpVtbl->RecordClear(p,a) +#define IRecordInfo_RecordCopy(p,a,b) (p)->lpVtbl->RecordCopy(p,a,b) +#define IRecordInfo_GetGuid(p,a) (p)->lpVtbl->GetGuid(p,a) +#define IRecordInfo_GetName(p,a) (p)->lpVtbl->GetName(p,a) +#define IRecordInfo_GetSize(p,a) (p)->lpVtbl->GetSize(p,a) +#define IRecordInfo_GetTypeInfo(p,a) (p)->lpVtbl->GetTypeInfo(p,a) +#define IRecordInfo_GetField(p,a,b,c) (p)->lpVtbl->GetField(p,a,b,c) +#define IRecordInfo_GetFieldNoCopy(p,a,b,c,d) (p)->lpVtbl->GetFieldNoCopy(p,a,b,c,d) +#define IRecordInfo_PutField(p,a,b,c,d) (p)->lpVtbl->PutField(p,a,b,c,d) +#define IRecordInfo_PutFieldNoCopy(p,a,b,c,d) (p)->lpVtbl->PutFieldNoCopy(p,a,b,c,d) +#define IRecordInfo_GetFieldNames(p,a,b) (p)->lpVtbl->GetFieldNames(p,a,b) +#define IRecordInfo_IsMatchingType(p,a) (p)->lpVtbl->IsMatchingType(p,a) +#define IRecordInfo_RecordCreate(p) (p)->lpVtbl->RecordCreate(p) +#define IRecordInfo_RecordCreateCopy(p,a,b) (p)->lpVtbl->RecordCreateCopy(p,a,b) +#define IRecordInfo_RecordDestroy(p,a) (p)->lpVtbl->RecordDestroy(p,a) + +#endif + +HRESULT CALLBACK IRecordInfo_RecordInit_Proxy( + IRecordInfo* This, + PVOID pvNew); +void __RPC_STUB IRecordInfo_RecordInit_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IRecordInfo_RecordClear_Proxy( + IRecordInfo* This, + PVOID pvExisting); +void __RPC_STUB IRecordInfo_RecordClear_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IRecordInfo_RecordCopy_Proxy( + IRecordInfo* This, + PVOID pvExisting, + PVOID pvNew); +void __RPC_STUB IRecordInfo_RecordCopy_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IRecordInfo_GetGuid_Proxy( + IRecordInfo* This, + GUID* pguid); +void __RPC_STUB IRecordInfo_GetGuid_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IRecordInfo_GetName_Proxy( + IRecordInfo* This, + BSTR* pbstrName); +void __RPC_STUB IRecordInfo_GetName_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IRecordInfo_GetSize_Proxy( + IRecordInfo* This, + ULONG* pcbSize); +void __RPC_STUB IRecordInfo_GetSize_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IRecordInfo_GetTypeInfo_Proxy( + IRecordInfo* This, + ITypeInfo** ppTypeInfo); +void __RPC_STUB IRecordInfo_GetTypeInfo_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IRecordInfo_GetField_Proxy( + IRecordInfo* This, + PVOID pvData, + LPCOLESTR szFieldName, + VARIANT* pvarField); +void __RPC_STUB IRecordInfo_GetField_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IRecordInfo_GetFieldNoCopy_Proxy( + IRecordInfo* This, + PVOID pvData, + LPCOLESTR szFieldName, + VARIANT* pvarField, + PVOID* ppvDataCArray); +void __RPC_STUB IRecordInfo_GetFieldNoCopy_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IRecordInfo_PutField_Proxy( + IRecordInfo* This, + ULONG wFlags, + PVOID pvData, + LPCOLESTR szFieldName, + VARIANT* pvarField); +void __RPC_STUB IRecordInfo_PutField_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IRecordInfo_PutFieldNoCopy_Proxy( + IRecordInfo* This, + ULONG wFlags, + PVOID pvData, + LPCOLESTR szFieldName, + VARIANT* pvarField); +void __RPC_STUB IRecordInfo_PutFieldNoCopy_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IRecordInfo_GetFieldNames_Proxy( + IRecordInfo* This, + ULONG* pcNames, + BSTR* rgBstrNames); +void __RPC_STUB IRecordInfo_GetFieldNames_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +BOOL CALLBACK IRecordInfo_IsMatchingType_Proxy( + IRecordInfo* This, + IRecordInfo* pRecordInfo); +void __RPC_STUB IRecordInfo_IsMatchingType_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +PVOID CALLBACK IRecordInfo_RecordCreate_Proxy( + IRecordInfo* This); +void __RPC_STUB IRecordInfo_RecordCreate_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IRecordInfo_RecordCreateCopy_Proxy( + IRecordInfo* This, + PVOID pvSource, + PVOID* ppvDest); +void __RPC_STUB IRecordInfo_RecordCreateCopy_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IRecordInfo_RecordDestroy_Proxy( + IRecordInfo* This, + PVOID pvRecord); +void __RPC_STUB IRecordInfo_RecordDestroy_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); + +typedef struct ICreateTypeInfo ICreateTypeInfo; +typedef ICreateTypeInfo *LPCREATETYPEINFO; + +/***************************************************************************** + * ICreateTypeInfo interface + */ +DEFINE_GUID(IID_ICreateTypeInfo, 0x00020405, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46); +#if defined(__cplusplus) && !defined(CINTERFACE) +struct ICreateTypeInfo: IUnknown { + + virtual HRESULT CALLBACK SetGuid( + REFGUID guid) = 0; + + virtual HRESULT CALLBACK SetTypeFlags( + UINT uTypeFlags) = 0; + + virtual HRESULT CALLBACK SetDocString( + LPOLESTR pStrDoc) = 0; + + virtual HRESULT CALLBACK SetHelpContext( + DWORD dwHelpContext) = 0; + + virtual HRESULT CALLBACK SetVersion( + WORD wMajorVerNum, + WORD wMinorVerNum) = 0; + + virtual HRESULT CALLBACK AddRefTypeInfo( + ITypeInfo* pTInfo, + HREFTYPE* phRefType) = 0; + + virtual HRESULT CALLBACK AddFuncDesc( + UINT index, + FUNCDESC* pFuncDesc) = 0; + + virtual HRESULT CALLBACK AddImplType( + UINT index, + HREFTYPE hRefType) = 0; + + virtual HRESULT CALLBACK SetImplTypeFlags( + UINT index, + INT implTypeFlags) = 0; + + virtual HRESULT CALLBACK SetAlignment( + WORD cbAlignment) = 0; + + virtual HRESULT CALLBACK SetSchema( + LPOLESTR pStrSchema) = 0; + + virtual HRESULT CALLBACK AddVarDesc( + UINT index, + VARDESC* pVarDesc) = 0; + + virtual HRESULT CALLBACK SetFuncAndParamNames( + UINT index, + LPOLESTR* rgszNames, + UINT cNames) = 0; + + virtual HRESULT CALLBACK SetVarName( + UINT index, + LPOLESTR szName) = 0; + + virtual HRESULT CALLBACK SetTypeDescAlias( + TYPEDESC* pTDescAlias) = 0; + + virtual HRESULT CALLBACK DefineFuncAsDllEntry( + UINT index, + LPOLESTR szDllName, + LPOLESTR szProcName) = 0; + + virtual HRESULT CALLBACK SetFuncDocString( + UINT index, + LPOLESTR szDocString) = 0; + + virtual HRESULT CALLBACK SetVarDocString( + UINT index, + LPOLESTR szDocString) = 0; + + virtual HRESULT CALLBACK SetFuncHelpContext( + UINT index, + DWORD dwHelpContext) = 0; + + virtual HRESULT CALLBACK SetVarHelpContext( + UINT index, + DWORD dwHelpContext) = 0; + + virtual HRESULT CALLBACK SetMops( + UINT index, + BSTR bstrMops) = 0; + + virtual HRESULT CALLBACK SetTypeIdldesc( + IDLDESC* pIdlDesc) = 0; + + virtual HRESULT CALLBACK LayOut( + ) = 0; + +} ICOM_COM_INTERFACE_ATTRIBUTE; +#else +typedef struct ICreateTypeInfoVtbl ICreateTypeInfoVtbl; +struct ICreateTypeInfo { + const ICreateTypeInfoVtbl* lpVtbl; +}; +struct ICreateTypeInfoVtbl { + ICOM_MSVTABLE_COMPAT_FIELDS + + /*** IUnknown methods ***/ + HRESULT (CALLBACK *QueryInterface)( + ICreateTypeInfo* This, + REFIID riid, + void** ppvObject); + + ULONG (CALLBACK *AddRef)( + ICreateTypeInfo* This); + + ULONG (CALLBACK *Release)( + ICreateTypeInfo* This); + + /*** ICreateTypeInfo methods ***/ + HRESULT (CALLBACK *SetGuid)( + ICreateTypeInfo* This, + REFGUID guid); + + HRESULT (CALLBACK *SetTypeFlags)( + ICreateTypeInfo* This, + UINT uTypeFlags); + + HRESULT (CALLBACK *SetDocString)( + ICreateTypeInfo* This, + LPOLESTR pStrDoc); + + HRESULT (CALLBACK *SetHelpContext)( + ICreateTypeInfo* This, + DWORD dwHelpContext); + + HRESULT (CALLBACK *SetVersion)( + ICreateTypeInfo* This, + WORD wMajorVerNum, + WORD wMinorVerNum); + + HRESULT (CALLBACK *AddRefTypeInfo)( + ICreateTypeInfo* This, + ITypeInfo* pTInfo, + HREFTYPE* phRefType); + + HRESULT (CALLBACK *AddFuncDesc)( + ICreateTypeInfo* This, + UINT index, + FUNCDESC* pFuncDesc); + + HRESULT (CALLBACK *AddImplType)( + ICreateTypeInfo* This, + UINT index, + HREFTYPE hRefType); + + HRESULT (CALLBACK *SetImplTypeFlags)( + ICreateTypeInfo* This, + UINT index, + INT implTypeFlags); + + HRESULT (CALLBACK *SetAlignment)( + ICreateTypeInfo* This, + WORD cbAlignment); + + HRESULT (CALLBACK *SetSchema)( + ICreateTypeInfo* This, + LPOLESTR pStrSchema); + + HRESULT (CALLBACK *AddVarDesc)( + ICreateTypeInfo* This, + UINT index, + VARDESC* pVarDesc); + + HRESULT (CALLBACK *SetFuncAndParamNames)( + ICreateTypeInfo* This, + UINT index, + LPOLESTR* rgszNames, + UINT cNames); + + HRESULT (CALLBACK *SetVarName)( + ICreateTypeInfo* This, + UINT index, + LPOLESTR szName); + + HRESULT (CALLBACK *SetTypeDescAlias)( + ICreateTypeInfo* This, + TYPEDESC* pTDescAlias); + + HRESULT (CALLBACK *DefineFuncAsDllEntry)( + ICreateTypeInfo* This, + UINT index, + LPOLESTR szDllName, + LPOLESTR szProcName); + + HRESULT (CALLBACK *SetFuncDocString)( + ICreateTypeInfo* This, + UINT index, + LPOLESTR szDocString); + + HRESULT (CALLBACK *SetVarDocString)( + ICreateTypeInfo* This, + UINT index, + LPOLESTR szDocString); + + HRESULT (CALLBACK *SetFuncHelpContext)( + ICreateTypeInfo* This, + UINT index, + DWORD dwHelpContext); + + HRESULT (CALLBACK *SetVarHelpContext)( + ICreateTypeInfo* This, + UINT index, + DWORD dwHelpContext); + + HRESULT (CALLBACK *SetMops)( + ICreateTypeInfo* This, + UINT index, + BSTR bstrMops); + + HRESULT (CALLBACK *SetTypeIdldesc)( + ICreateTypeInfo* This, + IDLDESC* pIdlDesc); + + HRESULT (CALLBACK *LayOut)( + ICreateTypeInfo* This); + +}; + +#define ICreateTypeInfo_IMETHODS \ + IUnknown_IMETHODS \ + ICOM_METHOD1 (HRESULT,SetGuid,REFGUID,guid) \ + ICOM_METHOD1 (HRESULT,SetTypeFlags,UINT,uTypeFlags) \ + ICOM_METHOD1 (HRESULT,SetDocString,LPOLESTR,pStrDoc) \ + ICOM_METHOD1 (HRESULT,SetHelpContext,DWORD,dwHelpContext) \ + ICOM_METHOD2 (HRESULT,SetVersion,WORD,wMajorVerNum,WORD,wMinorVerNum) \ + ICOM_METHOD2 (HRESULT,AddRefTypeInfo,ITypeInfo*,pTInfo,HREFTYPE*,phRefType) \ + ICOM_METHOD2 (HRESULT,AddFuncDesc,UINT,index,FUNCDESC*,pFuncDesc) \ + ICOM_METHOD2 (HRESULT,AddImplType,UINT,index,HREFTYPE,hRefType) \ + ICOM_METHOD2 (HRESULT,SetImplTypeFlags,UINT,index,INT,implTypeFlags) \ + ICOM_METHOD1 (HRESULT,SetAlignment,WORD,cbAlignment) \ + ICOM_METHOD1 (HRESULT,SetSchema,LPOLESTR,pStrSchema) \ + ICOM_METHOD2 (HRESULT,AddVarDesc,UINT,index,VARDESC*,pVarDesc) \ + ICOM_METHOD3 (HRESULT,SetFuncAndParamNames,UINT,index,LPOLESTR*,rgszNames,UINT,cNames) \ + ICOM_METHOD2 (HRESULT,SetVarName,UINT,index,LPOLESTR,szName) \ + ICOM_METHOD1 (HRESULT,SetTypeDescAlias,TYPEDESC*,pTDescAlias) \ + ICOM_METHOD3 (HRESULT,DefineFuncAsDllEntry,UINT,index,LPOLESTR,szDllName,LPOLESTR,szProcName) \ + ICOM_METHOD2 (HRESULT,SetFuncDocString,UINT,index,LPOLESTR,szDocString) \ + ICOM_METHOD2 (HRESULT,SetVarDocString,UINT,index,LPOLESTR,szDocString) \ + ICOM_METHOD2 (HRESULT,SetFuncHelpContext,UINT,index,DWORD,dwHelpContext) \ + ICOM_METHOD2 (HRESULT,SetVarHelpContext,UINT,index,DWORD,dwHelpContext) \ + ICOM_METHOD2 (HRESULT,SetMops,UINT,index,BSTR,bstrMops) \ + ICOM_METHOD1 (HRESULT,SetTypeIdldesc,IDLDESC*,pIdlDesc) \ + ICOM_METHOD (HRESULT,LayOut) + +/*** IUnknown methods ***/ +#define ICreateTypeInfo_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) +#define ICreateTypeInfo_AddRef(p) (p)->lpVtbl->AddRef(p) +#define ICreateTypeInfo_Release(p) (p)->lpVtbl->Release(p) +/*** ICreateTypeInfo methods ***/ +#define ICreateTypeInfo_SetGuid(p,a) (p)->lpVtbl->SetGuid(p,a) +#define ICreateTypeInfo_SetTypeFlags(p,a) (p)->lpVtbl->SetTypeFlags(p,a) +#define ICreateTypeInfo_SetDocString(p,a) (p)->lpVtbl->SetDocString(p,a) +#define ICreateTypeInfo_SetHelpContext(p,a) (p)->lpVtbl->SetHelpContext(p,a) +#define ICreateTypeInfo_SetVersion(p,a,b) (p)->lpVtbl->SetVersion(p,a,b) +#define ICreateTypeInfo_AddRefTypeInfo(p,a,b) (p)->lpVtbl->AddRefTypeInfo(p,a,b) +#define ICreateTypeInfo_AddFuncDesc(p,a,b) (p)->lpVtbl->AddFuncDesc(p,a,b) +#define ICreateTypeInfo_AddImplType(p,a,b) (p)->lpVtbl->AddImplType(p,a,b) +#define ICreateTypeInfo_SetImplTypeFlags(p,a,b) (p)->lpVtbl->SetImplTypeFlags(p,a,b) +#define ICreateTypeInfo_SetAlignment(p,a) (p)->lpVtbl->SetAlignment(p,a) +#define ICreateTypeInfo_SetSchema(p,a) (p)->lpVtbl->SetSchema(p,a) +#define ICreateTypeInfo_AddVarDesc(p,a,b) (p)->lpVtbl->AddVarDesc(p,a,b) +#define ICreateTypeInfo_SetFuncAndParamNames(p,a,b,c) (p)->lpVtbl->SetFuncAndParamNames(p,a,b,c) +#define ICreateTypeInfo_SetVarName(p,a,b) (p)->lpVtbl->SetVarName(p,a,b) +#define ICreateTypeInfo_SetTypeDescAlias(p,a) (p)->lpVtbl->SetTypeDescAlias(p,a) +#define ICreateTypeInfo_DefineFuncAsDllEntry(p,a,b,c) (p)->lpVtbl->DefineFuncAsDllEntry(p,a,b,c) +#define ICreateTypeInfo_SetFuncDocString(p,a,b) (p)->lpVtbl->SetFuncDocString(p,a,b) +#define ICreateTypeInfo_SetVarDocString(p,a,b) (p)->lpVtbl->SetVarDocString(p,a,b) +#define ICreateTypeInfo_SetFuncHelpContext(p,a,b) (p)->lpVtbl->SetFuncHelpContext(p,a,b) +#define ICreateTypeInfo_SetVarHelpContext(p,a,b) (p)->lpVtbl->SetVarHelpContext(p,a,b) +#define ICreateTypeInfo_SetMops(p,a,b) (p)->lpVtbl->SetMops(p,a,b) +#define ICreateTypeInfo_SetTypeIdldesc(p,a) (p)->lpVtbl->SetTypeIdldesc(p,a) +#define ICreateTypeInfo_LayOut(p) (p)->lpVtbl->LayOut(p) + +#endif + +HRESULT CALLBACK ICreateTypeInfo_SetGuid_Proxy( + ICreateTypeInfo* This, + REFGUID guid); +void __RPC_STUB ICreateTypeInfo_SetGuid_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK ICreateTypeInfo_SetTypeFlags_Proxy( + ICreateTypeInfo* This, + UINT uTypeFlags); +void __RPC_STUB ICreateTypeInfo_SetTypeFlags_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK ICreateTypeInfo_SetDocString_Proxy( + ICreateTypeInfo* This, + LPOLESTR pStrDoc); +void __RPC_STUB ICreateTypeInfo_SetDocString_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK ICreateTypeInfo_SetHelpContext_Proxy( + ICreateTypeInfo* This, + DWORD dwHelpContext); +void __RPC_STUB ICreateTypeInfo_SetHelpContext_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK ICreateTypeInfo_SetVersion_Proxy( + ICreateTypeInfo* This, + WORD wMajorVerNum, + WORD wMinorVerNum); +void __RPC_STUB ICreateTypeInfo_SetVersion_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK ICreateTypeInfo_AddRefTypeInfo_Proxy( + ICreateTypeInfo* This, + ITypeInfo* pTInfo, + HREFTYPE* phRefType); +void __RPC_STUB ICreateTypeInfo_AddRefTypeInfo_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK ICreateTypeInfo_AddFuncDesc_Proxy( + ICreateTypeInfo* This, + UINT index, + FUNCDESC* pFuncDesc); +void __RPC_STUB ICreateTypeInfo_AddFuncDesc_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK ICreateTypeInfo_AddImplType_Proxy( + ICreateTypeInfo* This, + UINT index, + HREFTYPE hRefType); +void __RPC_STUB ICreateTypeInfo_AddImplType_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK ICreateTypeInfo_SetImplTypeFlags_Proxy( + ICreateTypeInfo* This, + UINT index, + INT implTypeFlags); +void __RPC_STUB ICreateTypeInfo_SetImplTypeFlags_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK ICreateTypeInfo_SetAlignment_Proxy( + ICreateTypeInfo* This, + WORD cbAlignment); +void __RPC_STUB ICreateTypeInfo_SetAlignment_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK ICreateTypeInfo_SetSchema_Proxy( + ICreateTypeInfo* This, + LPOLESTR pStrSchema); +void __RPC_STUB ICreateTypeInfo_SetSchema_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK ICreateTypeInfo_AddVarDesc_Proxy( + ICreateTypeInfo* This, + UINT index, + VARDESC* pVarDesc); +void __RPC_STUB ICreateTypeInfo_AddVarDesc_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK ICreateTypeInfo_SetFuncAndParamNames_Proxy( + ICreateTypeInfo* This, + UINT index, + LPOLESTR* rgszNames, + UINT cNames); +void __RPC_STUB ICreateTypeInfo_SetFuncAndParamNames_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK ICreateTypeInfo_SetVarName_Proxy( + ICreateTypeInfo* This, + UINT index, + LPOLESTR szName); +void __RPC_STUB ICreateTypeInfo_SetVarName_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK ICreateTypeInfo_SetTypeDescAlias_Proxy( + ICreateTypeInfo* This, + TYPEDESC* pTDescAlias); +void __RPC_STUB ICreateTypeInfo_SetTypeDescAlias_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK ICreateTypeInfo_DefineFuncAsDllEntry_Proxy( + ICreateTypeInfo* This, + UINT index, + LPOLESTR szDllName, + LPOLESTR szProcName); +void __RPC_STUB ICreateTypeInfo_DefineFuncAsDllEntry_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK ICreateTypeInfo_SetFuncDocString_Proxy( + ICreateTypeInfo* This, + UINT index, + LPOLESTR szDocString); +void __RPC_STUB ICreateTypeInfo_SetFuncDocString_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK ICreateTypeInfo_SetVarDocString_Proxy( + ICreateTypeInfo* This, + UINT index, + LPOLESTR szDocString); +void __RPC_STUB ICreateTypeInfo_SetVarDocString_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK ICreateTypeInfo_SetFuncHelpContext_Proxy( + ICreateTypeInfo* This, + UINT index, + DWORD dwHelpContext); +void __RPC_STUB ICreateTypeInfo_SetFuncHelpContext_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK ICreateTypeInfo_SetVarHelpContext_Proxy( + ICreateTypeInfo* This, + UINT index, + DWORD dwHelpContext); +void __RPC_STUB ICreateTypeInfo_SetVarHelpContext_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK ICreateTypeInfo_SetMops_Proxy( + ICreateTypeInfo* This, + UINT index, + BSTR bstrMops); +void __RPC_STUB ICreateTypeInfo_SetMops_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK ICreateTypeInfo_SetTypeIdldesc_Proxy( + ICreateTypeInfo* This, + IDLDESC* pIdlDesc); +void __RPC_STUB ICreateTypeInfo_SetTypeIdldesc_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK ICreateTypeInfo_LayOut_Proxy( + ICreateTypeInfo* This); +void __RPC_STUB ICreateTypeInfo_LayOut_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); + +typedef struct ICreateTypeInfo2 ICreateTypeInfo2; +typedef ICreateTypeInfo2 *LPCREATETYPEINFO2; + +/***************************************************************************** + * ICreateTypeInfo2 interface + */ +DEFINE_GUID(IID_ICreateTypeInfo2, 0x0002040e, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46); +#if defined(__cplusplus) && !defined(CINTERFACE) +struct ICreateTypeInfo2: ICreateTypeInfo { + + virtual HRESULT CALLBACK DeleteFuncDesc( + UINT index) = 0; + + virtual HRESULT CALLBACK DeleteFuncDescByMemId( + MEMBERID memid, + INVOKEKIND invKind) = 0; + + virtual HRESULT CALLBACK DeleteVarDesc( + UINT index) = 0; + + virtual HRESULT CALLBACK DeleteVarDescByMemId( + MEMBERID memid) = 0; + + virtual HRESULT CALLBACK DeleteImplType( + UINT index) = 0; + + virtual HRESULT CALLBACK SetCustData( + REFGUID guid, + VARIANT* pVarVal) = 0; + + virtual HRESULT CALLBACK SetFuncCustData( + UINT index, + REFGUID guid, + VARIANT* pVarVal) = 0; + + virtual HRESULT CALLBACK SetParamCustData( + UINT indexFunc, + UINT indexParam, + REFGUID guid, + VARIANT* pVarVal) = 0; + + virtual HRESULT CALLBACK SetVarCustData( + UINT index, + REFGUID guid, + VARIANT* pVarVal) = 0; + + virtual HRESULT CALLBACK SetImplTypeCustData( + UINT index, + REFGUID guid, + VARIANT* pVarVal) = 0; + + virtual HRESULT CALLBACK SetHelpStringContext( + ULONG dwHelpStringContext) = 0; + + virtual HRESULT CALLBACK SetFuncHelpStringContext( + UINT index, + ULONG dwHelpStringContext) = 0; + + virtual HRESULT CALLBACK SetVarHelpStringContext( + UINT index, + ULONG dwHelpStringContext) = 0; + + virtual HRESULT CALLBACK Invalidate( + ) = 0; + + virtual HRESULT CALLBACK SetName( + LPOLESTR szName) = 0; + +} ICOM_COM_INTERFACE_ATTRIBUTE; +#else +typedef struct ICreateTypeInfo2Vtbl ICreateTypeInfo2Vtbl; +struct ICreateTypeInfo2 { + const ICreateTypeInfo2Vtbl* lpVtbl; +}; +struct ICreateTypeInfo2Vtbl { + ICOM_MSVTABLE_COMPAT_FIELDS + + /*** IUnknown methods ***/ + HRESULT (CALLBACK *QueryInterface)( + ICreateTypeInfo2* This, + REFIID riid, + void** ppvObject); + + ULONG (CALLBACK *AddRef)( + ICreateTypeInfo2* This); + + ULONG (CALLBACK *Release)( + ICreateTypeInfo2* This); + + /*** ICreateTypeInfo methods ***/ + HRESULT (CALLBACK *SetGuid)( + ICreateTypeInfo2* This, + REFGUID guid); + + HRESULT (CALLBACK *SetTypeFlags)( + ICreateTypeInfo2* This, + UINT uTypeFlags); + + HRESULT (CALLBACK *SetDocString)( + ICreateTypeInfo2* This, + LPOLESTR pStrDoc); + + HRESULT (CALLBACK *SetHelpContext)( + ICreateTypeInfo2* This, + DWORD dwHelpContext); + + HRESULT (CALLBACK *SetVersion)( + ICreateTypeInfo2* This, + WORD wMajorVerNum, + WORD wMinorVerNum); + + HRESULT (CALLBACK *AddRefTypeInfo)( + ICreateTypeInfo2* This, + ITypeInfo* pTInfo, + HREFTYPE* phRefType); + + HRESULT (CALLBACK *AddFuncDesc)( + ICreateTypeInfo2* This, + UINT index, + FUNCDESC* pFuncDesc); + + HRESULT (CALLBACK *AddImplType)( + ICreateTypeInfo2* This, + UINT index, + HREFTYPE hRefType); + + HRESULT (CALLBACK *SetImplTypeFlags)( + ICreateTypeInfo2* This, + UINT index, + INT implTypeFlags); + + HRESULT (CALLBACK *SetAlignment)( + ICreateTypeInfo2* This, + WORD cbAlignment); + + HRESULT (CALLBACK *SetSchema)( + ICreateTypeInfo2* This, + LPOLESTR pStrSchema); + + HRESULT (CALLBACK *AddVarDesc)( + ICreateTypeInfo2* This, + UINT index, + VARDESC* pVarDesc); + + HRESULT (CALLBACK *SetFuncAndParamNames)( + ICreateTypeInfo2* This, + UINT index, + LPOLESTR* rgszNames, + UINT cNames); + + HRESULT (CALLBACK *SetVarName)( + ICreateTypeInfo2* This, + UINT index, + LPOLESTR szName); + + HRESULT (CALLBACK *SetTypeDescAlias)( + ICreateTypeInfo2* This, + TYPEDESC* pTDescAlias); + + HRESULT (CALLBACK *DefineFuncAsDllEntry)( + ICreateTypeInfo2* This, + UINT index, + LPOLESTR szDllName, + LPOLESTR szProcName); + + HRESULT (CALLBACK *SetFuncDocString)( + ICreateTypeInfo2* This, + UINT index, + LPOLESTR szDocString); + + HRESULT (CALLBACK *SetVarDocString)( + ICreateTypeInfo2* This, + UINT index, + LPOLESTR szDocString); + + HRESULT (CALLBACK *SetFuncHelpContext)( + ICreateTypeInfo2* This, + UINT index, + DWORD dwHelpContext); + + HRESULT (CALLBACK *SetVarHelpContext)( + ICreateTypeInfo2* This, + UINT index, + DWORD dwHelpContext); + + HRESULT (CALLBACK *SetMops)( + ICreateTypeInfo2* This, + UINT index, + BSTR bstrMops); + + HRESULT (CALLBACK *SetTypeIdldesc)( + ICreateTypeInfo2* This, + IDLDESC* pIdlDesc); + + HRESULT (CALLBACK *LayOut)( + ICreateTypeInfo2* This); + + /*** ICreateTypeInfo2 methods ***/ + HRESULT (CALLBACK *DeleteFuncDesc)( + ICreateTypeInfo2* This, + UINT index); + + HRESULT (CALLBACK *DeleteFuncDescByMemId)( + ICreateTypeInfo2* This, + MEMBERID memid, + INVOKEKIND invKind); + + HRESULT (CALLBACK *DeleteVarDesc)( + ICreateTypeInfo2* This, + UINT index); + + HRESULT (CALLBACK *DeleteVarDescByMemId)( + ICreateTypeInfo2* This, + MEMBERID memid); + + HRESULT (CALLBACK *DeleteImplType)( + ICreateTypeInfo2* This, + UINT index); + + HRESULT (CALLBACK *SetCustData)( + ICreateTypeInfo2* This, + REFGUID guid, + VARIANT* pVarVal); + + HRESULT (CALLBACK *SetFuncCustData)( + ICreateTypeInfo2* This, + UINT index, + REFGUID guid, + VARIANT* pVarVal); + + HRESULT (CALLBACK *SetParamCustData)( + ICreateTypeInfo2* This, + UINT indexFunc, + UINT indexParam, + REFGUID guid, + VARIANT* pVarVal); + + HRESULT (CALLBACK *SetVarCustData)( + ICreateTypeInfo2* This, + UINT index, + REFGUID guid, + VARIANT* pVarVal); + + HRESULT (CALLBACK *SetImplTypeCustData)( + ICreateTypeInfo2* This, + UINT index, + REFGUID guid, + VARIANT* pVarVal); + + HRESULT (CALLBACK *SetHelpStringContext)( + ICreateTypeInfo2* This, + ULONG dwHelpStringContext); + + HRESULT (CALLBACK *SetFuncHelpStringContext)( + ICreateTypeInfo2* This, + UINT index, + ULONG dwHelpStringContext); + + HRESULT (CALLBACK *SetVarHelpStringContext)( + ICreateTypeInfo2* This, + UINT index, + ULONG dwHelpStringContext); + + HRESULT (CALLBACK *Invalidate)( + ICreateTypeInfo2* This); + + HRESULT (CALLBACK *SetName)( + ICreateTypeInfo2* This, + LPOLESTR szName); + +}; + +#define ICreateTypeInfo2_IMETHODS \ + ICreateTypeInfo_IMETHODS \ + ICOM_METHOD1 (HRESULT,DeleteFuncDesc,UINT,index) \ + ICOM_METHOD2 (HRESULT,DeleteFuncDescByMemId,MEMBERID,memid,INVOKEKIND,invKind) \ + ICOM_METHOD1 (HRESULT,DeleteVarDesc,UINT,index) \ + ICOM_METHOD1 (HRESULT,DeleteVarDescByMemId,MEMBERID,memid) \ + ICOM_METHOD1 (HRESULT,DeleteImplType,UINT,index) \ + ICOM_METHOD2 (HRESULT,SetCustData,REFGUID,guid,VARIANT*,pVarVal) \ + ICOM_METHOD3 (HRESULT,SetFuncCustData,UINT,index,REFGUID,guid,VARIANT*,pVarVal) \ + ICOM_METHOD4 (HRESULT,SetParamCustData,UINT,indexFunc,UINT,indexParam,REFGUID,guid,VARIANT*,pVarVal) \ + ICOM_METHOD3 (HRESULT,SetVarCustData,UINT,index,REFGUID,guid,VARIANT*,pVarVal) \ + ICOM_METHOD3 (HRESULT,SetImplTypeCustData,UINT,index,REFGUID,guid,VARIANT*,pVarVal) \ + ICOM_METHOD1 (HRESULT,SetHelpStringContext,ULONG,dwHelpStringContext) \ + ICOM_METHOD2 (HRESULT,SetFuncHelpStringContext,UINT,index,ULONG,dwHelpStringContext) \ + ICOM_METHOD2 (HRESULT,SetVarHelpStringContext,UINT,index,ULONG,dwHelpStringContext) \ + ICOM_METHOD (HRESULT,Invalidate) \ + ICOM_METHOD1 (HRESULT,SetName,LPOLESTR,szName) + +/*** IUnknown methods ***/ +#define ICreateTypeInfo2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) +#define ICreateTypeInfo2_AddRef(p) (p)->lpVtbl->AddRef(p) +#define ICreateTypeInfo2_Release(p) (p)->lpVtbl->Release(p) +/*** ICreateTypeInfo methods ***/ +#define ICreateTypeInfo2_SetGuid(p,a) (p)->lpVtbl->SetGuid(p,a) +#define ICreateTypeInfo2_SetTypeFlags(p,a) (p)->lpVtbl->SetTypeFlags(p,a) +#define ICreateTypeInfo2_SetDocString(p,a) (p)->lpVtbl->SetDocString(p,a) +#define ICreateTypeInfo2_SetHelpContext(p,a) (p)->lpVtbl->SetHelpContext(p,a) +#define ICreateTypeInfo2_SetVersion(p,a,b) (p)->lpVtbl->SetVersion(p,a,b) +#define ICreateTypeInfo2_AddRefTypeInfo(p,a,b) (p)->lpVtbl->AddRefTypeInfo(p,a,b) +#define ICreateTypeInfo2_AddFuncDesc(p,a,b) (p)->lpVtbl->AddFuncDesc(p,a,b) +#define ICreateTypeInfo2_AddImplType(p,a,b) (p)->lpVtbl->AddImplType(p,a,b) +#define ICreateTypeInfo2_SetImplTypeFlags(p,a,b) (p)->lpVtbl->SetImplTypeFlags(p,a,b) +#define ICreateTypeInfo2_SetAlignment(p,a) (p)->lpVtbl->SetAlignment(p,a) +#define ICreateTypeInfo2_SetSchema(p,a) (p)->lpVtbl->SetSchema(p,a) +#define ICreateTypeInfo2_AddVarDesc(p,a,b) (p)->lpVtbl->AddVarDesc(p,a,b) +#define ICreateTypeInfo2_SetFuncAndParamNames(p,a,b,c) (p)->lpVtbl->SetFuncAndParamNames(p,a,b,c) +#define ICreateTypeInfo2_SetVarName(p,a,b) (p)->lpVtbl->SetVarName(p,a,b) +#define ICreateTypeInfo2_SetTypeDescAlias(p,a) (p)->lpVtbl->SetTypeDescAlias(p,a) +#define ICreateTypeInfo2_DefineFuncAsDllEntry(p,a,b,c) (p)->lpVtbl->DefineFuncAsDllEntry(p,a,b,c) +#define ICreateTypeInfo2_SetFuncDocString(p,a,b) (p)->lpVtbl->SetFuncDocString(p,a,b) +#define ICreateTypeInfo2_SetVarDocString(p,a,b) (p)->lpVtbl->SetVarDocString(p,a,b) +#define ICreateTypeInfo2_SetFuncHelpContext(p,a,b) (p)->lpVtbl->SetFuncHelpContext(p,a,b) +#define ICreateTypeInfo2_SetVarHelpContext(p,a,b) (p)->lpVtbl->SetVarHelpContext(p,a,b) +#define ICreateTypeInfo2_SetMops(p,a,b) (p)->lpVtbl->SetMops(p,a,b) +#define ICreateTypeInfo2_SetTypeIdldesc(p,a) (p)->lpVtbl->SetTypeIdldesc(p,a) +#define ICreateTypeInfo2_LayOut(p) (p)->lpVtbl->LayOut(p) +/*** ICreateTypeInfo2 methods ***/ +#define ICreateTypeInfo2_DeleteFuncDesc(p,a) (p)->lpVtbl->DeleteFuncDesc(p,a) +#define ICreateTypeInfo2_DeleteFuncDescByMemId(p,a,b) (p)->lpVtbl->DeleteFuncDescByMemId(p,a,b) +#define ICreateTypeInfo2_DeleteVarDesc(p,a) (p)->lpVtbl->DeleteVarDesc(p,a) +#define ICreateTypeInfo2_DeleteVarDescByMemId(p,a) (p)->lpVtbl->DeleteVarDescByMemId(p,a) +#define ICreateTypeInfo2_DeleteImplType(p,a) (p)->lpVtbl->DeleteImplType(p,a) +#define ICreateTypeInfo2_SetCustData(p,a,b) (p)->lpVtbl->SetCustData(p,a,b) +#define ICreateTypeInfo2_SetFuncCustData(p,a,b,c) (p)->lpVtbl->SetFuncCustData(p,a,b,c) +#define ICreateTypeInfo2_SetParamCustData(p,a,b,c,d) (p)->lpVtbl->SetParamCustData(p,a,b,c,d) +#define ICreateTypeInfo2_SetVarCustData(p,a,b,c) (p)->lpVtbl->SetVarCustData(p,a,b,c) +#define ICreateTypeInfo2_SetImplTypeCustData(p,a,b,c) (p)->lpVtbl->SetImplTypeCustData(p,a,b,c) +#define ICreateTypeInfo2_SetHelpStringContext(p,a) (p)->lpVtbl->SetHelpStringContext(p,a) +#define ICreateTypeInfo2_SetFuncHelpStringContext(p,a,b) (p)->lpVtbl->SetFuncHelpStringContext(p,a,b) +#define ICreateTypeInfo2_SetVarHelpStringContext(p,a,b) (p)->lpVtbl->SetVarHelpStringContext(p,a,b) +#define ICreateTypeInfo2_Invalidate(p) (p)->lpVtbl->Invalidate(p) +#define ICreateTypeInfo2_SetName(p,a) (p)->lpVtbl->SetName(p,a) + +#endif + +HRESULT CALLBACK ICreateTypeInfo2_DeleteFuncDesc_Proxy( + ICreateTypeInfo2* This, + UINT index); +void __RPC_STUB ICreateTypeInfo2_DeleteFuncDesc_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK ICreateTypeInfo2_DeleteFuncDescByMemId_Proxy( + ICreateTypeInfo2* This, + MEMBERID memid, + INVOKEKIND invKind); +void __RPC_STUB ICreateTypeInfo2_DeleteFuncDescByMemId_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK ICreateTypeInfo2_DeleteVarDesc_Proxy( + ICreateTypeInfo2* This, + UINT index); +void __RPC_STUB ICreateTypeInfo2_DeleteVarDesc_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK ICreateTypeInfo2_DeleteVarDescByMemId_Proxy( + ICreateTypeInfo2* This, + MEMBERID memid); +void __RPC_STUB ICreateTypeInfo2_DeleteVarDescByMemId_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK ICreateTypeInfo2_DeleteImplType_Proxy( + ICreateTypeInfo2* This, + UINT index); +void __RPC_STUB ICreateTypeInfo2_DeleteImplType_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK ICreateTypeInfo2_SetCustData_Proxy( + ICreateTypeInfo2* This, + REFGUID guid, + VARIANT* pVarVal); +void __RPC_STUB ICreateTypeInfo2_SetCustData_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK ICreateTypeInfo2_SetFuncCustData_Proxy( + ICreateTypeInfo2* This, + UINT index, + REFGUID guid, + VARIANT* pVarVal); +void __RPC_STUB ICreateTypeInfo2_SetFuncCustData_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK ICreateTypeInfo2_SetParamCustData_Proxy( + ICreateTypeInfo2* This, + UINT indexFunc, + UINT indexParam, + REFGUID guid, + VARIANT* pVarVal); +void __RPC_STUB ICreateTypeInfo2_SetParamCustData_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK ICreateTypeInfo2_SetVarCustData_Proxy( + ICreateTypeInfo2* This, + UINT index, + REFGUID guid, + VARIANT* pVarVal); +void __RPC_STUB ICreateTypeInfo2_SetVarCustData_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK ICreateTypeInfo2_SetImplTypeCustData_Proxy( + ICreateTypeInfo2* This, + UINT index, + REFGUID guid, + VARIANT* pVarVal); +void __RPC_STUB ICreateTypeInfo2_SetImplTypeCustData_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK ICreateTypeInfo2_SetHelpStringContext_Proxy( + ICreateTypeInfo2* This, + ULONG dwHelpStringContext); +void __RPC_STUB ICreateTypeInfo2_SetHelpStringContext_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK ICreateTypeInfo2_SetFuncHelpStringContext_Proxy( + ICreateTypeInfo2* This, + UINT index, + ULONG dwHelpStringContext); +void __RPC_STUB ICreateTypeInfo2_SetFuncHelpStringContext_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK ICreateTypeInfo2_SetVarHelpStringContext_Proxy( + ICreateTypeInfo2* This, + UINT index, + ULONG dwHelpStringContext); +void __RPC_STUB ICreateTypeInfo2_SetVarHelpStringContext_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK ICreateTypeInfo2_Invalidate_Proxy( + ICreateTypeInfo2* This); +void __RPC_STUB ICreateTypeInfo2_Invalidate_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK ICreateTypeInfo2_SetName_Proxy( + ICreateTypeInfo2* This, + LPOLESTR szName); +void __RPC_STUB ICreateTypeInfo2_SetName_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); + +typedef struct ICreateTypeLib ICreateTypeLib; +typedef ICreateTypeLib *LPCREATETYPELIB; + +/***************************************************************************** + * ICreateTypeLib interface + */ +DEFINE_GUID(IID_ICreateTypeLib, 0x00020406, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46); +#if defined(__cplusplus) && !defined(CINTERFACE) +struct ICreateTypeLib: IUnknown { + + virtual HRESULT CALLBACK CreateTypeInfo( + LPOLESTR szName, + TYPEKIND tkind, + ICreateTypeInfo** ppCTInfo) = 0; + + virtual HRESULT CALLBACK SetName( + LPOLESTR szName) = 0; + + virtual HRESULT CALLBACK SetVersion( + WORD wMajorVerNum, + WORD wMinorVerNum) = 0; + + virtual HRESULT CALLBACK SetGuid( + REFGUID guid) = 0; + + virtual HRESULT CALLBACK SetDocString( + LPOLESTR szDoc) = 0; + + virtual HRESULT CALLBACK SetHelpFileName( + LPOLESTR szHelpFileName) = 0; + + virtual HRESULT CALLBACK SetHelpContext( + DWORD dwHelpContext) = 0; + + virtual HRESULT CALLBACK SetLcid( + LCID lcid) = 0; + + virtual HRESULT CALLBACK SetLibFlags( + UINT uLibFlags) = 0; + + virtual HRESULT CALLBACK SaveAllChanges( + ) = 0; + +} ICOM_COM_INTERFACE_ATTRIBUTE; +#else +typedef struct ICreateTypeLibVtbl ICreateTypeLibVtbl; +struct ICreateTypeLib { + const ICreateTypeLibVtbl* lpVtbl; +}; +struct ICreateTypeLibVtbl { + ICOM_MSVTABLE_COMPAT_FIELDS + + /*** IUnknown methods ***/ + HRESULT (CALLBACK *QueryInterface)( + ICreateTypeLib* This, + REFIID riid, + void** ppvObject); + + ULONG (CALLBACK *AddRef)( + ICreateTypeLib* This); + + ULONG (CALLBACK *Release)( + ICreateTypeLib* This); + + /*** ICreateTypeLib methods ***/ + HRESULT (CALLBACK *CreateTypeInfo)( + ICreateTypeLib* This, + LPOLESTR szName, + TYPEKIND tkind, + ICreateTypeInfo** ppCTInfo); + + HRESULT (CALLBACK *SetName)( + ICreateTypeLib* This, + LPOLESTR szName); + + HRESULT (CALLBACK *SetVersion)( + ICreateTypeLib* This, + WORD wMajorVerNum, + WORD wMinorVerNum); + + HRESULT (CALLBACK *SetGuid)( + ICreateTypeLib* This, + REFGUID guid); + + HRESULT (CALLBACK *SetDocString)( + ICreateTypeLib* This, + LPOLESTR szDoc); + + HRESULT (CALLBACK *SetHelpFileName)( + ICreateTypeLib* This, + LPOLESTR szHelpFileName); + + HRESULT (CALLBACK *SetHelpContext)( + ICreateTypeLib* This, + DWORD dwHelpContext); + + HRESULT (CALLBACK *SetLcid)( + ICreateTypeLib* This, + LCID lcid); + + HRESULT (CALLBACK *SetLibFlags)( + ICreateTypeLib* This, + UINT uLibFlags); + + HRESULT (CALLBACK *SaveAllChanges)( + ICreateTypeLib* This); + +}; + +#define ICreateTypeLib_IMETHODS \ + IUnknown_IMETHODS \ + ICOM_METHOD3 (HRESULT,CreateTypeInfo,LPOLESTR,szName,TYPEKIND,tkind,ICreateTypeInfo**,ppCTInfo) \ + ICOM_METHOD1 (HRESULT,SetName,LPOLESTR,szName) \ + ICOM_METHOD2 (HRESULT,SetVersion,WORD,wMajorVerNum,WORD,wMinorVerNum) \ + ICOM_METHOD1 (HRESULT,SetGuid,REFGUID,guid) \ + ICOM_METHOD1 (HRESULT,SetDocString,LPOLESTR,szDoc) \ + ICOM_METHOD1 (HRESULT,SetHelpFileName,LPOLESTR,szHelpFileName) \ + ICOM_METHOD1 (HRESULT,SetHelpContext,DWORD,dwHelpContext) \ + ICOM_METHOD1 (HRESULT,SetLcid,LCID,lcid) \ + ICOM_METHOD1 (HRESULT,SetLibFlags,UINT,uLibFlags) \ + ICOM_METHOD (HRESULT,SaveAllChanges) + +/*** IUnknown methods ***/ +#define ICreateTypeLib_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) +#define ICreateTypeLib_AddRef(p) (p)->lpVtbl->AddRef(p) +#define ICreateTypeLib_Release(p) (p)->lpVtbl->Release(p) +/*** ICreateTypeLib methods ***/ +#define ICreateTypeLib_CreateTypeInfo(p,a,b,c) (p)->lpVtbl->CreateTypeInfo(p,a,b,c) +#define ICreateTypeLib_SetName(p,a) (p)->lpVtbl->SetName(p,a) +#define ICreateTypeLib_SetVersion(p,a,b) (p)->lpVtbl->SetVersion(p,a,b) +#define ICreateTypeLib_SetGuid(p,a) (p)->lpVtbl->SetGuid(p,a) +#define ICreateTypeLib_SetDocString(p,a) (p)->lpVtbl->SetDocString(p,a) +#define ICreateTypeLib_SetHelpFileName(p,a) (p)->lpVtbl->SetHelpFileName(p,a) +#define ICreateTypeLib_SetHelpContext(p,a) (p)->lpVtbl->SetHelpContext(p,a) +#define ICreateTypeLib_SetLcid(p,a) (p)->lpVtbl->SetLcid(p,a) +#define ICreateTypeLib_SetLibFlags(p,a) (p)->lpVtbl->SetLibFlags(p,a) +#define ICreateTypeLib_SaveAllChanges(p) (p)->lpVtbl->SaveAllChanges(p) + +#endif + +HRESULT CALLBACK ICreateTypeLib_CreateTypeInfo_Proxy( + ICreateTypeLib* This, + LPOLESTR szName, + TYPEKIND tkind, + ICreateTypeInfo** ppCTInfo); +void __RPC_STUB ICreateTypeLib_CreateTypeInfo_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK ICreateTypeLib_SetName_Proxy( + ICreateTypeLib* This, + LPOLESTR szName); +void __RPC_STUB ICreateTypeLib_SetName_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK ICreateTypeLib_SetVersion_Proxy( + ICreateTypeLib* This, + WORD wMajorVerNum, + WORD wMinorVerNum); +void __RPC_STUB ICreateTypeLib_SetVersion_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK ICreateTypeLib_SetGuid_Proxy( + ICreateTypeLib* This, + REFGUID guid); +void __RPC_STUB ICreateTypeLib_SetGuid_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK ICreateTypeLib_SetDocString_Proxy( + ICreateTypeLib* This, + LPOLESTR szDoc); +void __RPC_STUB ICreateTypeLib_SetDocString_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK ICreateTypeLib_SetHelpFileName_Proxy( + ICreateTypeLib* This, + LPOLESTR szHelpFileName); +void __RPC_STUB ICreateTypeLib_SetHelpFileName_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK ICreateTypeLib_SetHelpContext_Proxy( + ICreateTypeLib* This, + DWORD dwHelpContext); +void __RPC_STUB ICreateTypeLib_SetHelpContext_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK ICreateTypeLib_SetLcid_Proxy( + ICreateTypeLib* This, + LCID lcid); +void __RPC_STUB ICreateTypeLib_SetLcid_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK ICreateTypeLib_SetLibFlags_Proxy( + ICreateTypeLib* This, + UINT uLibFlags); +void __RPC_STUB ICreateTypeLib_SetLibFlags_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK ICreateTypeLib_SaveAllChanges_Proxy( + ICreateTypeLib* This); +void __RPC_STUB ICreateTypeLib_SaveAllChanges_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); + +typedef struct ICreateTypeLib2 ICreateTypeLib2; +typedef ICreateTypeLib2 *LPCREATETYPELIB2; + +/***************************************************************************** + * ICreateTypeLib2 interface + */ +DEFINE_GUID(IID_ICreateTypeLib2, 0x0002040f, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46); +#if defined(__cplusplus) && !defined(CINTERFACE) +struct ICreateTypeLib2: ICreateTypeLib { + + virtual HRESULT CALLBACK DeleteTypeInfo( + LPOLESTR szName) = 0; + + virtual HRESULT CALLBACK SetCustData( + REFGUID guid, + VARIANT* pVarVal) = 0; + + virtual HRESULT CALLBACK SetHelpStringContext( + ULONG dwHelpStringContext) = 0; + + virtual HRESULT CALLBACK SetHelpStringDll( + LPOLESTR szFileName) = 0; + +} ICOM_COM_INTERFACE_ATTRIBUTE; +#else +typedef struct ICreateTypeLib2Vtbl ICreateTypeLib2Vtbl; +struct ICreateTypeLib2 { + const ICreateTypeLib2Vtbl* lpVtbl; +}; +struct ICreateTypeLib2Vtbl { + ICOM_MSVTABLE_COMPAT_FIELDS + + /*** IUnknown methods ***/ + HRESULT (CALLBACK *QueryInterface)( + ICreateTypeLib2* This, + REFIID riid, + void** ppvObject); + + ULONG (CALLBACK *AddRef)( + ICreateTypeLib2* This); + + ULONG (CALLBACK *Release)( + ICreateTypeLib2* This); + + /*** ICreateTypeLib methods ***/ + HRESULT (CALLBACK *CreateTypeInfo)( + ICreateTypeLib2* This, + LPOLESTR szName, + TYPEKIND tkind, + ICreateTypeInfo** ppCTInfo); + + HRESULT (CALLBACK *SetName)( + ICreateTypeLib2* This, + LPOLESTR szName); + + HRESULT (CALLBACK *SetVersion)( + ICreateTypeLib2* This, + WORD wMajorVerNum, + WORD wMinorVerNum); + + HRESULT (CALLBACK *SetGuid)( + ICreateTypeLib2* This, + REFGUID guid); + + HRESULT (CALLBACK *SetDocString)( + ICreateTypeLib2* This, + LPOLESTR szDoc); + + HRESULT (CALLBACK *SetHelpFileName)( + ICreateTypeLib2* This, + LPOLESTR szHelpFileName); + + HRESULT (CALLBACK *SetHelpContext)( + ICreateTypeLib2* This, + DWORD dwHelpContext); + + HRESULT (CALLBACK *SetLcid)( + ICreateTypeLib2* This, + LCID lcid); + + HRESULT (CALLBACK *SetLibFlags)( + ICreateTypeLib2* This, + UINT uLibFlags); + + HRESULT (CALLBACK *SaveAllChanges)( + ICreateTypeLib2* This); + + /*** ICreateTypeLib2 methods ***/ + HRESULT (CALLBACK *DeleteTypeInfo)( + ICreateTypeLib2* This, + LPOLESTR szName); + + HRESULT (CALLBACK *SetCustData)( + ICreateTypeLib2* This, + REFGUID guid, + VARIANT* pVarVal); + + HRESULT (CALLBACK *SetHelpStringContext)( + ICreateTypeLib2* This, + ULONG dwHelpStringContext); + + HRESULT (CALLBACK *SetHelpStringDll)( + ICreateTypeLib2* This, + LPOLESTR szFileName); + +}; + +#define ICreateTypeLib2_IMETHODS \ + ICreateTypeLib_IMETHODS \ + ICOM_METHOD1 (HRESULT,DeleteTypeInfo,LPOLESTR,szName) \ + ICOM_METHOD2 (HRESULT,SetCustData,REFGUID,guid,VARIANT*,pVarVal) \ + ICOM_METHOD1 (HRESULT,SetHelpStringContext,ULONG,dwHelpStringContext) \ + ICOM_METHOD1 (HRESULT,SetHelpStringDll,LPOLESTR,szFileName) + +/*** IUnknown methods ***/ +#define ICreateTypeLib2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) +#define ICreateTypeLib2_AddRef(p) (p)->lpVtbl->AddRef(p) +#define ICreateTypeLib2_Release(p) (p)->lpVtbl->Release(p) +/*** ICreateTypeLib methods ***/ +#define ICreateTypeLib2_CreateTypeInfo(p,a,b,c) (p)->lpVtbl->CreateTypeInfo(p,a,b,c) +#define ICreateTypeLib2_SetName(p,a) (p)->lpVtbl->SetName(p,a) +#define ICreateTypeLib2_SetVersion(p,a,b) (p)->lpVtbl->SetVersion(p,a,b) +#define ICreateTypeLib2_SetGuid(p,a) (p)->lpVtbl->SetGuid(p,a) +#define ICreateTypeLib2_SetDocString(p,a) (p)->lpVtbl->SetDocString(p,a) +#define ICreateTypeLib2_SetHelpFileName(p,a) (p)->lpVtbl->SetHelpFileName(p,a) +#define ICreateTypeLib2_SetHelpContext(p,a) (p)->lpVtbl->SetHelpContext(p,a) +#define ICreateTypeLib2_SetLcid(p,a) (p)->lpVtbl->SetLcid(p,a) +#define ICreateTypeLib2_SetLibFlags(p,a) (p)->lpVtbl->SetLibFlags(p,a) +#define ICreateTypeLib2_SaveAllChanges(p) (p)->lpVtbl->SaveAllChanges(p) +/*** ICreateTypeLib2 methods ***/ +#define ICreateTypeLib2_DeleteTypeInfo(p,a) (p)->lpVtbl->DeleteTypeInfo(p,a) +#define ICreateTypeLib2_SetCustData(p,a,b) (p)->lpVtbl->SetCustData(p,a,b) +#define ICreateTypeLib2_SetHelpStringContext(p,a) (p)->lpVtbl->SetHelpStringContext(p,a) +#define ICreateTypeLib2_SetHelpStringDll(p,a) (p)->lpVtbl->SetHelpStringDll(p,a) + +#endif + +HRESULT CALLBACK ICreateTypeLib2_DeleteTypeInfo_Proxy( + ICreateTypeLib2* This, + LPOLESTR szName); +void __RPC_STUB ICreateTypeLib2_DeleteTypeInfo_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK ICreateTypeLib2_SetCustData_Proxy( + ICreateTypeLib2* This, + REFGUID guid, + VARIANT* pVarVal); +void __RPC_STUB ICreateTypeLib2_SetCustData_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK ICreateTypeLib2_SetHelpStringContext_Proxy( + ICreateTypeLib2* This, + ULONG dwHelpStringContext); +void __RPC_STUB ICreateTypeLib2_SetHelpStringContext_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK ICreateTypeLib2_SetHelpStringDll_Proxy( + ICreateTypeLib2* This, + LPOLESTR szFileName); +void __RPC_STUB ICreateTypeLib2_SetHelpStringDll_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); + +#ifdef __cplusplus +} +#endif +#endif /* __WIDL_OAIDL_H */ diff --git a/include/oaidl.idl b/include/oaidl.idl new file mode 100644 index 00000000000..440e662ad3f --- /dev/null +++ b/include/oaidl.idl @@ -0,0 +1,1573 @@ +/* + * Copyright 2002 Ove Kaaven + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +import "objidl.idl"; + +interface IDispatch; +interface ITypeInfo; +interface ITypeLib; +interface IRecordInfo; + +[ + version(1.0), + pointer_default(unique) +] +interface IOleAutomationTypes +{ + +typedef CY CURRENCY; + +/* Safe Array */ + +typedef struct tagSAFEARRAYBOUND { + ULONG cElements; + LONG lLbound; +} SAFEARRAYBOUND, *LPSAFEARRAYBOUND; + +typedef [unique] struct _wireVARIANT *wireVARIANT; +typedef [unique] struct _wireBRECORD *wireBRECORD; + +typedef struct _wireSAFEARR_BSTR { + ULONG Size; + [size_is(Size), ref] wireBSTR *aBstr; +} SAFEARR_BSTR; + +typedef struct _wireSAFEARR_UNKNOWN { + ULONG Size; + [size_is(Size), ref] IUnknown **apUnknown; +} SAFEARR_UNKNOWN; + +typedef struct _wireSAFEARR_DISPATCH { + ULONG Size; + [size_is(Size), ref] IDispatch **apDispatch; +} SAFEARR_DISPATCH; + +typedef struct _wireSAFEARR_VARIANT { + ULONG Size; + [size_is(Size), ref] wireVARIANT *aVariant; +} SAFEARR_VARIANT; + +typedef struct _wireSAFEARR_BRECORD { + ULONG Size; + [size_is(Size), ref] wireBRECORD *aRecord; +} SAFEARR_BRECORD; + +typedef struct _wireSAFEARR_HAVEIID { + ULONG Size; + [size_is(Size), ref] IUnknown **apUnknown; + IID iid; +} SAFEARR_HAVEIID; + +typedef [v1_enum] 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; + +typedef union _wireSAFEARRAY_UNION switch(ULONG sfType) u { + case SF_BSTR: SAFEARR_BSTR BstrStr; + case SF_UNKNOWN: SAFEARR_UNKNOWN UnknownStr; + case SF_DISPATCH: SAFEARR_DISPATCH DispatchStr; + case SF_VARIANT: SAFEARR_VARIANT VariantStr; + case SF_RECORD: SAFEARR_BRECORD RecordStr; + case SF_HAVEIID: SAFEARR_HAVEIID HaveIidStr; + case SF_I1: BYTE_SIZEDARR ByteStr; + case SF_I2: WORD_SIZEDARR WordStr; + case SF_I4: DWORD_SIZEDARR LongStr; + case SF_I8: HYPER_SIZEDARR HyperStr; +} SAFEARRAYUNION; + +typedef [unique] struct _wireSAFEARRAY { + USHORT cDims; + USHORT fFeatures; + ULONG cbElements; + ULONG cLocks; + SAFEARRAYUNION uArrayStructs; + [size_is(cDims)] SAFEARRAYBOUND rgsabound[]; +} *wireSAFEARRAY; + +typedef [unique] wireSAFEARRAY *wirePSAFEARRAY; + +typedef struct tagSAFEARRAY { + USHORT cDims; + USHORT fFeatures; + ULONG cbElements; + ULONG cLocks; + PVOID pvData; + SAFEARRAYBOUND rgsabound[]; +} SAFEARRAY; + +typedef [wire_marshal(wirePSAFEARRAY)] SAFEARRAY *LPSAFEARRAY; + +const USHORT FADF_AUTO = 0x0001; +const USHORT FADF_STATIC = 0x0002; +const USHORT FADF_EMBEDDED = 0x0004; +const USHORT FADF_FIXEDSIZE = 0x0010; +const USHORT FADF_RECORD = 0x0020; +const USHORT FADF_HAVEIID = 0x0040; +const USHORT FADF_HAVEVARTYPE = 0x0080; +const USHORT FADF_BSTR = 0x0100; +const USHORT FADF_UNKNOWN = 0x0200; +const USHORT FADF_DISPATCH = 0x0400; +const USHORT FADF_VARIANT = 0x0800; +const USHORT FADF_RESERVED = 0xF008; +/* Undocumented flags */ +const USHORT FADF_CREATEVECTOR = 0x2000; /* set when the safe array is created using SafeArrayCreateVector */ + +/* Variant */ + +cpp_quote("#if (__STDC__ && !defined(_FORCENAMELESSUNION)) || defined(NONAMELESSUNION)") +cpp_quote("#define __VARIANT_NAME_1 n1") +cpp_quote("#define __VARIANT_NAME_2 n2") +cpp_quote("#define __VARIANT_NAME_3 n3") +cpp_quote("#define __VARIANT_NAME_4 brecVal") +cpp_quote("#else") +cpp_quote("#define __tagVARIANT") +cpp_quote("#define __VARIANT_NAME_1") +cpp_quote("#define __VARIANT_NAME_2") +cpp_quote("#define __VARIANT_NAME_3") +cpp_quote("#define __tagBRECORD") +cpp_quote("#define __VARIANT_NAME_4") +cpp_quote("#endif") + +typedef [wire_marshal(wireVARIANT)] struct tagVARIANT VARIANT; + +struct tagVARIANT { + union { + struct __tagVARIANT { + VARTYPE vt; + WORD wReserved1; + WORD wReserved2; + WORD wReserved3; + union { + CHAR cVal; + USHORT uiVal; + ULONG ulVal; + INT intVal; + UINT uintVal; + BYTE bVal; + SHORT iVal; + LONG lVal; + FLOAT fltVal; + DOUBLE dblVal; + VARIANT_BOOL boolVal; +#if 0 /* illegal in C++ */ + _VARIANT_BOOL bool; +#endif + SCODE scode; + DATE date; + BSTR bstrVal; + CY cyVal; + IUnknown *punkVal; + IDispatch *pdispVal; + SAFEARRAY *parray; + CHAR *pcVal; + USHORT *puiVal; + ULONG *pulVal; + INT *pintVal; + UINT *puintVal; + BYTE *pbVal; + SHORT *piVal; + LONG *plVal; + FLOAT *pfltVal; + DOUBLE *pdblVal; + VARIANT_BOOL *pboolVal; +#if 0 + _VARIANT_BOOL *pbool; +#endif + SCODE *pscode; + DATE *pdate; + BSTR *pbstrVal; + VARIANT *pvarVal; + PVOID byref; + CY *pcyVal; + DECIMAL *pdecVal; + IUnknown **ppunkVal; + IDispatch **ppdispVal; + SAFEARRAY **pparray; + struct __tagBRECORD { + PVOID pvRecord; + IRecordInfo *pRecInfo; + } __VARIANT_NAME_4; + } __VARIANT_NAME_3; + } __VARIANT_NAME_2; + + DECIMAL decVal; + } __VARIANT_NAME_1; +}; + +typedef VARIANT *LPVARIANT; +typedef VARIANT VARIANTARG; +typedef VARIANTARG *LPVARIANTARG; + +struct _wireBRECORD { + ULONG fFlags; + ULONG clSize; + IRecordInfo *pRecInfo; + [size_is(clSize)] byte *pRecord; +}; + +struct _wireVARIANT { + DWORD clSize; + DWORD rpcReserved; + USHORT vt; + USHORT wReserved1; + USHORT wReserved2; + USHORT wReserved3; + [switch_is(vt)] union { + [case(VT_EMPTY, VT_NULL)] ; + [case(VT_I1)] CHAR cVal; + [case(VT_UI2)] USHORT uiVal; + [case(VT_UI4)] ULONG ulVal; + [case(VT_INT)] INT intVal; + [case(VT_UINT)] UINT uintVal; + [case(VT_UI1)] BYTE bVal; + [case(VT_I2)] SHORT iVal; + [case(VT_I4)] LONG lVal; + [case(VT_R4)] FLOAT fltVal; + [case(VT_R8)] DOUBLE dblVal; + [case(VT_BOOL)] VARIANT_BOOL boolVal; + [case(VT_ERROR)] SCODE scode; + [case(VT_DATE)] DATE date; + [case(VT_BSTR)] wireBSTR bstrVal; + [case(VT_CY)] CY cyVal; + [case(VT_DECIMAL)] DECIMAL decVal; + [case(VT_UNKNOWN)] IUnknown *punkVal; + [case(VT_DISPATCH)] IDispatch *pdispVal; + [case(VT_ARRAY)] wireSAFEARRAY parray; + [case(VT_I1|VT_BYREF)] CHAR *pcVal; + [case(VT_UI2|VT_BYREF)] USHORT *puiVal; + [case(VT_UI4|VT_BYREF)] ULONG *pulVal; + [case(VT_INT|VT_BYREF)] INT *pintVal; + [case(VT_UINT|VT_BYREF)] UINT *puintVal; + [case(VT_UI1|VT_BYREF)] BYTE *pbVal; + [case(VT_I2|VT_BYREF)] SHORT *piVal; + [case(VT_I4|VT_BYREF)] LONG *plVal; + [case(VT_R4|VT_BYREF)] FLOAT *pfltVal; + [case(VT_R8|VT_BYREF)] DOUBLE *pdblVal; + [case(VT_BOOL|VT_BYREF)] VARIANT_BOOL *pboolVal; + [case(VT_ERROR|VT_BYREF)] SCODE *pscode; + [case(VT_DATE|VT_BYREF)] DATE *pdate; + [case(VT_BSTR|VT_BYREF)] wireBSTR *pbstrVal; + [case(VT_VARIANT|VT_BYREF)] wireVARIANT *pvarVal; + [case(VT_CY|VT_BYREF)] CY *pcyVal; + [case(VT_DECIMAL|VT_BYREF)] DECIMAL *pdecVal; + [case(VT_UNKNOWN|VT_BYREF)] IUnknown **ppunkVal; + [case(VT_DISPATCH|VT_BYREF)] IDispatch **ppdispVal; + [case(VT_ARRAY|VT_BYREF)] wireSAFEARRAY *pparray; + [case(VT_RECORD, VT_RECORD|VT_BYREF)] wireBRECORD brecVal; + }; +}; + +/* Dispatch */ + +typedef LONG DISPID; +typedef DWORD HREFTYPE; +typedef DISPID MEMBERID; + +typedef [v1_enum] enum tagTYPEKIND { + TKIND_ENUM = 0, + TKIND_RECORD, + TKIND_MODULE, + TKIND_INTERFACE, + TKIND_DISPATCH, + TKIND_COCLASS, + TKIND_ALIAS, + TKIND_UNION, + TKIND_MAX +} TYPEKIND; + +typedef struct tagTYPEDESC { + [switch_is(vt)] union { + [case(VT_PTR, VT_SAFEARRAY)] struct tagTYPEDESC *lptdesc; + [case(VT_CARRAY)] struct tagARRAYDESC *lpadesc; + [case(VT_USERDEFINED)] HREFTYPE hreftype; + [default] ; + }; + VARTYPE vt; +} TYPEDESC; + +typedef struct tagARRAYDESC { + TYPEDESC tdescElem; + USHORT cDims; + [size_is(cDims)] SAFEARRAYBOUND rgbounds[]; +} ARRAYDESC; + +typedef struct tagPARAMDESCEX { + ULONG cBytes; + VARIANTARG varDefaultValue; +} PARAMDESCEX, *LPPARAMDESCEX; + +typedef struct tagPARAMDESC { + LPPARAMDESCEX pparamdescex; + USHORT wParamFlags; +} PARAMDESC, *LPPARAMDESC; + +const USHORT PARAMFLAG_NONE = 0x00; +const USHORT PARAMFLAG_FIN = 0x01; +const USHORT PARAMFLAG_FOUT = 0x02; +const USHORT PARAMFLAG_FLCID = 0x04; +const USHORT PARAMFLAG_FRETVAL = 0x08; +const USHORT PARAMFLAG_FOPT = 0x10; +const USHORT PARAMFLAG_FHASDEFAULT = 0x20; +const USHORT PARAMFLAG_FHASCUSTDATA = 0x40; + +typedef struct tagIDLDESC { + ULONG dwReserved; + USHORT wIDLFlags; +} IDLDESC, *LPIDLDESC; + +const USHORT IDLFLAG_NONE = PARAMFLAG_NONE; +const USHORT IDLFLAG_FIN = PARAMFLAG_FIN; +const USHORT IDLFLAG_FOUT = PARAMFLAG_FOUT; +const USHORT IDLFLAG_FLCID = PARAMFLAG_FLCID; +const USHORT IDLFLAG_FRETVAL = PARAMFLAG_FRETVAL; + +cpp_quote("#if 0") /* for IDL only */ +typedef struct tagELEMDESC { + TYPEDESC tdesc; + PARAMDESC paramdesc; +} ELEMDESC; +cpp_quote("#else") /* C/C++ defs */ +cpp_quote("typedef struct tagELEMDESC {") +cpp_quote(" TYPEDESC tdesc;") +cpp_quote(" union {") +cpp_quote(" IDLDESC idldesc;") +cpp_quote(" PARAMDESC paramdesc;") +cpp_quote(" } DUMMYUNIONNAME;") +cpp_quote("} ELEMDESC, *LPELEMDESC;") +cpp_quote("#endif") + +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, *LPTYPEATTR; + +typedef struct tagDISPPARAMS { + [size_is(cArgs)] VARIANTARG *rgvarg; + [size_is(cNamedArgs)] DISPID *rgdispidNamedArgs; + UINT cArgs; + UINT cNamedArgs; +} DISPPARAMS; + +cpp_quote("#if 0") /* for IDL only */ +typedef struct tagEXCEPINFO { + WORD wCode; + WORD wReserved; + BSTR bstrSource; + BSTR bstrDescription; + BSTR bstrHelpFile; + DWORD dwHelpContext; + ULONG pvReserved; + ULONG pfnDeferredFillIn; + SCODE scode; +} EXCEPINFO; +cpp_quote("#else") +cpp_quote("typedef struct tagEXCEPINFO {") +cpp_quote(" WORD wCode;") +cpp_quote(" WORD wReserved;") +cpp_quote(" BSTR bstrSource;") +cpp_quote(" BSTR bstrDescription;") +cpp_quote(" BSTR bstrHelpFile;") +cpp_quote(" DWORD dwHelpContext;") +cpp_quote(" PVOID pvReserved;") +cpp_quote(" HRESULT (__stdcall *pfnDeferredFillIn)(struct tagEXCEPINFO *);") +cpp_quote(" SCODE scode;") +cpp_quote("} EXCEPINFO, *LPEXCEPINFO;") +cpp_quote("#endif") + +typedef [v1_enum] enum tagCALLCONV { + CC_FASTCALL = 0, + CC_CDECL = 1, + CC_MSCPASCAL, + CC_PASCAL = CC_MSCPASCAL, + CC_MACPASCAL, + CC_STDCALL, + CC_FPFASTCALL, + CC_SYSCALL, + CC_MPWCDECL, + CC_MPWPASCAL, + CC_MAX +} CALLCONV; + +typedef [v1_enum] enum tagFUNCKIND { + FUNC_VIRTUAL, + FUNC_PUREVIRTUAL, + FUNC_NONVIRTUAL, + FUNC_STATIC, + FUNC_DISPATCH +} FUNCKIND; + +typedef [v1_enum] enum tagINVOKEKIND { + INVOKE_FUNC = 1, + INVOKE_PROPERTYGET = 2, + INVOKE_PROPERTYPUT = 4, + INVOKE_PROPERTYPUTREF = 8 +} INVOKEKIND; + +typedef struct tagFUNCDESC { + MEMBERID memid; + [size_is(cScodes)] SCODE *lprgscode; + [size_is(cParams)] ELEMDESC *lprgelemdescParam; + FUNCKIND funckind; + INVOKEKIND invkind; + CALLCONV callconv; + SHORT cParams; + SHORT cParamsOpt; + SHORT oVft; + SHORT cScodes; + ELEMDESC elemdescFunc; + WORD wFuncFlags; +} FUNCDESC, *LPFUNCDESC; + +typedef [v1_enum] enum tagVARKIND { + VAR_PERINSTANCE, + VAR_STATIC, + VAR_CONST, + VAR_DISPATCH +} VARKIND; + +const USHORT IMPLTYPEFLAG_FDEFAULT = 0x1; +const USHORT IMPLTYPEFLAG_FSOURCE = 0x2; +const USHORT IMPLTYPEFLAG_FRESTRICTED = 0x4; +const USHORT IMPLTYPEFLAG_FDEFAULTVTABLE = 0x8; + +typedef struct tagVARDESC { + MEMBERID memid; + LPOLESTR lpstrSchema; + [switch_is(varkind)] union { + [case(VAR_PERINSTANCE, VAR_DISPATCH, VAR_STATIC)] ULONG oInst; + [case(VAR_CONST)] VARIANT *lpvarValue; + }; + ELEMDESC elemdescVar; + WORD wVarFlags; + VARKIND varkind; +} VARDESC, *LPVARDESC; + +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; + +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 +} FUNCFLAGS; + +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; + +typedef [wire_marshal(DWORD)] struct tagCLEANLOCALSTORAGE { + IUnknown *pInterface; + PVOID pStorage; + DWORD flags; +} CLEANLOCALSTORAGE; + +typedef struct tagCUSTDATAITEM { + GUID guid; + VARIANTARG varValue; +} CUSTDATAITEM, *LPCUSTDATAITEM; + +typedef struct tagCUSTDATA { + DWORD cCustData; + [size_is(cCustData)] LPCUSTDATAITEM prgCustData; +} CUSTDATA, *LPCUSTDATA; + +} /* interface IOleAutomationTypes */ + +/******************** INTERFACES ********************/ + +[ + object, + uuid(00020400-0000-0000-C000-000000000046), + pointer_default(unique) +] +interface IDispatch : IUnknown +{ + typedef [unique] IDispatch *LPDISPATCH; + + const DISPID DISPID_UNKNOWN = -1; + const DISPID DISPID_VALUE = 0; + const DISPID DISPID_PROPERTYPUT = -3; + const DISPID DISPID_NEWENUM = -4; + const DISPID DISPID_EVALUATE = -5; + const DISPID DISPID_CONSTRUCTOR = -6; + const DISPID DISPID_DESTRUCTOR = -7; + const DISPID DISPID_COLLECT = -8; + + HRESULT GetTypeInfoCount( + [out] UINT *pctinfo); + + HRESULT GetTypeInfo( + [in] UINT iTInfo, + [in] LCID lcid, + [out] ITypeInfo **ppTInfo); + + HRESULT GetIDsOfNames( + [in] REFIID riid, + [in, size_is(cNames)] LPOLESTR *rgszNames, + [in] UINT cNames, + [in] LCID lcid, + [out, size_is(cNames)] DISPID *rgDispId); + + [local] + HRESULT Invoke( + [in] DISPID dispIdMember, + [in] REFIID riid, + [in] LCID lcid, + [in] WORD wFlags, + [in, out] DISPPARAMS *pDispParams, + [out] VARIANT *pVarResult, + [out] EXCEPINFO *pExcepInfo, + [out] UINT *puArgErr); + + [call_as(Invoke)] + HRESULT RemoteInvoke( + [in] DISPID dispIdMember, + [in] REFIID riid, + [in] LCID lcid, + [in] DWORD dwFlags, + [in] DISPPARAMS *pDispParams, + [out] VARIANT *pVarResult, + [out] EXCEPINFO *pExcepInfo, + [out] UINT *pArgErr, + [in] UINT cVarRef, + [in, size_is(cVarRef)] UINT *rgVarRefIdx, + [in, out, size_is(cVarRef)] VARIANTARG *rgVarRef); +} + +[ + object, + uuid(00020404-0000-0000-C000-000000000046), + pointer_default(unique) +] +interface IEnumVARIANT : IUnknown +{ + typedef [unique] IEnumVARIANT *LPENUMVARIANT; + + [local] + HRESULT Next( + [in] ULONG celt, + [out] VARIANT *rgVar, + [out] ULONG *pCeltFetched); + + [call_as(Next)] + HRESULT RemoteNext( + [in] ULONG celt, + [out, size_is(celt), length_is(*pCeltFetched)] + VARIANT *rgVar, + [out] ULONG *pCeltFetched); + + HRESULT Skip( + [in] ULONG celt); + + HRESULT Reset(); + + HRESULT Clone( + [out] IEnumVARIANT **ppEnum); +} + +[ + object, + uuid(00020403-0000-0000-C000-000000000046), + pointer_default(unique) +] +interface ITypeComp : IUnknown +{ + typedef [unique] ITypeComp *LPTYPECOMP; + + typedef [v1_enum] enum tagDESCKIND { + DESCKIND_NONE = 0, + DESCKIND_FUNCDESC, + DESCKIND_VARDESC, + DESCKIND_TYPECOMP, + DESCKIND_IMPLICITAPPOBJ, + DESCKIND_MAX + } DESCKIND; + + typedef union tagBINDPTR { + FUNCDESC *lpfuncdesc; + VARDESC *lpvardesc; + ITypeComp *lptcomp; + } BINDPTR, *LPBINDPTR; + + [local] + HRESULT Bind( + [in] LPOLESTR szName, + [in] ULONG lHashVal, + [in] WORD wFlags, + [out] ITypeInfo **ppTInfo, + [out] DESCKIND *pDescKind, + [out] BINDPTR *pBindPtr); + + [call_as(Bind)] + HRESULT RemoteBind( + [in] LPOLESTR szName, + [in] ULONG lHashVal, + [in] WORD wFlags, + [out] ITypeInfo **ppTInfo, + [out] DESCKIND *pDescKind, + [out] LPFUNCDESC *ppFuncDesc, + [out] LPVARDESC *ppVarDesc, + [out] ITypeComp **ppTypeComp, + [out] CLEANLOCALSTORAGE *pDummy); + + [local] + HRESULT BindType( + [in] LPOLESTR szName, + [in] ULONG lHashVal, + [out] ITypeInfo **ppTInfo, + [out] ITypeComp **ppTComp); + + [call_as(BindType)] + HRESULT RemoteBindType( + [in] LPOLESTR szName, + [in] ULONG lHashVal, + [out] ITypeInfo **ppTInfo); +} + +[ + object, + uuid(00020401-0000-0000-C000-000000000046), + pointer_default(unique) +] +interface ITypeInfo : IUnknown +{ + typedef [unique] ITypeInfo *LPTYPEINFO; + + [local] + HRESULT GetTypeAttr( + [out] TYPEATTR **ppTypeAttr); + + [call_as(GetTypeAttr)] + HRESULT RemoteGetTypeAttr( + [out] LPTYPEATTR *ppTypeAttr, + [out] CLEANLOCALSTORAGE *pDummy); + + HRESULT GetTypeComp( + [out] ITypeComp **ppTComp); + + [local] + HRESULT GetFuncDesc( + [in] UINT index, + [out] FUNCDESC **ppFuncDesc); + + [call_as(GetFuncDesc)] + HRESULT RemoteGetFuncDesc( + [in] UINT index, + [out] LPFUNCDESC *ppFuncDesc, + [out] CLEANLOCALSTORAGE *pDummy); + + [local] + HRESULT GetVarDesc( + [in] UINT index, + [out] VARDESC **ppVarDesc); + + [call_as(GetVarDesc)] + HRESULT RemoteGetVarDesc( + [in] UINT index, + [out] LPVARDESC *ppVarDesc, + [out] CLEANLOCALSTORAGE *pDummy); + + [local] + HRESULT GetNames( + [in] MEMBERID memid, + [out, size_is(cMaxNames), length_is(*pcNames)] BSTR *rgBstrNames, + [in] UINT cMaxNames, + [out] UINT *pcNames); + + [call_as(GetNames)] + HRESULT RemoteGetNames( + [in] MEMBERID memid, + [out, size_is(cMaxNames), length_is(*pcNames)] BSTR *rgBstrNames, + [in] UINT cMaxNames, + [out] UINT *pcNames); + + HRESULT GetRefTypeOfImplType( + [in] UINT index, + [out] HREFTYPE *pRefType); + + HRESULT GetImplTypeFlags( + [in] UINT index, + [out] INT *pImplTypeFlags); + + [local] + HRESULT GetIDsOfNames( + [in, size_is(cNames)] LPOLESTR *rgszNames, + [in] UINT cNames, + [out, size_is(cNames)] MEMBERID *pMemId); + + [call_as(GetIDsOfNames)] + HRESULT LocalGetIDsOfNames(); + + [local] + HRESULT Invoke( + [in] PVOID pvInstance, + [in] MEMBERID memid, + [in] WORD wFlags, + [in, out] DISPPARAMS *pDispParams, + [out] VARIANT *pVarResult, + [out] EXCEPINFO *pExcepInfo, + [out] UINT *puArgErr); + + [call_as(Invoke)] + HRESULT LocalInvoke(); + + [local] + HRESULT GetDocumentation( + [in] MEMBERID memid, + [out] BSTR *pBstrName, + [out] BSTR *pBstrDocString, + [out] DWORD *pdwHelpContext, + [out] BSTR *pBstrHelpFile); + + [call_as(GetDocumentation)] + HRESULT RemoteGetDocumentation( + [in] MEMBERID memid, + [in] DWORD refPtrFlags, + [out] BSTR *pBstrName, + [out] BSTR *pBstrDocString, + [out] DWORD *pdwHelpContext, + [out] BSTR *pBstrHelpFile); + + [local] + HRESULT GetDllEntry( + [in] MEMBERID memid, + [in] INVOKEKIND invKind, + [out] BSTR *pBstrDllName, + [out] BSTR *pBstrName, + [out] WORD *pwOrdinal); + + [call_as(GetDllEntry)] + HRESULT RemoteGetDllEntry( + [in] MEMBERID memid, + [in] INVOKEKIND invKind, + [in] DWORD refPtrFlags, + [out] BSTR *pBstrDllName, + [out] BSTR *pBstrName, + [out] WORD *pwOrdinal); + + HRESULT GetRefTypeInfo( + [in] HREFTYPE hRefType, + [out] ITypeInfo **ppTInfo); + + [local] + HRESULT AddressOfMember( + [in] MEMBERID memid, + [in] INVOKEKIND invKind, + [out] PVOID *ppv); + + [call_as(AddressOfMember)] + HRESULT LocalAddressOfMember(); + + [local] + HRESULT CreateInstance( + [in] IUnknown *pUnkOuter, + [in] REFIID riid, + [out, iid_is(riid)] PVOID *ppvObj); + + [call_as(CreateInstance)] + HRESULT RemoteCreateInstance( + [in] REFIID riid, + [out, iid_is(riid)] IUnknown **ppvObj); + + HRESULT GetMops( + [in] MEMBERID memid, + [out] BSTR *pBstrMops); + + [local] + HRESULT GetContainingTypeLib( + [out] ITypeLib **ppTLib, + [out] UINT *pIndex); + + [call_as(GetContainingTypeLib)] + HRESULT RemoteGetContainingTypeLib( + [out] ITypeLib **ppTLib, + [out] UINT *pIndex); + + [local] + void ReleaseTypeAttr( + [in] TYPEATTR *pTypeAttr); + + [call_as(ReleaseTypeAttr)] + HRESULT LocalReleaseTypeAttr(); + + [local] + void ReleaseFuncDesc( + [in] FUNCDESC *pFuncDesc); + + [call_as(ReleaseFuncDesc)] + HRESULT LocalReleaseFuncDesc(); + + [local] + void ReleaseVarDesc( + [in] VARDESC *pVarDesc); + + [call_as(ReleaseVarDesc)] + HRESULT LocalReleaseVarDesc(); +} + +[ + object, + uuid(00020412-0000-0000-C000-000000000046), + pointer_default(unique) +] +interface ITypeInfo2 : ITypeInfo +{ + typedef [unique] ITypeInfo2 *LPTYPEINFO2; + + HRESULT GetTypeKind( + [out] TYPEKIND *pTypeKind); + + HRESULT GetTypeFlags( + [out] ULONG *pTypeFlags); + + HRESULT GetFuncIndexOfMemId( + [in] MEMBERID memid, + [in] INVOKEKIND invKind, + [out] UINT *pFuncIndex); + + HRESULT GetVarIndexOfMemId( + [in] MEMBERID memid, + [out] UINT *pVarIndex); + + HRESULT GetCustData( + [in] REFGUID guid, + [out] VARIANT *pVarVal); + + HRESULT GetFuncCustData( + [in] UINT index, + [in] REFGUID guid, + [out] VARIANT *pVarVal); + + HRESULT GetParamCustData( + [in] UINT indexFunc, + [in] UINT indexParam, + [in] REFGUID guid, + [out] VARIANT *pVarVal); + + HRESULT GetVarCustData( + [in] UINT index, + [in] REFGUID guid, + [out] VARIANT *pVarVal); + + HRESULT GetImplTypeCustData( + [in] UINT index, + [in] REFGUID guid, + [out] VARIANT *pVarVal); + + [local] + HRESULT GetDocumentation2( + [in] MEMBERID memid, + [in] LCID lcid, + [out] BSTR *pbstrHelpString, + [out] DWORD *pdwHelpStringContext, + [out] BSTR *pbstrHelpStringDll); + + [call_as(GetDocumentation2)] + HRESULT RemoteGetDocumentation2( + [in] MEMBERID memid, + [in] LCID lcid, + [in] DWORD refPtrFlags, + [out] BSTR *pbstrHelpString, + [out] DWORD *pdwHelpStringContext, + [out] BSTR *pbstrHelpStringDll); + + HRESULT GetAllCustData( + [out] CUSTDATA *pCustData); + + HRESULT GetAllFuncCustData( + [in] UINT index, + [out] CUSTDATA *pCustData); + + HRESULT GetAllParamCustData( + [in] UINT indexFunc, + [in] UINT indexParam, + [out] CUSTDATA *pCustData); + + HRESULT GetAllVarCustData( + [in] UINT index, + [out] CUSTDATA *pCustData); + + HRESULT GetAllImplTypeCustData( + [in] UINT index, + [out] CUSTDATA *pCustData); +} + +[ + object, + uuid(00020402-0000-0000-C000-000000000046), + pointer_default(unique) +] +interface ITypeLib : IUnknown +{ + typedef [unique] ITypeLib *LPTYPELIB; + + typedef [v1_enum] enum tagSYSKIND { + SYS_WIN16 = 0, + SYS_WIN32, + SYS_MAC + } SYSKIND; + + typedef [v1_enum] enum tagLIBFLAGS { + LIBFLAG_FRESTRICTED = 0x01, + LIBFLAG_FCONTROL = 0x02, + LIBFLAG_FHIDDEN = 0x04, + LIBFLAG_FHASDISKIMAGE = 0x08 + } LIBFLAGS; + + typedef struct tagTLIBATTR { + GUID guid; + LCID lcid; + SYSKIND syskind; + WORD wMajorVerNum; + WORD wMinorVerNum; + WORD wLibFlags; + } TLIBATTR, *LPTLIBATTR; + + [local] + UINT GetTypeInfoCount(); + + [call_as(GetTypeInfoCount)] + HRESULT RemoteGetTypeInfoCount( + [out] UINT *pcTInfo); + + HRESULT GetTypeInfo( + [in] UINT index, + [out] ITypeInfo **ppTInfo); + + HRESULT GetTypeInfoType( + [in] UINT index, + [out] TYPEKIND *pTKind); + + HRESULT GetTypeInfoOfGuid( + [in] REFGUID guid, + [out] ITypeInfo **ppTinfo); + + [local] + HRESULT GetLibAttr( + [out] TLIBATTR **ppTLibAttr); + + [call_as(GetLibAttr)] + HRESULT RemoteGetLibAttr( + [out] LPTLIBATTR *ppTLibAttr, + [out] CLEANLOCALSTORAGE *pDummy); + + HRESULT GetTypeComp( + [out] ITypeComp **ppTComp); + + [local] + HRESULT GetDocumentation( + [in] INT index, + [out] BSTR *pBstrName, + [out] BSTR *pBstrDocString, + [out] DWORD *pdwHelpContext, + [out] BSTR *pBstrHelpFile); + + [call_as(GetDocumentation)] + HRESULT RemoteGetDocumentation( + [in] INT index, + [in] DWORD refPtrFlags, + [out] BSTR *pBstrName, + [out] BSTR *pBstrDocString, + [out] DWORD *pdwHelpContext, + [out] BSTR *pBstrHelpFile); + + [local] + HRESULT IsName( + [in, out] LPOLESTR szNameBuf, + [in] ULONG lHashVal, + [out] BOOL *pfName); + + [call_as(IsName)] + HRESULT RemoteIsName( + [in] LPOLESTR szNameBuf, + [in] ULONG lHashVal, + [out] BOOL *pfName, + [out] BSTR *pBstrLibName); + + [local] + HRESULT FindName( + [in, out] LPOLESTR szNameBuf, + [in] ULONG lHashVal, + [out, size_is(*pcFound), length_is(*pcFound)] ITypeInfo **ppTInfo, + [out, size_is(*pcFound), length_is(*pcFound)] MEMBERID *rgMemId, + [in, out] USHORT *pcFound); + + [call_as(FindName)] + HRESULT RemoteFindName( + [in] LPOLESTR szNameBuf, + [in] ULONG lHashVal, + [out, size_is(*pcFound), length_is(*pcFound)] ITypeInfo **ppTInfo, + [out, size_is(*pcFound), length_is(*pcFound)] MEMBERID *rgMemId, + [in, out] USHORT *pcFound, + [out] BSTR *pBstrLibName); + + [local] + void ReleaseTLibAttr( + [in] TLIBATTR *pTLibAttr); + + [call_as(ReleaseTLibAttr)] + HRESULT LocalReleaseTLibAttr(); +} + +[ + object, + uuid(00020411-0000-0000-C000-000000000046), + pointer_default(unique) +] +interface ITypeLib2 : ITypeLib +{ + typedef [unique] ITypeLib2 *LPTYPELIB2; + + HRESULT GetCustData( + [in] REFGUID guid, + [out] VARIANT *pVarVal); + + [local] + HRESULT GetLibStatistics( + [out] ULONG *pcUniqueNames, + [out] ULONG *pcchUniqueNames); + + [call_as(GetLibStatistics)] + HRESULT RemoteGetLibStatistics( + [out] ULONG *pcUniqueNames, + [out] ULONG *pcchUniqueNames); + + [local] + HRESULT GetDocumentation2( + [in] INT index, + [in] LCID lcid, + [out] BSTR *pbstrHelpString, + [out] DWORD *pdwHelpStringContext, + [out] BSTR *pbstrHelpStringDll); + + [call_as(GetDocumentation2)] + HRESULT RemoteGetDocumentation2( + [in] INT index, + [in] LCID lcid, + [in] DWORD refPtrFlags, + [out] BSTR *pbstrHelpString, + [out] DWORD *pdwHelpStringContext, + [out] BSTR *pbstrHelpStringDll); + + HRESULT GetAllCustData( + [out] CUSTDATA *pCustData); +} + +[ + local, + object, + uuid(00020410-0000-0000-C000-000000000046), + pointer_default(unique) +] +interface ITypeChangeEvents : IUnknown +{ + typedef [unique] ITypeChangeEvents *LPTYPECHANGEEVENTS; + + typedef enum tagCHANGEKIND { + CHANGEKIND_ADDMEMBER, + CHANGEKIND_DELETEMEMBER, + CHANGEKIND_SETNAMES, + CHANGEKIND_SETDOCUMENTATION, + CHANGEKIND_GENERAL, + CHANGEKIND_INVALIDATE, + CHANGEKIND_CHANGEFAILED, + CHANGEKIND_MAX + } CHANGEKIND; + + HRESULT RequestTypeChange( + [in] CHANGEKIND changeKind, + [in] ITypeInfo *pTInfoBefore, + [in] LPOLESTR pStrName, + [out] INT *pfCancel); + + HRESULT AfterTypeChange( + [in] CHANGEKIND changeKind, + [in] ITypeInfo *pTInfoAfter, + [in] LPOLESTR pStrName); +} + +[ + object, + uuid(1CF2B120-547D-101B-8E65-08002B2BD119), + pointer_default(unique) +] +interface IErrorInfo : IUnknown +{ + typedef [unique] IErrorInfo *LPERRORINFO; + + HRESULT GetGUID( + [out] GUID *pGUID); + + HRESULT GetSource( + [out] BSTR *pBstrSource); + + HRESULT GetDescription( + [out] BSTR *pBstrDescription); + + HRESULT GetHelpFile( + [out] BSTR *pBstrHelpFile); + + HRESULT GetHelpContext( + [out] DWORD *pdwHelpContext); +} + +[ + object, + uuid(22F03340-547D-101B-8E65-08002B2BD119), + pointer_default(unique) +] +interface ICreateErrorInfo : IUnknown +{ + typedef [unique] ICreateErrorInfo *LPCREATEERRORINFO; + + HRESULT SetGUID( + [in] REFGUID rguid); + + HRESULT SetSource( + [in] LPOLESTR szSource); + + HRESULT SetDescription( + [in] LPOLESTR szDescription); + + HRESULT SetHelpFile( + [in] LPOLESTR szHelpFile); + + HRESULT SetHelpContext( + [in] DWORD dwHelpContext); +} + +[ + object, + uuid(DF0B3D60-548F-101B-8E65-08002B2BD119), + pointer_default(unique) +] +interface ISupportErrorInfo : IUnknown +{ + typedef [unique] ISupportErrorInfo *LPSUPPORTERRORINFO; + + HRESULT InterfaceSupportsErrorInfo( + [in] REFIID riid); +} + +[ + object, + uuid(0000002E-0000-0000-C000-000000000046) +] +interface ITypeFactory : IUnknown +{ + HRESULT CreateFromTypeInfo( + [in] ITypeInfo *pTypeInfo, + [in] REFIID riid, + [out, iid_is(riid)] IUnknown **ppv); +} + +[ + local, + object, + uuid(0000002D-0000-0000-C000-000000000046) +] +interface ITypeMarshal : IUnknown +{ + HRESULT Size( + [in] PVOID pvType, + [in] DWORD dwDestContext, + [in] PVOID pvDestContext, + [out] ULONG *pSize); + + HRESULT Marshal( + [in] PVOID pvType, + [in] DWORD dwDestContext, + [in] PVOID pvDestContext, + [in] ULONG cbBufferLength, + [out] BYTE *pBuffer, + [out] ULONG *pcbWritten); + + HRESULT Unmarshal( + [out] PVOID pvType, + [in] DWORD dwFlags, + [in] ULONG cbBufferLength, + [in] BYTE *pBuffer, + [out] ULONG *pcbRead); + + HRESULT Free( + [in] PVOID pvType); +} + +[ + local, + object, + uuid(0000002F-0000-0000-C000-000000000046) +] +interface IRecordInfo : IUnknown +{ + typedef [unique] IRecordInfo *LPRECORDINFO; + + HRESULT RecordInit( + [out] PVOID pvNew); + + HRESULT RecordClear( + [in] PVOID pvExisting); + + HRESULT RecordCopy( + [in] PVOID pvExisting, + [out] PVOID pvNew); + + HRESULT GetGuid( + [out] GUID *pguid); + + HRESULT GetName( + [out] BSTR *pbstrName); + + HRESULT GetSize( + [out] ULONG *pcbSize); + + HRESULT GetTypeInfo( + [out] ITypeInfo **ppTypeInfo); + + HRESULT GetField( + [in] PVOID pvData, + [in] LPCOLESTR szFieldName, + [out] VARIANT *pvarField); + + HRESULT GetFieldNoCopy( + [in] PVOID pvData, + [in] LPCOLESTR szFieldName, + [out] VARIANT *pvarField, + [out] PVOID *ppvDataCArray); + + HRESULT PutField( + [in] ULONG wFlags, + [in, out] PVOID pvData, + [in] LPCOLESTR szFieldName, + [in] VARIANT *pvarField); + + HRESULT PutFieldNoCopy( + [in] ULONG wFlags, + [in, out] PVOID pvData, + [in] LPCOLESTR szFieldName, + [in] VARIANT *pvarField); + + HRESULT GetFieldNames( + [in, out] ULONG *pcNames, + [out, size_is(*pcNames), length_is(*pcNames)] BSTR *rgBstrNames); + + BOOL IsMatchingType( + [in] IRecordInfo *pRecordInfo); + + PVOID RecordCreate(); + + HRESULT RecordCreateCopy( + [in] PVOID pvSource, + [out] PVOID *ppvDest); + + HRESULT RecordDestroy( + [in] PVOID pvRecord); +} + +[ + local, + object, + uuid(00020405-0000-0000-C000-000000000046), + pointer_default(unique) +] +interface ICreateTypeInfo : IUnknown +{ + typedef [unique] ICreateTypeInfo *LPCREATETYPEINFO; + + HRESULT SetGuid( + [in] REFGUID guid); + + HRESULT SetTypeFlags( + [in] UINT uTypeFlags); + + HRESULT SetDocString( + [in] LPOLESTR pStrDoc); + + HRESULT SetHelpContext( + [in] DWORD dwHelpContext); + + HRESULT SetVersion( + [in] WORD wMajorVerNum, + [in] WORD wMinorVerNum); + + HRESULT AddRefTypeInfo( + [in] ITypeInfo *pTInfo, + [in] HREFTYPE *phRefType); + + HRESULT AddFuncDesc( + [in] UINT index, + [in] FUNCDESC *pFuncDesc); + + HRESULT AddImplType( + [in] UINT index, + [in] HREFTYPE hRefType); + + HRESULT SetImplTypeFlags( + [in] UINT index, + [in] INT implTypeFlags); + + HRESULT SetAlignment( + [in] WORD cbAlignment); + + HRESULT SetSchema( + [in] LPOLESTR pStrSchema); + + HRESULT AddVarDesc( + [in] UINT index, + [in] VARDESC *pVarDesc); + + HRESULT SetFuncAndParamNames( + [in] UINT index, + [in, size_is(cNames)] LPOLESTR *rgszNames, + [in] UINT cNames); + + HRESULT SetVarName( + [in] UINT index, + [in] LPOLESTR szName); + + HRESULT SetTypeDescAlias( + [in] TYPEDESC *pTDescAlias); + + HRESULT DefineFuncAsDllEntry( + [in] UINT index, + [in] LPOLESTR szDllName, + [in] LPOLESTR szProcName); + + HRESULT SetFuncDocString( + [in] UINT index, + [in] LPOLESTR szDocString); + + HRESULT SetVarDocString( + [in] UINT index, + [in] LPOLESTR szDocString); + + HRESULT SetFuncHelpContext( + [in] UINT index, + [in] DWORD dwHelpContext); + + HRESULT SetVarHelpContext( + [in] UINT index, + [in] DWORD dwHelpContext); + + HRESULT SetMops( + [in] UINT index, + [in] BSTR bstrMops); + + HRESULT SetTypeIdldesc( + [in] IDLDESC * pIdlDesc); + + HRESULT LayOut(); +} + +[ + local, + object, + uuid(0002040E-0000-0000-C000-000000000046), + pointer_default(unique) +] +interface ICreateTypeInfo2 : ICreateTypeInfo +{ + typedef [unique] ICreateTypeInfo2 *LPCREATETYPEINFO2; + + HRESULT DeleteFuncDesc( + [in] UINT index); + + HRESULT DeleteFuncDescByMemId( + [in] MEMBERID memid, + [in] INVOKEKIND invKind); + + HRESULT DeleteVarDesc( + [in] UINT index); + + HRESULT DeleteVarDescByMemId( + [in] MEMBERID memid); + + HRESULT DeleteImplType( + [in] UINT index); + + HRESULT SetCustData( + [in] REFGUID guid, + [in] VARIANT *pVarVal); + + HRESULT SetFuncCustData( + [in] UINT index, + [in] REFGUID guid, + [in] VARIANT *pVarVal); + + HRESULT SetParamCustData( + [in] UINT indexFunc, + [in] UINT indexParam, + [in] REFGUID guid, + [in] VARIANT *pVarVal); + + HRESULT SetVarCustData( + [in] UINT index, + [in] REFGUID guid, + [in] VARIANT *pVarVal); + + HRESULT SetImplTypeCustData( + [in] UINT index, + [in] REFGUID guid, + [in] VARIANT *pVarVal); + + HRESULT SetHelpStringContext( + [in] ULONG dwHelpStringContext); + + HRESULT SetFuncHelpStringContext( + [in] UINT index, + [in] ULONG dwHelpStringContext); + + HRESULT SetVarHelpStringContext( + [in] UINT index, + [in] ULONG dwHelpStringContext); + + HRESULT Invalidate(); + + HRESULT SetName( + [in] LPOLESTR szName); +} + +[ + local, + object, + uuid(00020406-0000-0000-C000-000000000046), + pointer_default(unique) +] +interface ICreateTypeLib : IUnknown +{ + typedef [unique] ICreateTypeLib *LPCREATETYPELIB; + + HRESULT CreateTypeInfo( + [in] LPOLESTR szName, + [in] TYPEKIND tkind, + [out] ICreateTypeInfo **ppCTInfo); + + HRESULT SetName( + [in] LPOLESTR szName); + + HRESULT SetVersion( + [in] WORD wMajorVerNum, + [in] WORD wMinorVerNum); + + HRESULT SetGuid( + [in] REFGUID guid); + + HRESULT SetDocString( + [in] LPOLESTR szDoc); + + HRESULT SetHelpFileName( + [in] LPOLESTR szHelpFileName); + + HRESULT SetHelpContext( + [in] DWORD dwHelpContext); + + HRESULT SetLcid( + [in] LCID lcid); + + HRESULT SetLibFlags( + [in] UINT uLibFlags); + + HRESULT SaveAllChanges(); +} + +[ + local, + object, + uuid(0002040F-0000-0000-C000-000000000046), + pointer_default(unique) +] +interface ICreateTypeLib2 : ICreateTypeLib +{ + typedef [unique] ICreateTypeLib2 *LPCREATETYPELIB2; + + HRESULT DeleteTypeInfo( + [in] LPOLESTR szName); + + HRESULT SetCustData( + [in] REFGUID guid, + [in] VARIANT *pVarVal); + + HRESULT SetHelpStringContext( + [in] ULONG dwHelpStringContext); + + HRESULT SetHelpStringDll( + [in] LPOLESTR szFileName); +} diff --git a/include/wine/obj_errorinfo.h b/include/wine/obj_errorinfo.h deleted file mode 100644 index efc37e94fca..00000000000 --- a/include/wine/obj_errorinfo.h +++ /dev/null @@ -1,110 +0,0 @@ -/* - * Defines the COM interfaces and APIs related to ErrorInfo - * - * Copyright (C) 2000 Juergen Schmied - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -#ifndef __WINE_WINE_OBJ_ERRORINFO_H -#define __WINE_WINE_OBJ_ERRORINFO_H - -DEFINE_GUID(IID_IErrorInfo,0x1CF2B120,0x547D,0x101B,0x8E,0x65,0x08,0x00,0x2B,0x2B,0xD1,0x19); -typedef struct IErrorInfo IErrorInfo,*LPERRORINFO; - -DEFINE_GUID(IID_ICreateErrorInfo,0x22F03340,0x547D,0x101B,0x8E,0x65,0x08,0x00,0x2B,0x2B,0xD1,0x19); -typedef struct ICreateErrorInfo ICreateErrorInfo,*LPCREATEERRORINFO; - -DEFINE_GUID(IID_ISupportErrorInfo,0xDF0B3D60,0x547D,0x101B,0x8E,0x65,0x08,0x00,0x2B,0x2B,0xD1,0x19); -typedef struct ISupportErrorInfo ISupportErrorInfo,*LPSUPPORTERRORINFO; - -/***************************************************************************** - * IErrorInfo - */ -#define ICOM_INTERFACE IErrorInfo -#define IErrorInfo_METHODS \ - ICOM_METHOD1(HRESULT, GetGUID, GUID * , pGUID) \ - ICOM_METHOD1(HRESULT, GetSource, BSTR* ,pBstrSource) \ - ICOM_METHOD1(HRESULT, GetDescription, BSTR*, pBstrDescription) \ - ICOM_METHOD1(HRESULT, GetHelpFile, BSTR*, pBstrHelpFile) \ - ICOM_METHOD1(HRESULT, GetHelpContext, DWORD*, pdwHelpContext) - -#define IErrorInfo_IMETHODS \ - IUnknown_IMETHODS \ - IErrorInfo_METHODS -ICOM_DEFINE(IErrorInfo, IUnknown) -#undef ICOM_INTERFACE - -/*** IUnknown methods ***/ -#define IErrorInfo_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b) -#define IErrorInfo_AddRef(p) ICOM_CALL (AddRef,p) -#define IErrorInfo_Release(p) ICOM_CALL (Release,p) -/*** IErrorInfo methods ***/ -#define IErrorInfo_GetGUID(p,a) ICOM_CALL1 (GetGUID,p,a) -#define IErrorInfo_GetSource(p,a) ICOM_CALL1 (GetSource,p,a) -#define IErrorInfo_GetDescription(p,a) ICOM_CALL1 (GetDescription,p,a) -#define IErrorInfo_GetHelpFile(p,a) ICOM_CALL1 (GetHelpFile,p,a) -#define IErrorInfo_GetHelpContext(p,a) ICOM_CALL1 (GetHelpContext,p,a) - -/***************************************************************************** - * ICreateErrorInfo - */ -#define ICOM_INTERFACE ICreateErrorInfo -#define ICreateErrorInfo_METHODS \ - ICOM_METHOD1(HRESULT, SetGUID, REFGUID, rguid) \ - ICOM_METHOD1(HRESULT, SetSource, LPOLESTR, szSource) \ - ICOM_METHOD1(HRESULT, SetDescription, LPOLESTR, szDescription) \ - ICOM_METHOD1(HRESULT, SetHelpFile, LPOLESTR, szHelpFile) \ - ICOM_METHOD1(HRESULT, SetHelpContext, DWORD, dwHelpContext) - -#define ICreateErrorInfo_IMETHODS \ - IUnknown_IMETHODS \ - ICreateErrorInfo_METHODS -ICOM_DEFINE(ICreateErrorInfo, IUnknown) -#undef ICOM_INTERFACE - -/*** IUnknown methods ***/ -#define ICreateErrorInfo_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b) -#define ICreateErrorInfo_AddRef(p) ICOM_CALL (AddRef,p) -#define ICreateErrorInfo_Release(p) ICOM_CALL (Release,p) -/*** ICreateErrorInfo methods ***/ -#define ICreateErrorInfo_SetGUID(p,a) ICOM_CALL1 (SetGUID,p,a) -#define ICreateErrorInfo_SetSource(p,a) ICOM_CALL1 (SetSource,p,a) -#define ICreateErrorInfo_SetDescription(p,a) ICOM_CALL1 (SetDescription,p,a) -#define ICreateErrorInfo_SetHelpFile(p,a) ICOM_CALL1 (SetHelpFile,p,a) -#define ICreateErrorInfo_SetHelpContext(p,a) ICOM_CALL1 (SetHelpContext,p,a) - -/***************************************************************************** - * ISupportErrorInfo - */ -#define ICOM_INTERFACE ISupportErrorInfo -#define ISupportErrorInfo_METHODS \ - ICOM_METHOD1(HRESULT, InterfaceSupportsErrorInfo, REFIID, riid ) - -#define ISupportErrorInfo_IMETHODS \ - IUnknown_IMETHODS \ - ISupportErrorInfo_METHODS -ICOM_DEFINE(ISupportErrorInfo, IUnknown) -#undef ICOM_INTERFACE - -/*** IUnknown methods ***/ -#define ISupportErrorInfo_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b) -#define ISupportErrorInfo_AddRef(p) ICOM_CALL (AddRef,p) -#define ISupportErrorInfo_Release(p) ICOM_CALL (Release,p) -/*** ISupportErrorInfo methods ***/ -#define ISupportErrorInfo_InterfaceSupportsErrorInfo(p,a) ICOM_CALL1 (InterfaceSupportsErrorInfo,p,a) - - -#endif /* __WINE_WINE_OBJ_ERRORINFO_H */ diff --git a/include/wine/obj_oleaut.h b/include/wine/obj_oleaut.h deleted file mode 100644 index ff3a82728ae..00000000000 --- a/include/wine/obj_oleaut.h +++ /dev/null @@ -1,846 +0,0 @@ -/* - * Defines the COM interfaces and APIs related to OLE automation support. - * - * Copyright (C) the Wine project - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -#ifndef __WINE_WINE_OBJ_OLEAUT_H -#define __WINE_WINE_OBJ_OLEAUT_H - -/***************************************************************************** - * Predeclare the interfaces - */ -DEFINE_OLEGUID(IID_IDispatch, 0x00020400,0,0); -typedef struct IDispatch IDispatch,*LPDISPATCH; - -DEFINE_OLEGUID(IID_ITypeInfo, 0x00020401,0,0); -typedef struct ITypeInfo ITypeInfo,*LPTYPEINFO; - -DEFINE_OLEGUID(IID_IRecordInfo, 0x0000002f,0,0); -typedef struct IRecordInfo IRecordInfo,*LPRECORDINFO; - -DEFINE_OLEGUID(IID_ITypeLib, 0x00020402,0,0); -typedef struct ITypeLib ITypeLib,*LPTYPELIB; - -DEFINE_OLEGUID(IID_ITypeComp, 0x00020403,0,0); -typedef struct ITypeComp ITypeComp,*LPTYPECOMP; - -DEFINE_OLEGUID(IID_IEnumVARIANT, 0x00020404,0,0); -typedef struct IEnumVARIANT IEnumVARIANT,*LPENUMVARIANT; - -DEFINE_OLEGUID(IID_ICreateTypeInfo, 0x00020405,0,0); -typedef struct ICreateTypeInfo ICreateTypeInfo,*LPCREATETYPEINFO; - -DEFINE_OLEGUID(IID_ICreateTypeLib, 0x00020406,0,0); -typedef struct ICreateTypeLib ICreateTypeLib,*LPCREATETYPELIB; - -DEFINE_OLEGUID(IID_ICreateTypeInfo2,0x0002040E,0,0); -typedef struct ICreateTypeInfo2 ICreateTypeInfo2,*LPCREATETYPEINFO2; - -DEFINE_OLEGUID(IID_ICreateTypeLib2, 0x0002040F,0,0); -typedef struct ICreateTypeLib2 ICreateTypeLib2,*LPCREATETYPELIB2; - -DEFINE_OLEGUID(IID_ITypeChangeEvents,0x00020410,0,0); -typedef struct ITypeChangeEvents ITypeChangeEvents,*LPTYPECHANGEEVENTS; - -DEFINE_OLEGUID(IID_ITypeLib2, 0x00020411,0,0); -typedef struct ITypeLib2 ITypeLib2,*LPTYPELIB2; - -DEFINE_OLEGUID(IID_ITypeInfo2, 0x00020412,0,0); -typedef struct ITypeInfo2 ITypeInfo2,*LPTYPEINFO2; - -/* The OLE Automation ProxyStub Interface Class (aka Typelib Marshaler) */ -DEFINE_OLEGUID(CLSID_PSOAInterface, 0x00020424,0,0); - -/***************************************************************************** - * Automation data types - */ - -/***************************************************************** - * SafeArray defines and structs - */ - -#define FADF_AUTO ( 0x1 ) -#define FADF_STATIC ( 0x2 ) -#define FADF_EMBEDDED ( 0x4 ) -#define FADF_FIXEDSIZE ( 0x10 ) -#define FADF_RECORD ( 0x20 ) -#define FADF_HAVEIID ( 0x40 ) -#define FADF_HAVEVARTYPE ( 0x80 ) -#define FADF_BSTR ( 0x100 ) -#define FADF_UNKNOWN ( 0x200 ) -#define FADF_DISPATCH ( 0x400 ) -#define FADF_VARIANT ( 0x800 ) -#define FADF_RESERVED ( 0xf008 ) - -/* Undocumented flags */ -#define FADF_CREATEVECTOR ( 0x2000 ) /* set when the safe array is created using SafeArrayCreateVector */ - - -typedef struct tagSAFEARRAYBOUND -{ - ULONG cElements; /* Number of elements in dimension */ - LONG lLbound; /* Lower bound of dimension */ -} SAFEARRAYBOUND; - -typedef struct tagSAFEARRAY -{ - USHORT cDims; /* Count of array dimension */ - USHORT fFeatures; /* Flags describing the array */ - ULONG cbElements; /* Size of each element */ - ULONG cLocks; /* Number of lock on array */ - PVOID pvData; /* Pointer to data valid when cLocks > 0 */ - SAFEARRAYBOUND rgsabound[ 1 ]; /* One bound for each dimension */ -} SAFEARRAY, *LPSAFEARRAY; - -typedef enum tagCALLCONV { - CC_CDECL = 1, - CC_MSCPASCAL = CC_CDECL + 1, - CC_PASCAL = CC_MSCPASCAL, - CC_MACPASCAL = CC_PASCAL + 1, - CC_STDCALL = CC_MACPASCAL + 1, - CC_RESERVED = CC_STDCALL + 1, - CC_SYSCALL = CC_RESERVED + 1, - CC_MPWCDECL = CC_SYSCALL + 1, - CC_MPWPASCAL = CC_MPWCDECL + 1, - CC_MAX = CC_MPWPASCAL + 1 -} CALLCONV; - -typedef CY CURRENCY; - -/* - * Declarations of the VARIANT structure and the VARIANT APIs. - */ -/* S_OK : Success. - * DISP_E_BADVARTYPE : The variant type vt in not a valid type of variant. - * DISP_E_OVERFLOW : The data pointed to by pvarSrc does not fit in the destination type. - * DISP_E_TYPEMISMATCH : The variant type vt is not a valid type of variant. - * E_INVALIDARG : One argument is invalid. - * * E_OUTOFMEMORY : Memory could not be allocated for the conversion. - * DISP_E_ARRAYISLOCKED : The variant contains an array that is locked. - */ -#if (__STDC__ && !defined(_FORCENAMELESSUNION)) || defined(NONAMELESSUNION) -#define __VARIANT_NAME_1 n1 -#define __VARIANT_NAME_2 n2 -#define __VARIANT_NAME_3 n3 -#else -#define __tagVARIANT -#define __VARIANT_NAME_1 -#define __VARIANT_NAME_2 -#define __VARIANT_NAME_3 -#endif - -typedef struct tagVARIANT VARIANT, *LPVARIANT; -typedef struct tagVARIANT VARIANTARG, *LPVARIANTARG; - -struct tagVARIANT -{ - union - { - struct __tagVARIANT - { - VARTYPE vt; - WORD wReserved1; - WORD wReserved2; - WORD wReserved3; - union /* DUMMYUNIONNAME */ - { - /* By value. */ - CHAR cVal; - USHORT uiVal; - ULONG ulVal; - INT intVal; - UINT uintVal; - BYTE bVal; - short iVal; - long lVal; - float fltVal; - double dblVal; - VARIANT_BOOL boolVal; - SCODE scode; - DATE date; - BSTR bstrVal; - CY cyVal; - IUnknown* punkVal; - IDispatch* pdispVal; - SAFEARRAY* parray; - - /* By reference */ - CHAR* pcVal; - USHORT* puiVal; - ULONG* pulVal; - INT* pintVal; - UINT* puintVal; - BYTE* pbVal; - short* piVal; - long* plVal; - float* pfltVal; - double* pdblVal; - VARIANT_BOOL* pboolVal; - SCODE* pscode; - DATE* pdate; - BSTR* pbstrVal; - VARIANT* pvarVal; - PVOID byref; - CY* pcyVal; - DECIMAL* pdecVal; - IUnknown** ppunkVal; - IDispatch** ppdispVal; - SAFEARRAY** pparray; - } __VARIANT_NAME_3; - } __VARIANT_NAME_2; - DECIMAL decVal; - } __VARIANT_NAME_1; -}; - - -typedef LONG DISPID; -typedef DWORD HREFTYPE; -typedef DISPID MEMBERID; - -#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 ) - -#define IMPLTYPEFLAG_FDEFAULT (0x1) -#define IMPLTYPEFLAG_FSOURCE (0x2) -#define IMPLTYPEFLAG_FRESTRICTED (0x4) -#define IMPLTYPEFLAG_FDEFAULTVTABLE (0x8) - -typedef struct tagDISPPARAMS -{ - VARIANTARG* rgvarg; - DISPID* rgdispidNamedArgs; - UINT cArgs; - UINT cNamedArgs; -} DISPPARAMS; - -typedef struct tagEXCEPINFO -{ - WORD wCode; - WORD wReserved; - BSTR bstrSource; - BSTR bstrDescription; - BSTR bstrHelpFile; - DWORD dwHelpContext; - PVOID pvReserved; - HRESULT (__stdcall *pfnDeferredFillIn)(struct tagEXCEPINFO *); - SCODE scode; -} EXCEPINFO, * LPEXCEPINFO; - -typedef struct tagIDLDESC -{ - ULONG dwReserved; - USHORT wIDLFlags; -} IDLDESC; - -typedef struct tagPARAMDESCEX -{ - ULONG cBytes; - VARIANTARG varDefaultValue; -} PARAMDESCEX, *LPPARAMDESCEX; - -typedef struct tagPARAMDESC -{ - LPPARAMDESCEX pparamdescex; - USHORT wParamFlags; -} PARAMDESC; - -#define PARAMFLAG_NONE (0x00) -#define PARAMFLAG_FIN (0x01) -#define PARAMFLAG_FOUT (0x02) -#define PARAMFLAG_FLCID (0x04) -#define PARAMFLAG_FRETVAL (0x08) -#define PARAMFLAG_FOPT (0x10) -#define PARAMFLAG_FHASDEFAULT (0x20) -#define PARAMFLAG_FHASCUSTDATA (0x40) - -typedef struct tagTYPEDESC -{ - union { - struct tagTYPEDESC *lptdesc; - struct tagARRAYDESC *lpadesc; - HREFTYPE hreftype; - } DUMMYUNIONNAME; - VARTYPE vt; -} TYPEDESC; - -typedef struct tagELEMDESC -{ - TYPEDESC tdesc; - union { - IDLDESC idldesc; - PARAMDESC paramdesc; - } DUMMYUNIONNAME; -} ELEMDESC, *LPELEMDESC; - -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; - -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, *LPTYPEATTR; - -typedef enum tagTYPEFLAGS { - TYPEFLAG_FAPPOBJECT = 0x01, - TYPEFLAG_FCANCREATE = 0x02, - TYPEFLAG_FLICENSED = 0x04, - TYPEFLAG_FPREDECLID = 0x08, - TYPEFLAG_FHIDDEN = 0x10, - TYPEFLAG_FCONTROL = 0x20, - TYPEFLAG_FDUAL = 0x40, - TYPEFLAG_FNONEXTENSIBLE = 0x80, - TYPEFLAG_FOLEAUTOMATION = 0x100, - TYPEFLAG_FRESTRICTED = 0x200, - TYPEFLAG_FAGGREGATABLE = 0x400, - TYPEFLAG_FREPLACEABLE = 0x800, - TYPEFLAG_FDISPATCHABLE = 0x1000, - TYPEFLAG_FREVERSEBIND = 0x2000, - TYPEFLAG_FPROXY = 0x4000 -} TYPEFLAGS; - -typedef struct tagARRAYDESC -{ - TYPEDESC tdescElem; - USHORT cDims; - SAFEARRAYBOUND rgbounds[1]; -} ARRAYDESC; - -typedef enum tagFUNCKIND -{ - FUNC_VIRTUAL = 0, - FUNC_PUREVIRTUAL = 1, - FUNC_NONVIRTUAL = 2, - FUNC_STATIC = 3, - FUNC_DISPATCH = 4 -} FUNCKIND; - -typedef enum tagFUNCFLAGS -{ - FUNCFLAG_FRESTRICTED = 0x1, - FUNCFLAG_FSOURCE = 0x2, - FUNCFLAG_FBINDABLE = 0x4, - FUNCFLAG_FREQUESTEDIT = 0x8, - FUNCFLAG_FDISPLAYBIND = 0x10, - FUNCFLAG_FDEFAULTBIND = 0x20, - FUNCFLAG_FHIDDEN = 0x40, - FUNCFLAG_FUSESGETLASTERROR = 0x80, - FUNCFLAG_FDEFAULTCOLLELEM = 0x100, - FUNCFLAG_FUIDEFAULT = 0x200, - FUNCFLAG_FNONBROWSABLE = 0x400, - FUNCFLAG_FREPLACEABLE = 0x800, - FUNCFLAG_FIMMEDIATEBIND = 0x1000 -} FUNCFLAGS; - -typedef enum tagINVOKEKIND -{ - INVOKE_FUNC = 1, - INVOKE_PROPERTYGET = 2, - INVOKE_PROPERTYPUT = 4, - INVOKE_PROPERTYPUTREF = 8 -} INVOKEKIND; - -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, *LPFUNCDESC; - -typedef enum tagVARKIND -{ - VAR_PERINSTANCE = 0, - VAR_STATIC = 1, - VAR_CONST = 2, - VAR_DISPATCH = 3 -} VARKIND; - -typedef struct tagVARDESC -{ - MEMBERID memid; - LPOLESTR lpstrSchema; - union { - ULONG oInst; - VARIANT *lpvarValue; - } DUMMYUNIONNAME; - ELEMDESC elemdescVar; - WORD wVarFlags; - VARKIND varkind; -} VARDESC, *LPVARDESC; - -typedef enum tagSYSKIND -{ - SYS_WIN16 = 0, - SYS_WIN32 = 1, - SYS_MAC = 2 -} SYSKIND; - -typedef enum tagLIBFLAGS -{ - LIBFLAG_FRESTRICTED = 0x1, - LIBFLAG_FCONTROL = 0x2, - LIBFLAG_FHIDDEN = 0x4, - LIBFLAG_FHASDISKIMAGE = 0x8 -} LIBFLAGS; - -typedef struct tagTLIBATTR -{ - GUID guid; - LCID lcid; - SYSKIND syskind; - WORD wMajorVerNum; - WORD wMinorVerNum; - WORD wLibFlags; -} TLIBATTR, *LPTLIBATTR; - -typedef enum tagDESCKIND -{ - DESCKIND_NONE = 0, - DESCKIND_FUNCDESC = 1, - DESCKIND_VARDESC = 2, - DESCKIND_TYPECOMP = 3, - DESCKIND_IMPLICITAPPOBJ = 4, - DESCKIND_MAX = 5 -} DESCKIND; - -typedef union tagBINDPTR -{ - FUNCDESC *lpfuncdesc; - VARDESC *lpvardesc; - ITypeComp *lptcomp; -} BINDPTR, *LPBINDPTR; - -typedef enum tagVARFLAGS -{ - VARFLAG_FREADONLY = 0x1, - VARFLAG_FSOURCE = 0x2, - VARFLAG_FBINDABLE = 0x4, - VARFLAG_FREQUESTEDIT = 0x8, - VARFLAG_FDISPLAYBIND = 0x10, - VARFLAG_FDEFAULTBIND = 0x20, - VARFLAG_FHIDDEN = 0x40, - VARFLAG_FRESTRICTED = 0x80, - VARFLAG_FDEFAULTCOLLELEM = 0x100, - VARFLAG_FUIDEFAULT = 0x200, - VARFLAG_FNONBROWSABLE = 0x400, - VARFLAG_FREPLACEABLE = 0x800, - VARFLAG_FIMMEDIATEBIND = 0x1000 -} VARFLAGS; - - -/* - * Declarations of the VARIANT structure and the VARIANT APIs. - */ - -/* S_OK : Success. - * DISP_E_BADVARTYPE : The variant type vt in not a valid type of variant. - * DISP_E_OVERFLOW : The data pointed to by pvarSrc does not fit in the destination type. - * DISP_E_TYPEMISMATCH : The variant type vt is not a valid type of variant. - * E_INVALIDARG : One argument is invalid. - * E_OUTOFMEMORY : Memory could not be allocated for the conversion. - * DISP_E_ARRAYISLOCKED : The variant contains an array that is locked. - */ - - -typedef struct tagCUSTDATAITEM { - GUID guid; - VARIANTARG varValue; -} CUSTDATAITEM, *LPCUSTDATAITEM; - -typedef struct tagCUSTDATA { - INT cCustData; - LPCUSTDATAITEM prgCustData; /* count cCustdata */ -} CUSTDATA, *LPCUSTDATA; - - - -/***************************************************************************** - * IDispatch interface - */ -#define ICOM_INTERFACE IDispatch -#define IDispatch_METHODS \ - ICOM_METHOD1(HRESULT, GetTypeInfoCount, UINT*, pctinfo) \ - ICOM_METHOD3(HRESULT, GetTypeInfo, UINT, iTInfo, LCID, lcid, ITypeInfo**, ppTInfo) \ - ICOM_METHOD5(HRESULT, GetIDsOfNames, REFIID, riid, LPOLESTR*, rgszNames, UINT, cNames, LCID, lcid, DISPID*, rgDispId) \ - ICOM_METHOD8(HRESULT, Invoke, DISPID, dispIdMember, REFIID, riid, LCID, lcid, WORD, wFlags, DISPPARAMS*, pDispParams, VARIANT*, pVarResult, EXCEPINFO*, pExepInfo, UINT*, puArgErr) -#define IDispatch_IMETHODS \ - IUnknown_IMETHODS \ - IDispatch_METHODS -ICOM_DEFINE(IDispatch,IUnknown) -#undef ICOM_INTERFACE - -/*** IUnknown methods ***/ -#define IDispatch_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b) -#define IDispatch_AddRef(p) ICOM_CALL (AddRef,p) -#define IDispatch_Release(p) ICOM_CALL (Release,p) -/*** IDispatch methods ***/ -#define IDispatch_GetTypeInfoCount(p,a) ICOM_CALL1 (GetTypeInfoCount,p,a) -#define IDispatch_GetTypeInfo(p,a,b,c) ICOM_CALL3 (GetTypeInfo,p,a,b,c) -#define IDispatch_GetIDsOfNames(p,a,b,c,d,e) ICOM_CALL5 (GetIDsOfNames,p,a,b,c,d,e) -#define IDispatch_Invoke(p,a,b,c,d,e,f,g,h) ICOM_CALL8 (Invoke,p,a,b,c,d,e,f,g,h) - - -/***************************************************************************** - * ITypeInfo interface - */ -#define ICOM_INTERFACE ITypeInfo -#define ITypeInfo_METHODS \ - ICOM_METHOD1(HRESULT,GetTypeAttr, TYPEATTR**,ppTypeAttr) \ - ICOM_METHOD1(HRESULT,GetTypeComp, ITypeComp**,ppTComp) \ - ICOM_METHOD2(HRESULT,GetFuncDesc, UINT,index, FUNCDESC**,ppFuncDesc) \ - ICOM_METHOD2(HRESULT,GetVarDesc, UINT,index, VARDESC**,ppVarDesc) \ - ICOM_METHOD4(HRESULT,GetNames, MEMBERID,memid, BSTR*,rgBstrNames, UINT,cMaxNames, UINT*,pcNames) \ - ICOM_METHOD2(HRESULT,GetRefTypeOfImplType, UINT,index, HREFTYPE*, pRefType) \ - ICOM_METHOD2(HRESULT,GetImplTypeFlags, UINT,index, INT*,pImplTypeFlags)\ - ICOM_METHOD3(HRESULT,GetIDsOfNames, LPOLESTR*,rgszNames, UINT,cNames, MEMBERID*,pMemId) \ - ICOM_METHOD7(HRESULT,Invoke, PVOID,pvInstance, MEMBERID,memid, WORD,wFlags, DISPPARAMS*,pDispParams, VARIANT*,pVarResult, EXCEPINFO*,pExcepInfo, UINT*,puArgErr) \ - ICOM_METHOD5(HRESULT,GetDocumentation, MEMBERID,memid, BSTR*,pBstrName, BSTR*,pBstrDocString, DWORD*,pdwHelpContext, BSTR*,pBstrHelpFile) \ - ICOM_METHOD5(HRESULT,GetDllEntry, MEMBERID,memid, INVOKEKIND,invKind, BSTR*,pBstrDllName, BSTR*,pBstrName, WORD*,pwOrdinal) \ - ICOM_METHOD2(HRESULT,GetRefTypeInfo, HREFTYPE,hRefType, ITypeInfo**,ppTInfo) \ - ICOM_METHOD3(HRESULT,AddressOfMember, MEMBERID,memid, INVOKEKIND,invKind, PVOID*,ppv) \ - ICOM_METHOD3(HRESULT,CreateInstance, IUnknown*,pUnkOuter, REFIID,riid, PVOID*,ppvObj) \ - ICOM_METHOD2(HRESULT,GetMops, MEMBERID,memid, BSTR*,pBstrMops) \ - ICOM_METHOD2(HRESULT,GetContainingTypeLib, ITypeLib**,ppTLib, UINT*,pIndex) \ - ICOM_METHOD1(HRESULT,ReleaseTypeAttr, TYPEATTR*,pTypeAttr) \ - ICOM_METHOD1(HRESULT,ReleaseFuncDesc, FUNCDESC*,pFuncDesc) \ - ICOM_METHOD1(HRESULT,ReleaseVarDesc, VARDESC*,pVarDesc) - -#define ITypeInfo_IMETHODS \ - IUnknown_IMETHODS \ - ITypeInfo_METHODS -ICOM_DEFINE(ITypeInfo,IUnknown) -#undef ICOM_INTERFACE - -/*** IUnknown methods ***/ -#define ITypeInfo_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b) -#define ITypeInfo_AddRef(p) ICOM_CALL (AddRef,p) -#define ITypeInfo_Release(p) ICOM_CALL (Release,p) -/*** ITypeInfo methods ***/ -#define ITypeInfo_GetTypeAttr(p,a) ICOM_CALL1(GetTypeAttr,p,a) -#define ITypeInfo_GetTypeComp(p,a) ICOM_CALL1(GetTypeComp,p,a) -#define ITypeInfo_GetFuncDesc(p,a,b) ICOM_CALL2(GetFuncDesc,p,a,b) -#define ITypeInfo_GetVarDesc(p,a,b) ICOM_CALL2(GetVarDesc,p,a,b) -#define ITypeInfo_GetNames(p,a,b,c,d) ICOM_CALL4(GetNames,p,a,b,c,d) -#define ITypeInfo_GetRefTypeOfImplType(p,a,b) ICOM_CALL2(GetRefTypeOfImplType,p,a,b) -#define ITypeInfo_GetImplTypeFlags(p,a,b) ICOM_CALL2(GetImplTypeFlags,p,a,b) -#define ITypeInfo_GetIDsOfNames(p,a,b,c) ICOM_CALL3(GetIDsOfNames,p,a,b,c) -#define ITypeInfo_Invoke(p,a,b,c,d,e,f,g) ICOM_CALL7(Invoke,p,a,b,c,d,e,f,g) -#define ITypeInfo_GetDocumentation(p,a,b,c,d,e) ICOM_CALL5(GetDocumentation,p,a,b,c,d,e) -#define ITypeInfo_GetDllEntry(p,a,b,c,d,e) ICOM_CALL5(GetDllEntry,p,a,b,c,d,e) -#define ITypeInfo_GetRefTypeInfo(p,a,b) ICOM_CALL2(GetRefTypeInfo,p,a,b) -#define ITypeInfo_AddressOfMember(p,a,b,c) ICOM_CALL3(AddressOfMember,p,a,b,c) -#define ITypeInfo_CreateInstance(p,a,b,c) ICOM_CALL3(CreateInstance,p,a,b,c) -#define ITypeInfo_GetMops(p,a,b) ICOM_CALL2(GetMops,p,a,b) -#define ITypeInfo_GetContainingTypeLib(p,a,b) ICOM_CALL2(GetContainingTypeLib,p,a,b) -#define ITypeInfo_ReleaseTypeAttr(p,a) ICOM_CALL1(ReleaseTypeAttr,p,a) -#define ITypeInfo_ReleaseFuncDesc(p,a) ICOM_CALL1(ReleaseFuncDesc,p,a) -#define ITypeInfo_ReleaseVarDesc(p,a) ICOM_CALL1(ReleaseVarDesc,p,a) - - -/***************************************************************************** - * ITypeInfo2 interface - */ -#define ICOM_INTERFACE ITypeInfo2 -#define ITypeInfo2_METHODS \ - ICOM_METHOD1(HRESULT, GetTypeKind, TYPEKIND*, pTypeKind) \ - ICOM_METHOD1(HRESULT, GetTypeFlags, UINT*, pTypeFlags) \ - ICOM_METHOD3(HRESULT, GetFuncIndexOfMemId, MEMBERID, memid, INVOKEKIND,\ - invKind, UINT*, pFuncIndex) \ - ICOM_METHOD2(HRESULT, GetVarIndexOfMemId, MEMBERID, memid, UINT*, \ - pVarIndex) \ - ICOM_METHOD2(HRESULT, GetCustData, REFGUID, guid, VARIANT*, pVarVal) \ - ICOM_METHOD3(HRESULT, GetFuncCustData, UINT, index, REFGUID, guid,\ - VARIANT*, pVarVal) \ - ICOM_METHOD4(HRESULT, GetParamCustData, UINT, indexFunc, UINT,\ - indexParam, REFGUID, guid, VARIANT*, pVarVal) \ - ICOM_METHOD3(HRESULT, GetVarCustData, UINT, index, REFGUID, guid,\ - VARIANT*, pVarVal) \ - ICOM_METHOD3(HRESULT, GetImplTypeCustData, UINT, index, REFGUID, guid,\ - VARIANT*, pVarVal) \ - ICOM_METHOD5(HRESULT, GetDocumentation2, MEMBERID, memid, LCID, lcid,\ - BSTR*, pbstrHelpString, DWORD*, pdwHelpStringContext,\ - BSTR*, pbstrHelpStringDll) \ - ICOM_METHOD1(HRESULT, GetAllCustData, CUSTDATA*, pCustData) \ - ICOM_METHOD2(HRESULT, GetAllFuncCustData, UINT, index, CUSTDATA*,\ - pCustData)\ - ICOM_METHOD3(HRESULT, GetAllParamCustData, UINT, indexFunc, UINT,\ - indexParam, CUSTDATA*, pCustData) \ - ICOM_METHOD2(HRESULT, GetAllVarCustData, UINT, index, CUSTDATA*,\ - pCustData) \ - ICOM_METHOD2(HRESULT, GetAllImplTypeCustData, UINT, index, CUSTDATA*,\ - pCustData) - -#define ITypeInfo2_IMETHODS \ - IUnknown_IMETHODS \ - ITypeInfo_METHODS \ - ITypeInfo2_METHODS -ICOM_DEFINE(ITypeInfo2,ITypeInfo) -#undef ICOM_INTERFACE - -/*** IUnknown methods ***/ -#define ITypeInfo2_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b) -#define ITypeInfo2_AddRef(p) ICOM_CALL (AddRef,p) -#define ITypeInfo2_Release(p) ICOM_CALL (Release,p) -/*** ITypeInfo methods ***/ -#define ITypeInfo2_GetTypeAttr(p,a) ICOM_CALL1(GetTypeAttr,p,a) -#define ITypeInfo2_GetTypeComp(p,a) ICOM_CALL1(GetTypeComp,p,a) -#define ITypeInfo2_GetFuncDesc(p,a,b) ICOM_CALL2(GetFuncDesc,p,a,b) -#define ITypeInfo2_GetVarDesc(p,a,b) ICOM_CALL2(GetVarDesc,p,a,b) -#define ITypeInfo2_GetNames(p,a,b,c,d) ICOM_CALL4(GetNames,p,a,b,c,d) -#define ITypeInfo2_GetRefTypeOfImplType(p,a,b) ICOM_CALL2(GetRefTypeOfImplType,p,a,b) -#define ITypeInfo2_GetImplTypeFlags(p,a,b) ICOM_CALL2(GetImplTypeFlags,p,a,b) -#define ITypeInfo2_GetIDsOfNames(p,a,b,c) ICOM_CALL3(GetIDsOfNames,p,a,b,c) -#define ITypeInfo2_Invoke(p,a,b,c,d,e,f,g) ICOM_CALL7(Invoke,p,a,b,c,d,e,f,g) -#define ITypeInfo2_GetDocumentation(p,a,b,c,d,e) ICOM_CALL5(GetDocumentation,p,a,b,c,d,e) -#define ITypeInfo2_GetDllEntry(p,a,b,c,d,e) ICOM_CALL5(GetDllEntry,p,a,b,c,d,e) -#define ITypeInfo2_GetRefTypeInfo(p,a,b) ICOM_CALL2(GetRefTypeInfo,p,a,b) -#define ITypeInfo2_AddressOfMember(p,a,b,c) ICOM_CALL3(AddressOfMember,p,a,b,c) -#define ITypeInfo2_CreateInstance(p,a,b,c) ICOM_CALL3(CreateInstance,p,a,b,c) -#define ITypeInfo2_GetMops(p,a,b) ICOM_CALL2(GetMops,p,a,b) -#define ITypeInfo2_GetContainingTypeLib(p,a,b) ICOM_CALL2(GetContainingTypeLib,p,a,b) -#define ITypeInfo2_ReleaseTypeAttr(p,a) ICOM_CALL1(ReleaseTypeAttr,p,a) -#define ITypeInfo2_ReleaseFuncDesc(p,a) ICOM_CALL1(ReleaseFuncDesc,p,a) -#define ITypeInfo2_ReleaseVarDesc(p,a) ICOM_CALL1(ReleaseVarDesc,p,a) -/*** ITypeInfo2 methods ***/ -#define ITypeInfo2_GetTypeKind(p,a) ICOM_CALL1(GetTypeKind,p,a) -#define ITypeInfo2_GetTypeFlags(p,a) ICOM_CALL1(GetTypeFlags,p,a) -#define ITypeInfo2_GetFuncIndexOfMemId(p,a,b,c) ICOM_CALL3(GetFuncIndexOfMemId,p,a,b,c) -#define ITypeInfo2_GetVarIndexOfMemId(p,a,b) ICOM_CALL2(GetVarIndexOfMemId,p,a,b) -#define ITypeInfo2_GetCustData(p,a,b) ICOM_CALL2(GetCustData,p,a,b) -#define ITypeInfo2_GetFuncCustData(p,a,b,c) ICOM_CALL3(GetFuncCustData,p,a,b,c) -#define ITypeInfo2_GetParamCustData(p,a,b,c,d) ICOM_CALL4(GetParamCustData,p,a,b,c,d) -#define ITypeInfo2_GetVarCustData(p,a,b,c) ICOM_CALL3(GetVarCustData,p,a,b,c) -#define ITypeInfo2_GetImplTypeCustData(p,a,b,c) ICOM_CALL3(GetImplTypeCustData,p,a,b,c) -#define ITypeInfo2_GetDocumentation2(p,a,b,c,d,e) ICOM_CALL5(GetDocumentation2,p,a,b,c,d,e) -#define ITypeInfo2_GetAllCustData(p,a) ICOM_CALL1(GetAllCustData,p,a) -#define ITypeInfo2_GetAllFuncCustData(p,a,b) ICOM_CALL2(GetAllFuncCustData,p,a,b) -#define ITypeInfo2_GetAllParamCustData(p,a,b,c) ICOM_CALL3(GetAllParamCustData,p,a,b,c) -#define ITypeInfo2_GetAllVarCustData(p,a,b) ICOM_CALL2(GetAllVarCustData,p,a,b) -#define ITypeInfo2_GetAllImplTypeCustData(p,a,b) ICOM_CALL2(GetAllImplTypeCustData,p,a,b) - -/***************************************************************************** - * ITypeLib interface - */ -#define ICOM_INTERFACE ITypeLib -#define ITypeLib_METHODS \ - ICOM_METHOD (UINT,GetTypeInfoCount) \ - ICOM_METHOD2(HRESULT,GetTypeInfo, UINT,index, ITypeInfo**,ppTInfo) \ - ICOM_METHOD2(HRESULT,GetTypeInfoType, UINT,index, TYPEKIND*,pTKind) \ - ICOM_METHOD2(HRESULT,GetTypeInfoOfGuid, REFGUID,guid, ITypeInfo**,ppTinfo) \ - ICOM_METHOD1(HRESULT,GetLibAttr, TLIBATTR**,ppTLibAttr) \ - ICOM_METHOD1(HRESULT,GetTypeComp, ITypeComp**,ppTComp) \ - ICOM_METHOD5(HRESULT,GetDocumentation, INT,index, BSTR*,pBstrName, BSTR*,pBstrDocString, DWORD*,pdwHelpContext, BSTR*,pBstrHelpFile) \ - ICOM_METHOD3(HRESULT,IsName, LPOLESTR,szNameBuf, ULONG,lHashVal, BOOL*,bfName) \ - ICOM_METHOD5(HRESULT,FindName, LPOLESTR,szNameBuf, ULONG,lHashVal, ITypeInfo**,ppTInfo, MEMBERID*,rgMemId, USHORT*,pcFound) \ - ICOM_METHOD1(VOID,ReleaseTLibAttr, TLIBATTR*,pTLibAttr) -#define ITypeLib_IMETHODS \ - IUnknown_IMETHODS \ - ITypeLib_METHODS -ICOM_DEFINE(ITypeLib,IUnknown) -#undef ICOM_INTERFACE - -/*** IUnknown methods ***/ -#define ITypeLib_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b) -#define ITypeLib_AddRef(p) ICOM_CALL (AddRef,p) -#define ITypeLib_Release(p) ICOM_CALL (Release,p) -/*** ITypeLib methods ***/ -#define ITypeLib_GetTypeInfoCount(p) ICOM_CALL (GetTypeInfoCount,p) -#define ITypeLib_GetTypeInfo(p,a,b) ICOM_CALL2(GetTypeInfo,p,a,b) -#define ITypeLib_GetTypeInfoType(p,a,b) ICOM_CALL2(GetTypeInfoType,p,a,b) -#define ITypeLib_GetTypeInfoOfGuid(p,a,b) ICOM_CALL2(GetTypeInfoOfGuid,p,a,b) -#define ITypeLib_GetLibAttr(p,a) ICOM_CALL1(GetLibAttr,p,a) -#define ITypeLib_GetTypeComp(p,a) ICOM_CALL1(GetTypeComp,p,a) -#define ITypeLib_GetDocumentation(p,a,b,c,d,e) ICOM_CALL5(GetDocumentation,p,a,b,c,d,e) -#define ITypeLib_IsName(p,a,b,c) ICOM_CALL3(IsName,p,a,b,c) -#define ITypeLib_FindName(p,a,b,c,d,e) ICOM_CALL5(FindName,p,a,b,c,d,e) -#define ITypeLib_ReleaseTLibAttr(p,a) ICOM_CALL1(ReleaseTLibAttr,p,a) - - -/***************************************************************************** - * ITypeLib2 interface - */ -#define ICOM_INTERFACE ITypeLib2 -#define ITypeLib2_METHODS \ - ICOM_METHOD2(HRESULT, GetCustData, REFGUID, guid, VARIANT*, pVarVal) \ - ICOM_METHOD2(HRESULT, GetLibStatistics, ULONG *, pcUniqueNames, ULONG*,pcchUniqueNames) \ - ICOM_METHOD5(HRESULT, GetDocumentation2, INT, index, LCID, lcid,BSTR*, pbstrHelpString, DWORD*, pdwHelpStringContext, BSTR*, strHelpStringDll) \ - ICOM_METHOD1(HRESULT, GetAllCustData, CUSTDATA *, pCustData) -#define ITypeLib2_IMETHODS \ - IUnknown_IMETHODS \ - ITypeLib_IMETHODS \ - ITypeLib2_METHODS -ICOM_DEFINE(ITypeLib2,ITypeLib) -#undef ICOM_INTERFACE - -/*** IUnknown methods ***/ -#define ITypeLib2_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b) -#define ITypeLib2_AddRef(p) ICOM_CALL (AddRef,p) -#define ITypeLib2_Release(p) ICOM_CALL (Release,p) -/*** ITypeLib methods ***/ -#define ITypeLib2_GetTypeInfoCount(p) ICOM_CALL (GetTypeInfoCount,p) -#define ITypeLib2_GetTypeInfo(p,a,b) ICOM_CALL2(GetTypeInfo,p,a,b) -#define ITypeLib2_GetTypeInfoType(p,a,b) ICOM_CALL2(GetTypeInfoType,p,a,b) -#define ITypeLib2_GetTypeInfoOfGuid(p,a,b) ICOM_CALL2(GetTypeInfoOfGuid,p,a,b) -#define ITypeLib2_GetLibAttr(p,a) ICOM_CALL1(GetLibAttr,p,a) -#define ITypeLib2_GetTypeComp(p,a) ICOM_CALL1(GetTypeComp,p,a) -#define ITypeLib2_GetDocumentation(p,a,b,c,d,e) ICOM_CALL5(GetDocumentation,p,a,b,c,d,e) -#define ITypeLib2_IsName(p,a,b,c) ICOM_CALL3(IsName,p,a,b,c) -#define ITypeLib2_FindName(p,a,b,c,d,e) ICOM_CALL5(FindName,p,a,b,c,d,e) -#define ITypeLib2_ReleaseTLibAttr(p,a) ICOM_CALL1(ReleaseTLibAttr,p,a) -/*** ITypeLib2 methods ***/ -#define ITypeLib2_GetCustData(p,a,b) ICOM_CALL2(GetCustData,p,a,b) -#define ITypeLib2_GetLibStatistics(p,a,b) ICOM_CALL2(GetLibStatistics,p,a,b) -#define ITypeLib2_GetDocumentation2(p,a,b,c,d,e,f) ICOM_CALL5(GetDocumentation2,p,a,b,c,d,e) -#define ITypeLib2_GetAllCustData(p,a) ICOM_CALL1(GetAllCustData,p,a) - -/***************************************************************************** - * ITypeComp interface - */ -#define ICOM_INTERFACE ITypeComp -#define ITypeComp_METHODS \ - ICOM_METHOD6(HRESULT,Bind, LPOLESTR,szName, ULONG,lHashVal, WORD,wFlags, ITypeInfo**,ppTInfo, DESCKIND*,pDescKind, BINDPTR*,pBindPtr) \ - ICOM_METHOD4(HRESULT,BindType, LPOLESTR,szName, ULONG,lHashVal, ITypeInfo**,ppTInfo, ITypeComp**,ppTComp) -#define ITypeComp_IMETHODS \ - IUnknown_IMETHODS \ - ITypeComp_METHODS -ICOM_DEFINE(ITypeComp,IUnknown) -#undef ICOM_INTERFACE - -/*** IUnknown methods ***/ -#define ITypeComp_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b) -#define ITypeComp_AddRef(p) ICOM_CALL (AddRef,p) -#define ITypeComp_Release(p) ICOM_CALL (Release,p) -/*** ITypeComp methods ***/ -#define ITypeComp_Bind(p,a,b,c,d,e,f) ICOM_CALL6(Bind,p,a,b,c,d,e,f) -#define ITypeComp_BindType(p,a,b,c,d) ICOM_CALL4(BindType,p,a,b,c,d) - -/***************************************************************************** - * IEnumVARIANT interface - */ -#define ICOM_INTERFACE IEnumVARIANT -#define IEnumVARIANT_METHODS \ - ICOM_METHOD3(HRESULT,Next, ULONG,celt, VARIANT*,rgVar, ULONG*,pCeltFetched) \ - ICOM_METHOD1(HRESULT,Skip, ULONG,celt) \ - ICOM_METHOD (HRESULT,Reset) \ - ICOM_METHOD1(HRESULT,Clone, IEnumVARIANT**,ppEnum) -#define IEnumVARIANT_IMETHODS \ - IUnknown_IMETHODS \ - IEnumVARIANT_METHODS -ICOM_DEFINE(IEnumVARIANT,IUnknown) -#undef ICOM_INTERFACE - -/*** IUnknown methods ***/ -#define IEnumVARIANT_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b) -#define IEnumVARIANT_AddRef(p) ICOM_CALL (AddRef,p) -#define IEnumVARIANT_Release(p) ICOM_CALL (Release,p) -/*** IEnumVARIANT methods ***/ -#define IEnumVARIANT_Next(p,a,b,c) ICOM_CALL3(Next,p,a,b,c) -#define IEnumVARIANT_Skip(p,a) ICOM_CALL1(Skip,p,a) -#define IEnumVARIANT_Reset(p) ICOM_CALL (Reset,p) -#define IEnumVARIANT_Clone(p,a) ICOM_CALL1(Clone,p,a) - -/***************************************************************************** - * IRecordInfo interface - */ -#define ICOM_INTERFACE IRecordInfo -#define IRecordInfo_METHODS \ - ICOM_METHOD1(HRESULT, RecordInit, PVOID, pvNew) \ - ICOM_METHOD1(HRESULT, RecordClear, PVOID, pvExisting) \ - ICOM_METHOD2(HRESULT, RecordCopy, PVOID, pvExisting, PVOID, pvNew) \ - ICOM_METHOD1(HRESULT, GetGUID, GUID*, pguid) \ - ICOM_METHOD1(HRESULT, GetName, BSTR*, pbstrName) \ - ICOM_METHOD1(HRESULT, GetSize, ULONG*, pcbSize) \ - ICOM_METHOD1(HRESULT, GetTypeInfo, ITypeInfo**, ppTypeInfo) \ - ICOM_METHOD3(HRESULT, GetField, PVOID, pvData, LPCOLESTR, szFieldName, VARIANT*, pvarField) \ - ICOM_METHOD4(HRESULT, GetFieldNoCopy, PVOID, pvData, LPCOLESTR, szFieldName, VARIANT*, pvarField, PVOID *,ppvDataCArray) \ - ICOM_METHOD4(HRESULT, PutField, ULONG, wFlags, PVOID, pvData, LPCOLESTR, szFieldName, VARIANT*, pvarField) \ - ICOM_METHOD4(HRESULT, PutFieldNoCopy, ULONG, wFlags, PVOID, pvData, LPCOLESTR, szFieldName, VARIANT*, pvarField) \ - ICOM_METHOD2(HRESULT, GetFieldNames, ULONG*, pcNames, BSTR*, rgBstrNames) \ - ICOM_METHOD1(BOOL, IsMatchingType, IRecordInfo*, pRecordInfo) \ - ICOM_METHOD (LPVOID, RecordCreate) \ - ICOM_METHOD2(HRESULT, RecordCreateCopy, PVOID, pvSource, PVOID*, ppvDest) \ - ICOM_METHOD1(HRESULT, RecordDestroy, PVOID, pvRecord) - -#define IRecordInfo_IMETHODS \ - IUnknown_IMETHODS \ - IRecordInfo_METHODS -ICOM_DEFINE(IRecordInfo,IUnknown) -#undef ICOM_INTERFACE - -/*** IUnknown methods ***/ -#define IRecordInfo_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b) -#define IRecordInfo_AddRef(p) ICOM_CALL (AddRef,p) -#define IRecordInfo_Release(p) ICOM_CALL (Release,p) -/*** IRecordInfo methods ***/ -#define IRecordInfo_RecordInit(p,a) ICOM_CALL1(RecordInit,p,a) -#define IRecordInfo_RecordClear(p,a) ICOM_CALL1(RecordClear,p,a) -#define IRecordInfo_RecordCopy(p,a,b) ICOM_CALL2(RecordCopy,p,a,b) -#define IRecordInfo_GetGUID(p,a) ICOM_CALL1(GetGUID,p,a) -#define IRecordInfo_GetName(p,a) ICOM_CALL1(GetName,p,a) -#define IRecordInfo_GetTypeInfo(p,a) ICOM_CALL1(GetTypeInfo,p,a) -#define IRecordInfo_GetField(p,a,b,c) ICOM_CALL3(GetField,p,a,b,c) -#define IRecordInfo_GetFieldNoCopy(p,a,b,c,d) ICOM_CALL4(GetFieldNoCopy,p,a,b,c,d) -#define IRecordInfo_PutField(p,a,b,c,d) ICOM_CALL4(PutField,p,a,b,c,d) -#define IRecordInfo_PutFieldNoCopy(p,a,b,c,d) ICOM_CALL4(PutField,p,a,b,c,d) -#define IRecordInfo_GetFieldNames(p,a,b) ICOM_CALL2(GetFieldNames,p,a,b) -#define IRecordInfo_RecordCreate(p) ICOM_CALL (RecordCreate,p) -#define IRecordInfo_RecordCreateCopy(p,a,b) ICOM_CALL2(RecordCreateCopy,p,a,b) -#define IRecordInfo_RecordDestroy(p,a) ICOM_CALL1(RecordDestroy,p,a) - -#endif /* __WINE_WINE_OBJ_OLEAUT_H */