Sdílet prostřednictvím


DECLARE_POLY_AGGREGATABLE

Určuje, že instance CComPolyObject < x > je vytvořen při vytvoření vašeho objektu.

DECLARE_POLY_AGGREGATABLE( 
   x  
)

Parametry

  • x
    [v] Název objektu třídy, kterou definujete jako agregovatelné nebo není agregovatelné.

Poznámky

Během vytváření se kontroluje hodnotu vnější neznámý.Pokud je NULL, IUnknown je implementováno pro objekt nonaggregated.Pokud není vnější neznámý NULL, IUnknown je implementováno pro agregovaný objekt.

Výhodou použití DECLARE_POLY_AGGREGATABLE je zabránit obě CComAggObject a CComObject v modulu pro zpracování případů souhrnné a nonaggregated.Jeden CComPolyObject objektu zpracovává obou případech.To znamená, že existují pouze jednu kopii virtuální tabulka a jednu kopii funkce v modulu.Pokud vaše virtuální tabulka je velký, to podstatně zmenšit velikost poštovní modul.Však pokud vaše virtuální tabulka je malá, pomocí CComPolyObject může vést k poněkud větší velikost modulu protože není optimalizována pro souhrnné nebo nonaggregated objektu, jako jsou CComAggObject a CComObject .

DECLARE_POLY_AGGREGATABLE Makro je automaticky deklarován v objekt použijete průvodce ovládací ATL vytvoření úplné řízení.

Požadavky

Záhlaví: atlcom.h

Viz také

Referenční dokumentace

Třída CComPolyObject

Třída CComAggObject

Třída CComObject

Další zdroje

Agregace a třídu Factory makra

Makra ATL