public override object EditValue(ITypeDescriptorContext context, System.IServiceProvider provider, object value)
{
if (context != null && context.Instance != null && provider != null)
{
edSvc = (IWindowsFormsEditorService)provider.GetService(typeof(IWindowsFormsEditorService));
if (edSvc != null)
{
string currentDevice = (string)value;
System.Windows.Forms.ListBox vListBox = new ListBox();
vListBox.BorderStyle = BorderStyle.None;
vListBox.Click += new EventHandler(List_Click);
vListBox.Items.Add("");
//DsDevice[] tunDevices = DsDevice.GetDevicesOfCat(FilterCategory.KSDataDecompressor);
DsDevice[] tunDevices = DeviceEnumerator.GetDevicesWithThisInPin(MediaType.Audio, MediaSubType.Mpeg2Audio);
foreach (DirectShowLib.DsDevice d in tunDevices)
if (d.Name != null)
vListBox.Items.Add(d.Name);
vListBox.SelectedItem = currentDevice;
edSvc.DropDownControl(vListBox);
return vListBox.SelectedItem;
}
}
return null;
}