DECLARE_POLY_AGGREGATABLE

DECLARE_POLY_AGGREGATABLE ( x )

Параметри

x

[в] Ім'я об'єкта, клас визначено як aggregatable або не aggregatable.

Зауваження

Визначає, що зразок CComPolyObject lt;x> створюється, коли об'єкт створюється. Під час створення перевіряється значення зовнішні невідомі. Якщо це значення NULL, IUnknown здійснюється незгруповані об'єкта. Якщо зовнішні невідомі не NULL, IUnknown здійснюється для складеного об'єкта.

Перевага використання DECLARE_POLY_AGGREGATABLE полягає в тому, що вам уникнути CComAggObject і CComObject у ваш модуль для обробки агрегованих і незгруповані випадках. Один CComPolyObject об'єкт ручками обох випадках. Це означає, що лише одну копію Віртуальна таблиця і однієї копії функцій, що існують у ваш модуль. Якщо ваш таблиці великий, це може суттєво знизити ваш розмір модуля. Однак, якщо ваш таблиці невеликих, використовуючи CComPolyObject може призвести до дещо більший розмір модуля тому, що він не оптимізований для об'єкта агрегованих або незгруповані, як CComAggObject і CComObject.

DECLARE_POLY_AGGREGATABLE макрос автоматично оголошується у вашого об'єкта, якщо використовується майстер об'єкт ATL створити повний контроль або Internet Explorer керування.

ATL макроси та глобальні функції

Дивіться також

CComPolyObject, CComAggObject, CComObject

Index