agregados
Indica que el objeto agrega el objeto especificado por el CLSID.
[ aggregates(
clsid,
variable_name
) ]
Parámetros
clsid
Especifica el CLSID del objeto aggregatable.variable_name
El nombre de la variable que debe incrustar.Esta variable contiene IUnknown de objeto incluido.
Comentarios
Cuando se aplica a un objeto, el atributo de agregados C++ implementa un contenedor externo para el objeto incluido (especificado por clsid).
Este atributo requiere que CoClass, ProgID, o el atributo de vi_progid (u otro atributo que implica una de estas) también se aplican al mismo elemento.Si se utiliza cualquier atributo único, los otros dos se aplica automáticamente.por ejemplo, si se aplica ProgID , vi_progid y CoClass también se aplican.
Proyectos de ATL
Si este atributo se utiliza dentro de un proyecto que utilice ATL, el comportamiento del atributo cambia.Primero, la siguiente entrada se agrega al mapa COM del objeto de destino:
COM_INTERFACE_ENTRY_AUTOAGGREGATE_BLIND(_m_spAttrXXX, clsid)
en segundo lugar, la macro de DECLARE_GET_CONTROLLING_UNKNOWN también se agrega.
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
Se aplica a |
clase, struct |
repetible |
Sí |
Atributos necesarios |
Uno o más de los siguientes: CoClass, ProgID, o vi_progid. |
Atributos no válidos |
None |
Para obtener más información sobre los contextos de atributos, vea Contextos de atributo.
Vea también
Referencia
COM_INTERFACE_ENTRY_AUTOAGGREGATE_BLIND