| /* |
| * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA |
| */ |
| |
| #ifndef DO_NO_IMPORTS |
| import "objidl.idl"; |
| #endif |
| |
| 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_DATADELETED = 0x1000; /* Data in a vector has been deleted */ |
| const USHORT FADF_CREATEVECTOR = 0x2000; /* This array is a vector */ |
| |
| /* 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 { |
| signed 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; |
| LONGLONG llVal; |
| ULONGLONG ullVal; |
| signed 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; |
| LONGLONG *pllVal; |
| ULONGLONG *pullVal; |
| 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; |
| |
| cpp_quote("#if 0") |
| typedef const VARIANT *REFVARIANT; |
| cpp_quote("#elif !defined(_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") |
| |
| 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)] signed 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)] signed 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; |
| } DUMMYUNIONNAME; |
| }; |
| |
| /* 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] ; |
| } DUMMYUNIONNAME; |
| 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_PTR 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_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") |
| |
| 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; |
| } DUMMYUNIONNAME; |
| 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, |
| SYS_WIN64 |
| } 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); |
| } |
| |
| |
| /***************************************************************************** |
| * IErrorLog interface |
| */ |
| [ |
| object, |
| uuid(3127ca40-446e-11ce-8135-00aa004bb851), |
| pointer_default(unique) |
| ] |
| interface IErrorLog : IUnknown |
| { |
| typedef IErrorLog *LPERRORLOG; |
| |
| HRESULT AddError( |
| [in] LPCOLESTR pszPropName, |
| [in] EXCEPINFO *pExcepInfo); |
| } |
| |
| |
| /***************************************************************************** |
| * IPropertyBag interface |
| */ |
| [ |
| object, |
| uuid(55272a00-42cb-11ce-8135-00aa004bb851), |
| pointer_default(unique) |
| ] |
| interface IPropertyBag : IUnknown |
| { |
| typedef IPropertyBag *LPPROPERTYBAG; |
| |
| [local] |
| HRESULT Read( |
| [in] LPCOLESTR pszPropName, |
| [in, out] VARIANT *pVar, |
| [in] IErrorLog *pErrorLog); |
| |
| [call_as(Read)] |
| HRESULT RemoteRead( |
| [in] LPCOLESTR pszPropName, |
| [out] VARIANT *pVar, |
| [in] IErrorLog *pErrorLog, |
| [in] DWORD varType, |
| [in] IUnknown *pUnkObj); |
| |
| HRESULT Write( |
| [in] LPCOLESTR pszPropName, |
| [in] VARIANT *pVar); |
| } |