Cover image for Building Tablet PC applications
Building Tablet PC applications
Jarrett, Rob, 1969-
Personal Author:
Publication Information:
Redmond, Wash. : Microsoft Press, 2003.
Physical Description:
xxv, 530 pages : illustrations ; 23 cm + 1 CD-ROM (4 3/4 in.)
General Note:
Includes index.
Added Author:
Format :


Call Number
Material Type
Home Location
Item Holds
QA76.89 .J37 2003 Adult Non-Fiction Central Closed Stacks

On Order



Many pen-based software platforms have been introduced in the last decade, but only recently has the introduction of faster processors and hardware enabled mainstream introduction of tablet-sized pen-based PCs. This book tackles the challenge of writing compelling Tablet PC software on two fronts. First, it distills decades of usability research into pen-based computing to present an authoritative discussion of the optimal design of pen-based user interfaces. Second, it provides an in-depth exposition of the Tablet PC Ink SDK, complete with tips and tricks on how developers can produce the most powerful and natural "ink-aware" applications.

Distills decades of usability research into pen-based software to present an authoritative discussion of the optimal design of pen-based user interfaces Provides an in-depth exposition of the TabletPC Ink SDK, complete with tips and tricks on how developers can produce the most powerful and natural pen-based, "ink-aware" applications Co-written by the lead software developer on the Microsoft TabletPC team

Author Notes

Philip Su is a lead developer at Microsoft in the Tablet PC group, working on integration of the Tablet PC platform into Microsoft Journal software. Previously, he worked as a lead developer on Microsoft Money and as a software design engineer on Microsoft Word. Philip is also the founder and CEO of Sonetics Software, LLC, a company that specializes in digital audio software. Philip has won numerous awards, including the prestigious National Science Foundation Graduate Fellowship as well as the Maryland Technical Invention of the Year Award. His areas of interest include discrete digital audio processing, multimodal user interfaces, and digital media. He holds dual B.S. degrees in computer science and neurobiology, graduating summa cum laude from University of Maryland.

Table of Contents

