WORD waveOutGetPlaybackRate(hWaveOut, lpdwRate)
This function queries the current playback rate setting of a waveform output device.
HWAVEOUT hWaveOut
Specifies a handle to the waveform output device.
LPDWORD lpdwRate
Specifies a far pointer to a location to be filled with the current playback rate. The playback rate setting is a multiplier indicating the current change in playback rate from the original authored setting. The playback rate multiplier must be a positive value.
The rate is specified as a fixed-point value. The high-order word of the DWORD location contains the signed integer part of the number, and the low-order word contains the fractional part. The fraction is expressed as a WORD in which a value of 0x8000 represents one half, and 0x4000 represents one quarter. For example, the value 0x00010000 specifies a multiplier of 1.0 (no playback rate change), and a value of 0x000F8000 specifies a multiplier of 15.5.
Returns zero if the function was successful. Otherwise, it returns an error number. Possible error returns are:
MMSYSERR_INVALHANDLE
Specified device handle is invalid.
MMSYSERR_NOTSUPPORTED
Function isn't supported.
Changing the playback rate does not change the sample rate but does change the playback time.
Not all devices support playback rate changes. To determine whether a device supports playback rate changes, use the WAVECAPS_PLAYBACKRATE flag to test the dwSupport field of the WAVEOUTCAPS structure (filled by waveOutGetDevCaps).
waveOutSetPlaybackRate, waveOutSetPitch, waveOutGetPitch