EnumDisplayDevice添加什么头文件

EnumDisplayDevice添加什么头文件,第1张

#include <乎明核岁掘windows.h>

#include <stdio.h>

参考槐野文献:http://support.microsoft.com/kb/197671/zh-tw

如果是系统的标准设备,可以在devguid.h文件中找到所对应的guid值,但如果是其它安装的驱动则可以查看其磨者classguid值(系统设备也可以),如:

USB的guid值可以在注册表路径:

HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/Class/

里面找到值{36fc9e60-c465-11cf-8056-444553540000}

其对应的classguid值为:

{0x36fc9e60L, 0xc465, 0x11cf, 0x80, 0x56, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00}

对比下就可以用这两个字符串相互转换了。

devguid.h中设备类型guid的定义:

GUID_DEVCLASS_FDC 软盘控制器

GUID_DEVCLASS_DISPLAY 显示卡友腔

GUID_DEVCLASS_CDROM 光驱

GUID_DEVCLASS_KEYBOARD 键盘

GUID_DEVCLASS_COMPUTER 计算机

GUID_DEVCLASS_SYSTEM 系统

GUID_DEVCLASS_DISKDRIVE 磁盘驱动器

GUID_DEVCLASS_MEDIA 声音、视频和游戏控制器

GUID_DEVCLASS_MODEM MODEM

GUID_DEVCLASS_MOUSE 鼠标和其他指针设备

GUID_DEVCLASS_NET 网络好游衫设备器

GUID_DEVCLASS_USB 通用串行总线控制器

GUID_DEVCLASS_FLOPPYDISK 软盘驱动器

GUID_DEVCLASS_UNKNOWN 未知设备

GUID_DEVCLASS_SCSIADAPTER SCSI 和 RAID 控制器

GUID_DEVCLASS_HDC IDE ATA/ATAPI 控制器

GUID_DEVCLASS_PORTS 端口(COM 和 LPT)

GUID_DEVCLASS_MONITOR 监视器

对设备管理器的查询

GUID ClassGuid = {0x96e73b6eL, 0x7a5a, 0x11d4, 0x9f, 0x24, 0x00, 0x80, 0xc8, 0x27, 0x27, 0xf4}

HDEVINFO hDevInfo

SP_DEVINFO_DATA DeviceInfoData

DWORD i

CString temp

CString str

hDevInfo = SetupDiGetClassDevs((LPGUID) &ClassGuid, 0, 0,DIGCF_PRESENT)

if (hDevInfo == INVALID_HANDLE_VALUE)

{

// Insert error handling here.

return

}

// Enumerate through all devices in Set.

DeviceInfoData.cbSize = sizeof(SP_DEVINFO_DATA)

for (i = 0SetupDiEnumDeviceInfo(hDevInfo, i, &DeviceInfoData)i++)

{

DWORD DataT

char buffer[2048]

DWORD buffersize =sizeof(buffer)

while (!SetupDiGetDeviceRegistryProperty(

hDevInfo,

&DeviceInfoData,

SPDRP_DEVICEDESC,

&DataT,

(PBYTE)buffer,

buffersize,

&buffersize))

{

if (GetLastError() == ERROR_INSUFFICIENT_BUFFER)

{

// Change the buffer size.

//if (buffer) LocalFree(buffer)

//buffer = (PSP_INF_INFORMATION)LocalAlloc(LPTR,buffersize)

}

else

{

// Insert error handling here.

break

}

}

if (buffer != NULL &&i == 0)

{

temp.Format("<光盘驱动器>")

str += temp

}

temp.Format("<VALUE>%s</VALUE>",buffer)

str += temp

if (buffer) LocalFree(buffer)

}

if (i != 0)

{

temp.Format("</光盘驱动器>")

str += temp

}

if ( GetLastError()!=NO_ERROR &&

GetLastError()!=ERROR_NO_MORE_ITEMS )

{

return

}

// Cleanup

SetupDiDestroyDeviceInfoList(hDevInfo)

10047 -- 使用了与请求的亩闹拦协议不兼容的地址。

WSASocket(AF_IRDA,SOCK_STREAM,IPPROTO_TCP,NULL,0,WSA_FLAG_OVERLAPPED)参迅胡数不匹配弯袭。

使用: WSASocket(AF_IRDA, SOCK_STREAM, 0, NULL, 0,

WSA_FLAG_OVERLAPPED)


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/tougao/12139848.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存