IPerChannelDbLevel::SetLevel

Previous Next

IPerChannelDbLevel::SetLevel

The SetLevel method sets the volume level, in decibels, of the specified channel.

HRESULT SetLevel(
  UINT  nChannel,
  float  fLevelDB,
  LPCGUID  pguidEventContext
);

Parameters

nChannel

[in]  The number of the selected channel. If the audio stream has n channels, the channels are numbered from 0 to n – 1. To get the number of channels in the stream, call the IPerChannelDbLevel::GetChannelCount method.

fLevelDB

[in]  The new volume level in decibels. A positive value represents gain, and a negative value represents attenuation.

pguidEventContext

[in]  Context value for the IControlChangeNotify::OnNotify method. This parameter points to an event-context GUID. If the SetLevel call changes the state of the level control, all clients that have registered IControlChangeNotify interfaces with that control receive notifications. In its implementation of the OnNotify method, a client can inspect the event-context GUID to discover whether it or another client is the source of the control-change event. If the caller supplies a NULL pointer for this parameter, the client's notification method receives a NULL context pointer.

Return Value

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 code Description
E_INVALIDARG Parameter nChannel is out of range.
E_OUTOFMEMORY Out of memory.

Remarks

If the caller specifies a value for fLevelDB that is beyond the range that is reported by the IPerChannelDbLevel::GetLevelRange method, the SetLevel method clamps the value to the supported range and completes successfully. A subsequent call to the IPerChannelDbLevel::GetLevel method retrieves the actual value used.

Requirements

Client: Windows Vista

Header: Include Devicetopology.h.

See Also

Previous Next