Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Содержит основные сведения о указателе, общие для всех типов указателей. Приложения могут получать эти сведения с помощью функций GetPointerInfo, GetPointerFrameInfo, GetPointerInfoHistory и GetPointerFrameInfoHistory .
Синтаксис
typedef struct tagPOINTER_INFO {
POINTER_INPUT_TYPE pointerType;
UINT32 pointerId;
UINT32 frameId;
POINTER_FLAGS pointerFlags;
HANDLE sourceDevice;
HWND hwndTarget;
POINT ptPixelLocation;
POINT ptHimetricLocation;
POINT ptPixelLocationRaw;
POINT ptHimetricLocationRaw;
DWORD dwTime;
UINT32 historyCount;
INT32 InputData;
DWORD dwKeyStates;
UINT64 PerformanceCount;
POINTER_BUTTON_CHANGE_TYPE ButtonChangeType;
} POINTER_INFO;
Члены
pointerType
Тип: POINTER_INPUT_TYPE
Значение из перечисления POINTER_INPUT_TYPE , указывающее тип указателя.
pointerId
Тип: UINT32
Идентификатор, однозначно определяющий указатель во время его существования. Указатель возникает при первом обнаружении и прекращает свое существование, когда он выходит за пределы диапазона обнаружения. Обратите внимание, что если физическая сущность (палец или перо) выходит за пределы диапазона обнаружения, а затем возвращается для обнаружения, она обрабатывается как новый указатель и может быть назначен новый идентификатор указателя.
frameId
Тип: UINT32
Идентификатор, общий для нескольких указателей, для которых исходное устройство сообщило об обновлении в одном входном кадре. Например, мультисенсорный дигитайзер с параллельным режимом может сообщать о положении нескольких сенсорных контактов в одном обновлении в системе.
Обратите внимание, что идентификатор кадра назначается как входные данные передаются в систему для всех указателей на всех устройствах. Таким образом, это поле не может содержать строго последовательные значения в одном ряду сообщений, получаемых окном. Однако это поле будет содержать одно и то же числовое значение для всех входных обновлений, которые были переданы в одном входном кадре одним устройством.
pointerFlags
Тип: POINTER_FLAGS
Может быть любым разумным сочетанием флагов из констант флагов указателя .
sourceDevice
Тип: HANDLE
Обработка исходного устройства, которое можно использовать в вызовах API необработанного устройства ввода и API устройства дигитайзера.
hwndTarget
Тип: HWND
Окно, в которое было нацелено это сообщение. Если указатель захватывается неявно из-за того, что он связался с этим окном, или явно с помощью API отслеживания указателя, это окно захвата. Если указатель не захвачен, это окно, над которым находился указатель при создании этого сообщения.
ptPixelLocation
Тип: POINT
Прогнозируемые экранные координаты указателя в пикселях.
Прогнозируемое значение основано на позиции указателя, сообщаемой дигитайзером, и движении указателя. Это исправление может компенсировать визуальную задержку из-за присущих задержек при зондировании и обработке расположения указателя на дигитайзере. Это применимо к указателям типа PT_TOUCH. Для других типов указателей прогнозируемое значение будет таким же, как и непрогнозированное значение (см. ptPixelLocationRaw).
ptHimetricLocation
Тип: POINT
Прогнозируемые экранные координаты указателя в единицах HIMETRIC.
Прогнозируемое значение основано на позиции указателя, сообщаемой дигитайзером, и движении указателя. Это исправление может компенсировать визуальную задержку из-за присущих задержек при зондировании и обработке расположения указателя на дигитайзере. Это применимо к указателям типа PT_TOUCH. Для других типов указателей прогнозируемое значение будет таким же, как и непрогнозированное значение (см. раздел ptHimetricLocationRaw).
ptPixelLocationRaw
Тип: POINT
Экранные координаты указателя в пикселях. Сведения о скорректированных координатах экрана см. в разделе ptPixelLocation.
ptHimetricLocationRaw
Тип: POINT
Экранные координаты указателя в единицах HIMETRIC. Сведения о скорректированных координатах экрана см. в разделе ptHimetricLocation.
dwTime
Тип: DWORD
0 или метка времени сообщения на основе системного числа тактов на момент получения сообщения.
Приложение может указать входную метку времени в dwTime или PerformanceCount. Значение не может быть более поздним, чем текущее число тактов или значение QueryPerformanceCount (QPC) потока внедрения. После вставки кадра с меткой времени все последующие кадры должны включать метку времени до тех пор, пока все контакты в кадре не перейдут в состояние UP . Значение настраиваемой метки времени также должно быть указано для первого элемента в массиве контактов. Значения меток времени после первого элемента игнорируются. Значение настраиваемой метки времени должно увеличиваться в каждом кадре внедрения.
Если указан параметр PerformanceCount , метка времени будет преобразована в текущее время в разрешении в 0,1 миллисекунда при фактическом внедрении. Если пользовательская функция PerformanceCount привела к тому же окну 0,1 миллисекунд из предыдущего внедрения, возвращается ERROR_NOT_READY и внедрение не выполняется. Хотя внедрение не будет немедленно признано ошибкой недействительным, следующее успешное внедрение должно иметь значение PerformanceCount , равное по крайней мере 0,1 миллисекунды от ранее успешного внедрения. Это также верно, если используется dwTime .
Если в параметре InjectTouchInput указаны значения dwTime и PerformanceCount, возвращается ERROR_INVALID_PARAMETER.
InjectTouchInput не может переключаться между dwTime и PerformanceCount после начала внедрения.
Если не указаны значения dwTime и PerformanceCount , То InjectTouchInput выделяет метку времени на основе времени вызова. Если количество вызовов InjectTouchInput не превышает 0,1 миллисекунды, может быть возвращено ERROR_NOT_READY. Ошибка не сделает входные данные недействительными немедленно, но для успешного внедрения приложение внедрения должно повторить попытку в том же кадре.
historyCount
Тип: UINT32
Количество входных данных, которые были объедины в это сообщение. Это число соответствует общему количеству записей, которые могут быть возвращены вызовом GetPointerInfoHistory. Если объединение не произошло, это число равно 1 для одного ввода, представленного сообщением.
InputData
dwKeyStates
Тип: DWORD
Указывает, какие клавиши-модификаторы клавиатуры были нажаты во время создания входных данных. Может иметь нулевое значение или сочетание следующих значений из состояния ключа модификатора.
POINTER_MOD_SHIFT — нажата клавиша SHIFT.
POINTER_MOD_CTRL — нажата клавиша CTRL.
Используйте GetKeyState.
PerformanceCount
Тип: UINT64
Значение счетчика производительности с высоким разрешением при получении сообщения указателя (высокая точность, 64-разрядная альтернатива dwTime). Значение может быть откалибровано, если оборудование дигитайзера сенсорного ввода поддерживает сведения о метке времени сканирования во входном отчете.
ButtonChangeType
Тип: POINTER_BUTTON_CHANGE_TYPE
Значение из перечисления POINTER_BUTTON_CHANGE_TYPE , указывающее изменение состояния кнопки между данными входными данными и предыдущими входными данными.
Требования
| Требование | Значение |
|---|---|
| Минимальная версия клиента | Windows 8 [только классические приложения] |
| Минимальная версия сервера | Windows Server 2012 [только классические приложения] |
| Верхняя часть | winuser.h (включая Windows.h) |