IDispatchImpl 類別
提供雙重介面部分的預設實作 IDispatch
。
重要
這個類別及其成員不能用於在 Windows 執行階段 中執行的應用程式。
語法
template<class T,
const IID* piid= &__uuidof(T),
const GUID* plibid = &CAtlModule::m_libid,
WORD wMajor = 1,
WORD wMinor = 0,
class tihclass = CComTypeInfoHolder>
class ATL_NO_VTABLE IDispatchImpl : public T
參數
T
[in]雙重介面。
piid
[in]T IID 的指標。
plibid
[in]類型連結庫的 LIBID 指標,其中包含介面的相關信息。 根據預設,會傳遞伺服器層級類型庫。
wMajor
[in]類型連結庫的主要版本。 根據預設,值為1。
wMinor
[in]類型連結庫的次要版本。 根據預設,值為 0。
tihclass
[in]用來管理 T 型別信息的類別。根據預設,值為 CComTypeInfoHolder
。
成員
公用建構函式
名稱 | 描述 |
---|---|
IDispatchImpl::IDispatchImpl | 建構函式。 呼叫 AddRef 受保護的成員變數,以管理雙重介面的類型資訊。 此解構函式會呼叫 Release 。 |
公用方法
名稱 | 描述 |
---|---|
IDispatchImpl::GetIDsOfNames | 將一組名稱對應至一組對應的分派識別項 (Dispatch Identifier)。 |
IDispatchImpl::GetTypeInfo | 擷取雙重介面的類型資訊。 |
IDispatchImpl::GetTypeInfoCount | 判斷雙重介面是否有可用的類型資訊。 |
IDispatchImpl::Invoke | 提供對雙重介面所公開之方法和屬性的存取。 |
備註
IDispatchImpl
提供物件上任何雙重介面部分的預設實 IDispatch
作。 雙重介面衍生自 IDispatch
,且只使用與自動化相容的類型。 如同 dispinterface,雙重介面支援早期系結和晚期系結;不過,雙重介面也支援 vtable 系結。
下列範例示範的一般實作 IDispatchImpl
。
class ATL_NO_VTABLE CBeeper :
public CComObjectRootEx<CComSingleThreadModel>,
public CComCoClass<CBeeper, &CLSID_Beeper>,
public IDispatchImpl<IBeeper, &IID_IBeeper, &LIBID_NVC_ATL_COMLib, /*wMajor =*/ 1, /*wMinor =*/ 0>
根據預設,類別IDispatchImpl
會在登錄中查閱 T 的類型資訊。 若要實作未註冊的介面,您可以使用 IDispatchImpl
類別,而不需使用預先定義的版本號碼來存取登錄。 如果您建立的物件IDispatchImpl
0xFFFF做為 wMajor 的值,並將 0xFFFF 做為 wMinor 的值,類別IDispatchImpl
會從 .dll 檔案擷取類型庫,而不是登錄。
IDispatchImpl
包含類型的靜態成員 CComTypeInfoHolder
,可管理雙重介面的類型資訊。 如果您有多個實作相同雙重介面的物件,則只會使用 一個 實例 CComTypeInfoHolder
。
繼承階層架構
T
IDispatchImpl
需求
標頭: atlcom.h
IDispatchImpl::GetIDsOfNames
將一組名稱對應至一組對應的分派識別項 (Dispatch Identifier)。
STDMETHOD(GetIDsOfNames)(
REFIID riid,
LPOLESTR* rgszNames,
UINT cNames,
LCID lcid,
DISPID* rgdispid);
備註
請參閱 Windows SDK 中的 IDispatch::GetIDsOfNames 。
IDispatchImpl::GetTypeInfo
擷取雙重介面的類型資訊。
STDMETHOD(GetTypeInfo)(
UINT itinfo,
LCID lcid,
ITypeInfo** pptinfo);
備註
請參閱 Windows SDK 中的 IDispatch::GetTypeInfo 。
IDispatchImpl::GetTypeInfoCount
判斷雙重介面是否有可用的類型資訊。
STDMETHOD(GetTypeInfoCount)(UINT* pctinfo);
備註
請參閱 IDispatch::GetTypeInfoCount
Windows SDK。
IDispatchImpl::IDispatchImpl
建構函式。 呼叫 AddRef
受保護的成員變數,以管理雙重介面的類型資訊。 此解構函式會呼叫 Release
。
IDispatchImpl();
IDispatchImpl::Invoke
提供對雙重介面所公開之方法和屬性的存取。
STDMETHOD(Invoke)(
DISPID dispidMember,
REFIID riid,
LCID lcid,
WORD wFlags,
DISPPARAMS* pdispparams,
VARIANT* pvarResult,
EXCEPINFO* pexcepinfo,
UINT* puArgErr);
備註
請參閱 Windows SDK 中的 IDispatch::Invoke 。