HRESULT Unlock(LPVOID lpvAudioPtr1, DWORD dwAudioBytes1,
LPVOID lpvAudioPtr2, DWORD dwAudioBytes2);
Releases a locked sound buffer.
·Returns DS_OK if successful, or one of the following error values otherwise:
DSERR_INVALIDCALL | DSERR_INVALIDPARAM |
DSERR_PRIOLEVELNEEDED |
lpvAudioPtr1
Address of the value retrieved in the lplpvAudioPtr1 parameter of the IDirectSoundBuffer::Lock method.
dwAudioBytes1
Number of bytes actually written into the lpvAudioPtr1 parameter. It should not exceed the number of bytes returned by the IDirectSoundBuffer::Lock method.
lpvAudioPtr2
Address of the value retrieved in the lplpvAudioPtr2 parameter of the IDirectSoundBuffer::Lock method.
dwAudioBytes2
Number of bytes actually written into the lpvAudioPtr2 parameter. It should not exceed the number of bytes returned by the IDirectSoundBuffer::Lock method.
An application must pass both pointers, lpvAudioPtr1 and lpvAudioPtr2, returned by the IDirectSoundBuffer::Lock method to ensure the correct pairing of IDirectSoundBuffer::Lock and IDirectSoundBuffer::Unlock. The second pointer is needed even if 0 bytes were written to the second pointer.
Applications must pass the number of bytes actually written to the two pointers in the parameters dwAudioBytes1 and dwAudioBytes2.
Make sure the sound buffer does not remain locked for long periods of time.