provided by: 
Originally published at Internet.com
New and improved...
This is a new an improved version of the Audio Mixer Control Classes. The whole family of classes has undergone a major overhaul since this article was first posted. Bugs have been eliminated, code reuse through inheritance has been improved, one new class was added, and, yes, one class even disappeared! The CMixerSelector class has been merged with the CMixerSwitch class.
It takes quite a bit of work just to get a simple volume control to work in an application. But with the following classes: CMixerFader derived from CSliderCtrl
CMixerSwitch derived from CButton
CMixerNumber derived from CSpinButtonCtrl (new)
CMixerPeakMeter derived from CStatic all it takes is a few lines of code to get several controls up and running.
For example: the CMixerFader class is derived from CSliderCtrl, so all it takes to have a fully functional volume control is a slider control in a dialog box, and 3 lines of code (plus the include directive!).
Coming to terms with terms
The Audio Mixer Service is made up of audio lines. An audio line can have one or more channels (usually two for stereo)...
Read article at Internet.com site