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


Макросы категорий

Эти макросы определяют карты категорий.

Макрос Description
BEGIN_CATEGORY_MAP Помечает начало карты категорий.
END_CATEGORY_MAP Помечает конец карты категорий.
IMPLEMENTED_CATEGORY Указывает категории, реализованные com-объектом.
REQUIRED_CATEGORY Указывает категории, необходимые для контейнера объектом COM.

Требования

Заголовок: atlcom.h

BEGIN_CATEGORY_MAP

Помечает начало карты категорий.

BEGIN_CATEGORY_MAP(theClass)

Параметры

TheClass
[in] Имя класса, содержащего карту категорий.

Замечания

Карта категорий используется для указания категорий компонентов, которые будет реализовывать класс COM, и какие категории он требует от контейнера.

Добавьте запись IMPLEMENTED_CATEGORY на карту для каждой категории, реализованной классом COM. Добавьте запись REQUIRED_CATEGORY на карту для каждой категории, которую класс должен реализовать. Пометьте конец карты с помощью макроса END_CATEGORY_MAP .

Категории компонентов, перечисленные в карте, автоматически регистрируются при регистрации модуля, если класс имеет связанный OBJECT_ENTRY_AUTO или OBJECT_ENTRY_NON_CREATEABLE_EX_AUTO.

Примечание.

ATL использует диспетчер категорий стандартных компонентов для регистрации категорий компонентов. Если диспетчер отсутствует в системе при регистрации модуля, регистрация завершается успешно, но категории компонентов не будут зарегистрированы для этого класса.

Дополнительные сведения о категориях компонентов см. в статье "Что такое категории компонентов" и как они работают в пакете SDK для Windows.

Пример

BEGIN_CATEGORY_MAP(CMyCtrl)
   IMPLEMENTED_CATEGORY(CATID_Insertable)
END_CATEGORY_MAP()

END_CATEGORY_MAP

Помечает конец карты категорий.

END_CATEGORY_MAP()

Пример

Пример BEGIN_CATEGORY_MAP.

IMPLEMENTED_CATEGORY

Добавьте макрос IMPLEMENTED_CATEGORY на карту категорий компонента, чтобы указать, что он должен быть зарегистрирован как реализующий категорию, определяемую параметром catID.

IMPLEMENTED_CATEGORY(catID)

Параметры

catID
[in] Константа ИЛИ переменная CATID, содержащая глобальный уникальный идентификатор (GUID) для реализованной категории. Адрес catID будет взят и добавлен в карту. См. таблицу ниже для выбора категорий акций.

Замечания

Категории компонентов, перечисленные в карте, автоматически регистрируются при регистрации модуля, если класс имеет связанный OBJECT_ENTRY_AUTO или макрос OBJECT_ENTRY_NON_CREATEABLE_EX_AUTO .

Клиенты могут использовать сведения о категории, зарегистрированные для класса, чтобы определить его возможности и требования, не создавая экземпляр.

Дополнительные сведения о категориях компонентов см. в статье "Что такое категории компонентов" и как они работают в пакете SDK для Windows.

Выбор категорий акций

Description Символ GUID реестра
Безопасный для сценариев CATID_SafeForScripting {7DD95801-9882-11CF-9FA9-00AA006C42C4}
Безопасно для инициализации CATID_SafeForInitializing {7DD95802-9882-11CF-9FA9-00AA006C42C4}
Простой контент сайта фрейма CATID_SimpleFrameControl {157083E0-2368-11cf-87B9-00AA006C8166}
простую привязку данных CATID_PropertyNotifyControl {157083E1-2368-11cf-87B9-00AA006C8166}
Расширенная привязка данных CATID_VBDataBound {157083E2-2368-11cf-87B9-00AA006C8166}
Элементы управления без окон CATID_WindowlessObject {1D06B600-3AE3-11cf-87B9-00AA006C8166}
Объекты с поддержкой Интернета Ознакомьтесь с объектами с поддержкой Интернета в пакете SDK для Windows для примера списка.

Пример

BEGIN_CATEGORY_MAP(CMyCtrl)
   IMPLEMENTED_CATEGORY(CATID_Insertable)
END_CATEGORY_MAP()

REQUIRED_CATEGORY

Добавьте макрос REQUIRED_CATEGORY на карту категорий компонента, чтобы указать, что он должен быть зарегистрирован как требующий категории, определяемой параметром catID.

REQUIRED_CATEGORY( catID )

Параметры

catID
[in] Константа ИЛИ переменная CATID, содержащая глобальный уникальный идентификатор (GUID) для требуемой категории. Адрес catID будет взят и добавлен в карту. См. таблицу ниже для выбора категорий акций.

Замечания

Категории компонентов, перечисленные в карте, автоматически регистрируются при регистрации модуля, если класс имеет связанный OBJECT_ENTRY_AUTO или макрос OBJECT_ENTRY_NON_CREATEABLE_EX_AUTO .

Клиенты могут использовать сведения о категории, зарегистрированные для класса, чтобы определить его возможности и требования, не создавая экземпляр. Например, элемент управления может требовать, чтобы контейнер поддерживал привязку данных. Контейнер может узнать, есть ли у него возможности, необходимые для размещения элемента управления, запрашивая диспетчер категорий для категорий, необходимых для этого элемента управления. Если контейнер не поддерживает необходимую функцию, он может отказаться от размещения COM-объекта.

Дополнительные сведения о категориях компонентов, включая пример списка, см. в разделе "Что такое категории компонентов" и как они работают в пакете SDK для Windows.

Выбор категорий акций

Description Символ GUID реестра
Безопасный для сценариев CATID_SafeForScripting {7DD95801-9882-11CF-9FA9-00AA006C42C4}
Безопасно для инициализации CATID_SafeForInitializing {7DD95802-9882-11CF-9FA9-00AA006C42C4}
Простой контент сайта фрейма CATID_SimpleFrameControl {157083E0-2368-11cf-87B9-00AA006C8166}
простую привязку данных CATID_PropertyNotifyControl {157083E1-2368-11cf-87B9-00AA006C8166}
Расширенная привязка данных CATID_VBDataBound {157083E2-2368-11cf-87B9-00AA006C8166}
Элементы управления без окон CATID_WindowlessObject {1D06B600-3AE3-11cf-87B9-00AA006C8166}
Объекты с поддержкой Интернета Ознакомьтесь с объектами с поддержкой Интернета в пакете SDK для Windows для примера списка.

Пример

BEGIN_CATEGORY_MAP(CMyWindow)
   REQUIRED_CATEGORY(CATID_InternetAware)
END_CATEGORY_MAP()

См. также

Макросы