blob: 61a0ecb7d9b9db11529af290bcfc4718ec97d3ad [file] [log] [blame]
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 <winapifamily.h>")
#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")