#include <setupapi.h>
...
LPTSTR lpszDeviceName;
HDEVINFO info = SetupDiCreateDeviceInfoList(NULL, NULL);
SP_DEVICE_INTERFACE_DATA ifdata = {sizeof(SP_DEVICE_INTERFACE_DATA)};
SetupDiOpenDeviceInterface(info, lpszDeviceName, 0, &
ifdata);
SP_DEVINFO_DATA did = {sizeof(SP_DEVINFO_DATA)};
SetupDiGetDeviceInterfaceDetail(info, &
ifdata, NULL, 0, NULL, &did);
TCHAR buffer[256];
SetupDiGetDeviceRegistryProperty(info,
&did,
SPDRP_MFG,
NULL,
(PBYTE) mfgname,
sizeof(mfgname),
NULL);
SetupDiDestroyDeviceInfoList(info);
这里有一段书上的代码, 功能是获得设备的制造商名称.
书上说的设备路径lpszDeviceName是一个象“USB/Vid_0547&Pid_102A/7&2”一样的串。
我从注册表中在HKLM 下...的ENUM键中随意挑一个,并用书上所写的格式去调用时总是
出错. 错误说PATH IS INVALID. 不知这个PATH应该如何获得以及用和种格式来写.
试过用SetupDiEnumDeviceInterfaces去获得PATH 但没成功.
请各位高手指教, 最好能给个完整的例子.