I am writing my own API to perform some of the functions of the SndVol system utility. I would like part of this API to be able to set the volume level of this audio session .
SndVol displays a slider in the Device panel, which the user can use to change the volume level of the main audio device, as well as a slider for each audio session (in the Applications panel), which changes the session volume level:

If I dragged the slider handle for one of the audio sessions, then SndVol will be able to change the volume level of the audio session. How it's done?
I thought this was possible using the Windows Vista Core Audio API , but I ran into the problem that although I can repeat the sessions of an audio device using IAudioSessionEnumerator
, IAudioSessionEnumerator
gives me access to IAudioSessionControl
, but I need an IAudioClient
object to get ISimpleAudioVolume
, which I can use to set the audio session volume level. Is it possible to get the IAudioClient
object associated with the IAudioSessionControl
object?
Joseph Trebbien
source share