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

📄 vbhardwarecontroller.cls

📁 vb编制的获取硬件信息的类
💻 CLS
📖 第 1 页 / 共 3 页
字号:
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 + -