Condividi tramite


aggregati

Indica che l'oggetto aggrega l'oggetto specificato dal CLSID.

Sintassi

[ aggregates(clsid, variable_name) ]

Parametri

Clsid
Specifica il CLSID dell'oggetto aggregabile.

variable_name
Nome della variabile da inserire. Questa variabile contiene l'oggetto IUnknown dell'oggetto da aggregare.

Osservazioni:

Quando è applicato a un oggetto, l'attributo aggregates di C++ implementa un wrapper esterno per l'oggetto da aggregare (specificato da clsid).

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. In primo luogo, alla mappa COM dell'oggetto di destinazione viene aggiunta la voce seguente:

COM_INTERFACE_ENTRY_AUTOAGGREGATE_BLIND(_m_spAttrXXX, clsid)

In secondo luogo, viene aggiunta anche la macro DECLARE_GET_CONTROLLING_UNKNOWN .

Esempio

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

Requisiti

Contesto attributo Valore
Si applica a class, struct
Ripetibile
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 COM
Attributi di classe
Attributi Typedef, Enum, Union e Struct
Aggregazione
Aggregabile
COM_INTERFACE_ENTRY_AUTOAGGREGATE_BLIND