Data Property [IInkExtendedProperty Interface]
Data Property [IInkExtendedProperty Interface] |
Returns or sets the data of the extended property.
Declaration
[C++]
[propput] HRESULT put_Data ([in] VARIANT Data);
[propget] HRESULT get_Data ([out, retval] VARIANT* Data);
[Microsoft® Visual Basic® 6.0]
Public Property Get Data() As Variant
Public Property Let Data(ByVal theData As Variant)
Property Value
VARIANT Returns or sets an object that specifies the data of the extended property.
This property is read/write.
For more information about the VARIANT structure, see Using the Automation Library.
Return Value
HRESULT value | Description |
---|---|
S_OK | Success. |
E_OUTOFMEMORY | Not enough memory to allocate variant buffer. |
E_UNEXPECTED | Unexpected parameter or property type. |
E_INK_EXCEPTION | An exception occurred inside the method. |
E_POINTER | The Data parameter is an invalid pointer. |
E_FAIL | An unspecified error occurred. |
E_INVALIDARG | The specified mode is invalid. |
Remarks
The data consists of information that cannot otherwise be set on the object, such as the time or date that a stroke was made.
Example
[Visual Basic 6.0]
This Visual Basic 6.0 example demonstrates using the Stroke event handler of an InkCollector to store a custom property in each stroke that contains a timestamp, using the ExtendedProperties member. This sample application began with a simple form and added a command button and a list box, as well as a reference to the Tablet PC Type Library. Each stroke drawn on the form stores a timestamp in its extended properties and, when the button is pressed, the list box is filled with a list of the timestamps of the strokes.
Option Explicit
Dim WithEvents theInkCollector As InkCollector
Dim theTimeGuid
Private Sub Command1_Click()
Call PopulateList
End Sub
Private Sub Form_Load()
'Add the InkCollector initialization.
Set theInkCollector = New InkCollector
theInkCollector.hWnd = Me.hWnd
theInkCollector.Enabled = True
' This GUID constant will be used for the strokes'
' timestamp extended property.
theTimeGuid = "{00000010-0011-0012-0010-000000000000}"
End Sub
Public Sub PopulateList()
' Clear the list before repopulating it.
List1.Clear
' Query the InkCollector's Ink for its strokes collection.
Dim theStrokes As InkStrokes
Set theStrokes = theInkCollector.Ink.Strokes
Dim theStroke As IInkStrokeDisp
For Each theStroke In theStrokes
' If the timestamp property exists in this stroke:
If _
theStroke.ExtendedProperties.DoesPropertyExist(theTimeGuid) _
Then
Dim theTime As String
' Get the time data out of this stroke's extended
' properties list, using the previously defined
' Guid as a key to the required extended property.
theTime = theStroke.ExtendedProperties(theTimeGuid).Data
List1.AddItem (theTime)
End If
Next
End Sub
Private Sub theInkCollector_Stroke( _
ByVal Cursor As MSINKAUTLib.IInkCursor, _
ByVal Stroke As MSINKAUTLib.IInkStrokeDisp, _
Cancel As Boolean)
Dim theExtendedProperty As IInkExtendedProperty
' Write the current time into each stroke when it is created
' using the Guid as a unique retrieval key.
Set theExtendedProperty = Stroke.ExtendedProperties.Add(theTimeGuid, Now)
End Sub