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