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

📄 oaidl.idl

📁 vc6.0完整版
💻 IDL
📖 第 1 页 / 共 4 页
字号:
                [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
    } 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
            );
}


cpp_quote("#if ( _MSC_VER >= 800 )")
cpp_quote("#pragma warning(default:4201) /* Nameless struct/union */")
cpp_quote("#endif")

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -