WM_GETOBJECT消息

Microsoft Active Accessibility 和 Microsoft UI 自动化发送,以获取有关服务器应用程序中包含的可访问对象的信息。

应用程序永远不会直接发送此消息。 Microsoft Active Accessibility 发送此消息以响应对 AccessibleObjectFromPointAccessibleObjectFromEventAccessibleObjectFromWindow 的调用。 但是,服务器应用程序处理此消息。 UI 自动化发送此消息以响应对 IUIAutomation::ElementFromHandleElementFromPointGetFocusedElement 的调用,以及处理客户端注册的事件时。

dwFlags = (WPARAM)(DWORD) wParam;
dwObjId = (LPARAM)(DWORD) lParam;

参数

dwFlags

提供有关消息的其他信息,仅供系统使用。 在处理消息时,服务器在调用 LresultFromObject 时将 dwFlags 作为 wParam 参数传递。

dwObjId

对象标识符。 此值是 对象标识符 常量之一或自定义对象标识符。 服务器应用程序必须检查此值才能标识所请求的信息类型。 在将此值与OBJID_值进行比较之前,服务器必须将该值强制转换为 DWORD;否则,在 64 位Windows上,lParam 的符号扩展可能会干扰比较。

  • 如果 dwObjIdOBJID_CLIENT等OBJID_值之一,则请求适用于实现 IAccessible 的 Microsoft Active Accessibility 对象。
  • 如果 dwObjId 等于 UiaRootObjectId,则请求用于UI 自动化提供程序。 如果服务器正在实现UI 自动化,则应使用 UiaReturnRawElementProvider 函数返回提供程序。
  • 如果 dwObjIdOBJID_NATIVEOM,则请求用于控件的基础对象模型。 如果控件支持此请求,则应通过调用 LresultFromObject 函数返回相应的 COM 接口。
  • 如果 dwObjIdOBJID_QUERYCLASSNAMEIDX,则请求是让控件将自身标识为标准Windows控件或由公共控件库 (ComCtrl.dll) 实现的通用控件。

返回值

如果窗口或控件不需要响应此消息,则应将消息传递给 DefWindowProc 函数;否则,窗口或控件应返回一个值,该值对应于 dwObjId 指定的请求:

备注

当客户端调用 AccessibleObjectFromWindow 或任何其他用于检索对象接口的 AccessibleObjectFromX 函数时,Microsoft Active Accessibility 会将WM_GETOBJECT消息发送到相应服务器应用程序中的相应窗口过程。 处理 WM_GETOBJECT时,服务器应用程序调用 LresultFromObject ,并使用此函数的返回值作为消息的返回值。 Microsoft Active Accessibility 与 COM 库结合使用,执行适当的封送处理,并将接口指针从服务器传回客户端。

服务器在对象完全初始化或开始关闭之前不会响应 WM_GETOBJECT 。 当应用程序创建新窗口时,系统会发送 EVENT_OBJECT_CREATE ,以在将 WM_CREATE 消息发送到应用程序的窗口过程之前通知客户端。 由于许多应用程序使用WM_CREATE启动初始化过程,因此服务器在处理完WM_CREATE消息之前不会响应WM_GETOBJECT消息。

服务器使用 WM_GETOBJECT 来执行以下任务:

对于客户端,这意味着它们可能会接收同一用户界面元素的不同接口指针,具体取决于服务器的操作。 若要确定两个接口指针是否指向同一用户界面元素,客户端比较对象的 IAccessible 属性。 比较指针不起作用。

要求

要求
最低受支持的客户端
Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器
Windows Server 2003 [仅限桌面应用]
可再发行组件
SP6 及更高版本和 Windows 95 Windows NT 4.0 上的活动辅助功能 1.3 RDK
标头
Winuser.h (包括 Windows.h)

另请参阅

如何处理WM_GETOBJECT

WM_GETOBJECT的工作原理

LresultFromObject