Share via


ISpAudio::SetFormat

Other versions of this page are also available for the following:

Windows Mobile Not SupportedWindows Embedded CE Supported

8/28/2008

This method sets the format of the audio device. The format can be retrieved by calling the ISpStreamFormat::GetFormat method.

This method can be called only when the audio device is in the SPAS_CLOSED state. 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.

Syntax

HRESULT SetFormat(
  REFGUID rguidFmtId,
  const WAVEFORMATEX* pWaveFormatEx
);

Parameters

  • rguidFmtId
    [in] The reference GUID for the format to set. Typically this will be SPDFID_WaveFormatEx. This identifier is required for the SAPI multimedia objects.
  • pWaveFormatEx
    [in] Pointer to a WAVEFORMATEX structure containing the wave file format information.

Remarks

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.

Return Value

The following table shows the possible return values.

Value Description

S_OK

Function completed successfully. See note about supported formats.

E_INVALIDARG

pWaveFormatEx is invalid or bad.

SPERR_DEVICE_BUSY

Device is not in the SPAS_CLOSED state.

SPERR_UNINITIALIZED

Audio stream not initialized.

SPERR_UNSUPPORTED_FORMAT

Specified format is not supported.

FAILED(hr)

Appropriate error message.

Requirements

Header sapi.h, sapi.idl
Library sapilib.lib
Windows Embedded CE Windows CE .NET 4.1 and later

See Also

Reference

ISpAudio
SAPI Interfaces