Example #1
0
 internal static void AudioDevicesClientClose()
 {
     if (pm_AudioDevicesCallback != null)
     {
         try
         {
             IMMDeviceEnumerator deviceEnumerator = (IMMDeviceEnumerator)(new MMDeviceEnumerator());
             deviceEnumerator.UnregisterEndpointNotificationCallback(pm_AudioDevicesCallback);
             pm_AudioDevicesCallback  = null;
             pm_AudioDevicesEventArgs = null;
             if (deviceEnumerator != null)
             {
                 Marshal.ReleaseComObject(deviceEnumerator); deviceEnumerator = null;
             }
         }
         catch { /* ignore */ }
     }
 }
Example #2
0
        internal static bool AudioDevicesClientOpen()
        {
            bool result = true;

            if (pm_AudioDevicesCallback == null)
            {
                try
                {
                    IMMDeviceEnumerator deviceEnumerator = (IMMDeviceEnumerator)(new MMDeviceEnumerator());
                    pm_AudioDevicesCallback = new AudioDevicesClient();
                    deviceEnumerator.RegisterEndpointNotificationCallback(pm_AudioDevicesCallback);
                    pm_AudioDevicesEventArgs = new SystemAudioDevicesEventArgs();
                    if (deviceEnumerator != null)
                    {
                        Marshal.ReleaseComObject(deviceEnumerator);
                    }
                }
                catch { result = false; }
            }
            return(result);
        }