ExtendedProperties Property

ExtendedProperties Property

Gets the collection of application-defined data that are stored in an object.

Declaration

[C++]

[propget] HRESULT get_ExtendedProperties ([out, retval]
    IInkExtendedProperties** ExtendedProperties);

[Microsoft® Visual Basic® 6.0]

Public Property Get ExtendedProperties() As IInkExtendedProperties

Property Value

IInkExtendedProperties Returns the IInkExtendedProperties collection that allows an application to store custom data in an object.

This property is read-only.

Return Value

HRESULT value Description
S_OK Success.
E_POINTER The parameter pointer was NULL or invalid.
E_INK_EXCEPTION An exception occurred inside the method.
REGDB_CLASSNOTREG Ink Properties object not registered.

Remarks

Applications can use the ExtendedProperties property to access the custom data that is stored on an object. This custom data is automatically serialized with the object.

This property is read only.

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 time stamp, using the ExtendedProperties member. This sample application began with a simple form and added a command button, Command1, and a list box, List1, as well as a reference to the Tablet PC Type Library. Each stroke drawn on the form stores a time stamp in its extended properties and, when the button is pressed, the list box is filled with a list of the time stamps of the strokes.

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

Applies To