agrégats
Indique que l'objet regroupe l'objet spécifié par le CLSID.
[ aggregates(
clsid,
variable_name
) ]
Paramètres
clsid
Spécifie le CLSID de l'objet aggregatable.variable_name
Le nom de la variable qui doit être inséré. Cette variable contient IUnknown de l'objet qui est regroupé.
Notes
Appliqué à un objet, l'attribut d' agrégats C++ implémente un wrapper externe pour l'objet qui est regroupé (spécifié par clsid).
Cet attribut requiert que coclasse, progid, ou un attribut de vi_progid (ou un attribut différent qui implique un d'eux) également être appliqués au même élément. Si attribut unique en est utilisé, les deux autres sont automatiquement appliqués. par exemple, si progid est appliqué, vi_progid et coclasse sont également appliqués.
Projets ATL
si cet attribut est utilisé dans un projet qui utilise ATL, le comportement de l'attribut change. 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 de 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;
};
Configuration requise
contexte d'attribut
S'applique à |
classe, struct |
reproductible |
Oui |
attributs requis |
Un ou plusieurs des éléments suivants : coclasse, progid, ou vi_progid. |
attributs valides |
Aucun |
Pour plus d'informations sur les contextes d'attribut, consultez contextes d'attribut.
Voir aussi
Référence
COM_INTERFACE_ENTRY_AUTOAGGREGATE_BLIND