Win32 API 日本語リファレンス
ホームMedia.Speech › ISpVoice

ISpVoice

COM
IID6c44df74-72b9-4992-a1ec-ef996e0422d4継承元ISpEventSource自前メソッド開始 vtbl13

メソッド 25

vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。

vtbl 13 HRESULT SetOutput(IUnknown* pUnkOutput, BOOL fAllowFormatChanges)
pUnkOutputIUnknown*in出力先のオーディオまたはストリームのIUnknown。NULLで既定出力を使用する。
fAllowFormatChangesBOOLin出力フォーマットの自動変更を許可するか。
vtbl 14 HRESULT GetOutputObjectToken(ISpObjectToken** ppObjectToken)
ppObjectTokenISpObjectToken**out現在の出力デバイスのISpObjectTokenを受け取るポインタ。
vtbl 15 HRESULT GetOutputStream(ISpStreamFormat** ppStream)
ppStreamISpStreamFormat**out現在の出力ストリームISpStreamFormatを受け取るポインタ。
vtbl 16 HRESULT Pause()
vtbl 17 HRESULT Resume()
vtbl 18 HRESULT SetVoice(ISpObjectToken* pToken)
pTokenISpObjectToken*in使用する音声(ボイス)のISpObjectToken。NULLで既定音声を使用する。
vtbl 19 HRESULT GetVoice(ISpObjectToken** ppToken)
ppTokenISpObjectToken**out現在の音声のISpObjectTokenを受け取るポインタ。
vtbl 20 HRESULT Speak(LPWSTR pwcs, DWORD dwFlags, DWORD* pulStreamNumber)
pwcsLPWSTRinoptional読み上げるテキストまたはSSML/XML文字列。
dwFlagsDWORDin読み上げ方法を指定するSPEAKFLAGS。SPF_ASYNC等で非同期動作を指定する。
pulStreamNumberDWORD*outoptional割り当てられたストリーム番号を受け取るポインタ。NULL可。
vtbl 21 HRESULT SpeakStream(IStream* pStream, DWORD dwFlags, DWORD* pulStreamNumber)
pStreamIStream*in読み上げる音声データのIStream。
dwFlagsDWORDin読み上げ方法を指定するSPEAKFLAGS。
pulStreamNumberDWORD*outoptional割り当てられたストリーム番号を受け取るポインタ。NULL可。
vtbl 22 HRESULT GetStatus(SPVOICESTATUS* pStatus, LPWSTR* ppszLastBookmark)
pStatusSPVOICESTATUS*inout現在の音声状態を受け取るSPVOICESTATUS構造体へのポインタ。
ppszLastBookmarkLPWSTR*out最後に到達したブックマーク文字列を受け取るポインタ。NULL可。
vtbl 23 HRESULT Skip(LPWSTR pItemType, INT lNumItems, DWORD* pulNumSkipped)
pItemTypeLPWSTRinスキップ単位の種類を示す文字列。通常はSENTENCEを指定する。
lNumItemsINTinスキップする項目数。負値で後方へスキップする。
pulNumSkippedDWORD*inout実際にスキップした項目数を受け取るポインタ。NULL可。
vtbl 24 HRESULT SetPriority(SPVPRIORITY ePriority)
ePrioritySPVPRIORITYin設定する音声の優先度を示すSPVPRIORITY列挙値。
vtbl 25 HRESULT GetPriority(SPVPRIORITY* pePriority)
pePrioritySPVPRIORITY*inout現在の優先度を受け取るSPVPRIORITYポインタ。
vtbl 26 HRESULT SetAlertBoundary(SPEVENTENUM eBoundary)
eBoundarySPEVENTENUMinアラート挿入の境界となるイベントを示すSPEVENTENUM列挙値。
vtbl 27 HRESULT GetAlertBoundary(SPEVENTENUM* peBoundary)
peBoundarySPEVENTENUM*inout現在のアラート境界イベントを受け取るSPEVENTENUMポインタ。
vtbl 28 HRESULT SetRate(INT RateAdjust)
RateAdjustINTin話速調整値。-10~10の範囲で指定し、正値で高速化する。
vtbl 29 HRESULT GetRate(INT* pRateAdjust)
pRateAdjustINT*inout現在の話速調整値を受け取るポインタ。
vtbl 30 HRESULT SetVolume(WORD usVolume)
usVolumeWORDin音量レベル。0~100の範囲で指定する。
vtbl 31 HRESULT GetVolume(WORD* pusVolume)
pusVolumeWORD*inout現在の音量レベルを受け取るポインタ。
vtbl 32 HRESULT WaitUntilDone(DWORD msTimeout)
msTimeoutDWORDin読み上げ完了まで待機するミリ秒数。INFINITEで無期限待機する。
vtbl 33 HRESULT SetSyncSpeakTimeout(DWORD msTimeout)
msTimeoutDWORDin同期Speak時のタイムアウトをミリ秒で指定する。
vtbl 34 HRESULT GetSyncSpeakTimeout(DWORD* pmsTimeout)
pmsTimeoutDWORD*inout現在の同期Speakタイムアウト値を受け取るポインタ。
vtbl 35 HANDLE SpeakCompleteEvent()
vtbl 36 HRESULT IsUISupported(LPWSTR pszTypeOfUI, void* pvExtraData, DWORD cbExtraData, BOOL* pfSupported)
pszTypeOfUILPWSTRinサポート確認するUIの種類を示す文字列。
pvExtraDatavoid*inoutUIに渡す追加データ。NULL可。
cbExtraDataDWORDinpvExtraDataのバイト数。
pfSupportedBOOL*inout指定UIがサポートされるかを受け取るBOOLポインタ。
vtbl 37 HRESULT DisplayUI(HWND hwndParent, LPWSTR pszTitle, LPWSTR pszTypeOfUI, void* pvExtraData, DWORD cbExtraData)
hwndParentHWNDinUIの親ウィンドウハンドル。
pszTitleLPWSTRinUIウィンドウのタイトル文字列。NULL可。
pszTypeOfUILPWSTRin表示するUIの種類を示す文字列。
pvExtraDatavoid*inoutUIに渡す追加データ。NULL可。
cbExtraDataDWORDinpvExtraDataのバイト数。

