статистические выражения
Указывает, что объект выполняет статистическое вычисление объекта, заданного параметром CLSID.
Синтаксис
[ aggregates(clsid, variable_name) ]
Параметры
clsid
Указывает CLSID статистически вычисляемого объекта.
variable_name
Имя переменной для вставки. Эта переменная содержит IUnknown
агрегируемый объект.
Замечания
При применении к объекту атрибут aggregates языка C++ реализует внешнюю программу-оболочку статистически вычисляемого объекта (указан в clsid
).
Этот атрибут требует, чтобы атрибут coclass, progidили vi_progid (или другой атрибут, который подразумевает один из них) также применялся к этому элементу. Если используется любой отдельный атрибут, два других применяются автоматически. Например, если progid
применяется, vi_progid
а coclass
также применяется.
Проекты ATL
Если этот атрибут используется в проекте, где применяется ATL, поведение атрибута изменяется. Во-первых, в карту COM целевого объекта добавляется следующая запись:
COM_INTERFACE_ENTRY_AUTOAGGREGATE_BLIND(_m_spAttrXXX, clsid)
Во-вторых, также добавляется макрос DECLARE_GET_CONTROLLING_UNKNOWN .
Пример
// 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;
};
Требования
Контекст атрибута | Значение |
---|---|
Относится к | class , struct |
Повторяемый | Да |
Обязательные атрибуты | Одно или несколько из следующих элементов: coclass , progid или vi_progid . |
Недопустимые атрибуты | нет |
Дополнительные сведения о контекстах атрибутов см. в разделе Контексты атрибутов.
См. также
Атрибуты COM
Атрибуты классов
Атрибуты Typedef, Enum, Union и Struct
Агрегат
Aggregatable
COM_INTERFACE_ENTRY_AUTOAGGREGATE_BLIND