Compartir por


agregados

Indica que el objeto agrega el objeto especificado por el CLSID.

Sintaxis

[ aggregates(clsid, variable_name) ]

Parámetros

clsid
Especifica el CLSID del objeto agregable.

variable_name
El nombre de la variable que se va a insertar. Esta variable contiene el elemento IUnknown del objeto que se va a agregar.

Comentarios

Cuando se aplica a un objeto, el atributo C++ aggregates implementa un contenedor externo para el objeto que se va a agregar (especificado por clsid).

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á. Primero se agrega la siguiente entrada al mapa COM del objeto de destino:

COM_INTERFACE_ENTRY_AUTOAGGREGATE_BLIND(_m_spAttrXXX, clsid)

Después, también se agrega la macro DECLARE_GET_CONTROLLING_UNKNOWN .

Ejemplo

// 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;
};

Requisitos

Contexto de atributo Valor
Se aplica a class, struct
Reiterativo
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 COM
Atributos de clase
Typedef, Enum, Union y Struct (atributos)
Agregación
Aggregatable
COM_INTERFACE_ENTRY_AUTOAGGREGATE_BLIND