waveOutUnprepareHeader
The waveOutUnprepareHeader function cleans up the preparation performed by the waveOutPrepareHeader function. This function must be called after the device driver is finished with a data block. You must call this function before freeing the buffer.
MMRESULT waveOutUnprepareHeader(
HWAVEOUT hwo,
LPWAVEHDR pwh,
UINT cbwh
);
Parameters
hwo
Handle to the waveform-audio output device.
pwh
Pointer to a WAVEHDR structure identifying the data block to be cleaned up.
cbwh
Size, in bytes, of the WAVEHDR structure.
Return Values
Returns MMSYSERR_NOERROR if successful or an error otherwise. Possible error values include the following.
Value | Description |
MMSYSERR_INVALHANDLE | Specified device handle is invalid. |
MMSYSERR_NODRIVER | No device driver is present. |
MMSYSERR_NOMEM | Unable to allocate or lock memory. |
WAVERR_STILLPLAYING | The data block pointed to by the pwh parameter is still in the queue. |
Remarks
This function complements waveOutPrepareHeader. You must call this function before freeing the buffer. After passing a buffer to the device driver with the waveOutWrite function, you must wait until the driver is finished with the buffer before calling waveOutUnprepareHeader.
Unpreparing a buffer that has not been prepared has no effect, and the function returns zero.
Requirements
** Windows NT/2000/XP:** Included in Windows NT 3.1 and later.
** Windows 95/98/Me:** Included in Windows 95 and later.
** Header:** Declared in Mmsystem.h; include Windows.h.
** Library:** Use Winmm.lib.
See Also
Waveform Audio, Waveform Functions, waveOutPrepareHeader, WAVEHDR, waveOutWrite