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