Important: |
---|
This is retired content. This content is outdated and is no longer being maintained. It is provided as a courtesy for individuals who are still using these technologies. This content may contain URLs that were valid when originally published, but now link to sites or pages that no longer exist. |
This function prepares a waveform data block for playback. This function allows both the audio driver and the operating system (OS) to do time consuming processing of the header and/or buffer once at initialization. The application can use the buffer repeatedly without additional processing by the driver or the OS.
Syntax
MMRESULT waveOutPrepareHeader( HWAVEOUT hwo, LPWAVEHDR pwh, UINT cbwh ); |
Parameters
- hwo
-
Handle to the waveform-audio output device.
- pwh
-
Pointer to a WAVEHDRstructure that identifies the data block to be prepared. The buffer's base address must be aligned with the respect to the sample size.
- cbwh
-
Size, in bytes, of the WAVEHDRstructure.
Return Value
One of the values described in the following table is returned.
Value | Description |
---|---|
MMSYSERR_NOERROR |
Success. |
MMSYSERR_INVALHANDLE |
Specified device handle is invalid. |
MMSYSERR_INVALPARAM |
The buffer's base address is not aligned with the sample size. |
MMSYSERR_NODRIVER |
No device driver is present. |
MMSYSERR_NOMEM |
Unable to allocate or lock memory. |
Remarks
The lpData, dwBufferLength, and dwFlagsmembers of the WAVEHDRstructure must be set before calling this function ( dwFlagsmust be zero).
Once prepared, the application may not change the lpDatafield.
Preparing a header that has already been prepared has no effect, and the function returns zero.
An application should not attempt to prepare the same header on two different wave devices at the same time. If you want to record from one wave device and play back the same data to another wave device, but don't want to copy data between buffers, you can allocate two wave headers, point them both to the same data buffer, and then call waveInPrepareHeaderon one and waveOutPrepareHeaderon the other as appropriate.
Requirements
Header | mmsystem.h |
Library | coredll.lib |
Windows Embedded CE | Windows CE 2.0 and later |
Windows Mobile | Windows Mobile Version 5.0 and later |