This structure defines the header used to identify a waveform-audio buffer.
At a Glance
Header file: | Mmsystem.h |
Windows CE versions: | 2.0 and later |
Syntax
typedef struct {
LPSTR lpData;
DWORD dwBufferLength;
DWORD dwBytesRecorded;
DWORD dwUser;
DWORD dwFlags;
DWORD dwLoops;
struct wavehdr_tag *lpNext;
DWORD reserved;
} WAVEHDR;
Members
lpData
Long pointer to the address of the waveform buffer.
dwBufferLength
Specifies the length, in bytes, of the buffer.
dwBytesRecorded
When the header is used in input, this member specifies how much data is in the buffer.
dwUser
Specifies user data.
dwFlags
Specifies information about the buffer. It is one of the following flags:
Value | Description |
WHDR_BEGINLOOP | This buffer is the first buffer in a loop. This flag is used only with output buffers. |
WHDR_DONE | Set by the device driver to indicate that it is finished with the buffer and is returning it to the application. |
WHDR_ENDLOOP | This buffer is the last buffer in a loop. This flag is used only with output buffers. |
WHDR_INQUEUE | Set by Windows to indicate that the buffer is queued for playback. |
WHDR_PREPARED | Set by Windows to indicate that the buffer has been prepared with the waveInPrepareHeader or waveOutPrepareHeader function. |
dwLoops
Specifies the number of times to play the loop. This member is used only with output buffers.
wavehdr_tag
Reserved.
reserved
Reserved.
Remarks
Use the WHDR_BEGINLOOP and WHDR_ENDLOOP flags in the dwFlags member to specify the beginning and ending data blocks for looping. To loop on a single block, specify both flags for the same block. Use the dwLoops member in the WAVEHDR structure for the first block in the loop to specify the number of times to play the loop.
The lpData, dwBufferLength, and dwFlags members must be set before calling the waveInPrepareHeader or waveOutPrepareHeader function. For either function, the dwFlags member must be set to zero.