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

ISpeechWaveFormatEx

COMIDispatch (デュアル)
IDispatch を実装(デュアルインターフェース)。HSP では comobj 経由でメソッド名による遅延バインド呼び出しができます(vtableインデックス不要)。
IID7a1ef0d5-1581-4741-88e4-209a49f11a10継承元IDispatch呼び出し名前(IDispatch) または vtbl自前メソッド開始 vtbl7

メソッド 14

vtbl = vtable インデックス(0始まり)。IDispatch 実装のため HSP ではメソッド名でも呼べます(上記)。低レベルの index 呼び出し用に vtbl も掲載。0〜2 は IUnknown。

vtbl 7 HRESULT get_FormatTag(SHORT* FormatTag)
FormatTagSHORT*out波形フォーマットタグ(WAVE_FORMAT_PCM等)を受け取るポインタ。
vtbl 8 HRESULT put_FormatTag(SHORT FormatTag)
FormatTagSHORTin波形フォーマットタグ(WAVE_FORMAT_PCM等)を設定する。
vtbl 9 HRESULT get_Channels(SHORT* Channels)
ChannelsSHORT*outチャネル数(1=モノラル,2=ステレオ)を受け取るポインタ。
vtbl 10 HRESULT put_Channels(SHORT Channels)
ChannelsSHORTinチャネル数(1=モノラル,2=ステレオ)を設定する。
vtbl 11 HRESULT get_SamplesPerSec(INT* SamplesPerSec)
SamplesPerSecINT*outサンプリングレート(Hz)を受け取るポインタ。
vtbl 12 HRESULT put_SamplesPerSec(INT SamplesPerSec)
SamplesPerSecINTinサンプリングレート(Hz)を設定する。
vtbl 13 HRESULT get_AvgBytesPerSec(INT* AvgBytesPerSec)
AvgBytesPerSecINT*out1秒あたりの平均バイト数を受け取るポインタ。
vtbl 14 HRESULT put_AvgBytesPerSec(INT AvgBytesPerSec)
AvgBytesPerSecINTin1秒あたりの平均バイト数を設定する。
vtbl 15 HRESULT get_BlockAlign(SHORT* BlockAlign)
BlockAlignSHORT*outデータブロックのアライメント(バイト)を受け取るポインタ。
vtbl 16 HRESULT put_BlockAlign(SHORT BlockAlign)
BlockAlignSHORTinデータブロックのアライメント(バイト)を設定する。
vtbl 17 HRESULT get_BitsPerSample(SHORT* BitsPerSample)
BitsPerSampleSHORT*out1サンプルあたりのビット数を受け取るポインタ。
vtbl 18 HRESULT put_BitsPerSample(SHORT BitsPerSample)
BitsPerSampleSHORTin1サンプルあたりのビット数を設定する。
vtbl 19 HRESULT get_ExtraData(VARIANT* ExtraData)
ExtraDataVARIANT*outフォーマット末尾の追加バイト列を受け取るVARIANTポインタ。
vtbl 20 HRESULT put_ExtraData(VARIANT ExtraData)
ExtraDataVARIANTinフォーマット末尾の追加バイト列を保持するVARIANTを設定する。

HSP用 COM定義

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

出力引数:
#define global IID_ISpeechWaveFormatEx "{7A1EF0D5-1581-4741-88E4-209A49F11A10}"
#usecom global ISpeechWaveFormatEx IID_ISpeechWaveFormatEx "{}"
#comfunc global ISpeechWaveFormatEx_get_FormatTag       7 var
#comfunc global ISpeechWaveFormatEx_put_FormatTag       8 int
#comfunc global ISpeechWaveFormatEx_get_Channels        9 var
#comfunc global ISpeechWaveFormatEx_put_Channels        10 int
#comfunc global ISpeechWaveFormatEx_get_SamplesPerSec   11 var
#comfunc global ISpeechWaveFormatEx_put_SamplesPerSec   12 int
#comfunc global ISpeechWaveFormatEx_get_AvgBytesPerSec  13 var
#comfunc global ISpeechWaveFormatEx_put_AvgBytesPerSec  14 int
#comfunc global ISpeechWaveFormatEx_get_BlockAlign      15 var
#comfunc global ISpeechWaveFormatEx_put_BlockAlign      16 int
#comfunc global ISpeechWaveFormatEx_get_BitsPerSample   17 var
#comfunc global ISpeechWaveFormatEx_put_BitsPerSample   18 int
#comfunc global ISpeechWaveFormatEx_get_ExtraData       19 var
#comfunc global ISpeechWaveFormatEx_put_ExtraData       20 int
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。