Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Wskazuje, że obiekt agreguje obiekt określony przez CLSID.
Składnia
[ aggregates(clsid, variable_name) ]
Parametry
clsid
Określa CLSID obiektu aggregatable.
variable_name
Nazwa zmiennej, która ma zostać wstawiona. Ta zmienna zawiera IUnknown
zagregowany obiekt.
Uwagi
Po zastosowaniu do obiektu atrybut agreguje C++ implementuje zewnętrzną otokę dla obiektu agregowanego (określonego przez clsid
).
Ten atrybut wymaga również zastosowania coclass, progid lub vi_progid atrybutu (lub innego atrybutu, który implikuje jeden z tych) również do tego samego elementu. Jeśli jest używany jakikolwiek pojedynczy atrybut, pozostałe dwa są stosowane automatycznie. Na przykład, jeśli progid
jest stosowany, vi_progid
i coclass
są również stosowane.
Projekty ATL
Jeśli ten atrybut jest używany w projekcie korzystającym z atl, zachowanie atrybutu ulega zmianie. Najpierw do mapy COM obiektu docelowego zostanie dodany następujący wpis:
COM_INTERFACE_ENTRY_AUTOAGGREGATE_BLIND(_m_spAttrXXX, clsid)
Po drugie, dodano również makro DECLARE_GET_CONTROLLING_UNKNOWN .
Przykład
// 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;
};
Wymagania
Kontekst atrybutu | Wartość |
---|---|
Dotyczy | class , struct |
Powtarzalne | Tak |
Wymagane atrybuty | Co najmniej jeden z następujących elementów: coclass , progid lub vi_progid . |
Nieprawidłowe atrybuty | Brak |
Aby uzyskać więcej informacji na temat kontekstów atrybutów, zobacz Konteksty atrybutów.
Zobacz też
Atrybuty COM
Atrybuty klasy
Atrybuty Typedef, Enum, Union oraz Struct
Agregacja
Aggregatable
COM_INTERFACE_ENTRY_AUTOAGGREGATE_BLIND