private void refreshDeviceSelectionView() { DEIFlags flags = DEIFlags.DICFG_AllClasses; bool driverLessOnly = deviceSelection_DriverlessOnlyCheckBox.Checked; bool connnectedOnly = deviceSelection_ConnectedOnlyCheckBox.Checked; if (connnectedOnly) { flags = flags | DEIFlags.DICFG_Present; } if (driverLessOnly) { flags |= DEIFlags.Driverless; } #if DEBUG flags |= DEIFlags.IncludeWindowsServices; #endif cmdRemoveDevice.Enabled = false; gridDeviceSelection.Rows.Clear(); if (deviceSelection_CreateNewRadio.Checked) { mCurrentDeviceItem = new DeviceItem(); wizMain.NextEnabled = true; deviceSelection_RefreshButton.Enabled = false; return; } deviceSelection_RefreshButton.Enabled = true; DeviceEnumeratorInfo deInfo = new DeviceEnumeratorInfo(flags, Handle); mDeviceList = deInfo.DeviceList; DeviceSelectionHelper.EnumerateDevices(deInfo); foreach (DeviceItem deviceItem in mDeviceList) { int iRow = gridDeviceSelection.Rows.Add(new object[] { "0x" + deviceItem.VendorID, "0x" + deviceItem.ProductID, deviceItem.DeviceDescription, deviceItem.Manufacturer, deviceItem.mDriverless, deviceItem.mDeviceId }); gridDeviceSelection.Rows[iRow].Tag = deviceItem; deviceItem.ResetDirty(); } wizMain.NextEnabled = (gridDeviceSelection.Rows.Count > 0); if (wizMain.NextEnabled && mCurrentDeviceItem == null) { mCurrentDeviceItem = (DeviceItem)gridDeviceSelection.SelectedRows[0].Tag; } }
private void writeSetupPackageFn(object state) { mFoundLikeDevices = new List <DeviceItem>(); rtfFinishedSatus.LoggingEnabled = true; mSetupPackageWritten = mCurrentInfWriter.Write(); rtfFinishedSatus.LoggingEnabled = false; if (!mSetupPackageWritten) { return; } if (mSettings.UserDeviceManufacturers == null) { mSettings.UserDeviceManufacturers = new StringCollection(); } if (!mSettings.UserDeviceManufacturers.Contains(mCurrentDeviceItem.Manufacturer)) { mSettings.UserDeviceManufacturers.Add(mCurrentDeviceItem.Manufacturer); } while (mSettings.UserDeviceManufacturers.Count > 5) { mSettings.UserDeviceManufacturers.RemoveAt(0); } mCurrentDeviceItem.SaveUserSettings(mSettings); mSettings.Last_DriverName = mCurrentDriverResource.DisplayName; mSettings.Save(); // Check (by hardware ID) if connected? driverless? DeviceEnumeratorInfo deCheck = new DeviceEnumeratorInfo(DEIFlags.DICFG_AllClasses | DEIFlags.IncludeWindowsServices, IntPtr.Zero); DeviceSelectionHelper.EnumerateDevices(deCheck); string currentHardwareID = mCurrentDeviceItem.BuildInfHardwareID(); foreach (DeviceItem deviceItem in deCheck.DeviceList) { if (currentHardwareID != deviceItem.BuildInfHardwareID()) { continue; } mFoundLikeDevices.Add(deviceItem); } Invoke(new GenericStateDelegate(writeSetupPackageCompletedFn), new object[] { null }); }