Compartilhar via


DoesPropertyExist Method

DoesPropertyExist Method

Returns a value that indicates whether an IInkExtendedProperty object exists within an IInkExtendedProperties collection.

Declaration

[C++]

HRESULT DoesPropertyExist (
    [in] BSTR theGuid,
    [out, retval] VARIANT_BOOL *DoesPropertyExist
);

[Microsoft® Visual Basic® 6.0]

Public Function DoesPropertyExist(theGuid As String) As Boolean

Parameters

theGuid

[in] Specifies the globally unique identifier (GUID) of the property to be checked.

For more information about the BSTR data type, see Using the Automation Library.

DoesPropertyExist

[out, retval] Returns the Boolean value that specifies whether the property exists within the collection. If True, the extended property exists.

Return Value

HRESULT value Description
S_OK Success.
E_FAIL An unspecified error occurred.
E_POINTER A parameter contained an invalid pointer.
CO_E_CLASSSTRING Invalid GUID format.
E_INK_EXCEPTION An exception occurred inside the method.
E_INVALIDARG Invalid display handle.
TPC_E_INVALID_STROKE The stroke is invalid.

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.

        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