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

📄 deviceinterface.h

📁 设备管理程序
💻 H
字号:
#pragma once

extern const GUID GUID_DEVICE_CLASS[];
class CDeviceInterfaceClass
{
public:
	SP_DEVINFO_DATA   DeviceInfoData;     // 设备信息包括实例句柄 和设备类的GUID
	HDEVINFO          hDevInfo;           // 设备句柄
	DWORD             DevID;              // 在此次全局的枚举中设备ID
	char              lpszDevName[1024];  // 设备名称
	char              lpszDevClass[1024]; // 设备类型  

	CDeviceInterfaceClass();
	~CDeviceInterfaceClass();
};


class CDeviceInterface
{
public:
	CDeviceInterface( GUID pClassGuid, DWORD Index, BOOL IsDisab = TRUE );
	~CDeviceInterface(void);

	BOOL      Initial(void);
	CHAR    * DevicePath(void);                           // 取设备的路径
	GUID    * GetGuid(void) { return &m_Guid; };           // 获取该设备的 GUID
	int       GetStatus(void);                            // 查询状态

	static BOOL IsDisabled( DWORD, HDEVINFO  );            // 该设备是否已被禁用
	BOOL        IsDisabled(void);            // 该设备是否已被禁用
	static BOOL IsDisableable( DWORD, HDEVINFO );         // 该设备是否可以被禁用
	BOOL        IsDisableable(void);         // 该设备是否可以被禁用
	static BOOL EnableDevice( DWORD, HDEVINFO );  // 启用这个设备
	BOOL        EnableDevice(void);  // 启用这个设备
	static BOOL DisableDevice( DWORD, HDEVINFO ); // 禁用这个设备
	BOOL      DisableDevice(void); // 禁用这个设备
private:
	static BOOL StateChange( DWORD, HDEVINFO, BOOL ); // 改变这个设备的状态
	HANDLE      OpenInterface( PCHAR FilePath );                            // 打开该设备接口
	BOOL        GetRegistryProperty( HDEVINFO, SP_DEVINFO_DATA &, ULONG, PCHAR );  // 获取设备注册表信息
	BOOL        ConstructDeviceName( HDEVINFO, SP_DEVINFO_DATA &,  PCHAR );        // 构造设备名称

public:
	CDeviceInterfaceClass     m_device_info;    // 设备
	BOOL                      m_IsDisab;  // 是否禁用 TRUE:启用,FALSE:禁用
private:
	GUID                              m_Guid;
	SP_DEVICE_INTERFACE_DATA          m_Data;
	PSP_INTERFACE_DEVICE_DETAIL_DATA  m_Detail;
private:
};

⌨️ 快捷键说明

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