IDispatchImpl クラス
更新 : 2007 年 11 月
このクラスは、デュアル インターフェイスの IDispatch 部分の既定の実装を提供します。
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
デュアル インターフェイス。piid
T の IID へのポインタ。plibid
インターフェイスに関する情報を保持するタイプ ライブラリの LIBID へのポインタ。既定では、サーバーレベルのタイプ ライブラリが渡されます。wMajor
タイプ ライブラリのメジャー バージョン。既定値は 1 です。wMinor
タイプ ライブラリのマイナー バージョン。既定値は 0 です。tihclass
T の型情報の管理に使用されるクラスです。既定値は、CComTypeInfoHolder です。
解説
IDispatchImpl は、オブジェクトに対するデュアル インターフェイスの IDispatch の部分について既定の実装を提供します。デュアル インターフェイスは、IDispatch から派生され、オートメーション互換型だけを使います。ディスパッチ インターフェイスと同様、デュアル インターフェイスでも事前バインディングと遅延バインディングをサポートします。ただし、デュアル インターフェイスでは vtable バインディングもサポートされます。詳細については、「Implementing the IDispatch Interface」を参照してください。
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 は、デュアル インターフェイスのタイプ情報を管理する CComTypeInfoHolder 型の静的メンバを保持します。複数のオブジェクトが同一のデュアル インターフェイスを実装している場合は、CComTypeInfoHolder の 1 つのインスタンスだけが使われます。
必要条件
ヘッダー : atlcom.h