getPointerInputTransform 函数 (winuser.h)

获取与当前消息关联的指针信息坐标的一个或多个转换。

语法

BOOL GetPointerInputTransform(
  [in]  UINT32          pointerId,
  [in]  UINT32          historyCount,
  [out] INPUT_TRANSFORM *inputTransform
);

参数

[in] pointerId

要检索其信息的指针的标识符。

[in] historyCount

inputTransform 可以指向的INPUT_TRANSFORM结构的数量。

此值必须不小于 1,且不能大于 getPointerInfo、GetPointerTouchInfo 或 GetPointerPenInfo (为单个输入转换返回的POINTER_INFO结构的historyCount 中指定的值,) GetPointerTouchInfoHistory、GetPointerTouchInfoHistoryGetPointerPenInfoHistory (为输入转换数组) 。

如果 GetPointerInputTransform 成功, 则 inputTransform 将更新为可用结构的总计数。 可用结构的总计数与 POINTER_INFO 结构的 historyCount 字段相同。

[out] inputTransform

要接收转换信息的 INPUT_TRANSFORM 结构数组的地址。 此参数不能为 NULL。

返回值

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

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

注解

指针输入消息的使用者通常使用 ScreenToClientMapWindowPoints 将屏幕坐标转换为客户端坐标。

如果对消息使用者应用转换,则使用 GetPointerInputTransform 在输入发生时检索消息使用者上的转换。 然后,可以使用此转换的逆值将指针输入坐标从屏幕坐标转换为消息使用者的客户端坐标。

如果输入转换未与输入关联, 则 GetPointerInputTransform 函数将失败,最后一个错误设置为 ERROR_NO_DATA。 请改用 ScreenToClientMapWindowPoints

输入转换不遵循输入目标上的任何从右到左的布局设置。 需要调整从右到左布局坐标的应用程序必须执行从右到左的镜像,或者将适当的镜像转换与输入转换相结合。

GetPointerInputTransform 返回的信息与调用线程检索的最新指针消息相关联。 当调用线程检索下一条消息时,与上一条消息关联的信息可能不再可用。

如果应用程序调用 GetPointerInfo,它可以使用相同的指针 ID 和单个INPUT_TRANSFORM输出缓冲区调用 GetPointerInputTransform,以获取与数据关联的输入转换。

如果应用程序调用 GetPointerFrameInfo,它可以使用相同的指针 ID 和单个INPUT_TRANSFORM输出缓冲区调用 GetPointerInputTransform,以获取与数据关联的输入转换。 相同的输入转换适用于整个帧。

如果应用程序调用 GetPointerInfoHistory,它可以使用相同的指针 ID 和输出缓冲区调用 GetPointerInputTransform ,以保存使用 GetPointerInfoHistory 检索到的条目。 返回的数组中的每个输入转换都可以与 GetPointerInfoHistory 返回的数组中的相应条目一起使用。

如果应用程序调用 GetPointerFrameInfoHistory,它可以使用相同的指针 ID 和输出缓冲区调用 GetPointerInputTransform ,以保存使用 GetPointerInfoHistory 检索到的条目。 返回的数组中的每个输入转换都可以与 GetPointerFrameInfoHistory 返回的数组中的相应帧一起使用,同时将相同的输入转换应用于整个帧。

如果与消息关联的信息不再可用,则此函数将失败,最后一个错误设置为 ERROR_INVALID_PARAMETER

如果 historyCount 包含的值大于 GetPointerInfo (返回的POINTER_INFO结构的 historyCount 字段,或者 GetPointerInfoHistory) 返回的数组中的第一个POINTER_INFO结构,则函数将失败,最后一个错误设置为 ERROR_INVALID_PARAMETER

要求

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

请参阅

函数

INPUT_TRANSFORM