Aggregate
Gibt an, dass das Objekt das Objekt aggregiert, das vom CLSID festgelegt wird.
[ aggregates(
clsid,
variable_name
) ]
Parameter
clsid
Gibt die CLSID des aggregierbaren Objekts an.variable_name
Der Name der Variablen, die eingefügt werden soll.Diese Variable enthält IUnknown des Objekts, das aggregiert wird.
Hinweise
Wenn auf ein Objekt angewendet wird, implementiert das Attribut Aggregate C++ einen äußeren Wrapper für das Objekt, das aggregiert werden soll (angegeben durch clsid).
Dieses Attribut erfordert, dass Co-Klasse, ProgIDoder vi_progid-Attribut (oder ein anderes Attribut, das ein solcher Test vorhanden), bedeutet auch auf das gleiche Element übernommen werden.Wenn ein einzelnes Attribut wird, die anderen zwei automatisch angewendet werden.Wenn z. B. progid angewendet wird, werden vi_progid und coclass ebenfalls angewendet.
ATL-Projekte
Wenn dieses Attribut innerhalb eines Projekts verwendet wird, das ATL verwendet, ändert sich das Verhalten des Attributs.Zuerst wird der folgende Eintrag in die COM-Zuordnung des Zielobjekts hinzugefügt:
COM_INTERFACE_ENTRY_AUTOAGGREGATE_BLIND(_m_spAttrXXX, clsid)
Zweitens wird das Makro DECLARE_GET_CONTROLLING_UNKNOWN ebenfalls hinzugefügt.
Beispiel
// cpp_attr_ref_aggregates.cpp
// compile with: /LD
#define _ATL_ATTRIBUTES
#include "atlbase.h"
#include "atlcom.h"
// requires 'aggregatable.dll'
// see aggregatable attribute to create 'aggregatable.dll'
class DECLSPEC_UUID("1a8369cc-1c91-42c4-befa-5a5d8c9d2529") CMyClass;
[module (name="MYObject")];
[object, uuid("ab006d85-e754-47c5-9ef4-2744ff32a20c")]
__interface IObject
{
};
[ coclass, aggregates(__uuidof(CMyClass)),
uuid("91cb2c06-8931-432a-baac-206e55c4edfb")]
struct CObject : IObject
{
int i;
};
Anforderungen
Attribut-Kontext
Betrifft |
Klasse, struct |
Wiederholbar |
Ja |
Erforderliche Attribute |
Ein oder mehrere der folgenden Schritte aus: coclass, progidoder vi_progid. |
Ungültige Attribute |
None |
Weitere Informationen über das kontexte finden Sie unter Attribut-Kontexte.
Siehe auch
Referenz
COM_INTERFACE_ENTRY_AUTOAGGREGATE_BLIND