Platform SDK: DirectX |
IDirectSoundCaptureBuffer::Lock メソッドは、バッファをロックする。バッファをロックすると、そのバッファへのポインタが返され、アプリケーションがそのメモリに対してオーディオ データを読み書きできるようになる。
HRESULT Lock( DWORD dwReadCursor, DWORD dwReadBytes, LPVOID *lplpvAudioPtr1, LPDWORD lpdwAudioBytes1, LPVOID *lplpvAudioPtr2, LPDWORD lpdwAudioBytes2, DWORD dwFlags );
成功すれば DS_OK、失敗すれば次のエラー値のいずれかを返す。
DSERR_INVALIDPARAM |
DSERR_INVALIDCALL |
このメソッドは、オフセットとバイト カウントを受け取り、2 つの読み込みポインタとそれぞれに関連するサイズを返す。サウンド キャプチャ バッファが循環するため、2 つのポインタが必要である。ロックされたバイトがバッファの最後からラップ アラウンドしない (先頭へ戻らない) 場合、2 番目のポインタである lplpvAudioBytes2 は NULL になる。ただし、バイトがラップ アラウンドする場合は、2 番目のポインタはバッファの先頭を指す。
アプリケーションが lplpvAudioPtr2 と lpdwAudioBytes2 の各パラメータに NULL を渡すと、DirectSoundCapture は、バッファのラップアラウンド部分をロックしない。
アプリケーションは、IDirectSoundCaptureBuffer::Lock メソッドが返したポインタからデータを読み込み、IDirectSoundCaptureBuffer::Unlock メソッドを呼び出し、バッファを解放して DirectSoundCapture に返すべきである。サウンド バッファは長時間にわたってロックすべきではない。長時間のロックを行うと、キャプチャ カーソルがロックされたバイトに達してしまい、機器構成に依存するオーディオの問題が発生することがある。
Windows NT/2000 : Windows 2000 が必要。
Windows 95/98 : Windows 95 以降が必要。Windows 95 用に再配布可能な形で使用可能。
ヘッダー : dsound.h で宣言。
インポート ライブラリ : dsound.lib を使用。