Partager via


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

Aggregation

Aggregatable

COM_INTERFACE_ENTRY_AUTOAGGREGATE_BLIND

Autres ressources

Attributs COM

Attributs de classe

Attributs Typedef, Enum, Union et Struct

Attributes Samples