ISpeechVoiceStatus LastStreamNumberQueued Property (SAPI 5.3)

Speech API 5.3
Microsoft Speech API 5.3

Interface: ISpeechVoiceStatus

LastStreamNumberQueued Property

The LastStreamNumberQueued property retrieves the number of the last audio stream enqueued by the voice.


Set: (This property is read-only)
Get: Long = ISpeechVoiceStatus.LastStreamNumberQueued


The owning object.
Set: (This property is read-only)
Get: A Long variable returning the stream number of the last audio stream spoken.


The following code snippet demonstrates the use of the LastStreamNumberQueued property. To run this code, create a form with the following control:

  • A command button called Command1

Paste this code into the Declarations section of the form.

The Form_Load procedure creates a voice object. The Command1_Click procedure speaks three streams asynchronously, creates an ISpeechVoiceStatus object and prints the LastStreamNumberQueued property value. The WaitUntilDone method then blocks execution until the voice finishes speaking the three streams, and the LastStreamNumberQueued property value is printed again. The value of the LastStreamNumberQueued property in both cases is 3.

Option Explicit

Private V As SpeechLib.SpVoice
Private S As SpeechLib.ISpeechVoiceStatus

Private Sub Command1_Click()
    On Error GoTo EH

    'Enqueue three streams

    V.Speak "this is stream number one.", SVSFlagsAsync
    V.Speak "a second stream, now.", SVSFlagsAsync
    V.Speak "the third stream is next", SVSFlagsAsync

    'Get status while voice is speaking

    Set S = V.Status  'Get status thru ISpeechVoiceStatus object

    Print "Voice is speaking and LastStreamNumberQueued is " _
            & S.LastStreamNumberQueued
    DoEvents  'Let Print results be seen immediately

    V.WaitUntilDone (99999)     'Wait until voice finishes

    'Get status thru "Voice.Status.Property" syntax

    Print "Voice is finished and LastStreamNumberQueued is " _
            & V.Status.LastStreamNumberQueued

    If Err.Number Then ShowErrMsg
End Sub

Private Sub Form_Load()

    Set V = New SpVoice

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