⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 setupapi.pas

📁 通过Delphi编程
💻 PAS
字号:
unit SetupAPI;

interface

uses
  Windows;

const
  DIGCF_DEFAULT           = $00000001;
  DIGCF_PRESENT           = $00000002;
  DIGCF_ALLCLASSES        = $00000004;
  DIGCF_PROFILE           = $00000008;
  DIGCF_DEVICEINTERFACE   = $00000010;

  SPDRP_DEVICEDESC        = $00000000;
  SPDRP_FRIENDLYNAME      = $0000000C;

  LINE_LEN                = 256;

  SPDIT_NODRIVER          = $00000000;
  SPDIT_CLASSDRIVER       = $00000001;
  SPDIT_COMPATDRIVER      = $00000002;

type
  PSP_DEVINFO_DATA = ^SP_DEVINFO_DATA;
  SP_DEVINFO_DATA = record
    cbSize: DWORD;
    ClassGuid: TGUID;
    DevInst: DWORD;
    Reserved: LongInt;
  end;

  PSP_CLASSIMAGELIST_DATA = ^SP_CLASSIMAGELIST_DATA;
  SP_CLASSIMAGELIST_DATA = record
    cbSize: DWORD;
    ImageList: HWND;
    Reserved: LongInt;
  end;

  PSP_DRVINFO_DATA = ^SP_DRVINFO_DATA;
  SP_DRVINFO_DATA = record
    cbSize: DWORD;
    DriverType: DWORD;
    Reserved: ULONG;
    Description: array [0..LINE_LEN] of Char;
    MfgName: array [0..LINE_LEN] of Char;
    ProviderName: array [0..LINE_LEN] of Char;
    DriverDate: TFileTime;
    DriverVersion: DWORD;
  end;

function SetupDiGetClassDevs(const ClassGuid: PGUID; Enumerator: PChar;
  hwndParent: HWND; Flags: DWORD): Cardinal; stdcall;
  external 'Setupapi.dll' name 'SetupDiGetClassDevsA';
  
function SetupDiEnumDeviceInfo(DeviceInfoSet: Cardinal; MemberIndex: DWORD;
  DeviceInfoData: PSP_DEVINFO_DATA): BOOL; stdcall;
  external 'Setupapi.dll' name 'SetupDiEnumDeviceInfo';

function SetupDiGetDeviceRegistryProperty(DeviceInfoSet: Cardinal;
  DeviceInfoData: PSP_DEVINFO_DATA; Propertys: DWORD;
  PropertyRegDataType: PWORD; PropertyBuffer: PByte;
  PropertyBufferSize: DWORD; RequiredSize: PDWORD): BOOL; stdcall;
  external 'Setupapi.dll' name 'SetupDiGetDeviceRegistryPropertyA';

function SetupDiDestroyDeviceInfoList(DeviceInfoSet: Cardinal): BOOL; stdcall;
  external 'Setupapi.dll' name 'SetupDiDestroyDeviceInfoList';

function SetupDiClassNameFromGuid(ClassGuid: PGUID; ClassName: PChar;
  ClassNameSize: DWORD; RequiredSize: PDWORD): BOOL; stdcall;
  external 'Setupapi.dll' name 'SetupDiClassNameFromGuidA';

function SetupDiGetClassImageList(ClassImageListData: PSP_CLASSIMAGELIST_DATA):
  BOOL; stdcall; external 'Setupapi.dll' name 'SetupDiGetClassImageList';

function SetupDiDestroyClassImageList(ClassImageListData: PSP_CLASSIMAGELIST_DATA):
  BOOL; stdcall; external 'Setupapi.dll' name 'SetupDiDestroyClassImageList';

function SetupDiGetClassImageIndex(ClassImageListData: PSP_CLASSIMAGELIST_DATA;
  ClassGuid: PGUID; ImageIndex: PINT): BOOL; stdcall;
  external 'Setupapi.dll' name 'SetupDiGetClassImageIndex';

function SetupDiEnumDriverInfo(DeviceInfoSet: Cardinal;
  DeviceInfoData: PSP_DEVINFO_DATA; DriverType: DWORD;MemberIndex: DWORD;
  DriverInfoData: SP_DRVINFO_DATA): BOOL; stdcall;
  external 'Setupapi.dll' name 'SetupDiEnumDriverInfoA';

function SetupDiGetSelectedDriver(DeviceInfoSet: Cardinal;
  DeviceInfoData: PSP_DEVINFO_DATA; DriverInfoData: PSP_DRVINFO_DATA): BOOL; stdcall;
  external 'Setupapi.dll' name 'SetupDiGetSelectedDriverA';

implementation

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -