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 | Sí |
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