[某些信息与预发行的产品有关,该产品在商业发布之前可能会进行大幅修改。 Microsoft对此处提供的信息不作任何明示或暗示的保证。
使用关联的参数创建合成指针设备。 可以通过 InjectSyntheticPointerInput 使用此设备注入输入。 不再需要注入设备时,应通过 DestroySyntheticPointerDevice 对其进行清理。
Syntax
WINUSERAPI
HSYNTHETICPOINTERDEVICE
WINAPI
CreateSyntheticPointerDevice2(
_In_ SYNTHETIC_DEVICE_CREATION_PARAMS* pParams);
参数
- pParams
-
指向包含设备参数 的SYNTHETIC_DEVICE_CREATION_PARAMS 结构的指针。
返回值
如果函数成功,则返回值是合成指针设备的句柄。
如果函数失败,则返回值为 NULL。 若要获取扩展的错误信息,请调用 GetLastError。
注解
现有的 CreateSyntheticPointerDevice 不能用于创建触摸板设备,因为必须创建具有物理大小的触摸板。
SYNTHETIC_DEVICE_CREATION_OPTIONS
用于创建合成指针设备的选项。
typedef enum tagSYNTHETIC_DEVICE_CREATION_OPTIONS
{
SDCO_NONE = 0x0,
SDCO_PHYSICAL_SIZE = 0x1,
SDCO_TOUCHPAD_GESTURE_ONLY = 0x2,
} SYNTHETIC_DEVICE_CREATION_OPTIONS;
DEFINE_ENUM_FLAG_OPERATORS(SYNTHETIC_DEVICE_CREATION_OPTIONS)
| 价值 | 含义 |
|---|---|
| SDCO_NONE (0x0) | 没有特殊选项。 |
| SDCO_PHYSICAL_SIZE (0x1) | 注入的输入相对于设备而不是其映射的显示器(s)。 如果指定,则必须提供设备的维度。 使用 InjectSyntheticPointerInput 注入输入时,应在指针信息的 ptHimetricLocation 字段中指定输入坐标,而不是 ptPixelLocation。 |
| SDCO_TOUCHPAD_GESTURE_ONLY (0x2) | 注入的触摸板输入将始终被视为手势,无法识别为鼠标移动或单击。 如果未指定,则系统会将注入的触摸板输入与物理触摸板输入相同。 |
SYNTHETIC_DEVICE_CREATION_PARAMS
表示用于创建合成注入设备的参数的结构。
typedef struct tagSYNTHETIC_DEVICE_CREATION_PARAMS
{
POINTER_INPUT_TYPE pointerType;
ULONG maxCount;
POINTER_FEEDBACK_MODE feedbackMode;
HMONITOR hMonitor;
ULONG deviceWidth;
ULONG deviceHeight;
SYNTHETIC_DEVICE_CREATION_OPTIONS options;
} SYNTHETIC_DEVICE_CREATION_PARAMS;
成员
- pointerType
-
正在创建的设备类型(PT_TOUCH、 PT_PEN或 PT_TOUCHPAD)。
- maxCount
-
可以同时注入的最大联系人数。
- feedbackMode
-
注入输入呈现视觉反馈的模式。
- hMonitor
-
注入输入映射到的监视器(如果适用)。
- deviceWidth
-
设备的物理宽度(1/100 毫米)。
- deviceHeight
-
设备的物理高度(1/100 毫米)。
- 选项
-
来自SYNTHETIC_DEVICE_CREATION_OPTIONS的零个或多个选项。
注解
pointerType 和 options 字段控制其他字段的有效值:
PT_TOUCH:
- maxCount 必须大于 0 且小于或等于 256。
- feedbackMode 必须 POINTER_FEEDBACK_DEFAULT、 POINTER_FEEDBACK_INDIRECT或 POINTER_FEEDBACK_NONE。
- hMonitor 可以是 nullptr (输入映射到虚拟桌面)或有效的监视器。
- 如果指定了 SDCO_PHYSICAL_SIZE,则 deviceWidth 和 deviceHeight 必须为非零;如果未指定,则为零。
- 只有 SDCO_PHYSICAL_SIZE 对选项(或 SDCO_NONE)有效。
PT_PEN:
- maxCount 必须为 1。
- feedbackMode 必须 POINTER_FEEDBACK_DEFAULT、 POINTER_FEEDBACK_INDIRECT或 POINTER_FEEDBACK_NONE。
- hMonitor 可以是 nullptr 或有效的监视器。
- 如果指定了 SDCO_PHYSICAL_SIZE,则 deviceWidth 和 deviceHeight 必须为非零;如果未指定,则为零。
- 只有 SDCO_PHYSICAL_SIZE 对选项(或 SDCO_NONE)有效。
PT_TOUCHPAD:
- maxCount 必须大于 0 且小于或等于 5。
- feedbackMode 必须 POINTER_FEEDBACK_NONE。
- hMonitor 必须为 nullptr (触摸板输入始终通过鼠标位置映射到虚拟桌面)。
- deviceWidth 和 deviceHeight 必须为非零。
- 必须在 选项中指定 SDCO_PHYSICAL_SIZE,SDCO_TOUCHPAD_GESTURE_ONLY 是可选的。
要求
| 要求 | 价值 |
|---|---|
| 最低支持的客户端 | Windows 11 [仅限桌面应用] |
| 支持的最低服务器 | 无受支持的版本 |
| Header | Winuser.h (包括 Windows.h) |
| 图书馆 | User32.lib |
| DLL | User32.dll (序号 2690) |