实现CComObjectRootEx
CComObjectRootEx 很重要;所有ATL对象必须具有 CComObjectRootEx 或 CComObjectRoot 一个实例在其继承。CComObjectRootEx 提供基于COM映射项的默认 QueryInterface 结构。
通过其COM映射,对象的接口显示在客户端,当接口的客户端查询。查询通过 CComObjectRootEx::InternalQueryInterface执行。InternalQueryInterface 仅处理接口在COM映射表中。
可以输入COM接口映射表与 COM_INTERFACE_ENTRY 宏或其变量。例如,从 BEEPER示例 下面的代码输入接口 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()