Выделение идентификаторов WinEvent
Каждое WinEvent предназначено только для конкретной цели. Использование WinEvent для непреднамеренного назначения может привести к конфликтам с другими приложениями или операционной системой, что может привести к нестабильной работе приложений или операционной системы.
Корпорация Майкрософт определила несколько различных категорий WinEvents и для каждой категории определила один или несколько диапазонов значений для использования в качестве идентификаторов WinEvent. Зарезервированный диапазон сообщества (0xA000 — 0xAFFF) доступен для приложений, которым необходимо определить новые winEvents. Использование значений из этого диапазона помогает снизить риск конфликтов; Однако разработчикам, которые создают новые winEvents, по-прежнему необходимо совместно работать, чтобы избежать конфликтов между их приложениями.
В следующей таблице показаны категории WinEvent и диапазоны значений, определенных для каждой категории.
Категория | Диапазон | В настоящее время используется | Комментарии |
---|---|---|---|
События microsoft Active Accessibility (зарезервированная система) | 0x0001-0x00FF | 0x0001-0x0020 | идентификаторы событий EVENT_SYSTEM_* |
События microsoft Active Accessibility (зарезервированная система) | 0x4001-0x40FF | 0x4001-0x4007 | идентификаторы событий EVENT_CONSOLE_* |
События автоматизации пользовательского интерфейса (зарезервированная система) | 0x4E00-0x4EFF | 0x4E20-0x4E33 | Идентификаторы событий автоматизации пользовательского интерфейса |
События автоматизации пользовательского интерфейса (зарезервированная система) | 0x7500-0x75FF | 0x7530-0x759B | Измененные идентификаторы событий службы автоматизации пользовательского интерфейса |
События microsoft Active Accessibility (зарезервированная система) | 0x8000-0x80FF | 0x8000-0x8015 | идентификаторы событий EVENT_OBJECT_* |
Зарезервировано OEM | 0x0101-0x01FF | 0x0101-0x0122 | Идентификаторы событий IAccessible2 |
Зарезервировано сообществом | 0xA000-0xAFFF | Никакой | Зарезервировано для новых событий, определенных спецификациями Альянса взаимодействия специальных возможностей (AIA) |
АТОМ | 0xC000-0xFFFF | 0xC000-0xFFFF | Зарезервировано для пользовательских событий, выделенных во время выполнения |
В следующих разделах подробно описываются диапазоны WinEvent.
События службы "Специальные возможности Майкрософт" и "Автоматизация пользовательского интерфейса"
Пять диапазонов идентификаторов WinEvent зарезервированы для использования microsoft Active Accessibility и службы автоматизации пользовательского интерфейса Майкрософт. Первый диапазон (0x0001 — 0x00FF) зарезервирован для событий на уровне системы, обычно используется для описания ситуаций, влияющих на все приложения в системе. Второй диапазон (0x4001 — 0x40FF) зарезервирован для событий консоли Windows. Третий (0x4E00—0x4EFF) и четвертый диапазоны (0x7500— 0x75FF) предназначены для отражения событий автоматизации пользовательского интерфейса. Наконец, пятый диапазон (0x8000 — 0x80FF) предназначен для событий уровня объектов, относящихся к ситуациям, относящимся к объектам в одном приложении.
Все события Microsoft Active Accessy и автоматизации пользовательского интерфейса определяются в файлах заголовков WinUser.h и UIAutomationClient.h.
Зарезервированные события OEM
Зарезервированный диапазон OEM открыт для всех, кто должен использовать WinEvents в качестве механизма коммуникации. Разработчики должны определять и публиковать определения событий вместе с их параметрами (или связанными типами объектов) для обработки событий, чтобы избежать случайных столкновений идентификаторов событий. Спецификация IAccessible2 использует часть зарезервированного диапазона OEM.
Зарезервированные события сообщества
Зарезервированный диапазон сообщества предназначен для WinEvents, указанных альянсом по взаимодействию с специальными возможностями (AIA) для использования в отрасли. Разработчикам настоятельно рекомендуется определить и опубликовать официальную спецификацию перед использованием значений из этого диапазона.
События ATOM
Диапазон ATOM зарезервирован для идентификаторов событий, выделенных во время выполнения через API расширения службы автоматизации пользовательского интерфейса. Не используйте значения из диапазона ATOM для любой другой цели. Использование функции GlobalAddAtom со строковым GUID — это рекомендуемый метод выделения WinEvents из диапазона ATOM.
Использование значений из зарезервированного диапазона
В соответствии со спецификацией WinEvent значения из системного зарезервированного диапазона или любого другого неопределяемого диапазона нельзя использовать без изменения пакета SDK. Для новых приложений WinEvents следует использовать значения из зарезервированных или зарезервированных диапазонов сообщества OEM. Прежде чем использовать новый WinEvent, разработчикам настоятельно рекомендуется поделиться своими спецификациями открыто и широко и работать с Альянсом по взаимодействию со специальными возможностями для определения спецификаций WinEvent.
Связанные разделы