TOUCHPAD_PARAMETERS structure (winuser.h)
Important
Some information relates to a prerelease product which may be substantially modified before it's commercially released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Contains user touchpad settings and system information related to all detected touchpads.
Note
The term "touchpad" refers to Precision Touchpads. The term "legacy touchpad" refers to older generation touchpads that report themselves to Windows as a mouse.
Syntax
typedef struct TOUCHPAD_PARAMETERS {
UINT versionNumber;
UINT maxSupportedContacts;
LEGACY_TOUCHPAD_FEATURES legacyTouchpadFeatures;
BOOL touchpadPresent : 1;
BOOL legacyTouchpadPresent : 1;
BOOL externalMousePresent : 1;
BOOL touchpadEnabled : 1;
BOOL touchpadActive : 1;
BOOL feedbackSupported : 1;
BOOL clickForceSupported : 1;
BOOL Reserved1 : 25;
BOOL allowActiveWhenMousePresent : 1;
BOOL feedbackEnabled : 1;
BOOL tapEnabled : 1;
BOOL tapAndDragEnabled : 1;
BOOL twoFingerTapEnabled : 1;
BOOL rightClickZoneEnabled : 1;
BOOL mouseAccelSettingHonored : 1;
BOOL panEnabled : 1;
BOOL zoomEnabled : 1;
BOOL scrollDirectionReversed : 1;
BOOL Reserved2 : 22;
TOUCHPAD_SENSITIVITY_LEVEL sensitivityLevel;
UINT cursorSpeed;
UINT feedbackIntensity;
UINT clickForceSensitivity;
UINT rightClickZoneWidth;
UINT rightClickZoneHeight;
} TOUCHPAD_PARAMETERS, *PTOUCH_PAD_PARAMETERS, TOUCHPAD_PARAMETERS_V1, *PTOUCHPAD_PARAMETERS_V1;
Members
versionNumber
The version of the struct.
Caller must set to TOUCHPAD_PARAMETERS_LATEST_VERSION to use the latest version, or to TOUCHPAD_PARAMETERS_VERSION_[#] to use a specific version (). The version must be specified when both reading and writing settings.
Note
TOUCHPAD_PARAMETERS_VERSION_1 is the only specific version of TOUCHPAD_PARAMETERS_VERSION_[#] currently defined.
maxSupportedContacts
The maximum number of simultaneous contacts (for the touchpad that supports the most) amongst all detected touchpads.1
legacyTouchpadFeatures
The supported features reported by detected legacy touchpads. This will be LEGACY_TOUCHPAD_FEATURE_NONE if no legacy touchpads are detected, or if the legacy touchpads do not support configuration through SPI_SETTOUCHPADPARAMETERS.1
touchpadPresent
A Precision Touchpad is detected.1
legacyTouchpadPresent
A legacy touchpad is detected.1
externalMousePresent
An external mouse is detected. See Precision touchpad tuning for information on exempting a mouse from being considered as external (for the purposes of this status field and behavior of the allowActiveWhenMousePresent setting).1
touchpadEnabled
Touchpad input is enabled.1
touchpadActive
Touchpad input is active. It is active if it is enabled, and either there is no external mouse detected or touchpad input has been configured to stay active despite the presence of an external mouse. This field does not indicate whether any touchpad is actively producing input.1
feedbackSupported
A detected touchpad supports haptic feedback.1
clickForceSupported
A detected touchpad supports haptic click force.1
Reserved1
allowActiveWhenMousePresent
Touchpad input can remain active if an external mouse is detected. When inactive, any input produced by a touchpad is ignored.2
feedbackEnabled
Haptic feedback is enabled on touchpads if supported.2
tapEnabled
Single-finger taps are enabled.2
tapAndDragEnabled
Tap-and-drag is enabled.2
twoFingerTapEnabled
Two-finger tap is enabled.2
rightClickZoneEnabled
Pressing the bottom-right corner of the touchpad results in a right-click instead of a left click.2
If the user has swapped their left and right mouse buttons (GetSystemMetrics(SM_SWAPBUTTON) is true), the right-click zone is mirrored horizontally to the bottom-left corner of the touchpad.
mouseAccelSettingHonored
Mouse motion produced by the touchpad honors the user's mouse acceleration setting (specified by SystemParametersInfo(SPI_GETMOUSE)). If false, the mouse motion always has acceleration applied.2
panEnabled
Two-finger panning is enabled.2
zoomEnabled
Two-finger zooming is enabled.2
scrollDirectionReversed
The direction content scrolls with two-finger panning is reversed. By default, the upward motion of contacts on the touchpad results in content scrolling downward while leftward motion of contacts results in content scrolling rightwards.2
Reserved2
sensitivityLevel
The touchpad sensitivity level. The more sensitive the touchpad, the less suppression of mouse input generation occurs after keyboard activity (see TOUCHPAD_SENSITIVITY_LEVEL enumeration).2
cursorSpeed
The rate at which the mouse motion produced by the touchpad moves the cursor. Valid values are 1-20, inclusive.2
feedbackIntensity
The relative intensity of the touchpad's haptic feedback (if supported). Valid values are 0-100, inclusive.2
clickForceSensitivity
The relative sensitivity of the touchpad's haptic click detection (if supported). Valid values are 0-100, inclusive.2
rightClickZoneWidth
The relative width of the touchpad right-click zone. Valid values are 0-100, inclusive. If non-zero, this value overrides the device configuration.2
rightClickZoneHeight
The relative height of the touchpad right-click zone. Valid values are 0-100, inclusive. If non-zero, this value overrides the device configuration.2
Remarks
All fields apply only to Precision Touchpads, with the exception of fields that specify "legacy touchpad" or are supported by the legacy touchpad as indicated by the legacyTouchpadFeatures field.
1 Represents the system information that can be used to help inform which user settings are applicable to the current device. They are ignored when calling SystemParametersInfo (A/W) with SPI_SETTOUCHPADPARAMETERS.
2 Represents user settings. Modifications to these fields will result in changing the user's settings when calling SystemParametersInfo (A/W) with SPI_SETTOUCHPADPARAMETERS.
Requirements
Requirement | Value |
---|---|
Minimum supported client | Windows 11, version 24H2 [desktop apps only] |
Minimum supported server | None supported |
Header | winuser.h (include Windows.h) |
See also
TOUCHPAD_SENSITIVITY_LEVEL enumeration, LEGACY_TOUCHPAD_FEATURES enumeration