📄 tlbtypes.odl
字号:
[
uuid(B2C361C0-C2B5-11d3-BC1E-D41203C10000),
helpstring("VBoost: Type Library Types and Interfaces"),
lcid(0x0),
version(1.0)
]
library TLBTypes
{
importlib("stdole2.tlb");
importlib("VBoostTypes6.olb");
interface ITypeInfo;
interface ITypeComp;
typedef VBGUID* REFGUID;
typedef VBGUID* REFIID;
typedef [public] long HREFTYPE;
typedef [public] long MEMBERID;
typedef [public] long SCODEArrayPtr;
typedef [public] long ELEMDESCArrayPtr;
typedef [public] long BSTRArrayPtr;
typedef [public] long MEMBERIDArrayPtr;
typedef [public] long ITypeInfoArrayPtr;
typedef [public] long TLIBATTRPtr;
typedef [public] long TYPEATTRPtr;
typedef [public] long FUNCDESCPtr;
typedef [public] long VARDESCPtr;
typedef [public] long TYPEDESCPtr;
typedef [public] long LPWSTRArrayPtr;
typedef [public] long BSTRPtr;
typedef [public] long DWORDPtr;
typedef [public] long BINDPTR;
typedef enum
{
FUNC_VIRTUAL = 0,
FUNC_PUREVIRTUAL = 1,
FUNC_NONVIRTUAL = 2,
FUNC_STATIC = 3,
FUNC_DISPATCH = 4
} FUNCKIND;
typedef enum
{
VAR_PERINSTANCE = 0,
VAR_STATIC = 1,
VAR_CONST = 2,
VAR_DISPATCH = 3
} VARKIND;
typedef enum
{
DESCKIND_NONE,
DESCKIND_FUNCDESC,
DESCKIND_VARDESC,
DESCKIND_TYPECOMP,
DESCKIND_IMPLICITAPPOBJ
} DESCKIND;
typedef enum
{
SYS_WIN16,
SYS_WIN32,
SYS_MAC
} SYSKIND;
typedef enum
{
TKIND_ENUM = 0,
TKIND_RECORD = 1,
TKIND_MODULE = 2,
TKIND_INTERFACE = 3,
TKIND_DISPATCH = 4,
TKIND_COCLASS = 5,
TKIND_ALIAS = 6,
TKIND_UNION = 7,
TKIND_MAX = 8
} TYPEKIND;
typedef enum
{
INVOKE_UNKNOWN = 0x0,
INVOKE_FUNC = 0x1,
INVOKE_PROPERTYGET = 0x2,
INVOKE_PROPERTYPUT = 0x4,
INVOKE_PROPERTYPUTREF = 0x8,
} INVOKEKIND;
typedef enum
{
CC_FASTCALL = 0,
CC_CDECL = 1,
CC_MSCPASCAL = 2,
CC_PASCAL = 2,
CC_MACPASCAL = 3,
CC_STDCALL = 4,
CC_FPFASTCALL = 5,
CC_SYSCALL = 6,
CC_MPWCDECL = 7,
CC_MPWPASCAL = 8,
CC_MAX = 9
} CALLCONV;
typedef enum
{
TYPEFLAG_NONE = 0,
TYPEFLAG_FAPPOBJECT=1,
TYPEFLAG_FCANCREATE=2,
TYPEFLAG_FLICENSED=4,
TYPEFLAG_FPREDECLID=8,
TYPEFLAG_FHIDDEN=0x10,
TYPEFLAG_FCONTROL=0x20,
TYPEFLAG_FDUAL=0x40,
TYPEFLAG_FNONEXTENSIBLE=0x80,
TYPEFLAG_FOLEAUTOMATION=0x100,
TYPEFLAG_FRESTRICTED=0x200,
TYPEFLAG_FAGGREGATABLE = 0x400,
TYPEFLAG_FREPLACEABLE = 0x800,
TYPEFLAG_FDISPATCHABLE = 0x1000,
TYPEFLAG_FREVERSEBIND = 0x2000,
TYPEFLAG_FPROXY = 0x4000,
} TYPEFLAGS;
typedef struct
{
long lptdesc_lpadesc_hreftype;
short vt;
} TYPEDESC;
typedef struct
{
ULONG cBytes;
VARIANT varDefaultValue;
} PARAMDESCEX;
typedef struct
{
long pparamdescex;
USHORT wParamFlags;
} PARAMDESC;
typedef struct
{
ULONG dwReserved;
USHORT wIDLFlags;
} IDLDESC;
typedef struct
{
TYPEDESC tdesc; // the type of the element
PARAMDESC paramdesc_idldesc; // info about the parameter or idldesc
} ELEMDESC;
typedef struct
{
MEMBERID memid;
SCODEArrayPtr lprgscode;
ELEMDESCArrayPtr lprgelemdescParam;
FUNCKIND funckind;
INVOKEKIND invkind;
CALLCONV callconv;
short cParams;
short cParamsOpt;
short oVft;
short cScodes;
ELEMDESC elemdescFunc;
WORD wFuncFlags;
} FUNCDESC;
typedef struct
{
VBGUID 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;
typedef struct
{
MEMBERID memid;
LPOLESTR lpstrSchema;
long oInst_lpvarValue;
ELEMDESC elemdescVar;
WORD wVarFlags;
VARKIND varkind;
} VARDESC;
typedef struct
{
VBGUID guid;
LCID lcid;
SYSKIND syskind;
WORD wMajorVerNum;
WORD wMinorVerNum;
WORD wLibFlags;
} TLIBATTR;
typedef struct
{
VBGUID guid;
VARIANT varValue;
} CUSTDATAITEM;
typedef [public] long CUSTDATAITEMArrayPtr;
typedef struct
{
DWORD cCustData;
CUSTDATAITEMArrayPtr prgCustData;
} CUSTDATA;
[
uuid(00020402-0000-0000-C000-000000000046),
odl
]
interface ITypeLib : IUnknown
{
UINT GetTypeInfoCount( void);
HRESULT GetTypeInfo(
[in] UINT index,
[out,retval] ITypeInfo **ppTInfo);
HRESULT GetTypeInfoType(
[in] UINT index,
[out,retval] TYPEKIND *pTKind);
HRESULT GetTypeInfoOfGuid(
[in] REFGUID guid,
[out,retval] ITypeInfo **ppTinfo);
HRESULT GetLibAttr(
[out,retval] TLIBATTRPtr *ppTLibAttr);
HRESULT GetTypeComp(
[out,retval] ITypeComp **ppTComp);
HRESULT GetDocumentation(
[in] INT Index,
[in,defaultvalue(0)] BSTRPtr pBstrName,
[in,defaultvalue(0)] BSTRPtr pBstrDocString,
[in,defaultvalue(0)] DWORDPtr pdwHelpContext,
[in,defaultvalue(0)] BSTRPtr pBstrHelpFile);
HRESULT IsName(
[in] LPOLESTR szNameBuf,
[in] ULONG lHashVal,
[out,retval] BOOL *pfName);
HRESULT FindName(
[in] LPOLESTR szNameBuf,
[in] ULONG lHashVal,
[in] ITypeInfoArrayPtr ppTInfo,
[in] MEMBERIDArrayPtr rgMemId,
[in,out] USHORT *pcFound);
void ReleaseTLibAttr(
[in] TLIBATTRPtr pTLibAttr);
}
[
uuid(00020411-0000-0000-C000-000000000046),
odl
]
interface ITypeLib2 : ITypeLib
{
HRESULT GetCustData(
[in] REFGUID guid,
[out,retval] VARIANT *pVarVal);
HRESULT GetLibStatistics(
[out] ULONG *pcUniqueNames,
[out] ULONG *pcchUniqueNames);
HRESULT GetDocumentation2(
[in] INT Index,
[in,defaultvalue(0)] LCID lcid,
[in,defaultvalue(0)] BSTRPtr pbstrHelpString,
[in,defaultvalue(0)] DWORDPtr pdwHelpStringContext,
[in,defaultvalue(0)] BSTRPtr pbstrHelpStringDll);
HRESULT GetAllCustData(
[out,retval] CUSTDATA *pCustData);
};
[
uuid(00020403-0000-0000-C000-000000000046),
odl
]
interface ITypeComp : IUnknown
{
HRESULT Bind(
[in] LPWSTR szName,
[in] ULONG lHashVal,
[in] USHORT wFlags,
[out] ITypeInfo** ppTInfo,
[out] DESCKIND* pDescKind,
[out] BINDPTR* pBindPtr);
HRESULT BindType(
[in] LPWSTR szName,
[in] ULONG lHashVal,
[out] ITypeInfo** ppTInfo,
[out] ITypeComp** ppTComp);
}
[
uuid(00020401-0000-0000-C000-000000000046),
odl
]
interface ITypeInfo : IUnknown
{
HRESULT GetTypeAttr(
[out,retval] TYPEATTRPtr* ppTypeAttr);
HRESULT GetTypeComp(
[out,retval] ITypeComp **ppTComp);
HRESULT GetFuncDesc(
[in] UINT index,
[out,retval] FUNCDESCPtr* ppFuncDesc);
HRESULT GetVarDesc(
[in] UINT index,
[out,retval] VARDESCPtr* ppVarDesc);
HRESULT GetNames(
[in] MEMBERID memid,
[in] BSTRArrayPtr rgBstrNames,
[in] UINT cMaxNames,
[out,retval] UINT *pcNames);
HRESULT GetRefTypeOfImplType(
[in] UINT index,
[out,retval] HREFTYPE *pRefType);
HRESULT GetImplTypeFlags(
[in] UINT index,
[out,retval] INT *pImplTypeFlags);
HRESULT GetIDsOfNames(
[in] LPWSTRArrayPtr rgszNames,
[in] UINT cNames,
[in] MEMBERIDArrayPtr pMemId);
[restricted]
HRESULT Invoke(
[in] PVOID pvInstance,
[in] MEMBERID memid,
[in] WORD wFlags,
[out,in] VBDISPPARAMS *pDispParams,
[out] VARIANT *pVarResult,
[out] VBEXCEPINFO *pExcepInfo,
[out] UINT *puArgErr);
HRESULT GetDocumentation(
[in] MEMBERID memid,
[in,defaultvalue(0)] BSTRPtr pBstrName,
[in,defaultvalue(0)] BSTRPtr pBstrDocString,
[in,defaultvalue(0)] DWORDPtr pdwHelpContext,
[in,defaultvalue(0)] BSTRPtr pBstrHelpFile);
HRESULT GetDllEntry(
[in] MEMBERID memid,
[in] INVOKEKIND invKind,
[out] BSTR *pBstrDllName,
[out] BSTR *pBstrName,
[out] WORD *pwOrdinal);
HRESULT GetRefTypeInfo(
[in] HREFTYPE hRefType,
[out,retval] ITypeInfo **ppTInfo);
HRESULT AddressOfMember(
[in] MEMBERID memid,
[in] INVOKEKIND invKind,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -