skipPointerFrameMessages 函数 (winuser.h)

确定哪个指针输入帧为指定指针生成了最近检索到的消息,并丢弃从同一指针输入帧生成的任何排队 (未检索) 指针输入消息。 如果应用程序已使用 GetPointerFrameInfo 函数、 GetPointerFrameInfoHistory 函数或其类型特定的变体之一检索整个帧的信息,则可以使用此函数来避免逐个检索和丢弃该帧中的剩余消息。

语法

BOOL SkipPointerFrameMessages(
  [in] UINT32 pointerId
);

参数

[in] pointerId

指针的标识符。 对于包含此指针最近检索到的输入的帧,将跳过挂起的消息。

返回值

如果函数成功,则返回值为非零。

如果函数失败,则返回值为零。 要获得更多的错误信息,请调用 GetLastError。

注解

并行模式设备可以以帧形式报告指针输入,也就是说,它们可以在单个输入报表中向系统报告来自该设备的所有指针的状态和位置。 理想情况下,除非特定于应用程序的要求另有规定,否则应用程序应将整个帧视为单个输入。

SkipPointerFrameMessages 函数可与 GetPointerFrameInfo 函数结合使用, (或其类型特定的变体之一) 将整个帧用作单个输入。

当应用程序看到指针消息时,它可以使用 GetPointerFrameInfo 函数检索指针消息所属的整个指针输入帧,从而获取窗口当前拥有的所有指针的更新视图。 请注意,返回的帧仅包含当前由指定指针所在的同一窗口拥有的指针。

检索了整个信息帧后,应用程序可以调用 SkipPointerFrameMessages 函数来跳过与此帧关联的剩余指针消息,这些消息正在等待检索。 这可节省应用程序逐个检索和处理剩余消息的开销。

警告仅当调用方可以确保调用方线程 (上没有其他实体(如直接操作) 预期检索挂起的指针消息)时,才应使用 SkipPointerFrameMessages 函数。 因此,在处理多个同时交互时,不应将 SkipPointerFrameMessages 与直接操作结合使用。
 
请注意,检索的信息与调用线程最近检索的指针帧相关联。 调用线程检索其下一条消息后,与上一个指针帧关联的信息可能不再可用。

如果指针帧不包含指定指针以外的其他指针,则此函数将成功且不执行任何操作。

如果调用线程不拥有指针消息已传递到的窗口,则此函数会失败,最后一个错误设置为 ERROR_ACCESS_DENIED

要求

要求
最低受支持的客户端 Windows 8 [仅限桌面应用]
最低受支持的服务器 Windows Server 2012 [仅限桌面应用]
目标平台 Windows
标头 winuser.h (包括 Windows.h)
Library User32.lib
DLL User32.dll

请参阅

函数