notifyWinEvent 函数 (winuser.h)
向系统发出信号,指出发生了预定义事件。 如果任何客户端应用程序为该事件注册了挂钩函数,系统将调用客户端的挂钩函数。
语法
void NotifyWinEvent(
[in] DWORD event,
[in] HWND hwnd,
[in] LONG idObject,
[in] LONG idChild
);
参数
[in] event
类型: DWORD
指定发生的事件。 此值必须是事件常量之一。
[in] hwnd
类型: HWND
包含生成事件的对象的窗口的句柄。
[in] idObject
类型: LONG
标识生成事件的对象。 此值是预定义 的对象标识符 之一或自定义对象 ID 值。
[in] idChild
类型: LONG
标识事件是由 对象还是对象的子元素生成的。 如果此值CHILDID_SELF,则事件是由对象本身生成的。 如果未CHILDID_SELF,此值是生成事件的元素的子 ID。
返回值
无
备注
服务器调用此函数以通知系统已发生事件。 Microsoft Active Accessibility 检查是否有任何客户端应用程序为事件设置了挂钩过程,如果是,则调用相应的挂钩过程。
如果没有为事件注册挂钩过程,则调用此函数的性能损失很小。
服务器调用 NotifyWinEvent 以在事件发生后向系统宣布事件;它们不得在事件发生之前通知系统事件。
调用客户端的挂钩过程时,它会收到许多参数,这些参数描述事件和生成事件的 对象。 挂钩过程使用 AccessibleObjectFromEvent 函数检索指向生成事件的对象的 IAccessible 接口的指针。
服务器可能会在调用此函数后立即收到 WM_GETOBJECT 消息。 如果有任何上下文客户端在事件回调中调用 AccessibleObjectFromEvent ,则可能会发生这种情况。
当服务器调用此函数时,它们必须准备好处理 WM_GETOBJECT、返回 IAccessible 接口指针并处理任何 IAccessible 方法。
服务器开发人员注意事项: 调用 NotifyWinEvent 时,如果有任何客户端在上下文中侦听该事件,则其事件处理程序(通常发送 WM_GETOBJECT 并调用 IAccessible 方法)将在 NotifyWinEvent 返回之前执行。 调用 NotifyWinEvent 时,应准备好处理这些调用(如果发生)。 如果需要执行额外的设置以允许执行此操作,则应在调用 NotifyWinEvent 之前(而不是之后)执行此操作。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2003 [仅限桌面应用] |
目标平台 | Windows |
标头 | winuser.h (包括 Windows.h) |
Library | User32.lib |
DLL | User32.dll |
可再发行组件 | 具有 SP6 及更高版本和 Windows 95 的 Windows NT 4.0 上的 Active Accessibility 1.3 RDK |
API 集 | 在 Windows 8) 中引入的 ext-ms-win-ntuser-server-l1-1-0 ( |