IsStringSupported Method

IsStringSupported Method

Indicates whether the system dictionary, user dictionary, or word list contain a specified string.



HRESULT IsStringSupported (
    [in] BSTR s,
    [out, retval] VARIANT_BOOL *Supported

[Microsoft® Visual Basic® 6.0]

Public Function IsStringSupported( _
    s As String _
) As Boolean



[in] The string to look up in the dictionaries and word list.

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


[out] Returns TRUE if the string is in the dictionary or word list; otherwise FALSE.

Return Value

HRESULT valueDescription
S_OKOne of the dictionaries contains the string.
E_POINTERA parameter contained an invalid pointer.
E_INVALIDARGInvalid input string.
E_INK_EXCEPTIONAn exception occurred while processing.
E_OUTOFMEMORYCannot allocate memory operation.
E_UNEXPECTEDUnexpected parameter or property type.


This method considers all flags and factoids, among other things, that give context to the string that is being tested.

This method does not search the user dictionary if you specify a word list for the context. The recognizer uses the speech dictionary in Microsoft Office XP.

Use the Factoid property to limit the search to the system dictionary or the word list that is associated with the context. For example, to limit the search to the system dictionary, specify the SystemDictionary factoid. To improve the results, you may also need to set the RecognitionFlags property.


[Visual Basic 6.0]

This Visual Basic 6.0 example adds a string to the InkWordList that is used by the InkRecognizerContext object. It uses a command button, Command1, and a text box, Text1, on a standard Windows Forms application which has the Microsoft Tablet PC Type Library added as a reference. When the command button is pressed, the ink on the form is recognized, and IsStringSupported is called to report if the top result string is supported by the recognizer context.

Option Explicit
Dim theInkCollector As InkCollector
Dim theRecognizerContext As New InkRecognizerContext
Dim theWordlist As New InkWordList

Private Sub Form_Load()
    Set theInkCollector = New InkCollector
    theInkCollector.hWnd = Me.hWnd
    theInkCollector.Enabled = True
    theWordlist.AddWord "XYZZY"
    Set theRecognizerContext.WordList = theWordlist
End Sub

Private Sub Command1_Click()
    Set theRecognizerContext.Strokes = theInkCollector.Ink.Strokes
    Dim theRecognitionStatus As InkRecognitionStatus
    Dim theRecognitionResult As IInkRecognitionResult
    On Error Resume Next
    Set theRecognitionResult = theRecognizerContext.Recognize(theRecognitionStatus)

    If InkRecognitionStatus.IRS_NoError = theRecognitionStatus Then
        If theRecognizerContext.IsStringSupported(theRecognitionResult.TopString) Then
            Text1.Text = theRecognitionResult.TopString & " is supported."
            Text1.Text = theRecognitionResult.TopString & " is not supported."
        End If
        'Handle the error conditions here.
        Text1.Text = ""
    End If
End Sub

Applies To

Related Topics