This document is intended to assist Windows developers who would like to add new tablet-aware capabilities to their applications so as to support the acquisition of Wacom tablet pen data and tablet capabilities.
Wintab is a Windows platform API that supports the capture of pen data from Wintab-aware Wacom tablets.
Using Wintab with its single, consistent programming interface, applications can be written to collect pen data input and process it as needed, without having to deal with the specifics of different Wacom tablet types and models. Such an application can be written once and used over the entire line of Wacom’s Wintab-supported tablets without any additional modifications.
In order to use the Wintab API, you should have one of the Wintab-supported Wacom tablets and tablet driver software installed. The driver supports the Wintab API through installed DLL components that can be dynamically linked to in applications. The API provides a very simple data-collection programming model for establishing contact with the driver, obtaining a tablet Wintab context that can be modified for the properties needed, opening that context, and using normal Windows message handling to receive data (data polling is also supported). The Wintab Basics page goes into detail on how to do all this. There are also a number of easy-to-follow Wintab sample code examples on GitHub.
Since the Wintab interface was first defined as an open-industry standard in the early 1990s (by LCS/Telegraphics), Wacom has provided a seamless implementation that not only supports the original Wintab goals of providing consistently easy integration between sophisticated input pointing devices and software applications, but has extended the API for additional tablet control. From Wintab’s inception, the original Wintab goals that Wacom has supported and continues to support include:
- User Control – The user should be able to use and control the device in as natural and easy a manner as possible. One should be able to use the device to set up an efficient, comfortable work environment. The user's preferences should take precedence over application requests, where possible.
- Support for Diverse Devices – The interface must give standard access to as many devices as possible, while leaving room for future extensions. The interface must be capable of supporting a broad range of advanced pointing devices, such as no-display pressure tablets and integrated display tablets.
- Device Sharing – In the Windows environment, multiple applications that use the device may be running at once. Each application will require different services. Applications must be able to get the services and data they need without getting in each others' way.
- Easy Implementation – The interface and its documentation should be clear, well structured, well written, and intuitively designed, so developers can easily learn and write the code for it.
Although Wintab is a rich API, depending on your application needs, there are other pen data APIs supported on Windows that can be considered. These include:
- WILL (Wacom Ink Layer Language) - an API that abstracts supports for the collection of pen data into stroke collections with extensive data rendering capabilities: WILL
- Microsoft native INK APIs - ink pen data collection objects that support the capture of pen data properties similar to Wintab, such as this class: InkCollector Class
Types of Applications You Can Write with Wintab
As its fundamental purpose, the Wintab API is used to acquire high quality Wacom tablet pen data. With Wintab pen data acquisition, the following types of primary Windows applications can add support for Wacom tablet pen data:
- Graphics and rendering applications targeted for creative users
- Signature capture applications for the business community
- CAD-type applications that perform drawing measurement functions
Applications written to the Wintab API can add support for the acquisition of tablet data and properties that include:
- Pen data in raw tablet counts or in screen pixels
- Pen XYZ location, pressure, tilt, orientation, rotation, buttons, cursor-type, timestamp, and serial number
- Mapping of tablet space to display space
- Per-application data Wintab contexts
- Differentiation between pen tip and eraser data
In addition to adding pen data support to your applications, you can also take advantage of Wacom Wintab extensions. These extensions include support for tablet interaction with hardware features:
- Selecting tablet and providing custom application control for tablet ExpressKeys and TouchRings (for those tablets that have such hardware features)
- Out of Bounds Tracking Extensions - enables cursor tracking in areas not covered by any active tablet context
- Cursor Mask Extensions - allows contexts to select input based on the cursor type
All Wacom tablets supported by the Wacom driver are supported by this API. Get the tablet driver that supports your device at: https://www.wacom.com/support/product-support/drivers.
Wintab-Supported Operating Systems and Programming Frameworks
The Wintab API is supported by Wacom tablet drivers that run on supported Windows operating systems. To find out if Wintab supports your operating system, please go to: https://www.wacom.com/support/product-support/drivers.
Applications using Wintab API can be written for any programming framework that supports the import of Windows DLL modules. See the sample code on GitHub for Wintab examples written in C++ and .NET (C#).
Basics - Details on how to configure and write Wintab applications
Reference – Complete API details
FAQs – Wintab programming tips