CComObjectRootEx è essenziale — tutti gli oggetti ATL devono avere un'istanza di CComObjectRootEx o CComObjectRoot nella loro eredità. CComObjectRootEx fornisce il meccanismo di QueryInterface predefinito basato su voci mappa COM.
Attraverso la sua mappa COM, interfacce di un oggetto sono esposti a un client quando il client esegue una query per un'interfaccia. La query viene eseguita mediante CComObjectRootEx::InternalQueryInterface. InternalQueryInterface gestisce solo le interfacce della tabella della mappa COM.
È possibile immettere interfacce nella tabella mappa COM con la macro COM_INTERFACE_ENTRY o una delle sue varianti. Ad esempio, il seguente codice dalla esempio BEEPER intraprende la tabella della mappa COM le interfacce IDispatch, IBeepere ISupportErrorInfo
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)