AccessibleObjectFromPoint 函数 (oleacc.h)

检索在屏幕上的指定点处显示的对象的 IAccessible 接口指针的地址。

语法

HRESULT AccessibleObjectFromPoint(
  [in]  POINT       ptScreen,
  [out] IAccessible **ppacc,
  [out] VARIANT     *pvarChild
);

参数

[in] ptScreen

在物理屏幕坐标中指定所检查的点。

[out] ppacc

接收对象的 IAccessible 接口地址的指针变量的地址。

[out] pvarChild

VARIANT 结构的地址,该结构指定 ppacc 中返回的 IAccessible 接口指针是属于指定点处显示的对象,还是属于指定点处元素的父级。 VARIANTvt 成员始终VT_I4。 如果 lVal 成员CHILDID_SELF,则 ppacc 处的 IAccessible 接口指针属于该点的对象。 如果未CHILDID_SELF lVal 成员, 则 ppacc 是子元素的父对象的 IAccessible 接口的地址。 客户端在使用完时必须对检索到的 VARIANT 参数调用 VariantClear

返回值

如果成功,则返回 S_OK。

如果未成功,则返回以下代码之一或另一个标准 COM 错误代码

返回代码 说明
E_INVALIDARG
自变量无效。

注解

此函数在给定点检索对象层次结构中最低级别的可访问对象。 如果点处的元素不是可访问对象 (即 , 不支持 IAccessible) ,则该函数将检索父对象的 IAccessible 接口。 父对象必须通过 IAccessible 接口提供有关子元素的信息。 调用 IAccessible::accHitTest 以标识指定屏幕坐标处的子元素。

与其他 IAccessible 方法和函数一样,由于用户操作,客户端可能会收到 IAccessible 接口指针错误。 有关详细信息,请参阅 接收 IAccessible 接口指针的错误

客户端示例

以下示例函数选择屏幕上指定点处的项。 假定需要单个选择。

HRESULT SelectItemAtPoint(POINT point)
{
    VARIANT varItem;
    IAccessible* pAcc;
    HRESULT hr = AccessibleObjectFromPoint(point, &pAcc, &varItem);
    if ((hr == S_OK))
    {
        hr = pAcc->accSelect((SELFLAG_TAKEFOCUS | SELFLAG_TAKESELECTION), varItem);
        VariantClear(&varItem);
        pAcc->Release();
    }
    return hr;
}

要求

要求
最低受支持的客户端 Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器 Windows Server 2003 [仅限桌面应用]
目标平台 Windows
标头 oleacc.h
Library Oleacc.lib
DLL Oleacc.dll
可再发行组件 具有 SP6 及更高版本和 Windows 95 的 Windows NT 4.0 上的 Active Accessibility 1.3 RDK

另请参阅

AccessibleObjectFromEvent

AccessibleObjectFromWindow

活动辅助功能和 Windows Vista 屏幕缩放

IAccessible

VARIANT 结构