agrégats
Indique que l’objet agrège l’objet spécifié par le CLSID.
Syntaxe
[ aggregates(clsid, variable_name) ]
Paramètres
clsid
Spécifie le CLSID de l’objet qui peut être agrégé.
variable_name
Nom de la variable à insérer. Cette variable contient l’objet IUnknown
agrégé.
Notes
Quand il est appliqué à un objet, l’attribut C++ aggregates implémente un wrapper externe pour l’objet en cours d’agrégation (spécifié par clsid
).
Cet attribut exige que l’attribut coclass, progidou vi_progid (ou un autre attribut qui implique l’un de ceux-ci) soit également appliqué au même élément. Si un attribut unique est utilisé, les deux autres sont appliqués automatiquement. Par exemple, si progid
elle est appliquée et coclass
vi_progid
appliquée également.
Projets ATL
Si vous utilisez cet attribut dans un projet qui utilise ATL, le comportement de l’attribut change. Tout d’abord, l’entrée suivante est ajoutée au mappage COM de l’objet cible :
COM_INTERFACE_ENTRY_AUTOAGGREGATE_BLIND(_m_spAttrXXX, clsid)
Ensuite, la macro DECLARE_GET_CONTROLLING_UNKNOWN est également ajoutée.
Exemple
// 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;
};
Spécifications
Contexte d’attribut | Valeur |
---|---|
S’applique à | class , struct |
Renouvelable | Oui |
Attributs requis | Un ou plusieurs des éléments suivants : coclass , progid ou vi_progid . |
Attributs non valides | Aucune |
Pour plus d'informations sur les contextes d'attribut, consultez Contextes d'attribut.
Voir aussi
Attributs COM
Attributs de classe
Attributs Typedef, Enum, Union et Struct
Agrégation
Aggregatable
COM_INTERFACE_ENTRY_AUTOAGGREGATE_BLIND