Forewordp. xi
Acknowledgmentsp. xv
Introductionp. xvii
Part I The Tablet PC and Its Applications
1 Tablet Computing Comes of Agep. 3
What Makes a Tablet Computerp. 4
Form Factorp. 4
Pen Inputp. 5
Stand-Alone and General-Purposep. 5
What Isn't a Tablet Computerp. 6
The Role of Tablet Computersp. 7
A Brief History of Tablet Computingp. 9
GRiD GRiDPadp. 10
GO PenPointp. 11
Microsoft Windows for Pen Computingp. 12
Apple Newtonp. 13
Palm Computing PalmPilotp. 15
Microsoft Pocket PCp. 16
In a Little Whilep. 17
The Microsoft Tablet PCp. 18
The Birth of Microsoft Tablet PCp. 19
Microsoft Tablet PC Hardware Guidelinesp. 20
Microsoft Tablet PC Softwarep. 20
Could This Be the One?p. 22
2 Designing Tablet PC Applicationsp. 25
User Researchp. 25
Tablet Usabilityp. 26
Application Usabilityp. 27
Pen Usabilityp. 31
Of Mice and Penp. 32
Tablet Displaysp. 32
Digitizer Technologyp. 33
Digitizer Distortionp. 37
Parallaxp. 39
Still Motionp. 41
Handednessp. 44
Thinking in Inkp. 46
Ink Modelingp. 47
Ink Interactionp. 50
Ink Realismp. 57
Part II The Tablet PC Platform SDK
3 Introduction to the Tablet PC Platform SDKp. 65
A Sort of Homecomingp. 65
Finding the Right Operating System for the Jobp. 68
Managed APIsp. 69
Ink Controlsp. 70
COM Automation APIsp. 70
Sample Applicationsp. 71
Installing the Tablet PC Platform SDKp. 72
System Requirementsp. 72
Getting the SDKp. 73
Setting Up Your Environmentp. 73
Anatomy of the Tablet PC Platform SDKp. 78
Overview of the Managed APIp. 79
All That You Can't Leave Behindp. 81
Design Goals of the APIp. 82
Managed API Object Surveyp. 87
Ink Data Management APIp. 90
Ink Recognition APIp. 91
Ink Control Comparison with Managed APIp. 92
Welcome to the Great Adventurep. 94
4 Tablet PC Platform SDK: Tablet Inputp. 95
Sample Applicationsp. 95
Capturing Input from the Penp. 96
Requirement #1 Mouse Emulationp. 96
Requirement #2 Digital Inkp. 97
Requirement #3 Pen-Based Actionsp. 98
Summing Up the Requirementsp. 98
Anatomy of the Tablet PC's Tablet Input Subsystemp. 98
Tablet Hardwarep. 100
Chock-full of HID-y Goodnessp. 101
The Center of the TIS Universe: Wisptis.exep. 102
Winlogon Desktop Supportp. 108
What About Ink?p. 109
Platform SDK Support for Tablet Inputp. 109
Getting Ink from a Tabletp. 109
When Ink Is Not Enoughp. 112
InkCollector Eventsp. 121
InkOverlay Eventsp. 142
Specifying the Tablet Data to Capture--Packet Propertiesp. 142
Extending InkOverlay Behaviorsp. 155
Sample Application: TopOfPenErasep. 155
Sample Application: ModelessSwitchp. 160
Getting Introspectivep. 163
Tablets Collectionp. 163
Tablet Classp. 163
Common Properties on InkCollector and InkOverlayp. 170
Best Practices for InkCollector and InkOverlayp. 172
5 Tablet PC Platform SDK: Ink Data Management, Part Ip. 175
Ink and Stroke Objectsp. 176
Introduction to the Ink, Stroke, and Strokes Classesp. 178
Using Strokes Collectionsp. 186
Creation, Deletion, and Ownership of Stroke Objectsp. 193
Rendering Digital Inkp. 208
Renderer Classp. 208
Adding Style--The DrawingAttributes Classp. 225
Special Rendering Effectsp. 240
6 Tablet PC Platform SDK: Ink Data Management, Part IIp. 245
Stroke Geometryp. 245
Computing the Bounding Box of a Strokep. 246
Retrieving the Points of a Strokep. 248
Computing Intersections of a Strokep. 251
Retrieving and Setting the Packet Data of a Strokep. 258
Retrieving the Cusps of a Strokep. 260
Putting It Together--the StrokeDataViewer Examplep. 263
Transforming Strokesp. 276
Targeting and Hit-Testing Ink Strokesp. 281
Different Types of Hit-Testingp. 281
Hit-Testing Functionsp. 284
Splitting and Trimming Inkp. 311
Splitting Strokesp. 311
Clipping/Trimming Strokesp. 312
Serialization, the Clipboard, and Drag and Dropp. 325
Serializationp. 325
Using the Clipboardp. 334
Implementing Drag and Dropp. 341
7 Tablet PC Platform SDK: Ink Recognitionp. 347
Recognizer Architecturep. 348
Text vs. Object Recognitionp. 348
Synchronous vs. Asynchronous Recognitionp. 349
Recognition Resultsp. 350
Performing Simple Recognitionp. 351
Recognizing Textp. 351
Recognizing Application Gesturesp. 354
Using the Recognition Classesp. 367
Obtaining a Recognizer to Usep. 367
Initiating a Recognition Sessionp. 368
Supplying Strokes to the Recognizerp. 371
Getting Results I Easy Synchronous Recognitionp. 372
Getting Results II Electric Boogaloo (a.k.a. Harder Synchronous Recognition)p. 376
Getting Results III The Final Chapter (a.k.a. Asynchronous Recognition)p. 384
Working with Recognition Resultsp. 391
Storing Recognition Resultsp. 412
Recognition Propertiesp. 413
Improving Recognition Resultsp. 415
8 Ink Controlsp. 421
Achtung Babyp. 421
InkEditp. 422
InkEdit Basicsp. 423
Working with Inkp. 433
Recognizing Ink and Gesturesp. 435
InkEdit Parting Thoughtsp. 444
InkPicturep. 446
Part III Advanced Tablet PC Topics
9 Updating Existing Applicationsp. 459
Even Better than the Real Thingp. 459
User Benefits of Integrationp. 460
Business Benefits of Integrationp. 462
Technical Considerationsp. 463
Application Designp. 463
Performancep. 469
InkPadJuniorp. 491
Part IV Appendixes
A Building TabletApps Library Referencep. 501
B Tablet PC Hardware Guidelinesp. 511
Indexp. 515