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 chiamaCoCreateInstance
per questo oggetto, è necessario specificare l'interfaccia dell'oggettoIUnknown
di aggregazione (il controlloIUnknown
).
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 , progid o 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