Макросы категорий
Эти макросы определяют карты категорий.
Макрос | 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()
Пример
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()