InkDisp class

Represents the collected strokes of ink within an ink space.

InkDisp has these types of members:


The InkDisp class has these events.

Event Description
InkAdded Occurs when a stroke is added to the InkDisp object.
InkDeleted Occurs when a stroke is deleted from the InkDisp object.


The InkDisp class defines these interfaces.

Interface Description
IInkDisp This object implements the IInkDisp COM interface.


The InkDisp class has these methods.

Method Description
AddStrokesAtRectangle Inserts a stroke collection into the InkDisp object at the specified rectangle.
CanPaste Indicates whether the IDataObject can be converted to an InkDisp object.
Clip Removes portions of a stroke or collection of strokes that are outside a rectangle.
ClipboardCopy Copies the InkStrokes collection to the Clipboard.
ClipboardCopyWithRectangle Copies the IInkStrokeDisp objects that are contained within the known rectangle to the Clipboard.
ClipboardPaste Copies the IDataObject from the Clipboard to the InkDisp object.
Clone Creates a duplicate InkDisp object.
CreateStroke Creates a stroke from points or packet data.
CreateStrokes Creates an InkStrokes collection for this InkDisp object.
DeleteStroke Deletes a stroke from the InkDisp object.
DeleteStrokes Deletes strokes from the InkDisp object.
ExtractStrokes Method Extracts strokes from the InkDisp object and returns a new InkDisp object containing the extracted strokes.
ExtractWithRectangle Method Cuts or copies strokes from an existing InkDisp Class object and pastes them into a new InkDisp Class object, by using the known rectangle to determine which strokes to extract.
GetBoundingBox Retrieves the bounding box of all of the strokes in the InkDisp object.
HitTestCircle Retrieves the InkStrokes collection that are either completely inside or intersected by a known circle.
HitTestWithLasso Retrieves the strokes within a polyline selection area.
HitTestWithRectangle Retrieves the strokes that are contained within a specified rectangle.
Load Populates a new InkDisp object with known binary data.
NearestPoint Retrieves the IInkStrokeDisp within the InkDisp object that is nearest to a known point, optionally providing additional information.
Save Converts the ink to a specified format and returns the binary data.


The InkDisp class has these properties.

Property Access type Description
Gets the IInkCustomStrokes collection to be persisted with the ink.
Gets or sets the value that indicates whether an InkDisp object has been modified since the last time the ink was saved.
Gets the collection of application-defined data.
Gets the InkStrokes collection contained in the InkDisp object.


This object can be instantiated by calling the CoCreateInstance method in C++.


The first instantiation of this object causes GDI+ to be instantiated as well. A side-effect is that if you are using a single ink object in a loop and create and destroy it within the loop, you will cause GDI+ to be instantiated over and over. This can cause a performance degradation in your application. To prevent this, keep a single instance of an ink object at all times while your application is using ink.

An InkDisp object is a container of stroke (point) data. The stroke data, or the points collected by the pen, are put into an InkDisp object. The Strokes property contains the data for all strokes within the InkDisp object.

The InkCollector object, InkOverlay object, and InkPicture control collects points from the input device and puts them into an InkDisp object. These objects essentially act as the source that distributes ink into one or many different InkDisp objects, which act as containers that hold the distributed ink.

The ink space is a virtual coordinate space to which the coordinates of the tablet context are mapped. This space is fixed to a HIMETRIC coordinate system. In ink space coordinates, a move from 0 to 1 equals 1 HIMETRIC unit. This mapping makes it easy to relate multiple InkDisp objects.

The InkRenderer object manages the mappings between ink and the display window.


Requirement Value
Minimum supported client
Windows XP Tablet PC Edition [desktop apps only]
Minimum supported server
None supported
Msinkaut.h (also requires Msinkaut_i.c)

See also

IInkStrokeDisp Interface

InkStrokes Collection

IInkTablet Interface