Microsoft DirectX 8.0 (C++) |
バッファをロックする。バッファをロックすると、そのバッファへのポインタが返され、アプリケーションがそのメモリに対してオーディオ データを読み書きできるようになる。
HRESULT Lock( DWORD dwOffset, DWORD dwBytes, LPVOID *ppvAudioPtr1, LPDWORD pdwAudioBytes1, LPVOID *ppvAudioPtr2, LPDWORD pdwAudioBytes2, DWORD dwFlags );
成功した場合は DS_OK を返す。
失敗した場合は、次のいずれかの値を返す。
DSERR_INVALIDPARAM |
DSERR_INVALIDCALL |
このメソッドは、オフセットとバイト カウントを受け取り、2 つの読み込みポインタとそれぞれに関連するサイズを返す。ロックされる部分がバッファの最後まで拡張せず、バッファの先頭にラップされない場合、2 番目のポインタである ppvAudioBytes2 は NULL を受け取る。ロックがラップされる場合、ppvAudioBytes2 はバッファの先頭へのポインタを指す。
アプリケーションが ppvAudioPtr2 パラメータおよび pdwAudioBytes2 パラメータに対して NULL を渡すと、ロックがバッファの終端を越えることはなく、ラップされない。
アプリケーションは、このメソッドで返されたポインタからデータを読み込んだら、直ちに IDirectSoundCaptureBuffer8::Unlock を呼び出す必要がある。サウンド バッファは、動作中にロックしたままにするべきではない。ロックしたままにすると、キャプチャ カーソルがロックされたバイト領域に達し、オーディオの問題が発生する。
ヘッダー : dsound.h で宣言。