次の方法で共有


CComObjectRootEx の実装

CComObjectRootEx が必要です。; すべての ATL オブジェクトは、継承の CComObjectRootEx または CComObjectRoot のインスタンスが 1 つある必要があります。CComObjectRootEx は、COM マップのエントリに基づいて既定の QueryInterface 機構を提供します。

COM マップを通じて、オブジェクトのクライアントは、インターフェイスとインターフェイスのクライアント クエリ公開されます。クエリは CComObjectRootEx::InternalQueryInterfaceによって実行されます。InternalQueryInterface の COM マップの表のハンドルのインターフェイスだけ。

COM マップの表にバリアントの COM_INTERFACE_ENTRY のマクロやそのインターフェイスを入力できます。たとえば、BEEPER サンプル の次のコードでは、COM マップの表に、インターフェイス IDispatchIBeeperと ISupportErrorInfo を入力する:

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 マップに関するマクロ