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 appelezCoCreateInstance
cet objet, vous devez spécifier l’interface deIUnknown
l’objet d’agrégation (contrôleIUnknown
).
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 , progid ou vi_progid . |
Attributs non valides | Aucune |
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