IInkDisp::Load

4/8/2010

Populates a new IInkDisp object with known binary data.

Syntax

HRESULT Load (
  [in] VARIANT Stream
);

Parameters

Return Value

  • S_OK
    Success.
  • E_INVALIDARG
    VARIANT was not of correct type (byte array).
  • E_OUTOFMEMORY
    Cannot allocate memory for IStream.
  • E_UNEXPECTED
    Unexpected parameter or property type.
  • E_INK_EXCEPTION
    An exception occurred inside the method.

Remarks

You can load ink only into a new, empty IInkDisp object — one that hasn't collected any strokes or doesn't have any attached properties. If you try to load ink into an IInkDisp object that has collected strokes or attached properties, even if the strokes or properties have been deleted from the IInkDisp object, an exception is thrown. This occurs because of how stroke IDs are assigned. A stroke is assigned a unique ID, and this ID is not reused, even if the stroke has been deleted from an Ink object. This means that, if an IInkDisp object contained a stroke with an ID of 1 and you deleted the stroke and loaded another IInkDisp object into this IInkDisp object, stroke IDs would start at 2. This would be confusing and therefore is not allowed.

Note

If you do attempt to load ink into an IInkDisp object that is not empty, all data in the IInkDisp object, including any custom strokes or extended properties, is lost when you call Load.

The IInkDisp::Save method allows you to persist the ink in an IInkDisp object in Graphics Interchange Format (GIF) format, which consists of an array of byte data. After you have the array of byte data, you can load the array of byte data into another IInkDisp object. This means that you can load GIF–compatible byte array data into another IInkDisp object in the same way as if you had called the Save method and received a byte array that was not in GIF format.

Note

You cannot create an image, persist that image as a byte array, and then load that byte array into another IInkDisp object. This is because, after you load byte array data as a GIF, Windows Mobile cannot control the format of that data. So, after you persist the image into a byte array again, you cannot call Load on that data.

Requirements

Header msinkaut.h
Windows Embedded CE Windows CE 5.0 and later
Windows Mobile Windows Mobile 6 Classic and later, Windows Mobile 6 Professional and later

See Also

Concepts

Windows Mobile Ink Reference