aggregates
Označuje, že objekt agreguje objekt určený CLSID.
Syntaxe
[ aggregates(clsid, variable_name) ]
Parametry
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_progid
coclass
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 |
Opakovatelný | Ano |
Požadované atributy | Nejméně jedna z následujících možností: coclass , progid nebo vi_progid . |
Neplatné atributy | Nic |
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
Agregatable
COM_INTERFACE_ENTRY_AUTOAGGREGATE_BLIND