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