CComObjectRootEx es esencial: todos los objetos ATL deben tener una instancia de CComObjectRootEx o CComObjectRoot en su herencia. CComObjectRootEx proporciona el mecanismo predeterminado de QueryInterface basado en entradas de mapa COM.
A través de su mapa COM, las interfaces de un objeto están expuestas a un cliente cuando el cliente realiza consultas para una interfaz. La consulta se realiza a través de CComObjectRootEx::InternalQueryInterface. InternalQueryInterface sólo maneja las interfaces en la tabla de mapa de COM.
Puede especificar las interfaces en la tabla de mapa de COM con la macro COM_INTERFACE_ENTRY o uno de sus variantes. Por ejemplo, el siguiente código de la ejemplo BEEPER entra las interfaces IDispatch, IBeepery ISupportErrorInfo en la tabla de mapa de COM
BEGI&N_COM_MAP(CBeeper)
nbsp; COM_INTERFACE_ENTRY(IDispatch)
COM_INTERFACE_ENTRY(IBeeper)
COM_INTERFACE_ENTRY_TEAR_OFF (IID_ISupportErrorInfo, CBeeper2)
END_COM_MAP)