Compartir a través de


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. Esta es la configuración predeterminada.

  • always El objeto COM no se puede crear directamente y solo se puede agregar. Al llamar a CoCreateInstance para este objeto, debe especificar la interfaz IUnknown del objeto de agregación (el IUnknown 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 Ninguno

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