HSP用 COM定義

#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"

出力引数:
#define global IID_ISpVoice "{6C44DF74-72B9-4992-A1EC-EF996E0422D4}"
#usecom global ISpVoice IID_ISpVoice "{96749377-3391-11D2-9EE3-00C04F797396}"
#comfunc global ISpVoice_SetOutput             13 sptr,int
#comfunc global ISpVoice_GetOutputObjectToken  14 sptr
#comfunc global ISpVoice_GetOutputStream       15 sptr
#comfunc global ISpVoice_Pause                 16
#comfunc global ISpVoice_Resume                17
#comfunc global ISpVoice_SetVoice              18 sptr
#comfunc global ISpVoice_GetVoice              19 sptr
#comfunc global ISpVoice_Speak                 20 wstr,int,var
#comfunc global ISpVoice_SpeakStream           21 sptr,int,var
#comfunc global ISpVoice_GetStatus             22 var,var
#comfunc global ISpVoice_Skip                  23 wstr,int,var
#comfunc global ISpVoice_SetPriority           24 int
#comfunc global ISpVoice_GetPriority           25 var
#comfunc global ISpVoice_SetAlertBoundary      26 int
#comfunc global ISpVoice_GetAlertBoundary      27 var
#comfunc global ISpVoice_SetRate               28 int
#comfunc global ISpVoice_GetRate               29 var
#comfunc global ISpVoice_SetVolume             30 int
#comfunc global ISpVoice_GetVolume             31 var
#comfunc global ISpVoice_WaitUntilDone         32 int
#comfunc global ISpVoice_SetSyncSpeakTimeout   33 int
#comfunc global ISpVoice_GetSyncSpeakTimeout   34 var
#comfunc global ISpVoice_SpeakCompleteEvent    35
#comfunc global ISpVoice_IsUISupported         36 wstr,sptr,int,var
#comfunc global ISpVoice_DisplayUI             37 sptr,wstr,wstr,sptr,int
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。