Функция GetPointerInputTransform (winuser.h)
Возвращает одно или несколько преобразований для координат сведений указателя, связанных с текущим сообщением.
Синтаксис
BOOL GetPointerInputTransform(
[in] UINT32 pointerId,
[in] UINT32 historyCount,
[out] INPUT_TRANSFORM *inputTransform
);
Параметры
[in] pointerId
Идентификатор указателя, для которого требуется получить сведения.
[in] historyCount
Количество INPUT_TRANSFORM структур, на которые может указывать inputTransform .
Это значение должно быть не меньше 1 и не больше значения, указанного в historyCountструктуры POINTER_INFO , возвращаемой getPointerInfo, GetPointerTouchInfo или GetPointerPenInfo (для одного преобразования входных данных) или GetPointerInfoHistory, GetPointerTouchInfoHistory или GetPointerPenInfoHistory (для массива входных преобразований).
Если getPointerInputTransform завершается успешно, inputTransform обновляется с учетом общего количества доступных структур. Общее количество доступных структур совпадает с полем historyCountструктуры POINTER_INFO .
[out] inputTransform
Адрес массива INPUT_TRANSFORM структур для получения сведений о преобразовании. Значение этого параметра не может быть равно NULL.
Возвращаемое значение
Если функция выполняется успешно, возвращаемое значение не равно нулю.
Если функция выполняется неудачно, возвращается нулевое значение. Дополнительные сведения об ошибке можно получить, вызвав GetLastError.
Комментарии
Потребитель входных сообщений указателя обычно использует ScreenToClient или MapWindowPoints для преобразования экранных координат в клиентские.
Если преобразование применяется к потребителю сообщения, используйте GetPointerInputTransform , чтобы получить преобразование для получателя сообщения во время ввода. Затем обратное это преобразование можно использовать для преобразования входных координат указателя из экранных координат в клиентские координаты потребителя сообщения.
Если преобразование входных данных не связано с входными данными, функция GetPointerInputTransform завершается сбоем с последней ошибкой ERROR_NO_DATA. Вместо этого используйте ScreenToClient или MapWindowPoints .
Преобразование входных данных не учитывает параметры макета справа налево в целевом объекте ввода. Приложение, которому требуются скорректированные координаты для макета справа налево, должно выполнять зеркальное отображение справа налево или сочетать соответствующее преобразование зеркального отображения с входным преобразованием.
Сведения, возвращаемые GetPointerInputTransform , связаны с последним сообщением указателя, извлеченным вызывающим потоком. Когда вызывающий поток извлекает следующее сообщение, сведения, связанные с предыдущим сообщением, могут быть недоступны.
Если приложение вызывает GetPointerInfo, оно может вызвать GetPointerInputTransform с тем же идентификатором указателя и одним INPUT_TRANSFORM выходным буфером, чтобы получить входное преобразование, связанное с данными.
Если приложение вызывает GetPointerFrameInfo, оно может вызвать GetPointerInputTransform с тем же идентификатором указателя и одним INPUT_TRANSFORM выходным буфером, чтобы получить входное преобразование, связанное с данными. Одно и то же входное преобразование применяется ко всему кадру.
Если приложение вызывает GetPointerInfoHistory, оно может вызвать GetPointerInputTransform с тем же идентификатором указателя и выходным буфером для хранения записей, полученных с помощью GetPointerInfoHistory. Каждое входное преобразование в возвращаемом массиве можно использовать с соответствующей записью в массиве, возвращенном GetPointerInfoHistory.
Если приложение вызывает GetPointerFrameInfoHistory, оно может вызвать GetPointerInputTransform с тем же идентификатором указателя и выходным буфером для хранения записей, полученных с помощью GetPointerInfoHistory. Каждое входное преобразование в возвращаемом массиве можно использовать с соответствующим кадром в массиве, возвращенном GetPointerFrameInfoHistory, при этом одно и то же входное преобразование применяется ко всему кадру.
Если сведения, связанные с сообщением, больше недоступны, эта функция завершается сбоем с последней ошибкой ERROR_INVALID_PARAMETER.
Если historyCount содержит значение, превышающее поле historyCountструктуры POINTER_INFO , возвращаемой GetPointerInfo (или первой POINTER_INFO структуры в массиве, возвращаемом GetPointerInfoHistory), функция завершается сбоем с последней ошибкой , заданной ERROR_INVALID_PARAMETER.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 8.1 [только классические приложения] |
Минимальная версия сервера | Windows Server 2012 R2 [только классические приложения] |
Целевая платформа | Windows |
Header | winuser.h (включая Windows.h) |
Библиотека | User32.lib |
DLL | User32.dll |