IDispatch是由OLE自動化協定暴露出來的接口。
基本介紹
- 中文名:IDispatch
- 簡介:IDispatch是由OLE自動化協
- C語言風格:typedef struct IDispatchVtbl
- C++語言風格:IDispatch : public IUnknown
簡介
結構聲明
C語言風格
typedef struct IDispatchVtbl{ BEGIN_INTERFACE HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IDispatch * This, REFIID riid, void **ppvObject); ULONG ( STDMETHODCALLTYPE *AddRef )( IDispatch * This); ULONG ( STDMETHODCALLTYPE *Release )( IDispatch * This); HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( IDispatch * This, UINT *pctinfo); HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( IDispatch * This, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo); HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( IDispatch * This, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId); HRESULT ( STDMETHODCALLTYPE *Invoke )( IDispatch * This, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr); END_INTERFACE} IDispatchVtbl;interface IDispatch{ CONST_VTBL struct IDispatchVtbl *lpVtbl;};
C++語言風格
IDispatch : public IUnknown{public: virtual HRESULT STDMETHODCALLTYPE GetTypeInfoCount( UINT *pctinfo) = 0; virtual HRESULT STDMETHODCALLTYPE GetTypeInfo( UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo) = 0; virtual HRESULT STDMETHODCALLTYPE GetIDsOfNames( REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId) = 0; virtual HRESULT STDMETHODCALLTYPE Invoke( DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr) = 0; };
方法說明
方法 | 描述 |
---|---|
GetIDsOfNames | 將單一的數字或一組可選的參數映射到一組對應的整型DISPID上,這些DISPID隨後可以用來調用Invoke。 |
GetTypeInfo | 得到對象的類型信息,從而可以通過它來得到接口的類型信息。 |
得到對象所提供的類型信息接口的數目(0或1)。 | |
Invoke | 提供對對象暴露出來的屬性和方法的訪問。 |
所需條件
頭檔案 | oaidl.h, oaidl.idl |
庫檔案 | oleaut32.lib, uuid.lib |
Windows Embedded CE | Windows CE 2.0 and later |
Windows Mobile | Windows Mobile Version 5.0 and later |