Поделиться через


aggregatable

Указывает, что класс поддерживает агрегирование.

[ aggregatable(  
   value 
) ]

Параметры

  • Значение (необязательно)
    Параметр для указания того, когда COM-объект могут быть агрегированными.

    • никогда   Com-объекты не могут быть агрегированными.

    • разрешено   COM-объект может быть создан непосредственно, либо он может быть агрегированными. Это значение по умолчанию.

    • всегда   Com-объекты не может быть создан непосредственно, а может быть только статистическая обработка проводится. При вызове CoCreateInstance для данного объекта необходимо указать при выполнении статистической обработки объекта IUnknown интерфейс (наблюдение IUnknown).

Заметки

aggregatable Атрибут C++ имеет ту же функциональность, что и aggregatable атрибут MIDL. Это означает, что компилятор передает aggregatable атрибут до конца к созданному файлу idl.

Этот атрибут необходим CoClass" идентификатор progidили vi_progid атрибут (или другой атрибут, подразумевается одно из них) также были применены к одному элементу. Если отдельный атрибут используется, то остальные 2 автоматически применены. Например, если идентификатор progid применяет vi_progid и CoClass также применить.

Проекты ATL

Если этот атрибут используется в рамках проекта, использующий библиотеку ATL, расширения функциональности атрибута изменяется. В дополнение к ранее описанной в расширениях функциональности, атрибут также добавляет один из следующих макросов к классу целевого объекта:

Значение параметра

Inserted макрос

Никогда

DECLARE_NOT_AGGREGATABLE

Разрешено

DECLARE_POLY_AGGREGATABLE

Всегда

DECLARE_ONLY_AGGREGATABLE

Пример

// cpp_attr_ref_aggregatable.cpp
// compile with: /LD
#define _ATL_ATTRIBUTES
#include "atlbase.h"
#include "atlcom.h"

[module(name="MyModule")];

[ coclass, aggregatable(allowed),
  uuid("1a8369cc-1c91-42c4-befa-5a5d8c9d2529")]
class CMyClass {};

Требования

Контекст атрибута

Применение

класс" struct

Repeatable

Нет

Обязательные атрибуты

Одно или несколько из следующих значений: CoClass" идентификатор progidили vi_progid.

Недопустимые атрибуты

None

Дополнительные сведения о контекстах атрибута см. в разделе Контексты атрибута.

См. также

Ссылки

Aggregation

Другие ресурсы

Атрибуты IDL

Атрибуты классов

Атрибуты Typedef, Enum, Union и Struct

Attributes Samples