aggregates
Indica que o objeto agrega o objeto especificado pelo CLSID.
[ aggregates(
clsid,
variable_name
) ]
Parâmetros
clsid
Especifica o CLSID do objeto agregável.variable_name
O nome da variável deve ser inserido. Essa variável contém o IUnknown do objeto que está sendo agregado.
Comentários
Quando aplicado a um objeto, o agregados atributo C++ implementa um wrapper externo para o objeto que está sendo agregado (especificado por clsid).
Este atributo requer que o coclass, progid, ou vi_progid atributo (ou outro atributo implica um deles) também ser aplicadas ao mesmo elemento. Se qualquer atributo único for usado, as outras duas são aplicadas automaticamente. Por exemplo, se progid for aplicada, vi_progid e coclass também são aplicadas.
Projetos do ATL
Se esse atributo é usado dentro de um projeto que usa a ATL, o comportamento das alterações de atributo. Em primeiro lugar, a seguinte entrada é adicionada ao mapa do objeto alvo COM:
COM_INTERFACE_ENTRY_AUTOAGGREGATE_BLIND(_m_spAttrXXX, clsid)
Segundo, o DECLARE_GET_CONTROLLING_UNKNOWN macro também é adicionada.
Exemplo
// 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 |
classe,struct |
Reproduzíveis |
Sim |
Atributos obrigatórios |
Um ou mais das seguintes opções: coclass, progid, ou vi_progid. |
Atributos inválidos |
Nenhum |
Para obter mais informações sobre os contextos de atributo, consulte Atributo contextos.
Consulte também
Referência
COM_INTERFACE_ENTRY_AUTOAGGREGATE_BLIND