I am writing an application that will record audio from microphone. My problem is I need to know when the user plug in the jack and remove the jack out.
I looked into Win32_SoundDevice WMI class and seems to me there is no such a property that I can check the status of the Jack. 
Then I found RegisterEndpointNotificationCallback in IMMDeviceEnumerator which seems to do what I need but I have no clue how to do this in C#. Does anyone know how to use MMDeviceEnumerator methods to check for audio port status ? Any help highly appreciated.