Функции GetPointerTouchpadInfo

[Некоторые сведения связаны с предварительно выпущенным продуктом, который может быть существенно изменен до его коммерческого выпуска. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых в отношении информации, предоставленной здесь.]

Извлекает сведения о указателе на сенсорной панели. Четыре варианта доступны в зависимости от того, требуется ли один указатель или весь кадр, а также требуется ли текущее состояние или полный журнал.

Синтаксис

WINUSERAPI
BOOL
WINAPI
GetPointerTouchpadInfo(
    _In_ UINT32 pointerId,
    _Out_writes_(1) POINTER_TOUCH_INFO *touchpadInfo);

WINUSERAPI
BOOL
WINAPI
GetPointerTouchpadInfoHistory(
    _In_ UINT32 pointerId,
    _Inout_ UINT32 *entriesCount,
    _Out_writes_opt_(*entriesCount) POINTER_TOUCH_INFO *touchpadInfo);

WINUSERAPI
BOOL
WINAPI
GetPointerFrameTouchpadInfo(
    _In_ UINT32 pointerId,
    _Inout_ UINT32 *pointerCount,
    _Out_writes_opt_(*pointerCount) POINTER_TOUCH_INFO *touchpadInfo);

WINUSERAPI
BOOL
WINAPI
GetPointerFrameTouchpadInfoHistory(
    _In_ UINT32 pointerId,
    _Inout_ UINT32 *entriesCount,
    _Inout_ UINT32 *pointerCount,
    _Out_writes_opt_(*entriesCount * *pointerCount) POINTER_TOUCH_INFO *touchpadInfo);

Параметры

pointerId

Идентификатор указателя, для которого требуется получить сведения.

entriesCount (варианты журнала)

Указатель на значение, указывающее количество записей в буфере. В входных данных указывает размер буфера. При выходе получает количество записей, записанных.

pointerCount (варианты кадра)

Указатель на значение, указывающее количество указателей в кадре. В входных данных указывает размер буфера. При выходе получает количество записываемых указателей.

touchpadInfo

Указатель на структуру POINTER_TOUCH_INFO , которая получает сведения о сенсорной панели. Может иметь значение NULL для запроса требуемых размеров буфера.

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

Если функция выполняется успешно, возвращается ненулевое значение.

Если функция выполняется неудачно, возвращается нулевое значение. Чтобы получить расширенные сведения об ошибке, вызовите GetLastError.

Замечания

Извлекает запрошенные входные данные указателя сенсорной панели, связанные с указанным идентификатором указателя. Кадр включает все активные в данный момент контакты, доставленные в тот же целевой объект, что и входные данные, связанные с идентификатором указателя. Журнал включает любые входные данные, которые были объединяются с текущими входными данными из-за целевого объекта, не отключая предыдущие входные данные быстро.

Входные данные указателя возвращаются в POINTER_TOUCH_INFO структуре , как и эквиваленты сенсорного ввода этих API, из-за того, что расширенные поля указателя идентичны для ввода сенсорной и сенсорной панели.

Эти функции должны вызываться только при обработке сообщений WM_POINTER для ввода сенсорной панели (после регистрации в качестве сенсорной панели с поддержкой RegisterTouchpadCapableWindow или RegisterTouchpadCapableThread).

Входные данные указателя для сенсорной панели имеют некоторые функциональные различия по сравнению с другими типами устройств указателя:

  • Поля ptPixelLocation и ptPixelLocationRaw идентичны и содержат положение указателя мыши во время начала жеста и не изменяются в течение длительности жеста.
  • Поля ptHimetricLocation и ptHimetricLocationRaw идентичны и содержат положение контакта относительно устройства.
  • GetPointerDeviceRects возвращает виртуальный рабочий стол для прямоугольника экрана и измерений сенсорной панели для прямоугольника устройства. Хотя указанные выше позиции будут находиться в пределах этих прямоугольниках, между этими двумя отношениями нет. Для других типов устройств указателя соответствующие позиции находятся в том же относительном расположении в соответствующих прямоугольниках, но это не относится к вводу сенсорной панели.
  • При первоначальном получении входного потока может быть значительный пространственный и временный разрыв для каждого контакта между первым и вторым входными кадрами. Хотя система по-прежнему выполняет диамбигуацию на входных данных сенсорной панели, входные кадры удаляются. Если система определяет, происходит жест, он синтезирует более ранний кадр для входных данных контактов POINTER_FLAG_DOWN и предоставляет его первым, чтобы входной целевой объект может использовать информацию при определении того, соответствует ли входные значения пороговым значениям распознавания жестов. Если входные данные используются для манипуляции с контентом, необходимо принять меры, чтобы избежать перехода содержимого в начале, что может произойти, если пространственное движение контактов непосредственно применяется как манипуляция с содержимым по мере поступления входных данных.
  • Если входные данные указателя передаются в API контекста взаимодействия для распознавания жестов:
    • При вводе входных данных в контекст взаимодействия необходимо использовать ProcessPointerFramesInteractionContext2 и BufferPointerPacketsInteractionContext2.
    • Могут возникать только выходные данные жестов манипуляции (касания и удержания не могут быть распознаны, так как система будет создавать только сенсорные панели WM_POINTER входные данные после того, как эти жесты больше не могут возникнуть).
    • Если контекст взаимодействия настроен для возврата выходных данных в координатах экрана, выходные данные масштабируются по коэффициенту масштабирования дисплея, содержащего указатель мыши, так что тот же жест на сенсорной панели приводит к тому же эффективному выводу жестов независимо от масштаба отображения.
    • Если настроено для выходных данных химетрики, то тот же жест будет производить одинаковые результаты независимо от отображения указателя мыши. Выходные данные масштабируются на основе скорости входных данных, чтобы ускорить движение пальца приводит к большим значениям выходных данных для того же физического расстояния пальца.
    • Выходные данные будут избегать перехода, как описано выше, и могут быть непосредственно применены к содержимому для манипуляции.

Требования

Требование Ценность
Минимальный поддерживаемый клиент Windows 11 [только классические приложения]
Минимальный поддерживаемый сервер Ни одна версия не поддерживается
Header Winuser.h (include Windows.h)
Библиотека User32.lib
DLL User32.dll (порядковый номер 2691 для GetPointerTouchpadInfo, порядковый номер 2692 для GetPointerTouchpadInfoHistory, порядковый номер 2693 для GetPointerFrameTouchpadInfo, порядковый номер 2694 для GetPointerFrameTouchpadInfoHistory)

См. также