Spracheingabeereignisse

[Microsoft Agent ist ab Version Windows 7 veraltet und in nachfolgenden Versionen von Windows.]

Zusätzlich zur Befehlsereignisbenachrichtigung benachrichtigt der -Agent auch den eingabeaktiven Client, wenn der Server den Lauschmodus aktiviert oder deaktiviert, indem die ListenStart- und ListenComplete-Ereignisse (IAgentNotifySinkEx::ListeningState) verwendet werden. Wenn der Benutzer jedoch die Taste für den Lauschenmodus drückt und keine passende Spracherkennungs-Engine für das oberste Zeichen des eingabeaktiven Clients verfügbar ist, startet der Server das Time out im Hotkeymodus "Lauschen", generiert jedoch kein ListenStart-Ereignis für den aktiven Client des Zeichens. Wenn der Benutzer vor Abschluss des Time outs ein weiteres Zeichen mit Spracherkennungs-Engine-Unterstützung aktiviert, versucht der Server, die Spracheingabe zu aktivieren, und generiert das ListenStart-Ereignis.

Wenn ein Client versucht, den Lauschmodus mithilfe der Listen-Methode zu aktivieren, und keine passende Spracherkennungs-Engine verfügbar ist, schlägt der Aufruf fehl, und der Server generiert kein ListenStart-Ereignis. Im Microsoft Agent-Steuerelement gibt die Listen-Methode False zurück, aber der Aufruf gibt keinen Fehler aus.

Wenn der Abhörschlüsselmodus aktiviert ist und der Benutzer zu einem Zeichen wechselt, das eine andere Spracherkennungs-Engine verwendet, wechselt der Server zu dieser Engine und aktiviert sie und löst eine ListenComplete und dann ein ListenStart-Ereignis aus. Wenn das aktivierte Zeichen nicht über eine verfügbare Spracherkennungs-Engine verfügt (da keines installiert ist oder keiner mit der Sprach-ID-Einstellung des aktivierten Zeichens übereinstimmen), löst der Server das ListenComplete-Ereignis für das zuvor aktivierte Zeichen aus und übergibt einen Wert im Cause-Parameter zurück. Der Server generiert jedoch keine ListenStart- oder ListenComplete-Ereignisse für die Clients, die keine Spracherkennung unterstützen.

Wenn ein Client die Listen-Methode erfolgreich aufruft und ein Zeichen ohne Spracherkennungs-Engine-Unterstützung eingabeaktiv wird, bevor das Time out des Lauschenmodus abgeschlossen ist, und der Benutzer dann zurück zum Zeichen des ursprünglichen Clients wechselt, generiert der Server ein ListenStart-Ereignis für diesen Client.

Wenn der Eingabe-Aktiv-Client die Spracherkennungs-Engines wechselt, indem er srModeID im Lauschenmodus ändert, wechselt der Server zu und aktiviert diese Engine, ohne das ListenStart-Ereignis erneut auszulösen. Wenn die angegebene Engine jedoch nicht verfügbar ist, schlägt der Aufruf fehl (löst einen Fehler im -Steuerelement aus), und der Server ruft auch das ListenComplete-Ereignis auf.