📄 setupapi.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 + -