音声入力イベント
[Microsoft エージェントは Windows 7 の時点で非推奨となり、以降のバージョンの Windows では使用できない場合があります。]
さらに、 Command イベント通知に対して、エージェントは、 ListenStart イベントと ListenComplete イベント (IAgentNotifySinkEx::ListeningState) を使用して、サーバーがリッスン モードをオンまたはオフにしたときに、入力アクティブ なクライアントにも通知します。 ただし、ユーザーがリッスン モード キーを押し、入力アクティブ なクライアントの一番上の文字に対応する音声認識エンジンが使用できない場合、サーバーは Listening ホットキー モードのタイムアウトを開始しますが、文字のアクティブなクライアントの ListenStart イベントは生成されません。 タイムアウトが完了する前に、ユーザーが音声認識エンジンのサポートを使用して別の文字をアクティブ化すると、サーバーは音声入力のアクティブ化を試み、 ListenStart イベントを生成します。
同様に、クライアントが Listen メソッドを使用してリッスン モードを有効にしようとしたときに、一致する音声認識エンジンが使用できない場合、呼び出しは失敗し、サーバーは ListenStartイベントを生成しません。 Microsoft エージェント コントロールでは、 Listen メソッドは False を返しますが、呼び出しではエラーは発生しません。
リッスン キー モードがオンで、ユーザーが別の音声認識エンジンを使用する文字に切り替えると、サーバーはそのエンジンに切り替えてアクティブ化し、 ListenComplete と ListenStart イベントをトリガーします。 アクティブ化された文字に使用可能な音声認識エンジンがない場合 (インストールされていないか、アクティブ化された文字の言語 ID 設定と一致しないため)、サーバーは、以前にアクティブ化された文字に対して ListenComplete イベントをトリガーし、 Cause パラメーターの値を返します。 ただし、サーバーは音声認識をサポートしていないクライアントに対して ListenStart イベントまたは ListenComplete イベントを生成しません。
クライアントが Listen メソッドを正常に呼び出し、音声認識エンジンがサポートされていない文字がリッスン モードのタイムアウトが完了する前に入力アクティブになり、ユーザーが元のクライアントの文字に戻ると、サーバーはそのクライアントに対して ListenStart イベントを生成します。
入力アクティブ クライアントがリッスン モードの間に SRModeID を 変更して音声認識エンジンを切り替える場合、サーバーは ListenStart イベントを再トリガーせずに、そのエンジンに切り替えてアクティブ化します。 ただし、指定したエンジンが使用できない場合、呼び出しは失敗し (コントロールでエラーが発生します)、サーバーは ListenComplete イベントも呼び出します。