Поделиться через


Функция 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

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

AccSetRunningUtilityState

RegisterPointerInputTarget

Отмена регистрацииPointerInputTarget