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
參數
[in] T
雙重介面。[in] piid
為 TIID 的指標。[in] plibid
其包含有關此介面的資訊型別程式庫的 GUID 的指標。根據預設,這個伺服器層級的型別程式庫中傳遞。[in] wMajor
型別程式庫的主要版本。預設值為 1。[in] wMinor
型別程式庫的次要版本。預設值為 0。[in] tihclass
所使用的類別處理 T的型別資訊。根據預設,這個值為 CComTypeInfoHolder。
Members
公用建構函式
名稱 |
描述 |
---|---|
建構函式。會在處理雙重介面 (Dual Interface) 的型別資訊的受保護成員變數的 AddRef 。解構函式呼叫 Release。 |
公用方法
名稱 |
描述 |
---|---|
將一組名稱對應至一組對應的分派識別項 (Dispatch Identifier)。 |
|
擷取雙重介面 (Dual Interface) 的型別資訊。 |
|
判斷是否有型別資訊的資料為雙重介面。 |
|
提供對雙重介面顯露的方法和屬性的方法。 |
備註
IDispatchImpl 對所有雙重介面的 IDispatch 組件提供預設實作會在物件。雙重介面是從 IDispatch 衍生並只使用 Automation 相容的型別。就像分配介面 (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 類別,而不需要存取登錄的方法是使用預先定義的版本號碼。如果您建立含有 0xFFFF 做為 wMajor 的值和 0xFFFF 做為 wMinor值的 IDispatchImpl 物件, IDispatchImpl 類別從 .dll 檔案擷取這個型別程式庫 (而不是註冊。
IDispatchImpl 包含處理雙重介面 (Dual Interface) 的型別資訊的型別 CComTypeInfoHolder 的靜態成員。如果您擁有雙重介面實作相同的多個物件,使用 CComTypeInfoHolder ,只有一個執行個體。
繼承階層架構
T
IDispatchImpl
需求
標題: atlcom.h