ISpAudio::SetFormat (SAPI 5.4)

Speech API 5.4
Microsoft Speech API 5.4


ISpAudio::SetFormat sets the format of the audio device.

HRESULT SetFormat(
   REFGUID                rguidFmtId,
   const  WAVEFORMATEX   *pWaveFormatEx


[in] The REFGUID for the format to set. Typically this will be SPDFID_WaveFormatEx. This is required for the SAPI multimedia objects.
[in] Address of the WAVEFORMATEX structure containing the wave file format information.

Return values

S_OKFunction completed successfully. See note about supported formats.
E_INVALIDARGpWaveFormatEx is invalid or bad.
SPERR_DEVICE_BUSYDevice is not in the SPAS_CLOSED state.
SPERR_UNINITIALIZEDAudio stream not initialized.
SPERR_UNSUPPORTED_FORMATSpecified format is not supported.
FAILED(hr)Appropriate error message.


This method can be called only when the audio device is in the SPAS_CLOSED state. Note that successfully setting the format on an audio device does not necessarily mean that the format is supported. An attempt must be made to place the device into a non-closed state (SPAS_STOP, SPAS_PAUSE or SPAS_RUN) to be sure that the device can handle the format.

The format can be retrieved by calling the ISpStreamFormat::GetFormat method.

The helper class CSpStreamFormat and the SPSTREAMFORMAT enumeration can be used to avoid the possibility of typos or mistakes when filling in the WAVEFORMATEX structure.