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


Fundamentals of ATL COM Objects

На следующей иллюстрации показаны связи между классами и интерфейсы, используемые для идентификации com-объекта библиотеки ATL.

Структура ATL

Примечание

На этой диаграмме показано, что CComObject является производным от CYourClass тогда как CComAggObject и CComPolyObject включают CYourClass в качестве переменной члена.

Существует три способа определения COM-объект библиотеки ATL. Стандартный параметр использовать класс CComObject, который является производным от CYourClass. Второй параметр создать объединенный объект с помощью класса CComAggObject. Третий параметр использовать класс CComPolyObject. CComPolyObject действует как гибридный. он может работать как класс CComObject или как класс CComAggObject в зависимости от того, как он впервые создается. Дополнительные сведения об использовании класса CComPolyObject см. в разделе CComPolyObject Class.

При использовании стандартного модели COM библиотеки ATL используется 2 объекта: внешний объект и внутренний объект. Внешние клиенты получают доступ к функциональности внутреннего объекта до функция-оболочки, определенные во внешнем объекте. Внешний объект типа CComObject.

При использовании объединенный объект, внешний объект не предоставляет программы-оболочки для получения функциональности внутреннего объекта. Вместо этого внешний объект содержит указатель, непосредственно обратиться к внешнему клиентами. В этом сценарии внешний объект типа CComAggObject. Внутренний объект переменную-член внешнего объекта и его типа CYourClass.

Поскольку клиент не должен пройти по внешнему объекту взаимодействовать с внутренним объектом, агрегированные объекты обычно является более эффективным. Кроме того, внешний объект не должен знать указанного функциональные возможности объединенного объекта, что интерфейс объединенного объекта непосредственно доступен клиенту. Однако не все объекты могут быть агрегированными. Для объекта для статистической обработки, для этого нужно конструированным с агрегатом.

Библиотеки ATL реализует IUnknown в 2 действия.

Другие аспекты своего COM-объект библиотеки ATL корректируются другими классами:

  • CComCoClass определяет модель фабрики классов и статистической обработки объекта по умолчанию.

  • IDispatchImpl предоставляет реализацию по умолчанию части IDispatch Interface всех повторяющихся интерфейсов объекта.

  • ISupportErrorInfoImpl реализует интерфейс ISupportErrorInfo который сведения об ошибках могут распространяться по цепочке вызовов правильно.

Содержание

Связанные разделы

См. также

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

Основные понятия активной библиотеки шаблонных классов (ATL)