Edit

Precision Touchpad Input

[Some information relates to pre-released 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.]

Purpose

Precision Touchpads were introduced in Windows 8.1 as the successor to existing touchpads whose input would be reported to Windows as a mouse. Precision Touchpads instead report to Windows the locations and state of the user's fingers on the touchpad, and Windows determines what action the user is performing. Broadly, the user's actions fall into three categories: mousing, actions, gesturing. When mousing, the original touchpad input is discarded and the appropriate mouse input is generated. When gesturing, the original touchpad input is more closely preserved and delivered to the hit-tested destination (or the shell for global gestures). Actions are more specialized, such as stopping inertia or global actions such as three-finger taps.

Applications do not directly receive gesturing touchpad input by default. The following technologies are enlightened to handle touchpad input, if the application uses them for its user interface:

Otherwise, the touchpad input is redirected to ninput.dll for default input handling, which typically results in the generation of mouse wheel messages.

The Precision Touchpad APIs allow applications to interact with touchpads at a higher fidelity, overriding the default experiences:

There is also support for injecting touchpad input:

In this section

Topic Description
Precision Touchpad Programming Guide
How to use the Precision Touchpad APIs with code examples.
Precision Touchpad Reference
Reference documentation for the Precision Touchpad functions, structures, enumerations, and interfaces.

Developer audience

The Precision Touchpad APIs are designed for developers who need high-fidelity touchpad input in their applications. This includes Remote Desktop client developers, accessibility tool developers, and application developers who want to provide custom touchpad gesture handling.

Touch Injection

Pointer Device Input Stack

Interaction Context

Keyboard and Mouse Input