检索 IAccessible 对象
Microsoft Active Accessibility 提供一些函数,例如 AccessibleObjectFromWindow 和 AccessibleObjectFromPoint ,这些函数允许客户端检索可访问的对象。 这些函数返回 IDispatch 或 IAccessible 接口指针,客户端通过该指针获取有关可访问对象的信息。
当客户端调用 AccessibilitObjectFromWindow 或检索对象接口的任何其他 AccessibleObjectFromX 函数时,Microsoft Active Accessibility 会将 WM_GETOBJECT 窗口消息发送到相应应用程序中的适用窗口过程。 若要向客户端提供信息,服务器必须响应 WM_GETOBJECT 消息。
若要收集有关 UI 元素的特定信息,客户端必须首先检索元素的 IAccessible 接口。 若要检索元素的 IAccessible 对象,客户端可以使用以下函数之一:
检索 IAccessible 接口指针
客户端调用 一个 AccessibleObjectFromX 函数。
Oleacc.dll将 WM_GETOBJECT 消息发送到服务器。
服务器确定哪个 UI 元素对应于请求。
服务器返回零以请求Oleacc.dll代理,
或
返回本机实现) (IAccessible 对象。 为此,它:
- 为 元素构造 IAccessible 对象。
- 调用 LresultFromObject 以封送对象的指针。
- 返回Oleacc.dll的 LRESULT。
Oleacc.dll检查 WM_GETOBJECT的返回值。
如果为零,Oleacc.dll将构造一个代理对象并将其返回给客户端。
或
如果为非零值,Oleacc.dll调用 ObjectFromLresult 以取消对本机 IAccessible 对象指针的封送,并将其返回到客户端。