DECLARE_POLY_AGGREGATABLE ( x )
Параметры
x
[в] Имя класса объекта определяется как комбинируемого или статистическая обработка невозможна.
Примечания
Указывает, что экземпляр CComPolyObject lt;x создается при создании вашего объекта. Во время создания проверяется значение внешнее неизвестного. Если это значение NU&LL, для объекта неагрегированные реализован IUnknown . Если внешнее неизвестного не является NULL, Реализовано IUnknown для объекта агрегированных.
Преимуществом использования DECLARE_POLY_AGGREGATABLE является, что вам избежать CComAggObject и CComObject в вашем модуле для обработки агрегированных и неагрегированные случаев. Объект CComPolyObject обрабатывает обоих случаях. Это означает, что только одна копия vtable и один экземпляр функции существуют в вашем модуле. Если ваш vtable большой, это может существенно уменьшить размер вашего модуля. Однако если ваш vtable невелико, использование CComPolyObject может привести к несколько больших размеров модуль потому, что он не оптимизирован для объекта агрегированных или неагрегированные, как CComAggObject и CComObject.
DECLARE_POLY_AGGREGATABLE макрос автоматически объявляется в объекте, если вы используете мастер объектов ATL для создания полного контроля или управления Internet Explorer.
Глобальные функции и макросы ATL
Родственные слова