IDispatchImpl Class

為雙重介面的 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

公用建構函式

名稱

描述

IDispatchImpl::IDispatchImpl

建構函式。 會在處理雙重介面 (Dual Interface) 的型別資訊的受保護成員變數的 AddRef 。 解構函式呼叫 Release

公用方法

名稱

描述

IDispatchImpl::GetIDsOfNames

將一組名稱對應至一組對應的分派識別項 (Dispatch Identifier)。

IDispatchImpl::GetTypeInfo

擷取雙重介面 (Dual Interface) 的型別資訊。

IDispatchImpl::GetTypeInfoCount

判斷是否有型別資訊的資料為雙重介面。

IDispatchImpl::Invoke

提供對雙重介面顯露的方法和屬性的方法。

備註

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

請參閱

其他資源

ATL Class Overview