aggregatable
Indica que la clase admite la agregación.
Sintaxis
[ aggregatable(value) ]
Parámetros
value
(Opcional) Parámetro para indicar cuándo se puede agregar el objeto COM:
never
El objeto COM no se puede agregar.allowed
El objeto COM se puede crear directamente o se puede agregar. Este es el valor predeterminado.always
El objeto COM no se puede crear directamente y solo se puede agregar. Al llamar aCoCreateInstance
para este objeto, debe especificar la interfazIUnknown
del objeto de agregación (elIUnknown
de control).
Comentarios
El atributo aggregatable de C++ tiene la misma funcionalidad que el atributo aggregatable de MIDL. Esto significa que el compilador pasará el atributo aggregatable mediante el archivo .idl generado.
Este atributo requiere que el atributo coclass, progido vi_progid (u otro atributo que implique uno de estos) se aplique también al mismo elemento. Si se usa cualquier atributo único, los otros dos se aplicarán automáticamente. Por ejemplo, si se aplica progid
, también se aplican vi_progid
y coclass
.
Proyectos ATL
Si este atributo se usa en un proyecto que usa ATL, el comportamiento del atributo cambiará. Además del comportamiento descrito anteriormente, el atributo también agrega una de las siguientes macros a la clase de destino:
Valor del parámetro | Macro insertada |
---|---|
Never |
DECLARE_NOT_AGGREGATABLE |
Allowed |
DECLARE_POLY_AGGREGATABLE |
Always |
DECLARE_ONLY_AGGREGATABLE |
Ejemplo
// 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 {};
Requisitos
Contexto de atributo | Valor |
---|---|
Se aplica a | class , struct |
Reiterativo | No |
Atributos requeridos | Uno o varios de los valores siguientes: coclass , progid o vi_progid . |
Atributos no válidos | None |
Para obtener más información acerca de los contextos de atributo, consulte Contextos de atributo.
Consulte también
Atributos IDL
Atributos de clase
Typedef, Enum, Union y Struct (atributos)
Agregación