Sdílet prostřednictvím


aggregates

Označuje, že objekt agreguje objekt určený CLSID.

Syntaxe

[ aggregates(clsid, variable_name) ]

Parametry

Identifikátor clsid
Určuje CLSID agregatable objektu.

variable_name
Název proměnné, která se má vložit. Tato proměnná obsahuje IUnknown agregovaný objekt.

Poznámky

Při použití u objektu agreguje atribut C++ vnější obálku pro objekt agregovaný (určený clsid).

Tento atribut vyžaduje, aby se na stejný prvek použil také atribut coclass, progid nebo vi_progid (nebo jiný atribut, který napovídá jeden z těchto atributů). Pokud se použije jakýkoli jeden atribut, ostatní dva se automaticky použijí. Pokud se například progid použije a vi_progidcoclass použije se také.

Projekty ATL

Pokud se tento atribut používá v projektu, který používá ATL, chování atributu se změní. Nejprve se do mapy modelu COM cílového objektu přidá následující položka:

COM_INTERFACE_ENTRY_AUTOAGGREGATE_BLIND(_m_spAttrXXX, clsid)

Za druhé se přidá také DECLARE_GET_CONTROLLING_UNKNOWN makro.

Příklad

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

Požadavky

Kontext atributu Hodnota
Platí pro class, struct
Opakovatelnou Ano
Požadované atributy Nejméně jedna z následujících možností: coclass, progidnebo vi_progid.
Neplatné atributy Žádné

Další informace o kontextech atributů naleznete v tématu Kontexty atributů.

Viz také

COM – atributy
Atributy třídy
Atributy klíčových slov typedef, enum, union a struct
Agregace
Agregovatelné
COM_INTERFACE_ENTRY_AUTOAGGREGATE_BLIND