aggregatable

Indica che la classe supporta l'aggregazione.

Sintassi

[ aggregatable(value) ]

Parametri

value
(Facoltativo) Parametro da indicare quando l'oggetto COM può essere aggregato:

  • never Impossibile aggregare l'oggetto COM.

  • allowed L'oggetto COM può essere creato direttamente oppure può essere aggregato. Si tratta dell'impostazione predefinita.

  • always L'oggetto COM non può essere creato direttamente e può essere aggregato solo. Quando si chiama CoCreateInstance per questo oggetto, è necessario specificare l'interfaccia dell'oggetto IUnknown di aggregazione (il controllo IUnknown).

Osservazioni:

L'attributo C++ aggregabile ha la stessa funzionalità dell'attributo MIDL aggregabile . Ciò significa che il compilatore passerà l'attributo aggregabile attraverso al file con estensione idl generato.

Questo attributo richiede che anche l'attributo coclass, progido vi_progid (o un altro attributo che implica uno di questi) sia applicato allo stesso elemento. Se viene usato un qualsiasi attributo, anche gli altri due vengono applicati automaticamente. Ad esempio, se progid viene applicato vi_progid e coclass vengono applicati anche.

Progetti ATL

Se questo attributo viene usato in un progetto che usa ATL, il comportamento dell'attributo cambia. Oltre al comportamento descritto in precedenza, l'attributo aggiunge anche una delle macro seguenti alla classe di destinazione:

Valore parametro Macro inserita
Never DECLARE_NOT_AGGREGATABLE
Allowed DECLARE_POLY_AGGREGATABLE
Always DECLARE_ONLY_AGGREGATABLE

Esempio

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

Requisiti

Contesto attributo Valore
Si applica a class, struct
Ripetibile No
Attributi obbligatori Uno o più degli elementi seguenti: coclass, progido vi_progid.
Attributi non validi None

Per altre informazioni sui contesti di attributi, vedere Contesti di attributi.

Vedi anche

Attributi IDL
Attributi di classe
Attributi Typedef, Enum, Union e Struct
Aggregazione