Sdílet prostřednictvím


aggregatable

Označuje, že třída podporuje agregaci.

Syntaxe

[ aggregatable(value) ]

Parametry

value
(Volitelné) Parametr označující, kdy lze objekt COM agregovat:

  • never Objekt COM nelze agregovat.

  • allowed Objekt COM lze vytvořit přímo nebo je možné ho agregovat. Tato možnost je výchozí.

  • always Objekt COM nelze vytvořit přímo a lze jej agregovat pouze. Při volání CoCreateInstance tohoto objektu je nutné zadat agregační rozhraní objektu IUnknown (ovládací prvky IUnknown).

Poznámky

Atribut Aggregatable C++ má stejné funkce jako aggregatable MIDL atribut. To znamená, že kompilátor předá agregatable atributu do vygenerovaného souboru .idl.

Tento atribut vyžaduje, aby se na stejný prvek použil také atribut coclass, progid nebo vi_progid (nebo jiný atribut, který napovídá jeden z těchto atributů). Pokud se použije jakýkoli jeden atribut, ostatní dva se automaticky použijí. Pokud se například progid použije a vi_progidcoclass použije se také.

Projekty ATL

Pokud se tento atribut používá v projektu, který používá ATL, chování atributu se změní. Kromě dříve popsaného chování přidá atribut do cílové třídy také jedno z následujících maker:

Hodnota parametru Vložené makro
Never DECLARE_NOT_AGGREGATABLE
Allowed DECLARE_POLY_AGGREGATABLE
Always DECLARE_ONLY_AGGREGATABLE

Příklad

// 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 {};

Požadavky

Kontext atributu Hodnota
Platí pro class, struct
Opakovatelnou Číslo
Požadované atributy Nejméně jedna z následujících možností: coclass, progidnebo vi_progid.
Neplatné atributy Žádné

Další informace o kontextech atributů naleznete v tématu Kontexty atributů.

Viz také

IDL – atributy
Atributy třídy
Atributy klíčových slov typedef, enum, union a struct
Agregace