| Pen Digitizer Drivers | |
| Touch Digitizer Drivers | |
| Dual-mode Digitizers | |
| Reporting Physical Dimensions | |
| For More Information |
This paper provides general guidance for hardware vendors and developers for implementing drivers for a pen or touch digitizer on a computer running the Microsoft Windows Vista operating system.
The following Human Interface Devices (HID) usages are required:
| • | X (page 0x01, usage 0x30) and Y (page 0x01, usage 0x31) |
| • | Tip switch (page 0x0D, usage 0x42) |
| • | In-range (page 0x0D, usage 0x32) |
The following usages are optional, but we recommend that you implement them if the digitizer hardware supports these capabilities:
| • | Pressure (page 0x0D, usage 0x30) |
| • | Tilt (page 0x0D, usages 0x3D and 0x3E) |
| • | Inverted (page 0x0D, usage 0x3C) |
| • | Barrel button (page 0x0D, usage 0x44) |
You may need to add a second top-level collection for a mouse in your driver if the driver will be used on slate Tablet PCs or other computers without a physical mouse. If Windows Vista does not detect a mouse, it does not show a cursor. By adding a second collection for a mouse, your driver forces Windows Vista to show the cursor. The mouse collection does not send input.
For a sample pen digitizer driver, see Wacompen.sys in the Windows Driver Kit (WDK).
For Windows Vista, touch digitizers appear through HID as a touch digitizer (page 0x0D, usage 0x04). The following usages are required:
| • | X (page 0x01, usage 0x30) and Y (page 0x01, usage 0x31) |
| • | Tip switch (page 0x0D, usage 0x42) |
| • | In-range (page 0x0D, usage 0x32) |
Use tip switch to indicate finger contact and lift-off from the digitizer surface, similar to how the pen reports contact with the digitizer.
If the device supports z-axis detection, it reports in-range correctly. If the device does not support z-axis detection, the device reports packets with in-range (and tip switch) set when the finger comes in contact with the digitizer.
Note: Guidance for touch digitizer drivers for Windows XP is different for in-range reporting. The Windows XP Tablet PC OEM Preinstallation Kit (OPK) includes information about how to implement a touch digitizer driver for Windows XP. For more information, contact your Microsoft technical account manager.
The following usages are optional, but you should implement them in your driver if your digitizer hardware supports these capabilities:
| • | Confidence (page 0x0D, usage 0x47) |
| • | Width and height (page 0x0D, usages 0x48 and 0x49) |
Confidence is a suggestion from the device regarding whether the touch contact was an intended or accidental touch. Confidence is used to help improve accidental touch rejection. The device rejects accidental touches as thoroughly as it can and reports that information by using the confidence usage. In addition to the confidence value, Windows Vista applies additional heuristics to the touch input stream to improve accidental touch rejection.
If a device does not report confidence, it is entirely up to the device to provide accidental touch rejection.
The width and height usages represent the width and height of the touch contact. Width and height play a role in palm rejection, but are also exposed for developers to use in applications.
If your device includes a digitizer that provides both pen and touch functionality, your driver must report pen and touch collections separately according to the preceding pen and touch guidance. If your driver might be installed on a slate Tablet PC or other computer without a mouse, your driver should also report a mouse collection.
A digitizer device reports proper physical dimensions by using the physical dimensions property of the x and y usage. Windows Vista uses these values in gesture recognition and other platform features. Inaccurate information about the physical dimensions might affect the performance of those features.
If for some reason a digitizer device cannot report accurate physical dimensions, the driver should report 0 units.
If you have questions, contact your Microsoft technical account manager or tab-ext@microsoft.com.
Window Driver Kit
Windows Logo Program for Hardware