Example #1
0
        /// <summary>
        /// Convert (WM_DEVICECHANGE)WM_MESSAGE pointer to data structure
        /// </summary>
        /// <param name="lParam"></param>
        /// <returns></returns>
        protected string PointerToDevicePath(IntPtr lParam)
        {
            Native.DEV_BROADCAST_DEVICEINTERFACE devBroadcastDeviceInterface =
                new Native.DEV_BROADCAST_DEVICEINTERFACE();
            Native.DEV_BROADCAST_HDR devBroadcastHeader = new Native.DEV_BROADCAST_HDR();
            Marshal.PtrToStructure(lParam, devBroadcastHeader);

            Int32 stringSize = Convert.ToInt32((devBroadcastHeader.dbch_size - 32) / 2);

            Array.Resize(ref devBroadcastDeviceInterface.dbcc_name, stringSize);
            Marshal.PtrToStructure(lParam, devBroadcastDeviceInterface);
            return(new String(devBroadcastDeviceInterface.dbcc_name, 0, stringSize));
        }
Example #2
0
        // Specify what you want to happen when the Elapsed event is raised.
        //private void enumerateTimedEvent(object source, ElapsedEventArgs e)
        //{
        //    Update();

        //}



        /// <summary>
        /// Registers a window to receive notifications when USB devices are plugged or unplugged.
        /// </summary>

        /// <param name="windowHandle"></param>
        /// <returns></returns>
        public IntPtr RegisterHIDDeviceNotification(IntPtr windowHandle)
        {
            Native.DEV_BROADCAST_DEVICEINTERFACE dbi = new Native.DEV_BROADCAST_DEVICEINTERFACE
            {
                dbcc_size = 0,

                dbcc_devicetype = (int)Native.DBT_DEVTYP_DEVICEINTERFACE,

                dbcc_reserved = 0,

                dbcc_classguid = GUID_DEVINTERFACE_HID.ToByteArray()
            };



            dbi.dbcc_size = Marshal.SizeOf(dbi);
            IntPtr buffer = Marshal.AllocHGlobal(dbi.dbcc_size);

            Marshal.StructureToPtr(dbi, buffer, true);

            return(Native.RegisterDeviceNotification(windowHandle, buffer, 0));
        }
        /// <summary>
        /// Convert (WM_DEVICECHANGE)WM_MESSAGE pointer to data structure
        /// </summary>
        /// <param name="lParam"></param>
        /// <returns></returns>
        protected string PointerToDevicePath(IntPtr lParam)
        {
            Native.DEV_BROADCAST_DEVICEINTERFACE devBroadcastDeviceInterface =
                               new Native.DEV_BROADCAST_DEVICEINTERFACE();
            Native.DEV_BROADCAST_HDR devBroadcastHeader = new Native.DEV_BROADCAST_HDR();
            Marshal.PtrToStructure(lParam, devBroadcastHeader);

            Int32 stringSize = Convert.ToInt32((devBroadcastHeader.dbch_size - 32) / 2);
            Array.Resize(ref devBroadcastDeviceInterface.dbcc_name, stringSize);
            Marshal.PtrToStructure(lParam, devBroadcastDeviceInterface);
            return new String(devBroadcastDeviceInterface.dbcc_name, 0, stringSize);
        }
        // Specify what you want to happen when the Elapsed event is raised.
        //private void enumerateTimedEvent(object source, ElapsedEventArgs e)
        //{
        //    Update();
        //}
        /// <summary>
        /// Registers a window to receive notifications when USB devices are plugged or unplugged.
        /// </summary>
        /// <param name="windowHandle"></param>
        /// <returns></returns>
        public IntPtr RegisterHIDDeviceNotification(IntPtr windowHandle)
        {
            Native.DEV_BROADCAST_DEVICEINTERFACE dbi = new Native.DEV_BROADCAST_DEVICEINTERFACE
            {
                dbcc_size = 0,

                dbcc_devicetype = (int)Native.DBT_DEVTYP_DEVICEINTERFACE,

                dbcc_reserved = 0,

                dbcc_classguid = GUID_DEVINTERFACE_HID.ToByteArray()

            };

            dbi.dbcc_size = Marshal.SizeOf(dbi);
            IntPtr buffer = Marshal.AllocHGlobal(dbi.dbcc_size);
            Marshal.StructureToPtr(dbi, buffer, true);

              return  Native.RegisterDeviceNotification(windowHandle, buffer, 0);
        }