ホーム › Media.Speech › ISpeechRecoResultDispatch
ISpeechRecoResultDispatch
COMIDispatch (デュアル)✅ IDispatch を実装(デュアルインターフェース)。HSP では
comobj 経由でメソッド名による遅延バインド呼び出しができます(vtableインデックス不要)。メソッド 13
vtbl = vtable インデックス(0始まり)。IDispatch 実装のため HSP ではメソッド名でも呼べます(上記)。低レベルの index 呼び出し用に vtbl も掲載。0〜2 は IUnknown。
vtbl 7 HRESULT get_RecoContext(ISpeechRecoContext** RecoContext)
| RecoContext | ISpeechRecoContext** | out | この結果を生成した認識コンテキストISpeechRecoContextを受け取る出力ポインタ。 |
vtbl 8 HRESULT get_Times(ISpeechRecoResultTimes** Times)
| Times | ISpeechRecoResultTimes** | out | 認識結果の開始・経過時刻情報ISpeechRecoResultTimesを受け取る出力ポインタ。 |
vtbl 9 HRESULT putref_AudioFormat(ISpeechAudioFormat* Format)
| Format | ISpeechAudioFormat* | inoptional | 結果に関連付けるオーディオ形式ISpeechAudioFormatを設定する入力ポインタ。 |
vtbl 10 HRESULT get_AudioFormat(ISpeechAudioFormat** Format)
| Format | ISpeechAudioFormat** | out | 結果に関連付けられたオーディオ形式ISpeechAudioFormatを受け取る出力ポインタ。 |
vtbl 11 HRESULT get_PhraseInfo(ISpeechPhraseInfo** PhraseInfo)
| PhraseInfo | ISpeechPhraseInfo** | out | 認識されたフレーズの詳細情報ISpeechPhraseInfoを受け取る出力ポインタ。 |
vtbl 12 HRESULT Alternates(INT RequestCount, INT StartElement, INT Elements, ISpeechPhraseAlternates** Alternates)
| RequestCount | INT | in | 取得を要求する代替候補の最大件数。 |
| StartElement | INT | in | 代替候補の対象範囲の開始要素インデックス。 |
| Elements | INT | in | 代替候補の対象範囲に含める要素数。-1で残り全要素を指定する。 |
| Alternates | ISpeechPhraseAlternates** | out | 得られた代替候補コレクションISpeechPhraseAlternatesを受け取る出力ポインタ。 |
vtbl 13 HRESULT Audio(INT StartElement, INT Elements, ISpeechMemoryStream** Stream)
| StartElement | INT | in | 再生対象のオーディオ範囲の開始要素インデックス。 |
| Elements | INT | in | 再生対象に含める要素数。0で全範囲を指定する。 |
| Stream | ISpeechMemoryStream** | out | 切り出したオーディオデータを格納したISpeechMemoryStreamを受け取る出力ポインタ。 |
vtbl 14 HRESULT SpeakAudio(INT StartElement, INT Elements, SpeechVoiceSpeakFlags Flags, INT* StreamNumber)
| StartElement | INT | in | 読み上げ対象範囲の開始要素インデックス。 |
| Elements | INT | in | 読み上げ対象に含める要素数。0で全範囲を指定する。 |
| Flags | SpeechVoiceSpeakFlags | in | 読み上げ動作を制御するSpeechVoiceSpeakFlags列挙のフラグ(非同期/XML解釈等)。 |
| StreamNumber | INT* | out | 発行された読み上げストリーム番号を受け取る出力先。 |
| ResultBlock | VARIANT* | out | 結果オブジェクト全体をシリアライズしたバイナリブロックをVARIANTで受け取る出力先。 |
vtbl 16 HRESULT DiscardResultInfo(SpeechDiscardType ValueTypes)
| ValueTypes | SpeechDiscardType | in | 破棄する情報の種別を指定するSpeechDiscardType列挙のフラグ。メモリ節約に用いる。 |
vtbl 17 HRESULT GetXMLResult(SPXMLRESULTOPTIONS Options, LPWSTR* pResult)
| Options | SPXMLRESULTOPTIONS | in | 出力XMLの整形方法を指定するSPXMLRESULTOPTIONS列挙値。 |
| pResult | LPWSTR* | out | 生成されたSML(認識結果XML)文字列を受け取る出力先。BSTRへのポインタで指定する。 |
vtbl 18 HRESULT GetXMLErrorInfo(INT* LineNumber, LPWSTR* ScriptLine, LPWSTR* Source, LPWSTR* Description, HRESULT* ResultCode, VARIANT_BOOL* IsError)
| LineNumber | INT* | out | XML処理でエラーが発生した行番号を受け取る出力先。INTへのポインタで指定する。 |
| ScriptLine | LPWSTR* | out | エラーが発生したスクリプト行の内容を受け取る出力先。BSTRへのポインタで指定する。 |
| Source | LPWSTR* | out | エラーの発生元を示す文字列を受け取る出力先。BSTRへのポインタで指定する。 |
| Description | LPWSTR* | out | エラーの説明文を受け取る出力先。BSTRへのポインタで指定する。 |
| ResultCode | HRESULT* | out | エラーの結果コードを受け取る出力先。HRESULTへのポインタで指定する。 |
| IsError | VARIANT_BOOL* | out | エラーが存在するか否かを受け取る出力先。VARIANT_BOOLで表す。 |
vtbl 19 HRESULT SetTextFeedback(LPWSTR Feedback, VARIANT_BOOL WasSuccessful)
| Feedback | LPWSTR | in | 認識結果に対するユーザーの訂正テキスト等のフィードバック文字列。BSTRで指定する。 |
| WasSuccessful | VARIANT_BOOL | in | フィードバックが成功(妥当)であったかを示すVARIANT_BOOL値。 |
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
出力引数:
#define global IID_ISpeechRecoResultDispatch "{6D60EB64-ACED-40A6-BBF3-4E557F71DEE2}" #usecom global ISpeechRecoResultDispatch IID_ISpeechRecoResultDispatch "{}" #comfunc global ISpeechRecoResultDispatch_get_RecoContext 7 sptr #comfunc global ISpeechRecoResultDispatch_get_Times 8 sptr #comfunc global ISpeechRecoResultDispatch_putref_AudioFormat 9 sptr #comfunc global ISpeechRecoResultDispatch_get_AudioFormat 10 sptr #comfunc global ISpeechRecoResultDispatch_get_PhraseInfo 11 sptr #comfunc global ISpeechRecoResultDispatch_Alternates 12 int,int,int,sptr #comfunc global ISpeechRecoResultDispatch_Audio 13 int,int,sptr #comfunc global ISpeechRecoResultDispatch_SpeakAudio 14 int,int,int,var #comfunc global ISpeechRecoResultDispatch_SaveToMemory 15 var #comfunc global ISpeechRecoResultDispatch_DiscardResultInfo 16 int #comfunc global ISpeechRecoResultDispatch_GetXMLResult 17 int,var #comfunc global ISpeechRecoResultDispatch_GetXMLErrorInfo 18 var,var,var,var,var,var #comfunc global ISpeechRecoResultDispatch_SetTextFeedback 19 wstr,int ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。 ; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。#define global IID_ISpeechRecoResultDispatch "{6D60EB64-ACED-40A6-BBF3-4E557F71DEE2}" #usecom global ISpeechRecoResultDispatch IID_ISpeechRecoResultDispatch "{}" #comfunc global ISpeechRecoResultDispatch_get_RecoContext 7 sptr #comfunc global ISpeechRecoResultDispatch_get_Times 8 sptr #comfunc global ISpeechRecoResultDispatch_putref_AudioFormat 9 sptr #comfunc global ISpeechRecoResultDispatch_get_AudioFormat 10 sptr #comfunc global ISpeechRecoResultDispatch_get_PhraseInfo 11 sptr #comfunc global ISpeechRecoResultDispatch_Alternates 12 int,int,int,sptr #comfunc global ISpeechRecoResultDispatch_Audio 13 int,int,sptr #comfunc global ISpeechRecoResultDispatch_SpeakAudio 14 int,int,int,sptr #comfunc global ISpeechRecoResultDispatch_SaveToMemory 15 sptr #comfunc global ISpeechRecoResultDispatch_DiscardResultInfo 16 int #comfunc global ISpeechRecoResultDispatch_GetXMLResult 17 int,sptr #comfunc global ISpeechRecoResultDispatch_GetXMLErrorInfo 18 sptr,sptr,sptr,sptr,sptr,sptr #comfunc global ISpeechRecoResultDispatch_SetTextFeedback 19 wstr,int ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。 ; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。