waveOutGetPlaybackRate

  MMRESULT waveOutGetPlaybackRate(hWaveOut, lpdwRate)    
  HWAVEOUT hWaveOut;    
  LPDWORD lpdwRate;    

The waveOutGetPlaybackRate function queries the current playback rate setting of a waveform output device.

Parameters

hWaveOut

Specifies a handle to the waveform output device.

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.

Return Value

Returns zero if the function was successful. Otherwise, it returns an error number. Possible error returns are:

Value Meaning

MMSYSERR_INVALHANDLE Specified device handle is invalid.
MMSYSERR_NOTSUPPORTED Function isn't supported.
MMSYSERR_HANDLEBUSY The handle hWaveOut is in use on another thread.

Comments

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).

See Also

waveOutSetPlaybackRate, waveOutSetPitch, waveOutGetPitch