Recognize Method

Recognize Method

Performs recognition on an InkStrokes collection and returns recognition results.

Declaration

[C++]

HRESULT Recognize(
    [in, out] InkRecognitionStatus* recognitionStatus,
    [out, retval] IInkRecognitionResult **RecognitionResult
);

[Microsoft® Visual Basic® 6.0]

Public Function Recognize( _
    recognitionStatus As InkRecognitionStatus _
) As IInkRecognitionResult

Parameters

recognitionStatus

[in, out] The most recent InkRecognitionStatus value.

RecognitionResult

[out] Returns the IInkRecognitionResult results of a recognized collection of strokes or returns NULL (Nothing in Visual Basic 6.0) if the recognizer could not compute a result for the ink.

Return Value

HRESULT value Description
S_OK Success.
E_POINTER A parameter contained an invalid pointer.
E_UNEXPECTED Unexpected parameter or property type.
E_INK_EXCEPTION An exception occurred inside the method.
E_OUTOFMEMORY Cannot allocate memory operation.

Remarks

This method performs recognition synchronously. To start background or asynchronous recognition, call the BackgroundRecognize or BackgroundRecognizeWithAlternates methods.

You must use a try/catch block when calling Recognize because an exception is thrown when the InkDisp object contains no strokes or only deleted strokes.

Example

[Visual Basic 6.0]

This Visual Basic 6.0 example shows a button handler that recognizes the ink in its InkRecognizerContext, and displays it in a text box if no errors occurred.

Option Explicit
Dim theInkCollector As InkCollector
Dim theRecognizerContext As New InkRecognizerContext

Private Sub Form_Load()
    Set theInkCollector = New InkCollector
    theInkCollector.hWnd = Me.hWnd
    theInkCollector.Enabled = True
End Sub

Private Sub Command1_Click()
    Set theRecognizerContext.Strokes = theInkCollector.Ink.Strokes
    theRecognizerContext.EndInkInput
    Dim theRecognitionStatus As InkRecognitionStatus
    Dim theRecognitionResult As IInkRecognitionResult
    On Error Resume Next
    Set theRecognitionResult = theRecognizerContext.Recognize(theRecognitionStatus)
    If Err.Number <> 0 Then
        Text1.Text = "Recognize failed: " & Err.Description
    Else
        If InkRecognitionStatus.IRS_NoError = theRecognitionStatus Then
            Text1.Text = theRecognitionResult.TopString
        Else
            'Handle the error conditions here.
            Text1.Text = ""
        End If
    End If
End Sub

Applies To