Share via


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

Aggregation

Aggregatable

COM_INTERFACE_ENTRY_AUTOAGGREGATE_BLIND

Weitere Ressourcen

von COM-Attributen

Klassen-Attribute

TypeDef-, Enumeration, Union und Struktur-Attribute

Attributes Samples