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í objektuIUnknown
(ovládací prvkyIUnknown
).
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_progid
coclass
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 |
Opakovatelný | No |
Požadované atributy | Nejméně jedna z následujících možností: coclass , progid nebo vi_progid . |
Neplatné atributy | Nic |
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