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


Функция SkipPointerFrameMessages (winuser.h)

Определяет, какой входной кадр указателя создал последнее полученное сообщение для указанного указателя, и отменяет все входные сообщения указателя в очереди (без восстановления), созданные из того же входного кадра указателя. Если приложение извлекло сведения для всего кадра с помощью функции GetPointerFrameInfo , функции GetPointerFrameInfoHistory или одного из их типов, оно может использовать эту функцию, чтобы избежать извлечения и отмены оставшихся сообщений из этого кадра по одному.

Синтаксис

BOOL SkipPointerFrameMessages(
  [in] UINT32 pointerId
);

Параметры

[in] pointerId

Идентификатор указателя. Ожидающие сообщения будут пропущены для кадра, который включает последние полученные входные данные для этого указателя.

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

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

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

Комментарии

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

Функцию SkipPointerFrameMessages можно использовать в сочетании с функцией GetPointerFrameInfo (или одним из ее типовых вариантов) для использования целых кадров в качестве одного входного значения.

Когда приложение видит сообщение указателя, оно может использовать функцию GetPointerFrameInfo для получения всего входного кадра указателя, которому принадлежит сообщение указателя, поэтому получает обновленное представление всех указателей, принадлежащих в данный момент окну. Обратите внимание, что возвращаемый кадр содержит только указатели, которые в настоящее время принадлежат тому же окну, что и указанный указатель.

Получив весь кадр сведений, приложение может затем вызвать функцию SkipPointerFrameMessages , чтобы пропустить оставшиеся сообщения указателя, связанные с этим кадром, ожидающие извлечения. Это позволяет приложению сэкономить затраты на получение и обработку оставшихся сообщений по одному.

Предупреждение Функцию SkipPointerFrameMessages следует использовать только в том случае, если вызывающий объект может быть уверен, что ни один другой объект в потоке вызывающего объекта (например , Direct Manipulation) не ожидает получения ожидающих сообщений указателя. По этой причине SkipPointerFrameMessages не следует использовать в сочетании с прямой манипуляцией при обработке нескольких одновременных взаимодействий.
 
Обратите внимание, что полученные сведения связаны с кадром указателя, который последний раз был получен вызывающим потоком. Когда вызывающий поток получает следующее сообщение, сведения, связанные с предыдущим кадром указателя, могут перестать быть доступными.

Если рамка указателя не содержит дополнительных указателей, кроме указанного указателя, эта функция выполняется без каких-либо действий.

Если вызывающий поток не владеет окном, в которое было доставлено сообщение указателя, эта функция завершается ошибкой с последней ошибкой ERROR_ACCESS_DENIED.

Требования

Требование Значение
Минимальная версия клиента Windows 8 [только классические приложения]
Минимальная версия сервера Windows Server 2012 [только классические приложения]
Целевая платформа Windows
Header winuser.h (включая Windows.h)
Библиотека User32.lib
DLL User32.dll

См. также

Функции