CreateSyntheticPointerDevice2 函式

[部分資訊涉及預售產品,可能在商業發行前經過大幅修改。 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_TOUCHPT_PENPT_TOUCHPAD)。

最大計數

同時可注入的最大接點數。

回饋模式

注入輸入時會呈現視覺回饋的模式。

hMonitor

注入輸入所映射的監聽器(如適用)。

裝置寬度

裝置的物理寬度以公尺為單位(1/100毫米)。

裝置高度

裝置的物理高度以公尺度量表示(1/100毫米)。

選項

SYNTHETIC_DEVICE_CREATION_OPTIONS選項零多。

備註

指標Typeoptions欄位控制其他欄位的有效值:

PT_TOUCH

  • maxCount 必須大於0且小於或等於256。
  • feedbackMode 必須是 POINTER_FEEDBACK_DEFAULTPOINTER_FEEDBACK_INDIRECTPOINTER_FEEDBACK_NONE
  • hMonitor 可以是 nullptr (輸入映射到虛擬桌面)或有效的監視器。
  • 如果指定了 SDCO_PHYSICAL_SIZE,deviceWidthdeviceHeight 必須非零;如果沒有,則為零。
  • 只有 SDCO_PHYSICAL_SIZE 才適用於期權(或 SDCO_NONE)。

PT_PEN

  • maxCount 必須是 1。
  • feedbackMode 必須是 POINTER_FEEDBACK_DEFAULTPOINTER_FEEDBACK_INDIRECTPOINTER_FEEDBACK_NONE
  • hMonitor 可以是 nullptr 或有效的 monitor。
  • 如果指定了 SDCO_PHYSICAL_SIZE,deviceWidthdeviceHeight 必須非零;如果沒有,則為零。
  • 只有 SDCO_PHYSICAL_SIZE 才適用於期權(或 SDCO_NONE)。

PT_TOUCHPAD

  • maxCount 必須大於 0,且小於或等於 5。
  • feedbackMode 必須 POINTER_FEEDBACK_NONE
  • hMonitor 必須是 nullptr (觸控板輸入總是透過滑鼠位置映射到虛擬桌面)。
  • deviceWidthdeviceHeight 必須非零。
  • SDCO_PHYSICAL_SIZE 必須在選項中指定, SDCO_TOUCHPAD_GESTURE_ONLY 為可選。

要求

需求 價值
最低支援的用戶端 Windows 11 [僅限桌面應用程式]
最低支援的伺服器 不支援
Header Winuser.h(包含 Windows.h)
圖書館 User32.lib
DLL User32.dll(序數 2690)

另請參閱