shellhandwriting.h header
Enables inking with a pen on, or near, any text edit control without first setting focus to the control. The system determines intent, identifies an input target, renders the ink strokes, recognizes the ink as text (or a gesture for modifying text), suggests text candidates when available, and inserts the new or modified text into the edit field of the control.
This header is used by Ink input. For more information, see:
Both the Text Services Framework (TSF) and UI Automation (UIA) are used to support ShellHandwriting functionality.
The following steps describe the basic process used for ShellHandwriting functionality.
- Opt-out determination: Determine if application supports ShellHandwriting. Typically applications that do not have robust UI Automation (UIA) implementations or those with custom ink handling.
- Intent determination: If app supports ShellHandwriting, system determines whether the pen down pointer input should be passed to through to the app or used for handwriting.
- Tap determination: If pen input should be used for handwriting, test whether the input was received by an actionable control (such as a button, which would take input precedence) and whether a control capable of receiving text (Edit, ComboBox, or Document types) can be found that is enabled, not read-only, and able to accept keyboard focus.
- Target determination: If input can be used for handwriting, a bounding box is created around a portion of the input to determine the edit control best suited to receiving the ink recognition results (target determination).
- Final determination: When a target edit control is identified and given focus, various other context indicators (such as input scope, language, existing text bounding rects) are used to confirm appropriateness before the ink recognition results are copied to the control.
shellhandwriting.h contains the following programming interfaces:
Interfaces
IHandwritingInputRoutingCallback Provides input routing support for separating the pen input handling system thread from the UI thread of the input target. |
ITfDetermineProximateHandwritingTargetArgs Provides handwriting response behavior and proximate target info. |
ITfFocusHandwritingTargetArgs Provides handwriting response behavior and target info. |
ITfHandwriting Supports ink input with a pen on any proximate edit field without first having to set focus to the edit control. The ink strokes are rendered, handwriting recognition is performed (as either text or edit gesture), and text is entered into the edit field. |
ITfHandwritingRequest Applications must use this interface to notify the system that they have evaluated the pen input that occurred after the handwriting request. |
ITfHandwritingSink Supports the ability to specify custom handwriting behaviors before focus is set to an edit field. |
Functions
GetHandwritingStrokeIdForPointer Retrieves the unique ID of the ink stroke associated with the specified pointer ID. |
RegisterHandwritingInputRoutingCallback |
Enumerations
TfHandwritingFocusTargetResponse Specifies how a client that implements the IHandwritingInputRoutingCallback interface responds when the FocusHandwritingTarget function is called. |
TfHandwritingState Specifies how handwriting is handled by the system. |
TfInputEvaluation Specifies how the pen input should be recognized. |
TfProximateHandwritingTargetResponse Specifies the supported handwriting behaviors based on the proximate location of a handwriting target object. |