Реализация CComObjectRootEx

Замечание

Библиотека активных шаблонов (ATL) продолжает поддерживаться. Однако мы больше не добавляем функции или обновляем документацию.

CComObjectRootEx имеет важное значение. Все объекты ATL должны иметь один экземпляр CComObjectRootEx или CComObjectRoot в их наследовании. CComObjectRootEx предоставляет по умолчанию механизм QueryInterface, основанный на записях сопоставления COM.

С помощью карты COM интерфейсы объекта становятся доступными клиенту, когда клиент запрашивает интерфейс. Запрос выполняется с помощью CComObjectRootEx::InternalQueryInterface. InternalQueryInterface обрабатывает интерфейсы только в таблице сопоставлений COM.

Интерфейсы можно ввести в таблицу карты COM с помощью макроса COM_INTERFACE_ENTRY или одного из его вариантов. Например, следующий код вводит интерфейсы 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()

См. также

Основы COM-объектов ATL
Макросы отображения COM