home *** CD-ROM | disk | FTP | other *** search
/ Chip 2004 February / Chip_2004-02_cd1.bin / zkuste / konfig / download / msic / Help / Int / MSI_Devices.int < prev    next >
Text File  |  2003-08-26  |  3KB  |  100 lines

  1. {*******************************************************}
  2. {                                                       }
  3. {       MiTeC System Information Component              }
  4. {               Device Detection Part                   }
  5. {           version 8.3.1 for Delphi 5,6,7                }
  6. {                                                       }
  7. {       Copyright ⌐ 1997,2003 Michal Mutl               }
  8. {                                                       }
  9. {*******************************************************}
  10.  
  11. {$INCLUDE MITEC_DEF.INC}
  12.  
  13. unit MSI_Devices;
  14.  
  15. interface
  16.  
  17. uses
  18.   SysUtils, Windows, Classes, MiTeC_NTDDK;
  19.  
  20. type
  21.   TDeviceClass = (dcBattery, dcComputer, dcDiskDrive, dcDisplay, dcCDROM, dcfdc,
  22.                   dcFloppyDisk, dcGPS, dcHIDClass, dchdc, dc1394, dcImage, dcInfrared,
  23.                   dcKeyboard, dcMediumChanger, dcMTD, dcMouse, dcModem, dcMonitor,
  24.                   dcMultiFunction, dcPortSerial, dcNet, dcLegacyDriver,
  25.                   dcNtApm, dcUnknown, dcPCMCIA, dcPorts, dcPrinter, dcSCSIAdapter,
  26.                   dcSmartCardReader, dcMEDIA, dcVolume, dcSystem, dcTapeDrive,
  27.                   dcTapeController, dcTape, dcUSB, dcProcessor);
  28.  
  29.   PDevice = ^TDevice;
  30.  
  31.   TDevice = record
  32.     Name,
  33.     ClassName,
  34.     ClassDesc,
  35.     ClassIcon,
  36.     FriendlyName,
  37.     Description,
  38.     GUID,
  39.     Manufacturer,
  40.     Location: String;
  41.     PCINumber,
  42.     DeviceNumber,
  43.     FunctionNumber: Integer;
  44.     HardwareID,
  45.     DeviceParam,
  46.     Driver,
  47.     DriverDate,
  48.     DriverVersion,
  49.     DriverProvider,
  50.     InfPath,
  51.     Service,
  52.     ServiceName,
  53.     ServiceGroup: string;
  54.     ServiceType: integer;
  55.     RegKey: string;
  56.     ResourceListKey,
  57.     ResourceListValue: string;
  58.     DeviceClass :TDeviceClass;
  59.   end;
  60.  
  61.   TDeviceList = TStringList;
  62.  
  63.   TResourceItem = record
  64.     Resource: shortstring;
  65.     Share: CM_SHARE_DISPOSITION;
  66.     Device: shortstring;
  67.     DeviceClass :TDeviceClass;
  68.   end;
  69.  
  70.   TResourceList = array of TResourceItem;
  71.  
  72.   TDevices = class(TPersistent)
  73.   private
  74.     FCount: integer;
  75.     FDeviceList: TDeviceList;
  76.     function GetDevice(Index: integer): TDevice;
  77.     function GetDeviceCount: integer;
  78.     procedure ScanDevices(var ADeviceList: TDeviceList);
  79.     function GetDeviceClass(AClassName: string): TDeviceClass;
  80.     procedure GetLocation(ASource: string; var PCI,Device,Func: Integer);
  81.  
  82.     procedure ClearList;
  83.   public
  84.     constructor Create;
  85.     destructor Destroy; override;
  86.     procedure GetInfo;
  87.     procedure GetDeviceResources(Adevice: TDevice; var DR: TDeviceResources);
  88.     procedure GetResourceList(var RL: TResourceList);
  89.     procedure Report(var sl :TStringList; Standalone: Boolean = True); virtual;
  90.     procedure GetDevicesByClass(ADeviceClass: TDeviceClass; var ADevices: TStrings);
  91.     property Devices[Index: integer]: TDevice read GetDevice;
  92.   published
  93.     property DeviceCount: integer read FCount {$IFNDEF D6PLUS} write FCount {$ENDIF} stored False;
  94.   end;
  95.  
  96.  
  97.  
  98. implementation
  99.  
  100.