DECLARE_POLY_AGGREGATABLE

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

Родственные слова

CComPolyObject, CComAggObject, CComObject

Index