DECLARE_POLY_AGGREGATABLE

Określa, że wystąpienie CComPolyObject < x > jest tworzony podczas tworzenia obiektu.

DECLARE_POLY_AGGREGATABLE( 
   x  
)

Parametry

  • x
    [w] Nazwa obiektu klasy są definiowane jako kumulowalnych lub nie kumulowalnych.

Uwagi

Podczas tworzenia jest sprawdzana wartość unknown zewnętrzne.Jeśli jest NULL, IUnknown dla obiektu nonaggregated.Jeśli nie jest nieznany zewnętrznej NULL, IUnknown jest zaimplementowana zagregowane obiektu.

Zaletą korzystania z DECLARE_POLY_AGGREGATABLE jest uniknięcie posiadające obie CComAggObject i CComObject w modułu obsługi przypadkach zagregowanych i nonaggregated.Jeden CComPolyObject obiekt obsługuje oba przypadki.Oznacza to, że tylko jedna kopia vtable i jedną kopię funkcji istnieje w module.Rozmiar modułu można zmniejszyć znacznie vtable użytkownika jest duża.Jednakże, jeśli Twój vtable jest mały, za pomocą CComPolyObject może spowodować nieco większy rozmiar modułu, ponieważ nie jest zoptymalizowany dla obiektu nonaggregated lub zagregowane są CComAggObject i CComObject.

DECLARE_POLY_AGGREGATABLE Makro jest automatycznie deklarowany w obiekt użycie Kreatora kontroli ATL utworzyć Pełna kontrola.

Wymagania

Nagłówek: atlcom.h

Zobacz też

Informacje

Klasa CComPolyObject

Klasa CComAggObject

Klasa CComObject

Inne zasoby

Agregacja i klasy fabrycznej makra

Makra ATL