The waveOutWrite function sends a data block to the given waveform-audio output device.

MMRESULT waveOutWrite(
  HWAVEOUT hwo,  
  UINT cbwh      



Handle to the waveform-audio output device.


Pointer to a WAVEHDR structure containing information about the data block.


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_UNPREPARED The data block pointed to by the pwh parameter hasn't been prepared.


When the buffer is finished, the WHDR_DONE bit is set in the dwFlags member of the WAVEHDR structure.

The buffer must be prepared with the waveOutPrepareHeader function before it is passed to waveOutWrite. Unless the device is paused by calling the waveOutPause function, playback begins when the first data block is sent to the device.


**  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, WAVEHDR, waveOutPrepareHeader, waveOutPause