WinEvent ID 的分配

每个 WinEvent 仅用于特定目的。 将 WinEvent 用于意外目的可能会导致与其他应用程序或操作系统发生冲突,从而导致应用程序或操作系统变得不稳定。

Microsoft 定义了 WinEvent 的多个不同类别,并且为每个类别定义了一个或多个值范围,用作 WinEvent ID。 社区保留范围 (0xA000 - 0xAFFF) 可用于需要定义新 WinEvent 的应用程序。 使用此范围中的值有助于降低发生冲突的风险;但是,创建新 WinEvent 的开发人员仍然需要协作以避免应用程序之间的冲突。

下表显示了 WinEvent 类别和为每个类别定义的值范围。

类别 范围 当前正在使用中 注释
Microsoft Active Accessibility 事件 (系统保留) 0x0001-0x00FF 0x0001-0x0020 EVENT_SYSTEM_* 事件 ID
Microsoft Active Accessibility 事件 (系统保留) 0x4001-0x40FF 0x4001-0x4007 EVENT_CONSOLE_* 事件 ID
(系统保留) UI 自动化事件 0x4E00-0x4EFF 0x4E20-0x4E33 UI 自动化事件 ID
(系统保留) UI 自动化事件 0x7500-0x75FF 0x7530-0x759B UI 自动化属性更改事件 ID
Microsoft Active Accessibility 事件 (系统保留) 0x8000-0x80FF 0x8000-0x8015 EVENT_OBJECT_* 事件 ID
OEM 保留 0x0101-0x01FF 0x0101-0x0122 IAccessible2 事件 ID
社区保留 0xA000-0xAFFF 保留给辅助功能互操作性联盟 (AIA) 规范定义的新事件
ATOM 0xC000-0xFFFF 0xC000-0xFFFF 为在运行时分配的自定义事件保留

 

以下主题更详细地描述了 WinEvent 范围。

Microsoft Active Accessibility 和 UI 自动化 事件

保留五个 WinEvent ID 范围供 Microsoft Active Accessibility 和 Microsoft UI 自动化使用。 第一个范围 (0x0001 - 0x00FF) 是为系统级事件保留的,通常用于描述影响系统中所有应用程序的情况。 第二个范围 (0x4001 - 0x40FF) 是为特定于 Windows 控制台的事件保留的。 第三个 (0x4E00(0x4EFF) 和第四个范围 (0x7500)0x75FF) 用于反映UI 自动化事件。 最后,第五个范围 (0x8000 - 0x80FF) 适用于与一个应用程序中的对象特定情况相关的对象级事件。

所有 Microsoft Active Accessibility 和 UI 自动化 事件都在 WinUser.h 和 UIAutomationClient.h 头文件中定义。

OEM 保留事件

OEM 保留范围向需要将 WinEvents 用作通信机制的任何人开放。 开发人员应定义和发布事件定义及其参数 (或关联对象类型,) 用于事件处理,以避免事件 ID 的意外冲突。 IAccessible2 规范使用 OEM 保留范围的一部分。

社区保留活动

社区保留范围适用于由辅助功能互操作性联盟指定的 WinEvents (AIA) ,供整个行业使用。 强烈建议开发人员在使用此范围内的值之前定义和发布官方规范。

ATOM 事件

ATOM 范围是为在运行时通过UI 自动化扩展性 API 分配的事件 ID 保留的。 请勿将 ATOM 范围中的值用于任何其他目的。 建议使用具有字符串 GUID 的 GlobalAddAtom 函数从 ATOM 范围分配 WinEvents。

使用保留范围中的值

根据 WinEvent 规范,系统保留范围或任何其他未定义范围的值不能在不修改 SDK 的情况下使用。 对于新的 WinEvent,应用程序应使用 OEM 预留或社区保留范围中的值。 在使用新的 WinEvent 之前,强烈建议开发人员公开和广泛共享其规范,并应与辅助功能互操作性联盟合作来定义 WinEvent 规范。

WinEvent

辅助功能互操作性联盟