IAudioStreamVolume::SetAllVolumes Method

The SetAllVolumes method sets the individual volume levels for all the channels in the audio stream.

Syntax

public:
HRESULT SetAllVolumes(
         UINT32 dwCount,
         const float *pfVolumes
)  

Parameters

dwCount
Type: UINT32 

[in]

The number of elements in the pfVolumes array. This parameter must equal the number of channels in the stream format. To get the number of channels, call the IAudioStreamVolume::GetChannelCount method.

pfVolumes
Type: float *

[in]

Pointer to an array of volume levels for the channels in the audio stream. The number of elements in the pfVolumes array is specified by the dwCount parameter. The caller writes the volume level for each channel to the array element whose index matches the channel number. If the stream format has N channels, the channels are numbered from 0 to N– 1. Valid volume levels are in the range 0.0 to 1.0.

Return value

Type: HRESULT 

If the method succeeds, it returns S_OK. If it fails, possible return codes include, but are not limited to, the values shown in the following table.

Return codes
Return code Description
E_INVALIDARG Parameter dwCount does not equal the number of channels in the stream, or the value of a pfVolumes array element is not in the range 0.0 to 1.0.
E_POINTER Parameter pfVolumes is NULL.
AUDCLNT_E_DEVICE_INVALIDATED The audio endpoint device has been unplugged, or the audio hardware or associated hardware resources have been reconfigured, disabled, removed, or otherwise made unavailable for use.
AUDCLNT_E_SERVICE_NOT_RUNNING The Windows audio service is not running.

Refer to WASAPI error codes.

Requirements

Header: Declared in audioclient.h.

Library: Use mmdevapi.lib.

See also

IAudioStreamVolume

IAudioStreamVolume Members