次の方法で共有


CComObjectRootEx の実装

CComObjectRootEx は不可欠なものです。すべての ATL オブジェクトの継承内に、CComObjectRootEx または CComObjectRoot のインスタンスが 1 つ必要です。 CComObjectRootEx は、COM マップ エントリに基づく既定の QueryInterface メカニズムを提供します。

その COM マップを介して、オブジェクトのインターフェイスは、クライアントによるインターフェイスの照会時にそのクライアントに公開されます。 照会は、CComObjectRootEx::InternalQueryInterface を介して実行されます。 InternalQueryInterface が処理するのは、COM マップ テーブル内のインターフェイスのみです。

COM_INTERFACE_ENTRY マクロまたはそのバリエーションの 1 つを使用して、インターフェイスを COM マップ テーブルに入れることができます。 たとえば、次のコードはインターフェイス IDispatchIBeeper、および ISupportErrorInfo を COM マップ テーブルに入力します。

BEGIN_COM_MAP(CBeeper)
   COM_INTERFACE_ENTRY(IBeeper)
   COM_INTERFACE_ENTRY(IDispatch)
   COM_INTERFACE_ENTRY_TEAR_OFF(IID_ISupportErrorInfo, CBeeper2)
END_COM_MAP()

関連項目

ATL COM オブジェクトの基礎
COM マップに関するマクロ