I got pieces of this off of the internet. It seems to have originated as a KB article
in VB that was converted to C#. Most of the struct layouts are not 100% correct, but
since it works for me, I'm not going to fool with it. I've added some bits for selecting
audio devices and for muting the audio.