Поделиться через


Макросы COM_INTERFACE_ENTRY

Эти макросы входят интерфейсы объекта в его сопоставление модели COM, чтобы они могли быть получить доступ QueryInterface.Порядок записей в сопоставлении модели COM интерфейсы заказа будет проверен для соответствующего IID во время QueryInterface.

Каждый объект, который хочет отобразить его интерфейсов с помощью QueryInterface должен иметь собственное сопоставление модели COM.Запускает сопоставления модели COM с макросом BEGIN_COM_MAP.Записи интерфейса добавлены с одним или несколькими из макросов COM_INTERFACE_ENTRY и сопоставление завершено с макросом END_COM_MAP.Примеры.

BEGIN_COM_MAP(CMyObject)
   COM_INTERFACE_ENTRY(IMyObject)
   COM_INTERFACE_ENTRY(IDispatch)
END_COM_MAP()

Обратите внимание, что первая запись в сопоставлении модели COM должен быть интерфейсом на объекте, содержащем сопоставление модели COM.Таким образом, нельзя запускать существующие записи сопоставления модели COM с COM_INTERFACE_ENTRY_CHAIN, приводит к тому, что сопоставление модели COM другого объекта для поиска в той точке, где COM_INTERFACE_ENTRY_CHAIN(COtherObject) отображается в сопоставление модели COM объекта.Если необходимо найти сопоставление модели COM другого объекта сначала добавьте запись интерфейса для IUnknown к сопоставлению модель COM, тогда прикуйте сопоставление модели COM другого объекта.Примеры.

BEGIN_COM_MAP(CThisObject)
   COM_INTERFACE_ENTRY(IUnknown)
   COM_INTERFACE_ENTRY_CHAIN(CBase)
END_COM_MAP()
Предупреждающее замечаниеВнимание

Из версии 3.0 библиотеки ATL используется ключевое слово __uuidof( class ) компилятора для получения соответствующего ИДЕНТИФИКАТОРА для данного класса.Из-за изменений в макросах COM_INTERFACE_ENTRY действующих в версии 3.0, теперь следует просто включить заголовок для интерфейса для использования вместо также ссылки на библиотеки, которая определяет соответствующие IIDs для этого интерфейса.Проблемы этой причине изменения чаши, если заголовок ранее созданного более старой версией MIDL или если он был код которого написан и не был помечен соответственно.Если объявление интерфейса в заголовке не был помечен связанным uuid )__declspec( , то любая попытка использовать ключевое слово __uuidof для этого интерфейса завершится ошибкой.Можно отменить изменения к старым (библиотека ATL 2.x) макросам COM_INTERFACE_ENTRY путем указания _ATL_NO_UUIDOF в параметрах построения вокруг всех проблем работать с новой реакцией на событие.

Запись макросов сопоставления модели COM

Следующие макросы, доступные записи:

Требования

Header: atlcom.h

См. также

Другие ресурсы

Макросы сопоставления модели COM

Макросы ATL