Win32 API 日本語リファレンス
ホームMedia.Audio.XAudio2 › IXAudio2VoiceCallback

IXAudio2VoiceCallback

COM
自前メソッド開始 vtbl0

メソッド 7

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

vtbl 0 void OnVoiceProcessingPassStart(DWORD BytesRequired)
BytesRequiredDWORDin次の処理パスでアンダーラン回避に必要なバイト数を示すDWORD値。0なら追加供給不要。
vtbl 1 void OnVoiceProcessingPassEnd()
vtbl 2 void OnStreamEnd()
vtbl 3 void OnBufferStart(void* pBufferContext)
pBufferContextvoid*inout処理開始したバッファーに紐づくXAUDIO2_BUFFER.pContextの値。ユーザー定義のコンテキスト。
vtbl 4 void OnBufferEnd(void* pBufferContext)
pBufferContextvoid*inout処理完了したバッファーに紐づくXAUDIO2_BUFFER.pContextの値。ユーザー定義のコンテキスト。
vtbl 5 void OnLoopEnd(void* pBufferContext)
pBufferContextvoid*inoutループ末尾に到達したバッファーに紐づくpContextの値。ユーザー定義のコンテキスト。
vtbl 6 void OnVoiceError(void* pBufferContext, HRESULT Error)
pBufferContextvoid*inoutエラーが発生したバッファーに紐づくpContextの値。ユーザー定義のコンテキスト。
ErrorHRESULTinボイス処理中に発生したエラーを示すHRESULTコード。

HSP用 COM定義

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

#define global IID_IXAudio2VoiceCallback "{}"
#usecom global IXAudio2VoiceCallback IID_IXAudio2VoiceCallback "{}"
#comfunc global IXAudio2VoiceCallback_OnVoiceProcessingPassStart  0 int
#comfunc global IXAudio2VoiceCallback_OnVoiceProcessingPassEnd    1
#comfunc global IXAudio2VoiceCallback_OnStreamEnd                 2
#comfunc global IXAudio2VoiceCallback_OnBufferStart               3 sptr
#comfunc global IXAudio2VoiceCallback_OnBufferEnd                 4 sptr
#comfunc global IXAudio2VoiceCallback_OnLoopEnd                   5 sptr
#comfunc global IXAudio2VoiceCallback_OnVoiceError                6 sptr,int
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。