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


DECLARE_POLY_AGGREGATABLE

Указывает, что создание экземпляра CComPolyObject < x > при создании объекта.

DECLARE_POLY_AGGREGATABLE( 
   x  
)

Параметры

  • x
    [in] Имя объекта класса указывается как aggregatable или статистическая обработка невозможна.

Заметки

Во время создания проверено значение внешнего неизвестным.Если это NULL, то IUnknown реализуется для nonaggregated объекта.Если внешний неизвестно не NULL, то IUnknown реализуется для статистически вычислениеого объекта.

Преимущество использования DECLARE_POLY_AGGREGATABLE что позволяет избежать CComAggObject и having и CComObject в модуле, чтобы настроить статистические и nonaggregated вариантов.Один объект CComPolyObject обрабатывает оба варианта.Это означает, что только одна копия vtable и одна копия функций существуют в модуле.Если в таблице vtable велико, это может значительно снизить свой размер модуля.Однако если в таблице vtable мало, то с помощью CComPolyObject могут вызвать несколько более большом размере модуля, поскольку оно не оптимизироватьо для статистически вычислениеого или nonaggregated объекта, например CComAggObject и CComObject.

Макрос DECLARE_POLY_AGGREGATABLE автоматически объявлен в объекте если используется мастер элементов управления библиотеки ATL для создания полного контроля.

Требования

Header: atlcom.h

См. также

Ссылки

Класс CComPolyObject

Класс CComAggObject

Класс CComObject

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

Макросы статистической обработки и фабрики классов

Макросы ATL