CComObjectRootEx 非常重要;所有 ATL 对象必须在其继承中有一个 CComObjectRootEx 或 CComObjectRoot 的实例。 CComObjectRootEx 提供基于 COM 映射项的默认 QueryInterface 机制。
通过其 COM 映射,对象的接口将在客户端查询接口时向该客户端公开。 该查询通过 CComObjectRootEx::InternalQueryInterface 执行。 InternalQueryInterface 仅处理 COM 映射表中的接口。
你可以使用 COM_INTERFACE_ENTRY 宏或它的一个变体将接口输入到 COM 映射表。 例如,以下代码输入可将接口 IDispatch、IBeeper 和 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()
请参见
参考
Fundamentals of ATL COM Objects