SpObjectTokenCategory GetDataKey Method (SAPI 5.3)

Microsoft Speech API 5.3

Object: SpObjectTokenCategory
Type: Hidden

GetDataKey Method

The GetDataKey method returns the data key of the SpObjectTokenCategory object.

A data key object provides read and write access to the contents of a particular folder in the Speech configuration database. The data key of an SpObjectTokenCategory object accesses the folder referenced by its Id property.

     [Location As SpeechDataKeyLocation = SDKLDefaultLocation]
) As ISpeechDataKey


  • Location
    [Optional] Specifies the location in the speech configuration database. Default value is SDKLDefaultLocation.

Return Value

An ISpeechDataKey object.


The following Visual Basic form code demonstrates the use of the GetDataKey method to enumerate the list of voices in the voices category. To run this code, create a form with the following controls:

  • A list box called List1
  • A command button called Command1

Paste this code into the Declarations section of the form.

The Command1 procedure creates a new SpObjectTokenCategory object and uses the SetId method to associate the object with the category of voices. It retrieves the data keys of the category and of the category's Tokens subfolder. It then uses the data key object's EnumKeys method to enumerate the tokens in the Tokens subfolder. The results displayed in the list will be identical to the lists of voices displayed by the code sample in the EnumerateTokens method.

Option Explicit

Dim C As SpeechLib.SpObjectTokenCategory    'a category of object tokens
Dim K As SpeechLib.ISpeechDataKey           'data key object
Dim E As String                             'gets names of subkeys
Dim ii As Integer

Private Sub Command1_Click()
    On Error GoTo EH

    List1.AddItem "Enumerate voice tokens with SpObjectTokenCategory.GetDataKey"
    List1.AddItem ""

    Set C = New SpObjectTokenCategory   'create new token category object
    C.SetId SpeechCategoryVoices        'init with ID of voices category

    Set K = C.GetDataKey                'set to key of voice category object
    Set K = K.OpenKey("Tokens")         'reset to key of its "Tokens" subfolder

    On Error Resume Next
    For ii = 0 To 9999                  'enumerate subkeys within "Tokens" subkey
        E = K.EnumKeys(ii)              'next subkey
        If Err.Number Then Exit For     'this will be used!
        List1.AddItem "   " & E

    If Err.Number Then ShowErrMsg
End Sub

Private Sub ShowErrMsg()

    ' Declare identifiers:
    Dim T As String

    T = "Desc: " & Err.Description & vbNewLine
    T = T & "Err #: " & Err.Number
    MsgBox T, vbExclamation, "Run-Time Error"

End Sub