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

参照

その他の技術情報

IDispatchImpl のメンバ

ATL クラスの概要