Udostępnij za pośrednictwem


aggregatable

Wskazuje, że klasa obsługuje agregację.

Składnia

[ aggregatable(value) ]

Parametry

wartość
(Opcjonalnie) Parametr wskazujący, kiedy można agregować obiekt COM:

  • never Nie można agregować obiektu COM.

  • allowed Obiekt COM można utworzyć bezpośrednio lub można go agregować. Jest to opcja domyślna.

  • always Nie można utworzyć obiektu COM bezpośrednio i można go agregować tylko. Podczas wywoływania CoCreateInstance tego obiektu należy określić interfejs obiektu IUnknown agregacji (kontrolka IUnknown).

Uwagi

Atrybut aggregatable języka C++ ma tę samą funkcjonalność co aggregatable ATRYBUT MIDL. Oznacza to, że kompilator przekaże atrybut aggregatable do wygenerowanego pliku idl.

Ten atrybut wymaga również zastosowania coclass, progid lub vi_progid atrybutu (lub innego atrybutu, który implikuje jeden z tych) również do tego samego elementu. Jeśli jest używany jakikolwiek pojedynczy atrybut, pozostałe dwa są stosowane automatycznie. Na przykład, jeśli progid jest stosowany, vi_progid i coclass są również stosowane.

Projekty ATL

Jeśli ten atrybut jest używany w projekcie korzystającym z atl, zachowanie atrybutu ulega zmianie. Oprócz opisanego wcześniej zachowania atrybut dodaje również jedno z następujących makr do klasy docelowej:

Wartość parametru Wstawione makro
Never DECLARE_NOT_AGGREGATABLE
Allowed DECLARE_POLY_AGGREGATABLE
Always DECLARE_ONLY_AGGREGATABLE

Przykład

// cpp_attr_ref_aggregatable.cpp
// compile with: /LD
#define _ATL_ATTRIBUTES
#include "atlbase.h"
#include "atlcom.h"

[module(name="MyModule")];

[ coclass, aggregatable(allowed),
  uuid("1a8369cc-1c91-42c4-befa-5a5d8c9d2529")]
class CMyClass {};

Wymagania

Kontekst atrybutu Wartość
Dotyczy class, struct
Powtarzalne Nie.
Wymagane atrybuty Co najmniej jeden z następujących elementów: coclass, progidlub vi_progid.
Nieprawidłowe atrybuty Brak

Aby uzyskać więcej informacji na temat kontekstów atrybutów, zobacz Konteksty atrybutów.

Zobacz też

Atrybuty IDL
Atrybuty klasy
Atrybuty Typedef, Enum, Union oraz Struct
Agregacja