Функция AccNotifyTouchInteraction (oleacc.h)
Позволяет приложению специальных возможностей (AT) уведомлять систему о том, что оно взаимодействует с пользовательским интерфейсом через API службы автоматизации Windows (например, Microsoft модель автоматизации пользовательского интерфейса) в результате сенсорного жеста пользователя. Это позволяет специальными возможностями уведомлять целевое приложение и систему о том, что пользователь взаимодействует с сенсорным вводом.
Синтаксис
HRESULT AccNotifyTouchInteraction(
[in] HWND hwndApp,
[in] HWND hwndTarget,
[in] POINT ptTarget
);
Параметры
[in] hwndApp
Окно, принадлежащее процессу AT, который вызывает AccNotifyTouchInteraction.
[in] hwndTarget
Ближайшее окно элемента автоматизации, на который нацелен AT.
[in] ptTarget
Центральная точка элемента автоматизации (или точка в ограничивающем прямоугольнике элемента).
Возвращаемое значение
Возвращает значение S_OK, если операция завершилась успешно.
В случае успеха возвращает стандартный код ошибки COM.
Комментарии
Для этой функции требуется, чтобы вызывающий процесс был иметь права UIAccess или более высокие привилегии. Если у вызывающего объекта нет необходимых привилегий, вызов AccNotifyTouchInteraction завершается ошибкой и возвращает E_ACCESSDENIED. Дополнительные сведения см. в разделах Вопросы безопасности для специальных возможностей и /MANIFESTUAC (внедрение сведений UAC в манифест).
Когда AT использует сенсорные данные (например, при использовании функции RegisterPointerInputTarget ), оболочка и приложения, с которыми AT взаимодействует через API службы автоматизации Windows, не знают, что пользователь взаимодействует с помощью сенсорного ввода. Чтобы система предоставляла пользователю функциональные возможности, связанные с сенсорным вводом, AT должна использовать AccNotifyTouchInteraction , чтобы уведомить систему о том, что она выполняет взаимодействие в ответ на сенсорный ввод.
Примеры
В этом примере кода показано, как вызвать функцию AccNotifyTouchInteraction .
// pTargetElement is the element being interacted with by the user, hwndApp
// represents an HWND owned by the AT.
HRESULT PerformTouchBasedInteraction(IUIAutomationElement *pTargetElement,
HWND hwndApp)
{
HRESULT hr = S_OK;
// Set the focus to the element and then notify the system that the
// interaction is occurring due to a touch gesture. This would also apply
// to pattern-based interactions (such as calls to
// IUIAutomationInvokePattern::Invoke)
hr = pTargetElement->SetFocus();
if (SUCCEEDED(hr))
{
HWND hwndTarget;
POINT ptTarget;
BOOL fGotClickablePoint;
// If the current element does not have a native window handle, an
// alternate method (such as walking up the parent chain) is required
// to get the nearest valid HWND.
hr = pTargetElement->get_CurrentNativeWindowHandle((UIA_HWND *)(&hwndTarget));
if (SUCCEEDED(hr))
{
// If the provider doesn't return a clickable point, an alternate
// method (such as using the bounding rectangle) will be required
// to get the center point of the current element.
hr = pTargetElement->GetClickablePoint(&ptTarget, &fGotClickablePoint);
}
if (SUCCEEDED(hr) && fGotClickablePoint)
{
hr = AccNotifyTouchInteraction(hwndApp, hwndTarget, ptTarget);
}
}
return hr;
}
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 8 [только классические приложения] |
Минимальная версия сервера | Windows Server 2012 [только классические приложения] |
Целевая платформа | Windows |
Header | oleacc.h |
Библиотека | Oleacc.lib |
DLL | Oleacc.dll |