title: How to get full name of microphone in C#?
body: <p>I'd like to get full name of all connected microphones. I was googling to find out an answer but there was no answer that satisfies me.</p>
  
  <p>Let me show some examples:</p>
  
  <p>1.</p>
  
  <pre><code>ManagementObjectSearcher mo = new ManagementObjectSearcher("select * from Win32_SoundDevice");
  
  foreach (ManagementObject soundDevice in mo.Get())
  {               
      MessageBox.Show(soundDevice.GetPropertyValue("Caption").ToString());  
      // or 
      MessageBox.Show(soundDevice.GetPropertyValue("Description").ToString());  
      //or
      MessageBox.Show(soundDevice.GetPropertyValue("Manufacturer").ToString()); 
      //or 
      MessageBox.Show(soundDevice.GetPropertyValue("Name").ToString());
      //or
      MessageBox.Show(soundDevice.GetPropertyValue("ProductName").ToString());                     
  }
  </code></pre>
  
  <p>All of these getters shows: "Device Audio USB" or "Device compatible with High Definition standard".</p>
  
  <p>2.</p>
  
  <pre><code>WaveInCapabilities[] devices = GetAvailableDevices();        
  foreach(device in devices)
  {
      MessageBox.Show(device.ProductName);
  }
  </code></pre>
  
  <p>The same answer: "Device Audio USB" or "Device compatible with High Definition standard".</p>
  
  <p>I want to get the full name. I mean, something like: "Sennheiser microphone USB". Is it even possible? I found: <a href="https://stackoverflow.com/questions/1449162/get-the-full-name-of-a-wavein-device">Get the full name of a waveIn device</a> but a link in it is broken and I don't see any dsound.lib for c# (to use DirectSoundCaptureEnumerate).
  Am I missing anything? Or is there any other option?</p>