IAudioVolumeLevel interface (devicetopology.h)
The IAudioVolumeLevel interface provides access to a hardware volume control. The client obtains a reference to the IAudioVolumeLevel interface of a subunit by calling the IPart::Activate method with parameter refiid set to REFIID IID_IAudioVolumeLevel. The call to IPart::Activate succeeds only if the subunit supports the IAudioVolumeLevel interface. Only a subunit object that represents a hardware volume-level control will support this interface.
The IAudioVolumeLevel interface provides per-channel controls for setting and getting the gain or attenuation levels in the audio stream. If a volume-level hardware control can only attenuate the channels in the audio stream, then the maximum volume level for any channel is 0 dB. If a volume-level control can provide gain (amplification), then the maximum volume level is greater than 0 dB.
Most Windows audio adapter drivers support the Windows Driver Model (WDM) and use kernel-streaming (KS) properties to represent the hardware control parameters in subunits (referred to as KS nodes). The IAudioVolumeLevel interface provides convenient access to the KSPROPERTY_AUDIO_VOLUMELEVEL property of a subunit that has a subtype GUID value of KSNODETYPE_VOLUME. To obtain the subtype GUID of a subunit, call the IPart::GetSubType method. For more information about KS properties and KS node types, see the Windows DDK documentation.
Inheritance
The IAudioVolumeLevel interface inherits from the IPerChannelDbLevel interface.
Requirements
Requirement | Value |
---|---|
Minimum supported client | Windows Vista [desktop apps only] |
Minimum supported server | Windows Server 2008 [desktop apps only] |
Target Platform | Windows |
Header | devicetopology.h |