📄 vbhardwarecontroller.cls
字号:
VERSION 1.0 CLASS
BEGIN
MultiUse = -1 'True
Persistable = 0 'NotPersistable
DataBindingBehavior = 0 'vbNone
DataSourceBehavior = 0 'vbNone
MTSTransactionMode = 0 'NotAnMTSObject
END
Attribute VB_Name = "CVBHardwareController"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = True
Attribute VB_PredeclaredId = False
Attribute VB_Exposed = False
'/**************************************************************************
' 版权所有 (c), 2000 - 2010, 超级绿豆
'
' ************************ 模 块 名 :CVBHardwareController********************
'版 本 号: V1.0
'作 者: 超级绿豆
'生成日期: 2004年06月04日
'最近修改:
'功能描述:
'函数列表:
'修改历史:
'日 期: 2004年06月04日
'修改人员: 超级绿豆
'修改内容: 生成
'******************************************************************************/
'
Option Explicit
'本模块名称
Private Const THIS_MODULE_NAME As String = "CVBHardwareController"
Private Type GUID
Data1 As Long
Data2 As Integer
Data3 As Integer
Data4(7) As Byte
End Type
'WINSETUPAPI
'HDEVINFO
'WINAPI
'SetupDiGetClassDevsA(
' IN LPGUID ClassGuid, OPTIONAL
' IN PCSTR Enumerator, OPTIONAL
' IN HWND hwndParent, OPTIONAL
' IN DWORD Flags
' );
Private Declare Function SetupDiGetClassDevs Lib "setupapi" Alias "SetupDiGetClassDevsA" (ByVal ClassGuid As Long, ByVal Enumerator As Long, ByVal hWndParent As Long, ByVal Flags As Long) As Long
Private Const DIGCF_DEFAULT As Long = &H1 '// only valid with DIGCF_DEVICEINTERFACE
Private Const DIGCF_PRESENT As Long = &H2
Private Const DIGCF_ALLCLASSES As Long = &H4
Private Const DIGCF_PROFILE As Long = &H8
Private Const DIGCF_DEVICEINTERFACE As Long = &H10
'WINSETUPAPI
'BOOL
'WINAPI
'SetupDiDestroyDeviceInfoList(
' IN HDEVINFO DeviceInfoSet
' );
Private Declare Function SetupDiDestroyDeviceInfoList Lib "setupapi" (ByVal DeviceInfoSet As Long) As Long
'WINSETUPAPI
'BOOL
'WINAPI
'SetupDiEnumDeviceInfo(
' IN HDEVINFO DeviceInfoSet,
' IN DWORD MemberIndex,
' OUT PSP_DEVINFO_DATA DeviceInfoData
' );
Private Declare Function SetupDiEnumDeviceInfo Lib "setupapi" (ByVal DeviceInfoSet As Long, ByVal MemberIndex As Long, DeviceInfoData As SP_DEVINFO_DATA) As Long
'typedef struct _SP_DEVINFO_DATA {
' DWORD cbSize;
' GUID ClassGuid;
' DWORD DevInst; // DEVINST handle
' DWORD Reserved;
'} SP_DEVINFO_DATA, *PSP_DEVINFO_DATA;
Private Type SP_DEVINFO_DATA
cbSize As Long
ClassGuid As GUID
DevInst As Long
Reserved As Long
End Type
'WINSETUPAPI
'BOOL
'WINAPI
'SetupDiGetDeviceRegistryPropertyA(
' IN HDEVINFO DeviceInfoSet,
' IN PSP_DEVINFO_DATA DeviceInfoData,
' IN DWORD Property,
' OUT PDWORD PropertyRegDataType, OPTIONAL
' OUT PBYTE PropertyBuffer,
' IN DWORD PropertyBufferSize,
' OUT PDWORD RequiredSize OPTIONAL
' );
Private Declare Function SetupDiGetDeviceRegistryProperty Lib "setupapi" Alias "SetupDiGetDeviceRegistryPropertyA" (ByVal DeviceInfoSet As Long, DeviceInfoData As SP_DEVINFO_DATA, ByVal Property As Long, ByRef PropertyRegDataType As Long, ByVal PropertyBuffer As Long, ByVal PropertyBufferSize As Long, RequiredSize As Long) As Long
Private Const SPDRP_DEVICEDESC As Long = (&H0) '// DeviceDesc (R/W)
Private Const SPDRP_HARDWAREID As Long = (&H1) '// HardwareID (R/W)
Private Const SPDRP_COMPATIBLEIDS As Long = (&H2) '// CompatibleIDs (R/W)
Private Const SPDRP_UNUSED0 As Long = (&H3) '// unused
Private Const SPDRP_SERVICE As Long = (&H4) '// Service (R/W)
Private Const SPDRP_UNUSED1 As Long = (&H5) '// unused
Private Const SPDRP_UNUSED2 As Long = (&H6) '// unused
Private Const SPDRP_CLASS As Long = (&H7) '// Class (R--tied to ClassGUID)
Private Const SPDRP_CLASSGUID As Long = (&H8) '// ClassGUID (R/W)
Private Const SPDRP_DRIVER As Long = (&H9) '// Driver (R/W)
Private Const SPDRP_CONFIGFLAGS As Long = (&HA) '// ConfigFlags (R/W)
Private Const SPDRP_MFG As Long = (&HB) '// Mfg (R/W)
Private Const SPDRP_FRIENDLYNAME As Long = (&HC) '// FriendlyName (R/W)
Private Const SPDRP_LOCATION_INFORMATION As Long = (&HD) '// LocationInformation (R/W)
Private Const SPDRP_PHYSICAL_DEVICE_OBJECT_NAME As Long = (&HE) '// PhysicalDeviceObjectName (R)
Private Const SPDRP_CAPABILITIES As Long = (&HF) '// Capabilities (R)
Private Const SPDRP_UI_NUMBER As Long = (&H10) '// UiNumber (R)
Private Const SPDRP_UPPERFILTERS As Long = (&H11) '// UpperFilters (R/W)
Private Const SPDRP_LOWERFILTERS As Long = (&H12) '// LowerFilters (R/W)
Private Const SPDRP_BUSTYPEGUID As Long = (&H13) '// BusTypeGUID (R)
Private Const SPDRP_LEGACYBUSTYPE As Long = (&H14) '// LegacyBusType (R)
Private Const SPDRP_BUSNUMBER As Long = (&H15) '// BusNumber (R)
Private Const SPDRP_ENUMERATOR_NAME As Long = (&H16) '// Enumerator Name (R)
Private Const SPDRP_SECURITY As Long = (&H17) '// Security (R/W, binary form)
Private Const SPDRP_SECURITY_SDS As Long = (&H18) '// Security (W, SDS form)
Private Const SPDRP_DEVTYPE As Long = (&H19) '// Device Type (R/W)
Private Const SPDRP_EXCLUSIVE As Long = (&H1A) '// Device is exclusive-access (R/W)
Private Const SPDRP_CHARACTERISTICS As Long = (&H1B) '// Device Characteristics (R/W)
Private Const SPDRP_ADDRESS As Long = (&H1C) '// Device Address (R)
Private Const SPDRP_UI_NUMBER_DESC_FORMAT As Long = (&H1D) '// UiNumberDescFormat (R/W)
Private Const SPDRP_DEVICE_POWER_DATA As Long = (&H1E) '// Device Power Data (R)
Private Const SPDRP_REMOVAL_POLICY As Long = (&H1F) '// Removal Policy (R)
Private Const SPDRP_REMOVAL_POLICY_HW_DEFAULT As Long = (&H20) '// Hardware Removal Policy (R)
Private Const SPDRP_REMOVAL_POLICY_OVERRIDE As Long = (&H21) '// Removal Policy Override (RW)
Private Const SPDRP_INSTALL_STATE As Long = (&H22) '// Device Install State (R)
Private Const SPDRP_MAXIMUM_PROPERTY As Long = (&H23) '// Upper bound on ordinals
'WINSETUPAPI
'BOOL
'WINAPI
'SetupDiSetClassInstallParamsA(
' IN HDEVINFO DeviceInfoSet,
' IN PSP_DEVINFO_DATA DeviceInfoData, OPTIONAL
' IN PSP_CLASSINSTALL_HEADER ClassInstallParams, OPTIONAL
' IN DWORD ClassInstallParamsSize
' );
Private Declare Function SetupDiSetClassInstallParams Lib "setupapi" Alias "SetupDiSetClassInstallParamsA" (ByVal DeviceInfoSet As Long, DeviceInfoData As SP_DEVINFO_DATA, ClassInstallParams As SP_CLASSINSTALL_HEADER, ByVal ClassInstallParamsSize As Long) As Long
'WINSETUPAPI
'BOOL
'WINAPI
'SetupDiCallClassInstaller(
' IN DI_FUNCTION InstallFunction,
' IN HDEVINFO DeviceInfoSet,
' IN PSP_DEVINFO_DATA DeviceInfoData OPTIONAL
' );
Private Declare Function SetupDiCallClassInstaller Lib "setupapi" (ByVal InstallFunction As Long, ByVal DeviceInfoSet As Long, DeviceInfoData As SP_DEVINFO_DATA) As Long
'typedef struct _SP_CLASSINSTALL_HEADER {
' DWORD cbSize;
' DI_FUNCTION InstallFunction;
'} SP_CLASSINSTALL_HEADER, *PSP_CLASSINSTALL_HEADER;
Private Type SP_CLASSINSTALL_HEADER
cbSize As Long
InstallFunction As Long
End Type
Private Const DIF_SELECTDEVICE As Long = &H1
Private Const DIF_INSTALLDEVICE As Long = &H2
Private Const DIF_ASSIGNRESOURCES As Long = &H3
Private Const DIF_PROPERTIES As Long = &H4
Private Const DIF_REMOVE As Long = &H5
Private Const DIF_FIRSTTIMESETUP As Long = &H6
Private Const DIF_FOUNDDEVICE As Long = &H7
Private Const DIF_SELECTCLASSDRIVERS As Long = &H8
Private Const DIF_VALIDATECLASSDRIVERS As Long = &H9
Private Const DIF_INSTALLCLASSDRIVERS As Long = &HA
Private Const DIF_CALCDISKSPACE As Long = &HB
Private Const DIF_DESTROYPRIVATEDATA As Long = &HC
Private Const DIF_VALIDATEDRIVER As Long = &HD
Private Const DIF_MOVEDEVICE As Long = &HE
Private Const DIF_DETECT As Long = &HF
Private Const DIF_INSTALLWIZARD As Long = &H10
Private Const DIF_DESTROYWIZARDDATA As Long = &H11
Private Const DIF_PROPERTYCHANGE As Long = &H12
Private Const DIF_ENABLECLASS As Long = &H13
Private Const DIF_DETECTVERIFY As Long = &H14
Private Const DIF_INSTALLDEVICEFILES As Long = &H15
Private Const DIF_UNREMOVE As Long = &H16
Private Const DIF_SELECTBESTCOMPATDRV As Long = &H17
Private Const DIF_ALLOW_INSTALL As Long = &H18
Private Const DIF_REGISTERDEVICE As Long = &H19
Private Const DIF_NEWDEVICEWIZARD_PRESELECT As Long = &H1A
Private Const DIF_NEWDEVICEWIZARD_SELECT As Long = &H1B
Private Const DIF_NEWDEVICEWIZARD_PREANALYZE As Long = &H1C
Private Const DIF_NEWDEVICEWIZARD_POSTANALYZE As Long = &H1D
Private Const DIF_NEWDEVICEWIZARD_FINISHINSTALL As Long = &H1E
Private Const DIF_UNUSED1 As Long = &H1F
Private Const DIF_INSTALLINTERFACES As Long = &H20
Private Const DIF_DETECTCANCEL As Long = &H21
Private Const DIF_REGISTER_COINSTALLERS As Long = &H22
Private Const DIF_ADDPROPERTYPAGE_ADVANCED As Long = &H23
Private Const DIF_ADDPROPERTYPAGE_BASIC As Long = &H24
Private Const DIF_RESERVED1 As Long = &H25
Private Const DIF_TROUBLESHOOTER As Long = &H26
Private Const DIF_POWERMESSAGEWAKE As Long = &H27
Private Const DIF_ADDREMOTEPROPERTYPAGE_ADVANCED As Long = &H28
Private Const DIF_UPDATEDRIVER_UI As Long = &H29
Private Const DIF_RESERVED2 As Long = &H30
'typedef struct _SP_PROPCHANGE_PARAMS {
' SP_CLASSINSTALL_HEADER ClassInstallHeader;
' DWORD StateChange;
' DWORD Scope;
' DWORD HwProfile;
'} SP_PROPCHANGE_PARAMS, *PSP_PROPCHANGE_PARAMS;
Private Type SP_PROPCHANGE_PARAMS
ClassInstallHeader As SP_CLASSINSTALL_HEADER
StateChange As Long
Scope As Long
HwProfile As Long
End Type
'//
'// Values indicating a change in a device's state
'//
Private Const DICS_ENABLE As Long = &H1
Private Const DICS_DISABLE As Long = &H2
Private Const DICS_PROPCHANGE As Long = &H3
Private Const DICS_START As Long = &H4
Private Const DICS_STOP As Long = &H5
'//
'// Values specifying the scope of a device property change
'//
Private Const DICS_FLAG_GLOBAL As Long = &H1 '// make change in all hardware profiles
Private Const DICS_FLAG_CONFIGSPECIFIC As Long = &H2 '// make change in specified profile only
Private Const DICS_FLAG_CONFIGGENERAL As Long = &H4 '// 1 or more hardware profile-specific
'// changes to follow.
Private GUID_DEVCLASS_1394 As GUID
Private GUID_DEVCLASS_ADAPTER As GUID
Private GUID_DEVCLASS_CDROM As GUID
Private GUID_DEVCLASS_COMPUTER As GUID
Private GUID_DEVCLASS_DECODER As GUID
Private GUID_DEVCLASS_DISKDRIVE As GUID
Private GUID_DEVCLASS_DISPLAY As GUID
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -