Partager via


aggregatable

Indique que la classe prend en charge l’agrégation.

Syntaxe

[ aggregatable(value) ]

Paramètres

valeur
(Facultatif) Paramètre permettant d’indiquer quand l’objet COM peut être agrégé :

  • never Impossible d’agréger l’objet COM.

  • allowed L’objet COM peut être créé directement ou il peut être agrégé. Il s’agit de la valeur par défaut.

  • always L’objet COM ne peut pas être créé directement et ne peut être agrégé que. Lorsque vous appelez CoCreateInstance cet objet, vous devez spécifier l’interface de IUnknown l’objet d’agrégation (contrôle IUnknown).

Notes

L’attribut C++ aggregatable a la même fonctionnalité que l’attribut MIDL aggregatable . Cela signifie que le compilateur transmet l’attribut aggregatable au fichier .idl généré.

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. Outre le comportement décrit précédemment, l’attribut ajoute également l’une des macros suivantes à la classe cible :

Valeur de paramètre Macro insérée
Never DECLARE_NOT_AGGREGATABLE
Allowed DECLARE_POLY_AGGREGATABLE
Always DECLARE_ONLY_AGGREGATABLE

Exemple

// cpp_attr_ref_aggregatable.cpp
// compile with: /LD
#define _ATL_ATTRIBUTES
#include "atlbase.h"
#include "atlcom.h"

[module(name="MyModule")];

[ coclass, aggregatable(allowed),
  uuid("1a8369cc-1c91-42c4-befa-5a5d8c9d2529")]
class CMyClass {};

Spécifications

Contexte d’attribut Valeur
S’applique à class, struct
Renouvelable Non
Attributs requis Un ou plusieurs des éléments suivants : coclass, progidou vi_progid.
Attributs non valides Aucun(e)

Pour plus d'informations sur les contextes d'attribut, consultez Contextes d'attribut.

Voir aussi

Attributs IDL
Attributs de classe
Attributs Typedef, Enum, Union et Struct
Agrégation