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 (

另请参阅

AccessibleObjectFromEvent

SetWinEventHook

UnHookWinEvent

WinEvent