public bool RegisterWindowForEvents(IntPtr DevHandle, IntPtr formHandle)
        {
            // And register for the actual event
            DEV_BROADCAST_DEVICEHANDLE devHandle = new DEV_BROADCAST_DEVICEHANDLE();

            devHandle.dbch_size       = (uint)Marshal.SizeOf(devHandle);
            devHandle.dbch_devicetype = 6;
            devHandle.dcbh_handle     = DevHandle;
            devHandle.dcbh_hdevnotify = IntPtr.Zero;
            devHandle.dcbh_eventguid  = new Guid("573E8C73-0CB4-4471-A1BF-FAB26C31D384");

            IntPtr not2 = RegisterDeviceNotification(formHandle, ref devHandle, 0);

            return(not2 != IntPtr.Zero);
        }
 static extern IntPtr RegisterDeviceNotification(IntPtr hRecipient, ref DEV_BROADCAST_DEVICEHANDLE NotificationFilter, uint Flags);
 static extern IntPtr RegisterDeviceNotification(IntPtr hRecipient, ref DEV_BROADCAST_DEVICEHANDLE NotificationFilter, uint Flags);
        public bool RegisterWindowForEvents(IntPtr DevHandle, IntPtr formHandle)
        {
            // And register for the actual event
            DEV_BROADCAST_DEVICEHANDLE devHandle = new DEV_BROADCAST_DEVICEHANDLE();
            devHandle.dbch_size = (uint)Marshal.SizeOf(devHandle);
            devHandle.dbch_devicetype = 6;
            devHandle.dcbh_handle = DevHandle;
            devHandle.dcbh_hdevnotify = IntPtr.Zero;
            devHandle.dcbh_eventguid = new Guid("573E8C73-0CB4-4471-A1BF-FAB26C31D384");

            IntPtr not2 = RegisterDeviceNotification(formHandle, ref devHandle, 0);

            return not2 != IntPtr.Zero;
        }