cpp_quote("/**") cpp_quote(" * This file is part of the mingw-w64 runtime package.") cpp_quote(" * No warranty is given; refer to the file DISCLAIMER within this package.") cpp_quote(" */") cpp_quote("") cpp_quote("#include ") #ifndef DO_NO_IMPORTS import "objidl.idl"; #endif cpp_quote("") cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)") interface ICreateTypeInfo; interface ICreateTypeInfo2; interface ICreateTypeLib; interface ICreateTypeLib2; cpp_quote("#endif") cpp_quote("") cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)") interface IDispatch; interface IEnumVARIANT; interface ITypeComp; cpp_quote("#endif") cpp_quote("") cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)") interface ITypeInfo; interface ITypeInfo2; interface ITypeLib; interface ITypeLib2; interface ITypeChangeEvents; interface IErrorInfo; interface ICreateErrorInfo; interface ISupportErrorInfo; interface ITypeFactory; interface ITypeMarshal; interface IRecordInfo; cpp_quote("#endif") cpp_quote("") cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)") [version (1.0), pointer_default (unique)] interface IOleAutomationTypes { typedef CY CURRENCY; typedef struct tagSAFEARRAYBOUND { ULONG cElements; LONG lLbound; } SAFEARRAYBOUND,*LPSAFEARRAYBOUND; cpp_quote("") typedef [unique] struct _wireVARIANT *wireVARIANT; typedef [unique] struct _wireBRECORD *wireBRECORD; cpp_quote("") typedef struct _wireSAFEARR_BSTR { ULONG Size; [size_is (Size), ref] wireBSTR *aBstr; } SAFEARR_BSTR; cpp_quote("") typedef struct _wireSAFEARR_UNKNOWN { ULONG Size; [size_is (Size), ref] IUnknown **apUnknown; } SAFEARR_UNKNOWN; cpp_quote("") typedef struct _wireSAFEARR_DISPATCH { ULONG Size; [size_is (Size), ref] IDispatch **apDispatch; } SAFEARR_DISPATCH; cpp_quote("") typedef struct _wireSAFEARR_VARIANT { ULONG Size; [size_is (Size), ref] wireVARIANT *aVariant; } SAFEARR_VARIANT; cpp_quote("") typedef struct _wireSAFEARR_BRECORD { ULONG Size; [size_is (Size), ref] wireBRECORD *aRecord; } SAFEARR_BRECORD; cpp_quote("") typedef struct _wireSAFEARR_HAVEIID { ULONG Size; [size_is (Size), ref] IUnknown **apUnknown; IID iid; } SAFEARR_HAVEIID; cpp_quote("") 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; cpp_quote("") 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; cpp_quote("") typedef [unique] struct _wireSAFEARRAY { USHORT cDims; USHORT fFeatures; ULONG cbElements; ULONG cLocks; SAFEARRAYUNION uArrayStructs; [size_is (cDims)] SAFEARRAYBOUND rgsabound[]; } *wireSAFEARRAY; typedef [unique] wireSAFEARRAY *wirePSAFEARRAY; cpp_quote("") typedef struct tagSAFEARRAY { USHORT cDims; USHORT fFeatures; ULONG cbElements; ULONG cLocks; PVOID pvData; SAFEARRAYBOUND rgsabound[]; } SAFEARRAY; typedef [wire_marshal (wirePSAFEARRAY)] SAFEARRAY *LPSAFEARRAY; cpp_quote("") 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; cpp_quote("") cpp_quote("/* Kludge for 3.0 release to disable new default-behavior.") cpp_quote(" * For now we define _FORCENAMELESSUNION. For 4.0 this define") cpp_quote(" * will be removed. */") cpp_quote("#ifndef _FORCENAMELESSUNION") cpp_quote("#define _FORCENAMELESSUNION 1") cpp_quote("#endif") cpp_quote("") cpp_quote("#if (__STDC__ && !defined(__cplusplus) && !defined(_FORCENAMELESSUNION)) || defined(NONAMELESSUNION) || (defined (_MSC_VER) && !defined(_MSC_EXTENSIONS) && !defined(_FORCENAMELESSUNION))") 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") cpp_quote("") typedef [wire_marshal (wireVARIANT)] struct tagVARIANT VARIANT; cpp_quote("") struct tagVARIANT { union { struct __tagVARIANT { VARTYPE vt; WORD wReserved1; WORD wReserved2; WORD wReserved3; union { LONGLONG llVal; LONG lVal; BYTE bVal; SHORT iVal; FLOAT fltVal; DOUBLE dblVal; VARIANT_BOOL boolVal; /* Removed due conflict with bool and gcc's inablity to express a macro expanding to a comment. _VARIANT_BOOL bool; */ SCODE scode; CY cyVal; DATE date; BSTR bstrVal; IUnknown *punkVal; IDispatch *pdispVal; SAFEARRAY *parray; BYTE *pbVal; SHORT *piVal; LONG *plVal; LONGLONG *pllVal; FLOAT *pfltVal; DOUBLE *pdblVal; VARIANT_BOOL *pboolVal; /* Removed due conflict with bool and gcc's inablity to express a macro expanding to a comment. _VARIANT_BOOL *pbool; */ SCODE *pscode; CY *pcyVal; DATE *pdate; BSTR *pbstrVal; IUnknown **ppunkVal; IDispatch **ppdispVal; SAFEARRAY **pparray; VARIANT *pvarVal; PVOID byref; CHAR cVal; USHORT uiVal; ULONG ulVal; ULONGLONG ullVal; INT intVal; UINT uintVal; DECIMAL *pdecVal; CHAR *pcVal; USHORT *puiVal; ULONG *pulVal; ULONGLONG *pullVal; INT *pintVal; UINT *puintVal; struct __tagBRECORD { PVOID pvRecord; IRecordInfo *pRecInfo; } __VARIANT_NAME_4; } __VARIANT_NAME_3; } __VARIANT_NAME_2; DECIMAL decVal; } __VARIANT_NAME_1; }; cpp_quote("") typedef VARIANT *LPVARIANT; typedef VARIANT VARIANTARG; typedef VARIANT *LPVARIANTARG; cpp_quote("#if 0") typedef const VARIANT *REFVARIANT; cpp_quote("#else") cpp_quote("") cpp_quote("#ifndef _REFVARIANT_DEFINED") cpp_quote("#define _REFVARIANT_DEFINED") cpp_quote("#ifdef __cplusplus") cpp_quote("#define REFVARIANT const VARIANT &") cpp_quote("#else") cpp_quote("#define REFVARIANT const VARIANT * __MIDL_CONST") cpp_quote("#endif") cpp_quote("#endif") cpp_quote("#endif") cpp_quote("") struct _wireBRECORD { ULONG fFlags; ULONG clSize; IRecordInfo *pRecInfo; [size_is (clSize)] byte *pRecord; }; cpp_quote("") struct _wireVARIANT { DWORD clSize; DWORD rpcReserved; USHORT vt; USHORT wReserved1; USHORT wReserved2; USHORT wReserved3; [switch_type (ULONG), switch_is (vt)] union { [case (VT_I8)] LONGLONG llVal; [case (VT_I4)] LONG lVal; [case (VT_UI1)] BYTE bVal; [case (VT_I2)] SHORT iVal; [case (VT_R4)] FLOAT fltVal; [case (VT_R8)] DOUBLE dblVal; [case (VT_BOOL)] VARIANT_BOOL boolVal; [case (VT_ERROR)] SCODE scode; [case (VT_CY)] CY cyVal; [case (VT_DATE)] DATE date; [case (VT_BSTR)] wireBSTR bstrVal; [case (VT_UNKNOWN)] IUnknown *punkVal; [case (VT_DISPATCH)] IDispatch *pdispVal; [case (VT_ARRAY)] wirePSAFEARRAY parray; [case (VT_RECORD, VT_RECORD|VT_BYREF)] wireBRECORD brecVal; [case (VT_UI1|VT_BYREF)] BYTE *pbVal; [case (VT_I2|VT_BYREF)] SHORT *piVal; [case (VT_I4|VT_BYREF)] LONG *plVal; [case (VT_I8|VT_BYREF)] LONGLONG *pllVal; [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_CY|VT_BYREF)] CY *pcyVal; [case (VT_DATE|VT_BYREF)] DATE *pdate; [case (VT_BSTR|VT_BYREF)] wireBSTR *pbstrVal; [case (VT_UNKNOWN|VT_BYREF)] IUnknown **ppunkVal; [case (VT_DISPATCH|VT_BYREF)] IDispatch **ppdispVal; [case (VT_ARRAY|VT_BYREF)] wirePSAFEARRAY *pparray; [case (VT_VARIANT|VT_BYREF)] wireVARIANT *pvarVal; [case (VT_I1)] CHAR cVal; [case (VT_UI2)] USHORT uiVal; [case (VT_UI4)] ULONG ulVal; [case (VT_UI8)] ULONGLONG ullVal; [case (VT_INT)] INT intVal; [case (VT_UINT)] UINT uintVal; [case (VT_DECIMAL)] DECIMAL decVal; [case (VT_BYREF|VT_DECIMAL)] DECIMAL *pdecVal; [case (VT_BYREF|VT_I1)] CHAR *pcVal; [case (VT_BYREF|VT_UI2)] USHORT *puiVal; [case (VT_BYREF|VT_UI4)] ULONG *pulVal; [case (VT_BYREF|VT_UI8)] ULONGLONG *pullVal; [case (VT_BYREF|VT_INT)] INT *pintVal; [case (VT_BYREF|VT_UINT)] UINT *puintVal; [case (VT_EMPTY)]; [case (VT_NULL)]; }; }; cpp_quote("") typedef LONG DISPID; typedef DISPID MEMBERID; typedef DWORD HREFTYPE; 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; cpp_quote("") typedef struct tagTYPEDESC { [switch_type (VARTYPE), 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; cpp_quote("") typedef struct tagARRAYDESC { TYPEDESC tdescElem; USHORT cDims; [size_is (cDims)] SAFEARRAYBOUND rgbounds[]; } ARRAYDESC; cpp_quote("") typedef struct tagPARAMDESCEX { ULONG cBytes; VARIANTARG varDefaultValue; } PARAMDESCEX,*LPPARAMDESCEX; cpp_quote("") typedef struct tagPARAMDESC { LPPARAMDESCEX pparamdescex; USHORT wParamFlags; } PARAMDESC,*LPPARAMDESC; cpp_quote("") 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; cpp_quote("") typedef struct tagIDLDESC { ULONG_PTR dwReserved; USHORT wIDLFlags; } IDLDESC,*LPIDLDESC; cpp_quote("") 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("") cpp_quote("#if 0") typedef struct tagELEMDESC { TYPEDESC tdesc; PARAMDESC paramdesc; } ELEMDESC; cpp_quote("#else") cpp_quote("") cpp_quote(" typedef struct tagELEMDESC {") cpp_quote(" TYPEDESC tdesc;") cpp_quote(" __C89_NAMELESS union {") cpp_quote(" IDLDESC idldesc;") cpp_quote(" PARAMDESC paramdesc;") cpp_quote(" } DUMMYUNIONNAME;") cpp_quote(" } ELEMDESC,*LPELEMDESC;") cpp_quote("#endif") cpp_quote("") 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; cpp_quote("") typedef struct tagDISPPARAMS { [size_is (cArgs)] VARIANTARG *rgvarg; [size_is (cNamedArgs)] DISPID *rgdispidNamedArgs; UINT cArgs; UINT cNamedArgs; } DISPPARAMS; cpp_quote("") cpp_quote("#if 0") typedef struct tagEXCEPINFO { WORD wCode; WORD wReserved; BSTR bstrSource; BSTR bstrDescription; BSTR bstrHelpFile; DWORD dwHelpContext; ULONG_PTR pvReserved; ULONG_PTR 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") cpp_quote("") 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; cpp_quote("") typedef [v1_enum] enum tagFUNCKIND { FUNC_VIRTUAL, FUNC_PUREVIRTUAL, FUNC_NONVIRTUAL, FUNC_STATIC, FUNC_DISPATCH } FUNCKIND; cpp_quote("") typedef [v1_enum] enum tagINVOKEKIND { INVOKE_FUNC = 1, INVOKE_PROPERTYGET = 2, INVOKE_PROPERTYPUT = 4, INVOKE_PROPERTYPUTREF = 8 } INVOKEKIND; cpp_quote("") 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; cpp_quote("") typedef [v1_enum] enum tagVARKIND { VAR_PERINSTANCE, VAR_STATIC, VAR_CONST, VAR_DISPATCH } VARKIND; cpp_quote("") const USHORT IMPLTYPEFLAG_FDEFAULT = 0x1; const USHORT IMPLTYPEFLAG_FSOURCE = 0x2; const USHORT IMPLTYPEFLAG_FRESTRICTED = 0x4; const USHORT IMPLTYPEFLAG_FDEFAULTVTABLE= 0x8; cpp_quote("") typedef struct tagVARDESC { MEMBERID memid; LPOLESTR lpstrSchema; [switch_type (VARKIND), 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; cpp_quote("") 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; cpp_quote("") 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; cpp_quote("") 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; cpp_quote("") typedef [wire_marshal (DWORD)] struct tagCLEANLOCALSTORAGE { IUnknown *pInterface; PVOID pStorage; DWORD flags; } CLEANLOCALSTORAGE; cpp_quote("") typedef struct tagCUSTDATAITEM { GUID guid; VARIANTARG varValue; } CUSTDATAITEM,*LPCUSTDATAITEM; cpp_quote("") typedef struct tagCUSTDATA { DWORD cCustData; [size_is (cCustData)] LPCUSTDATAITEM prgCustData; } CUSTDATA,*LPCUSTDATA; } cpp_quote("#endif") cpp_quote("") cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)") [object, uuid (00020405-0000-0000-C000-000000000046), pointer_default (unique), local] interface ICreateTypeInfo: IUnknown { typedef [unique] ICreateTypeInfo *LPCREATETYPEINFO; cpp_quote("") 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 ((UINT) 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 (void); } cpp_quote("") [object, uuid (0002040e-0000-0000-C000-000000000046), pointer_default (unique), local] interface ICreateTypeInfo2: ICreateTypeInfo { typedef [unique] ICreateTypeInfo2 *LPCREATETYPEINFO2; cpp_quote("") 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 (void); HRESULT SetName ([in] LPOLESTR szName); } cpp_quote("") [object, uuid (00020406-0000-0000-C000-000000000046), pointer_default (unique), local] interface ICreateTypeLib : IUnknown { typedef [unique] ICreateTypeLib *LPCREATETYPELIB; cpp_quote("") 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 (void); } cpp_quote("") [object, uuid (0002040f-0000-0000-C000-000000000046), pointer_default (unique), local] 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); } cpp_quote("#endif") cpp_quote("") cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)") [object, uuid (00020400-0000-0000-C000-000000000046), pointer_default (unique)] interface IDispatch : IUnknown { typedef [unique] IDispatch *LPDISPATCH; cpp_quote("") 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, range (0, 16384)] 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); cpp_quote("") 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; cpp_quote("") } cpp_quote("") [object, uuid (00020404-0000-0000-C000-000000000046), pointer_default (unique)] interface IEnumVARIANT : IUnknown { typedef [unique] IEnumVARIANT *LPENUMVARIANT; cpp_quote("") [local] HRESULT Next ([in] ULONG celt,[out, size_is (celt), length_is (*pCeltFetched)] 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); } cpp_quote("") [object, uuid (00020403-0000-0000-C000-000000000046), pointer_default (unique)] interface ITypeComp : IUnknown { typedef [unique] ITypeComp *LPTYPECOMP; cpp_quote("") typedef [v1_enum] enum tagDESCKIND { DESCKIND_NONE = 0, DESCKIND_FUNCDESC, DESCKIND_VARDESC, DESCKIND_TYPECOMP, DESCKIND_IMPLICITAPPOBJ, DESCKIND_MAX } DESCKIND; cpp_quote("") typedef union tagBINDPTR { FUNCDESC *lpfuncdesc; VARDESC *lpvardesc; ITypeComp *lptcomp; } BINDPTR,*LPBINDPTR; cpp_quote("") [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); } cpp_quote("#endif") cpp_quote("") cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)") [object, uuid (00020401-0000-0000-C000-000000000046), pointer_default (unique)] interface ITypeInfo : IUnknown { typedef [unique] ITypeInfo *LPTYPEINFO; cpp_quote("") [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 (void); [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 (void); [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 (void); [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 (void); [local] void ReleaseFuncDesc ([in] FUNCDESC *pFuncDesc); [call_as (ReleaseFuncDesc)] HRESULT LocalReleaseFuncDesc (void); [local] void ReleaseVarDesc ([in] VARDESC *pVarDesc); [call_as (ReleaseVarDesc)] HRESULT LocalReleaseVarDesc (void); } cpp_quote("") [object, uuid (00020412-0000-0000-C000-000000000046), pointer_default (unique)] interface ITypeInfo2 : ITypeInfo { typedef [unique] ITypeInfo2 *LPTYPEINFO2; cpp_quote("") 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); } cpp_quote("#endif") cpp_quote("") cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)") [object, uuid (00020402-0000-0000-C000-000000000046), pointer_default (unique)] interface ITypeLib : IUnknown { typedef [v1_enum] enum tagSYSKIND { SYS_WIN16 = 0, SYS_WIN32, SYS_MAC, SYS_WIN64 } SYSKIND; cpp_quote("") typedef [v1_enum] enum tagLIBFLAGS { LIBFLAG_FRESTRICTED = 0x01, LIBFLAG_FCONTROL = 0x02, LIBFLAG_FHIDDEN = 0x04, LIBFLAG_FHASDISKIMAGE = 0x08 } LIBFLAGS; cpp_quote("") typedef [unique] ITypeLib *LPTYPELIB; cpp_quote("") typedef struct tagTLIBATTR { GUID guid; LCID lcid; SYSKIND syskind; WORD wMajorVerNum; WORD wMinorVerNum; WORD wLibFlags; } TLIBATTR,*LPTLIBATTR; cpp_quote("") [local] UINT GetTypeInfoCount (void); [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 (void); } cpp_quote("#endif") cpp_quote("") cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)") [object, uuid (00020411-0000-0000-C000-000000000046), pointer_default (unique)] interface ITypeLib2 : ITypeLib { typedef [unique] ITypeLib2 *LPTYPELIB2; cpp_quote("") 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); } cpp_quote("") [object, uuid (00020410-0000-0000-C000-000000000046), pointer_default (unique), local] interface ITypeChangeEvents: IUnknown { typedef [unique] ITypeChangeEvents *LPTYPECHANGEEVENTS; cpp_quote("") typedef enum tagCHANGEKIND { CHANGEKIND_ADDMEMBER, CHANGEKIND_DELETEMEMBER, CHANGEKIND_SETNAMES, CHANGEKIND_SETDOCUMENTATION, CHANGEKIND_GENERAL, CHANGEKIND_INVALIDATE, CHANGEKIND_CHANGEFAILED, CHANGEKIND_MAX } CHANGEKIND; cpp_quote("") 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); } cpp_quote("") [object, uuid (1cf2b120-547d-101b-8e65-08002b2bd119), pointer_default (unique)] interface IErrorInfo: IUnknown { typedef [unique] IErrorInfo *LPERRORINFO; cpp_quote("") 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); } cpp_quote("") [object, uuid (22f03340-547d-101b-8e65-08002b2bd119), pointer_default (unique)] interface ICreateErrorInfo: IUnknown { typedef [unique] ICreateErrorInfo *LPCREATEERRORINFO; cpp_quote("") 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); } cpp_quote("") [object, uuid (DF0B3D60-548f-101b-8e65-08002b2bd119), pointer_default (unique)] interface ISupportErrorInfo: IUnknown { typedef [unique] ISupportErrorInfo *LPSUPPORTERRORINFO; cpp_quote("") HRESULT InterfaceSupportsErrorInfo ([in] REFIID riid); } cpp_quote("") [object, uuid (0000002e-0000-0000-C000-000000000046)] interface ITypeFactory : IUnknown { HRESULT CreateFromTypeInfo ([in] ITypeInfo *pTypeInfo,[in] REFIID riid,[out, iid_is (riid)] IUnknown **ppv); } cpp_quote("") [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); } cpp_quote("") [local, object, uuid (0000002f-0000-0000-C000-000000000046)] interface IRecordInfo: IUnknown { typedef [unique] IRecordInfo *LPRECORDINFO; cpp_quote("") 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); } cpp_quote("") [object, uuid (3127ca40-446e-11ce-8135-00aa004bb851), pointer_default (unique)] interface IErrorLog : IUnknown { typedef IErrorLog *LPERRORLOG; cpp_quote("") HRESULT AddError ([in] LPCOLESTR pszPropName,[in] EXCEPINFO *pExcepInfo); } cpp_quote("") [object, uuid (55272a00-42cb-11ce-8135-00aa004bb851), pointer_default (unique)] interface IPropertyBag : IUnknown { typedef IPropertyBag *LPPROPERTYBAG; cpp_quote("") [local] HRESULT Read ([in] LPCOLESTR pszPropName,[in, out] VARIANT *pVar,[in, unique] IErrorLog *pErrorLog); [call_as (Read)] HRESULT RemoteRead ([in] LPCOLESTR pszPropName,[out] VARIANT *pVar,[in, unique] IErrorLog *pErrorLog,[in] DWORD varType,[in] IUnknown *pUnkObj); HRESULT Write ([in] LPCOLESTR pszPropName,[in] VARIANT *pVar); } cpp_quote("#endif")