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 |
Sì |
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
COM_INTERFACE_ENTRY_AUTOAGGREGATE_BLIND