Функция AccessibleObjectFromPoint (oleacc.h)

Извлекает адрес указателя интерфейса IAccessible для объекта, отображаемого в указанной точке на экране.

Синтаксис

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

Параметры

[in] ptScreen

Указывает в физических координатах экрана проверяемую точку.

[out] ppacc

Адрес переменной указателя, получающей адрес интерфейса IAccessible объекта.

[out] pvarChild

Адрес структуры VARIANT , указывающий, принадлежит ли указатель интерфейса IAccessible , возвращаемый в ppacc , объекту, отображаемому в указанной точке, или родительскому элементу в указанной точке. Член vtvariant всегда VT_I4. Если член lVal CHILDID_SELF, то указатель интерфейса IAccessible на ppacc принадлежит объекту в точке . Если член lVal не CHILDID_SELF, ppacc — это адрес интерфейса IAccessible родительского объекта дочернего элемента. Клиенты должны вызывать VariantClear для полученного параметра VARIANT по завершении его использования.

Возвращаемое значение

Возвращает значение S_OK, если операция завершилась успешно.

В противном случае возвращает один из следующих или другой стандартный код ошибки COM.

Код возврата Описание
E_INVALIDARG
Аргумент является недопустимым.

Комментарии

Эта функция извлекает доступный объект самого низкого уровня в иерархии объектов в заданной точке. Если элемент в точке не является доступным объектом (то есть не поддерживает IAccessible), функция извлекает интерфейс IAccessible родительского объекта. Родительский объект должен предоставлять сведения о дочернем элементе через интерфейс IAccessible . Вызовите метод IAccessible::accHitTest , чтобы определить дочерний элемент в указанных координатах экрана.

Как и в случае с другими методами и функциями IAccess , клиенты могут получать ошибки для указателей интерфейса IAccess из-за действия пользователя. Дополнительные сведения см. в разделе Получение ошибок для указателей интерфейса 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
Header oleacc.h
Библиотека Oleacc.lib
DLL Oleacc.dll
Распространяемые компоненты Активные специальные возможности 1.3 RDK в Windows NT 4.0 с пакетом обновления 6 (SP6) и более поздних версий и Windows 95

См. также раздел

AccessibleObjectFromEvent

AccessibleObjectFromWindow

Активные специальные возможности и масштабирование экрана Windows Vista

IAccessible

Структура VARIANT