Condividi tramite


aggregati

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

[ aggregates( 
   clsid, 
   variable_name 
) ]

Parametri

  • clsid
    Specifica il CLSID di cui aggregatable.

  • variable_name
    Il nome della variabile che deve essere inserita. questa variabile contiene IUnknown oggetto che verranno aggregati.

Note

Una volta applicato a un oggetto, aggrega L'attributo di C++ implementa un wrapper esterno per l'oggetto che verranno aggregati (specificato da clsid).

L'attributo richiede che coclasse, progid, o vi_progid attributo o un altro attributo che implica uno di questi) viene applicato anche allo stesso elemento. Se qualsiasi singolo attributo viene utilizzato, gli altri due vengono applicate automaticamente. Ad esempio, se progid viene applicato, vi_progid e coclasse anche applicati.

Progetti ATL

Se questo attributo viene utilizzato in un progetto che utilizza ATL, il comportamento dell'attributo viene modificato. Innanzitutto, la voce seguente viene aggiunto alla mappa COM dell'oggetto di destinazione:

COM_INTERFACE_ENTRY_AUTOAGGREGATE_BLIND(_m_spAttrXXX, clsid)

in secondo luogo, DECLARE_GET_CONTROLLING_UNKNOWN la macro viene inoltre aggiunto.

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 di attributo

Si applica a

classe, struct

ripetibile

attributi obbligatori

Uno o più dei seguenti elementi: coclasse, progid, o vi_progid.

attributi non validi

Nessuno

per ulteriori informazioni sui contesti di attributo, vedere Associare ai contesti.

Vedere anche

Riferimenti

Aggregation

Aggregatable

COM_INTERFACE_ENTRY_AUTOAGGREGATE_BLIND

Altre risorse

Attributi COM

Attributi di classe

Attributi Typedef, Enum, Union e Struct

Attributes Samples