Overview
Intended Audience
This document is intended to provide information to Windows app developers who would like to add Wacom tablet-aware capabilities to their applications so as to support the acquisition and display of tablet pen data using Microsoft Ink APIs. Although Wacom provides excellent inking support through its Wintab API, knowledge of the Microsoft Ink APIs will give the developer additional options for ink capture, analysis and rendering.
Notice
Wacom is not responsible for the Windows implementation of touch, nor for its documentation.
Also see the pros and cons of using Wintab over one of the Microsoft Ink APIs.
Introduction
The term “ink” is used generally to denote digital stylus data read from digitizer tablets. In addition to inking APIs provided by Wacom (see the pages for Wintab and the Wacom WILL SDK documentation), Microsoft provides a number of APIs that can be used in Windows applications to manage ink data. The Microsoft Ink APIs support the capture, management, rendering, and analysis of digitizer output as ink data for a host of commercial graphics and signature capture applications.
In addition to capturing the basic position and movement of the pen as the user writes or draws, an app can also track and collect the varying amounts of pressure used throughout a stroke. This information, along with settings for pen tip shape, size, and rotation, ink color, and purpose (plain ink, erasing, highlighting, and selecting), enables the app to provide user experiences that closely resemble writing or drawing on paper with a pen, pencil, or brush.
The capture of ink through Microsoft Ink APIs has been supported from the early Tablet PC days (early 2000s). Modern digitizer devices, such as those from Wacom, support properties used by the Windows OS to capture ink data and make it available for these APIs. One advantage of Microsoft Ink APIs is that they allow your application to be built once and used for any ink-enabled device – including Wacom ink-enabled tablets!
As mentioned above, a fundamental property of ink data is the concept of a “stroke.” The stroke may be thought of as a series of data points that are captured between the time at which a stylus touches an ink-enabled digitizing device and when it is lifted. Each data point contains information such as pen location, pen pressure, color, etc. A collection of strokes can be used to build an image (such as a signature, for example). Wacom has extended the concept of strokes, through its WILL API support, to also include semantic information related to what the stroke means. See the WILL SDK pages for details.
Microsoft Ink APIs are used on the back end for other APIs. These include HTML5 Pointer Events (Web API) for web browser apps and the powerful WILL desktop and browser APIs (WILL SDK).
Types of Applications You Can Build with Microsoft Ink APIs
Any application that displays images from ink data can benefit from the Microsoft ink APIs. Such applications include:
- Capture and display of signatures
- Graphics drawing and rendering applications
- Annotation support added to reader apps
Microsoft Ink API Supported Tablets
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.
Microsoft Ink API Supported Operating Systems and Programming Frameworks
Windows Ink is (and has been) supported since WinXP days on Tablet PC through the current Windows 10 era on the latest pen-enabled tablets. Windows Ink applications can be written for Win32, WPF, and UWP application types. See Reference for an overview table summary of Windows Ink namespaces and selected ink classes.
See Also
Windows Ink
Basics – Details on how to write Ink API applications
Reference – Microsoft Ink API details
FAQs – Ink API programming tips
Wintab
Overview - Overview of Wintab
Basics - Details on how to configure and write Wintab applications
Reference - Complete API details
FAQs - Wintab programming tips
Web API
Overview - HTML5 Pointer Events overview
Basics - Details on how to start writing HTML5 Pointer Events applications
Reference - Information on the HTML5 Pointer Events API
FAQs - HTML5 Pointer Events programming tips