SpObjectTokenCategory EnumerateTokens Method (SAPI 5.4)
Microsoft Speech API 5.4
Object: SpObjectTokenCategory
EnumerateTokens Method
The EnumerateTokens method returns a selection of SpObjectToken objects.
Selection criteria may be applied optionally.
SpObjectTokenCategory.EnumerateTokens(
[RequiredAttributes As String = ""],
[OptionalAttributes As String = ""]
) As ISpeechObjectTokens
Parameters
- RequiredAttributes
[Optional] Specifies the RequiredAttributes. To be returned by EnumerateTokens, the searched tokens must contain all of the specific required attributes. If no profiles match the selection, the selection returned will not contain any elements. By default no attributes are required and so returns all the tokens discovered. - OptionalAttributes
[Optional] Specifies the OptionalAttributes. Returned tokens containing the RequiredAttributes are sorted by OptionalAttributes. If OptionalAttributes is specified, the tokens are listed with the OptionalAttributes first. By default no attribute is specified so the list returned is in the order discovered from the speech configuration database.
Return Value
The EnumerateTokens method returns an ISpeechObjectTokens variable.
Example
The following Visual Basic form code demonstrates a simple use of the EnumerateTokens method. To run this code, create a form with the following controls:
- A list box called List1
- Two command buttons called Command1 and Command2
Paste this code into the Declarations section of the form.
The Command1 procedure creates an SpVoice object and uses the voice's GetVoices method to get an ISpeechObjectTokens collection containing an object token for each voice on the computer. A For Each loop lists each voice token's Description property in the list box.
The Command2 procedure creates a new SpObjectTokenCategory object, uses the SetId method to associate it with the category of voices, and the EnumerateTokens method to get an ISpeechObjectTokens collection containing an object token for each voice on the computer. A For Each loop lists each voice token's Description property in the list box.
The list of voices displayed by the two command buttons will be identical.
Option Explicit
Dim V As SpeechLib.SpVoice 'voice object
Dim T As SpeechLib.SpObjectToken 'object token
Dim E As SpeechLib.ISpeechObjectTokens 'an enumeration of object tokens
Dim C As SpeechLib.SpObjectTokenCategory 'a category of object tokens
Private Sub Command1_Click()
On Error GoTo EH
List1.Clear
List1.AddItem "Enumerate voices with SpVoice.GetVoices"
List1.AddItem ""
Set V = New SpVoice 'create new voice
Set E = V.GetVoices() 'no parameters -- get all voices
For Each T In E
List1.AddItem " " & T.GetDescription
Next
EH:
If Err.Number Then ShowErrMsg
End Sub
Private Sub Command2_Click()
On Error GoTo EH
List1.Clear
List1.AddItem "Enumerate voices with SpObjectToken.EnumerateTokens"
List1.AddItem ""
Set C = New SpObjectTokenCategory 'create new token category object
C.SetId SpeechCategoryVoices 'init ID of voices category
Set E = C.EnumerateTokens() 'no parameters -- get all voices
For Each T In E
List1.AddItem " " & T.GetDescription
Next
EH:
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
End Sub