aggregatable
Gibt an, dass die Klasse Aggregation unterstützt.
Syntax
[ aggregatable(value) ]
Parameter
value
(Optional) Ein Parameter, der angibt, wann das COM-Objekt aggregiert werden kann:
never
Das COM-Objekt kann nicht aggregiert werden.allowed
Das COM-Objekt kann direkt erstellt oder aggregiert werden. Dies ist die Standardeinstellung.always
Das COM-Objekt kann nicht direkt erstellt werden und kann nur aggregiert werden. Wenn Sie dieses Objekt aufrufenCoCreateInstance
, müssen Sie die Schnittstelle desIUnknown
aggregierenden Objekts (das SteuernIUnknown
) angeben.
Hinweise
Das aggregatierbare C++-Attribut verfügt über die gleiche Funktionalität wie das aggregatierbare MIDL-Attribut. Dies bedeutet, dass der Compiler das aggregatierbare Attribut an die generierte IDL-Datei übergibt.
Dieses Attribut erfordert, dass die Attribute coclass, progid, oder vi_progid (oder ein anderes Attribut, das eines der genannten impliziert) auch auf demselben Element angewendet werden. Wenn ein einzelnes Attribut verwendet wird, werden die anderen beiden automatisch angewendet. Wenn sie beispielsweise progid
angewendet vi_progid
wird und coclass
auch angewendet werden.
ATL-Projekte
Wenn dieses Attribut in einem Projekt verwendet wird, das ATL verwendet, ändert sich das Verhalten des Attributs. Zusätzlich zum zuvor beschriebenen Verhalten fügt das Attribut der Zielklasse auch eines der folgenden Makros hinzu:
Parameterwert | Eingefügtes Makro |
---|---|
Never |
DECLARE_NOT_AGGREGATABLE |
Allowed |
DECLARE_POLY_AGGREGATABLE |
Always |
DECLARE_ONLY_AGGREGATABLE |
Beispiel
// 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 {};
Anforderungen
Attributkontext | Wert |
---|---|
Gilt für | class , struct |
Wiederholbar | No |
Erforderliche Attribute | Eine oder mehrere der folgenden: coclass , , progid oder vi_progid . |
Ungültige Attribute | Keine |
Weitere Informationen zu den Attributkontexten finden Sie unter Attributkontexte.
Siehe auch
IDL-Attribute
Klassenattribute
typedef-, enum-, union- und struct-Attribute
Aggregation