实现 CComObjectRootEx

CComObjectRootEx 非常重要;所有 ATL 对象必须在其继承中有一个 CComObjectRootExCComObjectRoot 的实例。 CComObjectRootEx 提供基于 COM 映射项的默认 QueryInterface 机制。

通过其 COM 映射,对象的接口将在客户端查询接口时向该客户端公开。 该查询通过 CComObjectRootEx::InternalQueryInterface 执行。 InternalQueryInterface 仅处理 COM 映射表中的接口。

你可以使用 COM_INTERFACE_ENTRY 宏或它的一个变体将接口输入到 COM 映射表。 例如,以下代码输入可将接口 IDispatchIBeeperISupportErrorInfo 输入到 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 映射宏