Функция 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.
Код возврата | Описание |
---|---|
|
Аргумент является недопустимым. |
Комментарии
Эта функция извлекает доступный объект самого низкого уровня в иерархии объектов в заданной точке. Если элемент в точке не является доступным объектом (то есть не поддерживает 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 |
См. также раздел
Активные специальные возможности и масштабирование экрана Windows Vista