DECLARE_POLY_AGGREGATABLE ( x )
Parametry
x
[w] Nazwa obiektu klasy podczas definiowania kumulowalnych lub nie kumulowalnych.
Uwagi
Określa, że wystąpienie CComPolyObject lt;x jest tworzony, gdy tworzony jest obiekt. Podczas tworzenia wartości zewnętrznej nieznany jest zaznaczone. Jeśli jest NU&LL, IUnknown jest zaimplementowana dla obiektu nonaggregated. Jeśli zewnętrzne nieznany jest NULL, IUnknown jest zaimplementowana dla obiektu zagregowane.
Zaletą używania DECLARE_POLY_AGGREGATABLE jest, można uniknąć, posiadające zarówno CComAggObject , jak i CComObject w module obsługi przypadkach zagregowanych i nonaggregated. Pojedynczy obiekt CComPolyObject obsługuje oba przypadki. Oznacza to, że istnieje tylko jedna kopia Tablica metod wirtualnych i jedną kopię funkcje w module. W przypadku dużych sieci Tablica metod wirtualnych, to znacznie zmniejszyć rozmiar modułu. Jednakże w przypadku małych sieci Tablica metod wirtualnych, przy użyciu CComPolyObject może spowodować nieco większy rozmiar modułu ponieważ nie jest optymalizowany dla obiektu zagregowanych lub nonaggregated, jak CComAggObject i CComObject.
Makro DECLARE_POLY_AGGREGATABLE jest automatycznie zadeklarowane w obiektu, jeśli kreator obiektu ATL zostanie użyty do utworzenia Pełna kontrola lub formant programu Internet Explorer.
Zobacz też