⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tlbtypes.odl

📁 此源码为vb圣经编码
💻 ODL
📖 第 1 页 / 共 2 页
字号:
[
    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 + -