OnDeviceChange问题
我在一个dll中做了一个USB设备拔插侦查程序,现在可以收到消息并执行以下程序
LRESULT OnDeviceChange(WPARAM nEventType, LPARAM dwData)//设备状态改变时的处理函数
{
PDEV_BROADCAST_HDR pHdr = (PDEV_BROADCAST_HDR)dwData;
PDEV_BROADCAST_DEVICEINTERFACE pDevInf;
int nLenDevId;
int idx;
CString szDevId;
CString szClass;
CString szLog;
CString id,id2,id3,id4;
CString Name;
if(!(DBT_DEVICEARRIVAL == nEventType || DBT_DEVICEREMOVECOMPLETE == nEventType))
return S_FALSE;
switch( pHdr->dbch_devicetype)
{
case DBT_DEVTYP_DEVICEINTERFACE:
pDevInf = (PDEV_BROADCAST_DEVICEINTERFACE)pHdr;
/// ASSERT(lstrlen(pDevInf->dbcc_name) > 4);
szDevId = pDevInf->dbcc_name+4;
问题是现在得到guid等正常,但得到的pDevInf->dbcc_name只是一个"\". 我用同样的软件代码在其他基于对话框项目中能正常得到USB设备的名称. 请问是怎么回事情?