📄 oaidl.idl
字号:
[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 + -