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