|
|
//+--------------------------------------------------------------------------- // // Microsoft Windows // Copyright (c) Microsoft Corporation. All rights reserved. // // File: oaidl.idl // //----------------------------------------------------------------------------
cpp_quote("//+-------------------------------------------------------------------------") cpp_quote("//") cpp_quote("// Microsoft Windows") cpp_quote("// Copyright (c) Microsoft Corporation. All rights reserved.") cpp_quote("//") cpp_quote("//--------------------------------------------------------------------------") cpp_quote("#if ( _MSC_VER >= 800 )") cpp_quote("#if _MSC_VER >= 1200") cpp_quote("#pragma warning(push)") cpp_quote("#endif") cpp_quote("#pragma warning(disable:4201) /* Nameless struct/union */") cpp_quote("#endif") cpp_quote("#if ( _MSC_VER >= 1020 )") cpp_quote("#pragma once") cpp_quote("#endif")
#ifndef DO_NO_IMPORTS import "objidl.idl"; #endif
interface ICreateTypeInfo; interface ICreateTypeInfo2; interface ICreateTypeLib; interface ICreateTypeLib2; interface IDispatch; interface IEnumVARIANT; interface ITypeComp; interface ITypeInfo; interface ITypeInfo2; interface ITypeLib; interface ITypeLib2; interface ITypeChangeEvents; interface IErrorInfo; interface ICreateErrorInfo; interface ISupportErrorInfo; interface ITypeFactory; interface ITypeMarshal; interface IRecordInfo;
[ version(1.0), pointer_default(unique) ]
interface IOleAutomationTypes {
typedef CY CURRENCY;
// ######################################################################### // SAFEARRAY // #########################################################################
typedef struct tagSAFEARRAYBOUND { ULONG cElements; LONG lLbound; } SAFEARRAYBOUND, * LPSAFEARRAYBOUND;
cpp_quote("/* the following is what MIDL knows how to remote */")
// Forward references. 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; /* array is allocated on the stack */ const USHORT FADF_STATIC = 0x0002; /* array is staticly allocated */ const USHORT FADF_EMBEDDED = 0x0004; /* array is embedded in a structure */ const USHORT FADF_FIXEDSIZE = 0x0010; /* may not be resized or reallocated */ const USHORT FADF_RECORD = 0x0020; /* an array of records */ const USHORT FADF_HAVEIID = 0x0040; /* with FADF_DISPATCH, FADF_UNKNOWN */ /* array has an IID for interfaces */ const USHORT FADF_HAVEVARTYPE= 0x0080; /* array has a VT type */ const USHORT FADF_BSTR = 0x0100; /* an array of BSTRs */ const USHORT FADF_UNKNOWN = 0x0200; /* an array of IUnknown* */ const USHORT FADF_DISPATCH = 0x0400; /* an array of IDispatch* */ const USHORT FADF_VARIANT = 0x0800; /* an array of VARIANTs */ const USHORT FADF_RESERVED = 0xF008; /* reserved bits */
// ######################################################################### // VARIANT // #########################################################################
cpp_quote("/* VARIANT STRUCTURE") cpp_quote(" *") cpp_quote(" * VARTYPE vt;") cpp_quote(" * WORD wReserved1;") cpp_quote(" * WORD wReserved2;") cpp_quote(" * WORD wReserved3;") cpp_quote(" * union {") cpp_quote(" * LONGLONG VT_I8") cpp_quote(" * LONG VT_I4") cpp_quote(" * BYTE VT_UI1") cpp_quote(" * SHORT VT_I2") cpp_quote(" * FLOAT VT_R4") cpp_quote(" * DOUBLE VT_R8") cpp_quote(" * VARIANT_BOOL VT_BOOL") cpp_quote(" * SCODE VT_ERROR") cpp_quote(" * CY VT_CY") cpp_quote(" * DATE VT_DATE") cpp_quote(" * BSTR VT_BSTR") cpp_quote(" * IUnknown * VT_UNKNOWN") cpp_quote(" * IDispatch * VT_DISPATCH") cpp_quote(" * SAFEARRAY * VT_ARRAY") cpp_quote(" * BYTE * VT_BYREF|VT_UI1") cpp_quote(" * SHORT * VT_BYREF|VT_I2") cpp_quote(" * LONG * VT_BYREF|VT_I4") cpp_quote(" * LONGLONG * VT_BYREF|VT_I8") cpp_quote(" * FLOAT * VT_BYREF|VT_R4") cpp_quote(" * DOUBLE * VT_BYREF|VT_R8") cpp_quote(" * VARIANT_BOOL * VT_BYREF|VT_BOOL") cpp_quote(" * SCODE * VT_BYREF|VT_ERROR") cpp_quote(" * CY * VT_BYREF|VT_CY") cpp_quote(" * DATE * VT_BYREF|VT_DATE") cpp_quote(" * BSTR * VT_BYREF|VT_BSTR") cpp_quote(" * IUnknown ** VT_BYREF|VT_UNKNOWN") cpp_quote(" * IDispatch ** VT_BYREF|VT_DISPATCH") cpp_quote(" * SAFEARRAY ** VT_BYREF|VT_ARRAY") cpp_quote(" * VARIANT * VT_BYREF|VT_VARIANT") cpp_quote(" * PVOID VT_BYREF (Generic ByRef)") cpp_quote(" * CHAR VT_I1") cpp_quote(" * USHORT VT_UI2") cpp_quote(" * ULONG VT_UI4") cpp_quote(" * ULONGLONG VT_UI8") cpp_quote(" * INT VT_INT") cpp_quote(" * UINT VT_UINT") cpp_quote(" * DECIMAL * VT_BYREF|VT_DECIMAL") cpp_quote(" * CHAR * VT_BYREF|VT_I1") cpp_quote(" * USHORT * VT_BYREF|VT_UI2") cpp_quote(" * ULONG * VT_BYREF|VT_UI4") cpp_quote(" * ULONGLONG * VT_BYREF|VT_UI8") cpp_quote(" * INT * VT_BYREF|VT_INT") cpp_quote(" * UINT * VT_BYREF|VT_UINT") cpp_quote(" * }") cpp_quote(" */")
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 { LONGLONG llVal; /* VT_I8 */ LONG lVal; /* VT_I4 */ BYTE bVal; /* VT_UI1 */ SHORT iVal; /* VT_I2 */ FLOAT fltVal; /* VT_R4 */ DOUBLE dblVal; /* VT_R8 */ VARIANT_BOOL boolVal; /* VT_BOOL */ _VARIANT_BOOL bool; /* (obsolete) */ SCODE scode; /* VT_ERROR */ CY cyVal; /* VT_CY */ DATE date; /* VT_DATE */ BSTR bstrVal; /* VT_BSTR */ IUnknown * punkVal; /* VT_UNKNOWN */ IDispatch * pdispVal; /* VT_DISPATCH */ SAFEARRAY * parray; /* VT_ARRAY */ BYTE * pbVal; /* VT_BYREF|VT_UI1 */ SHORT * piVal; /* VT_BYREF|VT_I2 */ LONG * plVal; /* VT_BYREF|VT_I4 */ LONGLONG * pllVal; /* VT_BYREF|VT_I8 */ FLOAT * pfltVal; /* VT_BYREF|VT_R4 */ DOUBLE * pdblVal; /* VT_BYREF|VT_R8 */ VARIANT_BOOL *pboolVal; /* VT_BYREF|VT_BOOL */ _VARIANT_BOOL *pbool; /* (obsolete) */ SCODE * pscode; /* VT_BYREF|VT_ERROR */ CY * pcyVal; /* VT_BYREF|VT_CY */ DATE * pdate; /* VT_BYREF|VT_DATE */ BSTR * pbstrVal; /* VT_BYREF|VT_BSTR */ IUnknown ** ppunkVal; /* VT_BYREF|VT_UNKNOWN */ IDispatch ** ppdispVal; /* VT_BYREF|VT_DISPATCH */ SAFEARRAY ** pparray; /* VT_BYREF|VT_ARRAY */ VARIANT * pvarVal; /* VT_BYREF|VT_VARIANT */ PVOID byref; /* Generic ByRef */ CHAR cVal; /* VT_I1 */ USHORT uiVal; /* VT_UI2 */ ULONG ulVal; /* VT_UI4 */ ULONGLONG ullVal; /* VT_UI8 */ INT intVal; /* VT_INT */ UINT uintVal; /* VT_UINT */ DECIMAL * pdecVal; /* VT_BYREF|VT_DECIMAL */ CHAR * pcVal; /* VT_BYREF|VT_I1 */ USHORT * puiVal; /* VT_BYREF|VT_UI2 */ ULONG * pulVal; /* VT_BYREF|VT_UI4 */ ULONGLONG * pullVal; /* VT_BYREF|VT_UI8 */ INT * pintVal; /* VT_BYREF|VT_INT */ UINT * puintVal; /* VT_BYREF|VT_UINT */ struct __tagBRECORD { PVOID pvRecord; IRecordInfo * pRecInfo; } __VARIANT_NAME_4; /* VT_RECORD */ } __VARIANT_NAME_3; } __VARIANT_NAME_2;
DECIMAL decVal; } __VARIANT_NAME_1; };
typedef VARIANT * LPVARIANT; typedef VARIANT VARIANTARG; typedef VARIANT * LPVARIANTARG;
cpp_quote("/* the following is what MIDL knows how to remote */")
struct _wireBRECORD { ULONG fFlags; ULONG clSize; IRecordInfo * pRecInfo; [size_is(clSize)] byte * pRecord; };
struct _wireVARIANT { DWORD clSize; /* wire buffer length in units of hyper (int64) */ DWORD rpcReserved; /* for future use */ USHORT vt; USHORT wReserved1; USHORT wReserved2; USHORT wReserved3; [switch_type(ULONG), switch_is(vt)] union { [case(VT_I8)] LONGLONG llVal; /* VT_I8 */ [case(VT_I4)] LONG lVal; /* VT_I4 */ [case(VT_UI1)] BYTE bVal; /* VT_UI1 */ [case(VT_I2)] SHORT iVal; /* VT_I2 */ [case(VT_R4)] FLOAT fltVal; /* VT_R4 */ [case(VT_R8)] DOUBLE dblVal; /* VT_R8 */ [case(VT_BOOL)] VARIANT_BOOL boolVal; /* VT_BOOL */ [case(VT_ERROR)] SCODE scode; /* VT_ERROR */ [case(VT_CY)] CY cyVal; /* VT_CY */ [case(VT_DATE)] DATE date; /* VT_DATE */ [case(VT_BSTR)] wireBSTR bstrVal; /* VT_BSTR */ [case(VT_UNKNOWN)] IUnknown * punkVal; /* VT_UNKNOWN */ [case(VT_DISPATCH)] IDispatch * pdispVal; /* VT_DISPATCH */ [case(VT_ARRAY)] wirePSAFEARRAY parray; /* VT_ARRAY */
[case(VT_RECORD, VT_RECORD|VT_BYREF)] wireBRECORD brecVal; /* VT_RECORD */
[case(VT_UI1|VT_BYREF)] BYTE * pbVal; /* VT_BYREF|VT_UI1 */ [case(VT_I2|VT_BYREF)] SHORT * piVal; /* VT_BYREF|VT_I2 */ [case(VT_I4|VT_BYREF)] LONG * plVal; /* VT_BYREF|VT_I4 */ [case(VT_I8|VT_BYREF)] LONGLONG * pllVal; /* VT_BYREF|VT_I8 */ [case(VT_R4|VT_BYREF)] FLOAT * pfltVal; /* VT_BYREF|VT_R4 */ [case(VT_R8|VT_BYREF)] DOUBLE * pdblVal; /* VT_BYREF|VT_R8 */ [case(VT_BOOL|VT_BYREF)] VARIANT_BOOL *pboolVal; /* VT_BYREF|VT_BOOL */ [case(VT_ERROR|VT_BYREF)] SCODE * pscode; /* VT_BYREF|VT_ERROR */ [case(VT_CY|VT_BYREF)] CY * pcyVal; /* VT_BYREF|VT_CY */ [case(VT_DATE|VT_BYREF)] DATE * pdate; /* VT_BYREF|VT_DATE */ [case(VT_BSTR|VT_BYREF)] wireBSTR * pbstrVal; /* VT_BYREF|VT_BSTR */ [case(VT_UNKNOWN|VT_BYREF)] IUnknown ** ppunkVal; /* VT_BYREF|VT_UNKNOWN */ [case(VT_DISPATCH|VT_BYREF)] IDispatch ** ppdispVal; /* VT_BYREF|VT_DISPATCH */ [case(VT_ARRAY|VT_BYREF)] wirePSAFEARRAY *pparray; /* VT_BYREF|VT_ARRAY */ [case(VT_VARIANT|VT_BYREF)] wireVARIANT * pvarVal; /* VT_BYREF|VT_VARIANT */
[case(VT_I1)] CHAR cVal; /* VT_I1 */ [case(VT_UI2)] USHORT uiVal; /* VT_UI2 */ [case(VT_UI4)] ULONG ulVal; /* VT_UI4 */ [case(VT_UI8)] ULONGLONG ullVal; /* VT_UI8 */ [case(VT_INT)] INT intVal; /* VT_INT */ [case(VT_UINT)] UINT uintVal; /* VT_UINT */ [case(VT_DECIMAL)] DECIMAL decVal; /* VT_DECIMAL */
[case(VT_BYREF|VT_DECIMAL)] DECIMAL * pdecVal; /* VT_BYREF|VT_DECIMAL */ [case(VT_BYREF|VT_I1)] CHAR * pcVal; /* VT_BYREF|VT_I1 */ [case(VT_BYREF|VT_UI2)] USHORT * puiVal; /* VT_BYREF|VT_UI2 */ [case(VT_BYREF|VT_UI4)] ULONG * pulVal; /* VT_BYREF|VT_UI4 */ [case(VT_BYREF|VT_UI8)] ULONGLONG * pullVal; /* VT_BYREF|VT_UI8 */ [case(VT_BYREF|VT_INT)] INT * pintVal; /* VT_BYREF|VT_INT */ [case(VT_BYREF|VT_UINT)] UINT * puintVal; /* VT_BYREF|VT_UINT */ [case(VT_EMPTY)] ; /* nothing */ [case(VT_NULL)] ; /* nothing */ }; };
//######################################################################## // End of VARIANT & SAFEARRAY //########################################################################
//TypeInfo stuff.
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 /* end of enum marker */ } TYPEKIND;
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;
typedef struct tagARRAYDESC { TYPEDESC tdescElem; /* element type */ USHORT cDims; /* dimension count */ [size_is(cDims)] SAFEARRAYBOUND rgbounds[]; /* var len array of bounds */ } ARRAYDESC;
// parameter description
typedef struct tagPARAMDESCEX { ULONG cBytes; /* size of this structure */ VARIANTARG varDefaultValue; /* default value of this parameter */ } PARAMDESCEX, * LPPARAMDESCEX;
typedef struct tagPARAMDESC { LPPARAMDESCEX pparamdescex; /* valid if PARAMFLAG_FHASDEFAULT bit is set */ USHORT wParamFlags; /* IN, OUT, etc */ } 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; /* IN, OUT, etc */ } 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("//;begin_internal") cpp_quote("#if 0") cpp_quote("/* the following is what MIDL knows how to remote */")
typedef struct tagELEMDESC { /* a format that MIDL likes */ TYPEDESC tdesc; /* the type of the element */ PARAMDESC paramdesc; /* IDLDESC is a subset of PARAMDESC */ } ELEMDESC;
cpp_quote("#else /* 0 */") cpp_quote("//;end_internal") cpp_quote("typedef struct tagELEMDESC {") cpp_quote(" TYPEDESC tdesc; /* the type of the element */") cpp_quote(" union {") cpp_quote(" IDLDESC idldesc; /* info for remoting the element */") cpp_quote(" PARAMDESC paramdesc; /* info about the parameter */") cpp_quote(" };") cpp_quote("} ELEMDESC, * LPELEMDESC;") cpp_quote("//;begin_internal") cpp_quote("#endif /* 0 */") cpp_quote("//;end_internal")
typedef struct tagTYPEATTR { GUID guid; /* the GUID of the TypeInfo */ LCID lcid; /* locale of member names and doc strings */ DWORD dwReserved; MEMBERID memidConstructor; /* ID of constructor, MEMBERID_NIL if none */ MEMBERID memidDestructor; /* ID of destructor, MEMBERID_NIL if none */ LPOLESTR lpstrSchema; ULONG cbSizeInstance; /* the size of an instance of this type */ TYPEKIND typekind; /* the kind of type this typeinfo describes */ WORD cFuncs; /* number of functions */ WORD cVars; /* number of variables / data members */ WORD cImplTypes; /* number of implemented interfaces */ WORD cbSizeVft; /* the size of this types virtual func table */ WORD cbAlignment; /* specifies the alignment requirements for an instance of this type, 0 = align on 64k boundary 1 = byte align 2 = word align 4 = dword align... */ WORD wTypeFlags; WORD wMajorVerNum; /* major version number */ WORD wMinorVerNum; /* minor version number */ TYPEDESC tdescAlias; /* if typekind == TKIND_ALIAS this field specifies the type for which this type is an alias */ IDLDESC idldescType; /* IDL attributes of the described type */ } TYPEATTR, * LPTYPEATTR;
typedef struct tagDISPPARAMS { [size_is(cArgs)] VARIANTARG * rgvarg; [size_is(cNamedArgs)] DISPID * rgdispidNamedArgs; UINT cArgs; UINT cNamedArgs; } DISPPARAMS;
cpp_quote("//;begin_internal") cpp_quote("#if 0") cpp_quote("/* the following is what MIDL knows how to remote */")
midl_pragma warning( disable: 2395) // polymorphic types not supported in the TLB
typedef struct tagEXCEPINFO { WORD wCode; /* An error code describing the error. */ WORD wReserved; BSTR bstrSource; /* A source of the exception */ BSTR bstrDescription; /* A description of the error */ BSTR bstrHelpFile; /* Fully qualified drive, path, and file name */ DWORD dwHelpContext; /* help context of topic within the help file */ // We can use ULONG_PTR here, because EXCEPINFO is marshalled by RPC // RPC will marshal pfnDeferredFillIn. ULONG_PTR pvReserved; ULONG_PTR pfnDeferredFillIn; SCODE scode; } EXCEPINFO;
cpp_quote("#else /* 0 */") cpp_quote("//;end_internal") 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("//;begin_internal") cpp_quote("#endif /* 0 */") cpp_quote("//;end_internal")
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 /* end of enum marker */ } 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; /* array of param types */ 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;
/* IMPLTYPE Flags */ 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_type(VARKIND), switch_is(varkind)] union { /* offset of variable within the instance */ [case(VAR_PERINSTANCE, VAR_DISPATCH, VAR_STATIC)] ULONG oInst; [case(VAR_CONST)] VARIANT * lpvarValue; /* the value of the constant */ }; ELEMDESC elemdescVar; WORD wVarFlags; VARKIND varkind; } VARDESC, * LPVARDESC;
typedef enum tagTYPEFLAGS { TYPEFLAG_FAPPOBJECT = 0x01, TYPEFLAG_FCANCREATE = 0x02, TYPEFLAG_FLICENSED = 0x04, TYPEFLAG_FPREDECLID = 0x08, TYPEFLAG_FHIDDEN = 0x10, TYPEFLAG_FCONTROL = 0x20, TYPEFLAG_FDUAL = 0x40, TYPEFLAG_FNONEXTENSIBLE = 0x80, TYPEFLAG_FOLEAUTOMATION = 0x100, TYPEFLAG_FRESTRICTED = 0x200, TYPEFLAG_FAGGREGATABLE = 0x400, TYPEFLAG_FREPLACEABLE = 0x800, TYPEFLAG_FDISPATCHABLE = 0x1000, TYPEFLAG_FREVERSEBIND = 0x2000, TYPEFLAG_FPROXY = 0x4000 } TYPEFLAGS;
typedef enum tagFUNCFLAGS { FUNCFLAG_FRESTRICTED = 0x1, FUNCFLAG_FSOURCE = 0x2, FUNCFLAG_FBINDABLE = 0x4, FUNCFLAG_FREQUESTEDIT = 0x8, FUNCFLAG_FDISPLAYBIND = 0x10, FUNCFLAG_FDEFAULTBIND = 0x20, FUNCFLAG_FHIDDEN = 0x40, FUNCFLAG_FUSESGETLASTERROR = 0x80, FUNCFLAG_FDEFAULTCOLLELEM = 0x100, FUNCFLAG_FUIDEFAULT = 0x200, FUNCFLAG_FNONBROWSABLE = 0x400, FUNCFLAG_FREPLACEABLE = 0x800, FUNCFLAG_FIMMEDIATEBIND = 0x1000 } FUNCFLAGS;
typedef enum tagVARFLAGS { VARFLAG_FREADONLY = 0x1, VARFLAG_FSOURCE = 0x2, VARFLAG_FBINDABLE = 0x4, VARFLAG_FREQUESTEDIT = 0x8, VARFLAG_FDISPLAYBIND = 0x10, VARFLAG_FDEFAULTBIND = 0x20, VARFLAG_FHIDDEN = 0x40, VARFLAG_FRESTRICTED = 0x80, VARFLAG_FDEFAULTCOLLELEM = 0x100, VARFLAG_FUIDEFAULT = 0x200, VARFLAG_FNONBROWSABLE = 0x400, VARFLAG_FREPLACEABLE = 0x800, VARFLAG_FIMMEDIATEBIND = 0x1000 } VARFLAGS;
typedef [wire_marshal(DWORD)] struct tagCLEANLOCALSTORAGE { IUnknown * pInterface; /* interface that is responsible for storage */ PVOID pStorage; /* the storage being managed by interface */ DWORD flags; /* which interface, what storage */ } CLEANLOCALSTORAGE;
typedef struct tagCUSTDATAITEM { GUID guid; /* guid identifying this custom data item */ VARIANTARG varValue; /* value of this custom data item */ } CUSTDATAITEM, * LPCUSTDATAITEM;
typedef struct tagCUSTDATA { DWORD cCustData; /* number of custom data items in rgCustData */ [size_is(cCustData)] LPCUSTDATAITEM prgCustData; /* array of custom data items */ } CUSTDATA, * LPCUSTDATA;
}
[ object, uuid(00020405-0000-0000-C000-000000000046), pointer_default(unique), local ]
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((UINT) cNames)] [in] 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 );
}
[ object, uuid(0002040E-0000-0000-C000-000000000046), pointer_default(unique), local ]
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( void );
HRESULT SetName( [in] LPOLESTR szName );
}
[ object, uuid(00020406-0000-0000-C000-000000000046), pointer_default(unique), local ]
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( void ); }
[ 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 ); }
[ object, uuid(00020400-0000-0000-C000-000000000046), pointer_default(unique) ]
interface IDispatch : IUnknown { typedef [unique] IDispatch * LPDISPATCH;
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 );
cpp_quote("/* DISPID reserved to indicate an \"unknown\" name */") cpp_quote("/* only reserved for data members (properties); reused as a method dispid below */") const DISPID DISPID_UNKNOWN = -1;
cpp_quote("/* DISPID reserved for the \"value\" property */") const DISPID DISPID_VALUE = 0;
cpp_quote("/* The following DISPID is reserved to indicate the param") cpp_quote(" * that is the right-hand-side (or \"put\" value) of a PropertyPut") cpp_quote(" */") const DISPID DISPID_PROPERTYPUT = -3;
cpp_quote("/* DISPID reserved for the standard \"NewEnum\" method */") const DISPID DISPID_NEWENUM = -4;
cpp_quote("/* DISPID reserved for the standard \"Evaluate\" method */") const DISPID DISPID_EVALUATE = -5;
const DISPID DISPID_CONSTRUCTOR = -6;
const DISPID DISPID_DESTRUCTOR = -7;
const DISPID DISPID_COLLECT = -8;
cpp_quote("/* The range -500 through -999 is reserved for Controls */") cpp_quote("/* The range 0x80010000 through 0x8001FFFF is reserved for Controls */") cpp_quote("/* The range -5000 through -5499 is reserved for ActiveX Accessability */") cpp_quote("/* The range -2000 through -2499 is reserved for VB5 */") cpp_quote("/* The range -3900 through -3999 is reserved for Forms */") cpp_quote("/* The range -5500 through -5550 is reserved for Forms */") cpp_quote("/* The remainder of the negative DISPIDs are reserved for future use */")
}
[ object, uuid(00020404-0000-0000-C000-000000000046), pointer_default(unique) ]
interface IEnumVARIANT : IUnknown { typedef [unique] IEnumVARIANT* LPENUMVARIANT;
[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 ); }
[ 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( 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 ); }
[ 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 [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 [unique] ITypeLib * LPTYPELIB;
typedef struct tagTLIBATTR { GUID guid; LCID lcid; SYSKIND syskind; WORD wMajorVerNum; WORD wMinorVerNum; WORD wLibFlags; } TLIBATTR, * LPTLIBATTR;
[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 ); }
[ 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 ); }
[ object, uuid(00020410-0000-0000-C000-000000000046), pointer_default(unique), local ]
interface ITypeChangeEvents: IUnknown { typedef [unique] ITypeChangeEvents * LPTYPECHANGEEVENTS;
// notification messages used by the dynamic typeinfo protocol. 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 ); }
[ object, uuid(3127CA40-446E-11CE-8135-00AA004BB851), pointer_default(unique) ]
interface IErrorLog : IUnknown { typedef IErrorLog * LPERRORLOG;
HRESULT AddError( [in] LPCOLESTR pszPropName, [in] EXCEPINFO * pExcepInfo ); }
[ 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 ); }
cpp_quote("#if ( _MSC_VER >= 800 )") cpp_quote("#if _MSC_VER >= 1200") cpp_quote("#pragma warning(pop)") cpp_quote("#else") cpp_quote("#pragma warning(default:4201) /* Nameless struct/union */") cpp_quote("#endif") cpp_quote("#endif")
|