Compartilhar via


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

Aggregation

Aggregatable

COM_INTERFACE_ENTRY_AUTOAGGREGATE_BLIND

Outros recursos

Atributos COM

Atributos de classe

Atributos Typedef, Enum, Union e Struct

Attributes Samples