CLI324CLI324
Tablet PC Platform Tablet PC Platform Advanced TopicsAdvanced Topics
Software Design Engineer/Test LeadSoftware Design Engineer/Test [email protected]@microsoft.com
MManagementanagementTToolsools
CCommunicationsommunications& & MMessagingessaging
Device Update Agent
Software Update Services
Live Communications Server
Exchange Server
Internet Security and Acceleration Server
Speech Server
Image Update
LLocation ocation SServiceservices
MMultimediaultimedia
MapPoint
DirectX
Windows Media
Visual Studio 2005DDevelopment evelopment TToolsools
MFC 8.0, ATL 8.0
Win32NNativeative
MManagedanaged
SServer erver SSideide
LLightweightightweight
RRelationalelationalSQL Server 2005 Express EditionEDB
DDa
taata
PPro
gra
mm
ing
ro
gra
mm
ing
MM
od
el
od
el
DDevice evice BBuilding uilding TToolsools
HHardware/ardware/DDriversrivers
Windows XP DDK
Windows Embedded Studio
Platform Builder
OEM/IHV SuppliedBSP
(ARM, SH4, MIPS)OEM Hardware and Standard Drivers
Standard PC Hardware and Drivers
SQL Server 2005SQL Server 2005 Mobile Edition
ASP.NET Mobile Controls ASP.NET
.NET Compact Framework .NET Framework
Microsoft Operations Manager
Systems Management Server
TopicsTopics
Overview of the Tablet SDK Overview of the Tablet SDK
Tablet Hardware APITablet Hardware API
Gesture SupportGesture Support
RealTimeStylus Plug-in Interfaces RealTimeStylus Plug-in Interfaces
Journal Note ReaderJournal Note Reader
Questions and AnswersQuestions and Answers
Ink ObjectInk Object
Primary Data Object in the Primary Data Object in the Tablet PlatformTablet Platform
Container for:Container for:Stroke dataStroke data
MetadataMetadata
Controls all means of persistenceControls all means of persistence
Extensible via ExtendedProperties Extensible via ExtendedProperties collectioncollection
Stroke ObjectStroke Object
Represents a single strokeRepresents a single strokeSingle pen down, pen move, pen up sequenceSingle pen down, pen move, pen up sequence
ExtendedPropertiesExtendedPropertiesAllows applications to access and store Allows applications to access and store custom datacustom data
DrawingAttributesDrawingAttributesControls the rendering of the strokeControls the rendering of the stroke
Rich API Rich API PacketData, BezierPoints, PacketData, BezierPoints,
PolylineCusps, SelfIntersectionsPolylineCusps, SelfIntersections
Strokes CollectionsStrokes Collections
What are Stroke collections?What are Stroke collections?Collections of references to strokesCollections of references to strokes
Not the stroke data itselfNot the stroke data itself
Important so you can pass a subset to the Important so you can pass a subset to the RecognizersRecognizers
Stroke Collections can share strokesStroke Collections can share strokesBoth Stroke collections include Stroke 3Both Stroke collections include Stroke 3
Strokes
Stroke (1)
Strokes
Stroke (2) Stroke (3) Stroke (4) Stroke (5)
Recognizer ContextRecognizer Context
Object for accessing handwriting Object for accessing handwriting recognizersrecognizers
Binds ink data to a particular language Binds ink data to a particular language for recognitionfor recognition
Performs synchronous or Performs synchronous or asynchronous handwriting recognitionasynchronous handwriting recognition
Recognition results and Recognition results and alternates returnedalternates returned
Attributes used to bias Attributes used to bias recognition resultsrecognition results
Tablet PC Platform Tablet PC Platform Hardware APIHardware API
Examining Tablet HardwareExamining Tablet Hardware
Electromagnetic digitizersElectromagnetic digitizersHigh resolution, High throughputHigh resolution, High throughput
There are two types of digitizersThere are two types of digitizersIntegrated and Non-IntegratedIntegrated and Non-Integrated
Multiple Digitizers are supportedMultiple Digitizers are supportedThe mouse is also represented as a digitizerThe mouse is also represented as a digitizer
Digitizers support various capabilitiesDigitizers support various capabilities# of stylus buttons, pressure, angle or rotation # of stylus buttons, pressure, angle or rotation attributesattributes
Ink Stroke PacketData varies between digitizersInk Stroke PacketData varies between digitizers
Tablet Hardware APITablet Hardware API
TabletTabletObject representation of a digitizerObject representation of a digitizer
Query for digitizer’s supported properties Query for digitizer’s supported properties
Get property metricsGet property metricse.g.: How many levels of pressure are e.g.: How many levels of pressure are supported?supported?
TabletsTabletsReturns collection of all connected Returns collection of all connected digitizersdigitizers
Including the mouseIncluding the mouse
Tablet Hardware API Tablet Hardware API ContinuedContinued
CursorCursorRepresents a stylusRepresents a stylus
Allows for access to stylus propertiesAllows for access to stylus propertiesInverted, Button state, NameInverted, Button state, Name
Available in all InkCollector/Overlay Available in all InkCollector/Overlay eventsevents
CursorInRange / CursorOut0fRangeCursorInRange / CursorOut0fRange
CursorDown / CursorUpCursorDown / CursorUp
CursorsCursorsCollection of Cursor objectsCollection of Cursor objects
Gesture SupportGesture Support
GesturesGestures
Collected through InkCollector, Collected through InkCollector, InkOverlay, or RealTimeStylusInkOverlay, or RealTimeStylus
Two Types: System or ApplicationTwo Types: System or Application
System GesturesSystem GesturesMimic mouse eventsMimic mouse events
Cannot be disabledCannot be disabled
Application GesturesApplication GesturesCan be single or multi-strokeCan be single or multi-stroke
Can be turned on/off individuallyCan be turned on/off individually
System GesturesSystem Gestures
Available GesturesAvailable GesturesTap Tap
DoubleTapDoubleTap
RightTapRightTap
DragDrag
RightDragRightDrag
HoldEnterHoldEnter
HoverEnterHoverEnter
HoverLeaveHoverLeave
Coordinates are Window CoordinatesCoordinates are Window Coordinates
Can’t be cancelled Can’t be cancelled
Application GesturesApplication Gestures
CollectionMode determines supportCollectionMode determines supportInkOnlyInkOnly
InkAndGestureInkAndGesture
GestureOnlyGestureOnly
Single versus Multi-Stroke GesturesSingle versus Multi-Stroke Gestures
Inform your users about gesture Inform your users about gesture supportsupport
Good UI feedbackGood UI feedback
Consistent use (i.e. Scratchout)Consistent use (i.e. Scratchout)
GesturesGestures
Focus: Scenario driven – Focus: Scenario driven – don’t over usedon’t over use
RealTimeStylus Plug-in RealTimeStylus Plug-in InterfacesInterfaces
RealTimeStylusRealTimeStylus
1.1. PerformancePerformanceDe-couples rendering and collection of inkDe-couples rendering and collection of ink
2.2. FlexibilityFlexibilityYou can control exactly how and when the You can control exactly how and when the ink is collected and renderedink is collected and rendered
3.3. ExtensibleExtensibleYou can create your own plug-ins to render You can create your own plug-ins to render and collect inkand collect ink
RealTimeStylusRealTimeStylus
1.1. PerformancePerformanceGives you the opportunity to ensure users Gives you the opportunity to ensure users see no lag when creating inksee no lag when creating ink
Collection of stylus input is moved off the Collection of stylus input is moved off the UI thread and is collected asynchronouslyUI thread and is collected asynchronously
Provides direct access to stylus input Provides direct access to stylus input eveneven before it is renderedbefore it is rendered
Queued events allow for separation of Real Queued events allow for separation of Real Time Collection thread and UI threadTime Collection thread and UI thread
Minimizes thread usage Minimizes thread usage (From 5 per instance to (From 5 per instance to 1 per process)1 per process)
RealTimeStylusRealTimeStylus
Focus: No lag renderingFocus: No lag rendering
RealTimeStylusRealTimeStylus
2.2. FlexibilityFlexibilityPlug-in based architecturePlug-in based architecture
You determine how you render and collect You determine how you render and collect ink based on which plug-ins you chooseink based on which plug-ins you choose
Plug-ins can be dynamically added, Plug-ins can be dynamically added, removed or re-orderedremoved or re-ordered
RealTimeStylusRealTimeStylus
3.3. ExtensibleExtensibleAllows for the creation of new Real Time Allows for the creation of new Real Time componentscomponents
Custom dynamic rendering, gesture Custom dynamic rendering, gesture recognition, disabled regions, etc.recognition, disabled regions, etc.
Customize your ink collection and Customize your ink collection and rendering to suit your needrendering to suit your need
Architecture (Overview)Architecture (Overview)
Pen Service
RealTimePlugIn(IStylusSyncPlugin)
RealTimeStylus
queue
RealTimePlugIn(IStylusSyncPlugin)
“Inking” Thread UI Thread
Ink CollectingObject
(IStylusAsyncPlugin)
storage
InkCollector
RealTimeStylus Plug-insRealTimeStylus Plug-ins
Object that implements a synchronous or Object that implements a synchronous or asynchronous interfaceasynchronous interface
SyncPlugin: fast custom renderingSyncPlugin: fast custom renderingAsyncPlugin: ink data collectionAsyncPlugin: ink data collection
Can manipulate packet dataCan manipulate packet dataRead, Modify, Add, or IgnoreRead, Modify, Add, or Ignore
Tablet OS includes two plug-insTablet OS includes two plug-insDynamic RenderingDynamic RenderingGesture Recognition Gesture Recognition
SDK includes two sample plug-insSDK includes two sample plug-insCustom RenderingCustom RenderingConstrained RegionConstrained Region
RealTimeStylus PluginRealTimeStylus Plugin
Focus:Focus:Flexibility in rendering ink Flexibility in rendering ink Flexibility in collecting stroke dataFlexibility in collecting stroke data
Journal Note ReaderJournal Note Reader
Journal Note ReaderJournal Note Reader
Provides Read-only access to Journal Provides Read-only access to Journal NotesNotes
Exposes all attributes in Journal filesExposes all attributes in Journal filesInk, Images, Title, Stationary, etc.Ink, Images, Title, Stationary, etc.
Enables your application to consume common Enables your application to consume common note filesnote files
JNT file is presented as an XML JNT file is presented as an XML documentdocument
Native and Managed versionsNative and Managed versions
DDownloadownload as an SDK update as an SDK update
Converting Journal NotesConverting Journal Notes
Ink object can save to Ink Serialized Ink object can save to Ink Serialized Format (ISF) or GIFFormat (ISF) or GIF
You may want to view ink on other You may want to view ink on other platforms (Pocket PC)platforms (Pocket PC)
Choose a format that is vector based so Choose a format that is vector based so the rich scalability of ink is preservedthe rich scalability of ink is preserved
Journal Reader With Journal Reader With Ink DividerInk Divider
Focus:Focus:Easy to consume Journal filesEasy to consume Journal files
MEDC Mobile PC TalksMEDC Mobile PC Talks
CLI204 - Tablet PC Development OverviewCLI204 - Tablet PC Development Overview
Speaker – Dave HaleSpeaker – Dave Hale
Time – Tuesday 5/10 11:30 AMTime – Tuesday 5/10 11:30 AM
CLI208 – Anywhere Access to DataCLI208 – Anywhere Access to Data
Speaker – Markus EggerSpeaker – Markus Egger
Time – Tuesday 5/10 3:00 PMTime – Tuesday 5/10 3:00 PM
CLI324 – Advanced Tablet PC Development TopicsCLI324 – Advanced Tablet PC Development Topics
Speaker – Todd LandstadSpeaker – Todd Landstad
Time – Wednesday 5/11 8:00 AMTime – Wednesday 5/11 8:00 AM
CLI205 – Basic Considerations for Mobile PC DevelopmentCLI205 – Basic Considerations for Mobile PC Development
Speaker – Michelle McKelveySpeaker – Michelle McKelvey
Time – Wednesday 5/11 11:30 AMTime – Wednesday 5/11 11:30 AM
CLI329 – Network AwarenessCLI329 – Network Awareness
Speaker – Dr. Neil RoodynSpeaker – Dr. Neil Roodyn
Time – Thursday 5/12 8:00 AMTime – Thursday 5/12 8:00 AM
Mobile Hands On Labs Mobile Hands On Labs At MEDCAt MEDC
Building Network-Aware Mobile PC Building Network-Aware Mobile PC ApplicationsApplications
Build a network-aware application using the Build a network-aware application using the Windows Network Location Awareness (NLA) APIWindows Network Location Awareness (NLA) API
Building Power-Aware Mobile PC ApplicationsBuilding Power-Aware Mobile PC ApplicationsLearn how to tune your applications to save power, Learn how to tune your applications to save power, extend battery life, and enhance the user's mobile extend battery life, and enhance the user's mobile PC experiencePC experience
Building Managed Applications with Microsoft Building Managed Applications with Microsoft Windows XP Tablet PC SDK Windows XP Tablet PC SDK
Create a cool Tablet application using the Windows Create a cool Tablet application using the Windows XP Tablet PC Edition SDK 1.7XP Tablet PC Edition SDK 1.7
The Tablet And Mobile The Tablet And Mobile PC Developer CenterPC Developer Centerhttp://msdn.microsoft.com/mobilepchttp://msdn.microsoft.com/mobilepc
Tablet PC Developer CenterTablet PC Developer Center
The latest technical articlesThe latest technical articles
DownloadsDownloads
Developer resourcesDeveloper resources
Regular columnsRegular columns
..
NewsgroupsNewsgroups
Featured partnersFeatured partners
and more…and more…
Attend a free chat or web castAttend a free chat or web casthttp://www.microsoft.com/communities/chats/default.mspxhttp://www.microsoft.com/communities/chats/default.mspx http://www.microsoft.com/usa/webcasts/default.asp http://www.microsoft.com/usa/webcasts/default.asp
List of newsgroupsList of newsgroupshttp://communities2.microsoft.com/communities/newsgroups/en-us/default.aspxhttp://communities2.microsoft.com/communities/newsgroups/en-us/default.aspx
MS Community SitesMS Community Siteshttp://www.microsoft.com/communities/default.mspx http://www.microsoft.com/communities/default.mspx
Locate Local User Groups and Community SitesLocate Local User Groups and Community Siteshttp://www.microsoft.com/communities/usergroups/default.mspx http://www.microsoft.com/communities/usergroups/default.mspx http://www.microsoft.com/communities/related/default.mspxhttp://www.microsoft.com/communities/related/default.mspx
While at MEDC 2005…While at MEDC 2005…Fill outFill out an evaluation for this session an evaluation for this session
Randomly selected instant Randomly selected instant WINWIN prizes! prizes!
Use Use real technology in a labreal technology in a lab Instructor led Instructor led Reef E/FReef E/F & & Breakers LBreakers L
Self-paced Self-paced Reef B/CReef B/C
VisitVisit the Microsoft Product Pavilion the Microsoft Product Pavilion
in the Exhibit Hall in the Exhibit Hall Shorelines BShorelines B
After The Conference…After The Conference…
DevelopDevelop
BuildBuild
InstallInstall
BuildBuild
JoinJoin
InstallInstall
EnterEnter
JoinJoin
Full-featured trial versions of Windows CE Full-featured trial versions of Windows CE and/or Windows XP Embeddedand/or Windows XP Embedded
Cool stuff & tell us about it: Cool stuff & tell us about it: msdn.microsoft.com/embedded/community msdn.microsoft.com/embedded/community
Windows Embedded Partner Program:Windows Embedded Partner Program:www.mswep.com www.mswep.com
Windows Mobile 5.0 Eval Kit including Windows Mobile 5.0 Eval Kit including Visual Studio 2005 Beta 2Visual Studio 2005 Beta 2
Mobile2Market Contest and win up to $25000: Mobile2Market Contest and win up to $25000: mobile2marketcontest.com mobile2marketcontest.com
Microsoft Solutions Partner Program:Microsoft Solutions Partner Program:partner.microsoft.com partner.microsoft.com
Tools & ResourcesTools & Resources
msdn.microsoft.com/msdn.microsoft.com/ embeddedembedded
microsoft.public.microsoft.public. windowsxp.embeddedwindowsxp.embedded windowsce.platbuilderwindowsce.platbuilder windowsce.embedded.vcwindowsce.embedded.vc
blogs.msdn.com/blogs.msdn.com/ mikehallmikehall
Windows CE 5.0 Eval KitWindows CE 5.0 Eval KitWindows XP Embedded Eval KitWindows XP Embedded Eval Kit
msdn.microsoft.com/msdn.microsoft.com/ mobilitymobility
microsoft.public.microsoft.public. pocketpc.developer pocketpc.developer smartphone.developer smartphone.developer dotnet.framework.compactframeworkdotnet.framework.compactframework
blogs.msdn.com/blogs.msdn.com/ windowsmobilewindowsmobile vsdteamvsdteam netcfteamnetcfteam
Windows Mobile 5.0 Eval KitWindows Mobile 5.0 Eval Kit
WebsitesWebsites
NewsgroupsNewsgroups
BlogsBlogs
ToolsTools
BuildBuild DevelopDevelop
© 2005 Microsoft Corporation. All rights reserved.This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Top Related