[部分資訊涉及預售產品,可能在商業發行前經過大幅修改。 Microsoft 對此處提供的資訊不作明示或暗示的任何保證。]
利用相關參數建立合成指標裝置。 輸入可透過 InjectSyntheticPointerInput 注入此裝置。 當注入裝置不再需要時,應透過 DestroySyntheticPointerDevice 進行清理。
語法
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)
| 價值 | Meaning |
|---|---|
| SDCO_NONE (0x0) | 沒有特殊選項。 |
| SDCO_PHYSICAL_SIZE (0x1) | 注入的輸入是相對於裝置本身,而非相對於其映射顯示。 若有指定,必須提供裝置尺寸。 使用 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;
成員
- 指標類型
-
所製作的裝置類型(PT_TOUCH、 PT_PEN或 PT_TOUCHPAD)。
- 最大計數
-
同時可注入的最大接點數。
- 回饋模式
-
注入輸入時會呈現視覺回饋的模式。
- hMonitor
-
注入輸入所映射的監聽器(如適用)。
- 裝置寬度
-
裝置的物理寬度以公尺為單位(1/100毫米)。
- 裝置高度
-
裝置的物理高度以公尺度量表示(1/100毫米)。
- 選項
備註
指標Type和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 或有效的 monitor。
- 如果指定了 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) |