ホーム › Media.Speech › ISpStreamFormatConverter
ISpStreamFormatConverter
COMメソッド 6
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
vtbl 15 HRESULT SetBaseStream(ISpStreamFormat* pStream, BOOL fSetFormatToBaseStreamFormat, BOOL fWriteToBaseStream)
| pStream | ISpStreamFormat* | inoptional | 変換元となる基盤ストリームISpStreamFormatへのポインタ。 |
| fSetFormatToBaseStreamFormat | BOOL | in | 変換後フォーマットを基盤ストリームに合わせるか。 |
| fWriteToBaseStream | BOOL | in | 基盤ストリームへ書き込みを行うか。 |
vtbl 16 HRESULT GetBaseStream(ISpStreamFormat** ppStream)
| ppStream | ISpStreamFormat** | out | 基盤ストリームのISpStreamFormatを受け取るポインタ。 |
vtbl 17 HRESULT SetFormat(GUID* rguidFormatIdOfConvertedStream, WAVEFORMATEX* pWaveFormatExOfConvertedStream)
| rguidFormatIdOfConvertedStream | GUID* | in | 変換後ストリームのフォーマットを識別するGUID。 |
| pWaveFormatExOfConvertedStream | WAVEFORMATEX* | in | 変換後ストリームの波形フォーマット詳細を示すWAVEFORMATEX。 |
vtbl 18 HRESULT ResetSeekPosition()
vtbl 19 HRESULT ScaleConvertedToBaseOffset(ULONGLONG ullOffsetConvertedStream, ULONGLONG* pullOffsetBaseStream)
| ullOffsetConvertedStream | ULONGLONG | in | 変換後ストリーム上のバイトオフセット。 |
| pullOffsetBaseStream | ULONGLONG* | out | 対応する基盤ストリーム上のオフセットを受け取るポインタ。 |
vtbl 20 HRESULT ScaleBaseToConvertedOffset(ULONGLONG ullOffsetBaseStream, ULONGLONG* pullOffsetConvertedStream)
| ullOffsetBaseStream | ULONGLONG | in | 基盤ストリーム上のバイトオフセット。 |
| pullOffsetConvertedStream | ULONGLONG* | out | 対応する変換後ストリーム上のオフセットを受け取るポインタ。 |
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
出力引数:
#define global IID_ISpStreamFormatConverter "{678A932C-EA71-4446-9B41-78FDA6280A29}" #usecom global ISpStreamFormatConverter IID_ISpStreamFormatConverter "{7013943A-E2EC-11D2-A086-00C04F8EF9B5}" #comfunc global ISpStreamFormatConverter_SetBaseStream 15 sptr,int,int #comfunc global ISpStreamFormatConverter_GetBaseStream 16 sptr #comfunc global ISpStreamFormatConverter_SetFormat 17 var,var #comfunc global ISpStreamFormatConverter_ResetSeekPosition 18 #comfunc global ISpStreamFormatConverter_ScaleConvertedToBaseOffset 19 int64,var #comfunc global ISpStreamFormatConverter_ScaleBaseToConvertedOffset 20 int64,var ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_ISpStreamFormatConverter "{678A932C-EA71-4446-9B41-78FDA6280A29}" #usecom global ISpStreamFormatConverter IID_ISpStreamFormatConverter "{7013943A-E2EC-11D2-A086-00C04F8EF9B5}" #comfunc global ISpStreamFormatConverter_SetBaseStream 15 sptr,int,int #comfunc global ISpStreamFormatConverter_GetBaseStream 16 sptr #comfunc global ISpStreamFormatConverter_SetFormat 17 sptr,sptr #comfunc global ISpStreamFormatConverter_ResetSeekPosition 18 #comfunc global ISpStreamFormatConverter_ScaleConvertedToBaseOffset 19 int64,sptr #comfunc global ISpStreamFormatConverter_ScaleBaseToConvertedOffset 20 int64,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。