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()