static void DisplayDevices(MMDeviceAPI.EDataFlow dataFlow)
 {
     foreach (var device in new MMDeviceAPI.MMDeviceEnumerator()
              .GetDeviceCollection(dataFlow, MMDeviceAPIHelpers.DEVICE_STATE_ACTIVE)
              .GetDevices())
     {
         System.Console.WriteLine(device.Id() + " " + device
                                  .GetPropertyStore(MMDeviceAPIHelpers.STGM_READ)
                                  .Get(MMDeviceAPIHelpers.PKEY_Device_FriendlyName));
     }
 }
 public static MMDeviceAPI.IMMDeviceCollection GetDeviceCollection(this MMDeviceAPI.MMDeviceEnumerator deviceEnumerator, MMDeviceAPI.EDataFlow dataFlow, uint stateMask)
 {
     deviceEnumerator.EnumAudioEndpoints(dataFlow, stateMask, out var deviceCollection);
     return(deviceCollection);
 }