I'm making a program that uses the Speech library and I'd like to get all other sounds muted or reduced when the lady is talking.
I've been looking for a way to mute other applications manually, but I've seen an option in Windows in the communication tab (inside the sound options) that mentions that window can manage this for me. Like in this picture:

So basically, what does it take for my application to be considered as a communication application (such as Skype)?
I believe the communication apps are implementing something related to the
IAudioVolumeDuckNotificationinterface. The C++ example provided also referencesWM_VOLUME_DUCKandWM_VOLUME_UNDUCKwindows messages which may be enough (but don't appear to be google-able or documented).UPDATE
The .NET Core Audio API project on CodePlex appears to provide a .NET wrapper.
UPDATE
A sample C++ implementation of
IAudioVolumeDuckNotificationas well as an example of notifying theduckedstate can be found in the MSDNDuckingMediaPlayersample application. It actually works (I tried it). A combination of PInvoke'ing a couple methods and the .NET wrapper for the interface should be enough to get you on your way.