阅读:998回复:0
版主,请帮忙看一下我的程序,代码如下:请看看我这段代码,这段代码是用VC检测我的PALM机,GUID是我的PLAM机CLASSGUID(我从注册表中找到的),但程序运行不能通过,检测不到我的PALM机,请大家帮我分析原因,代码如下: HDEVINFO INFO; SP_INTERFACE_DEVICE_DATA INFODATA; PSP_DEVICE_INTERFACE_DATA PINFODATA; PSP_INTERFACE_DEVICE_DETAIL_DATA PINFODATADETAIL; DWORD NeedLength=512; HINSTANCE hInst=AfxGetApp()->m_hInstance; GUID pGuid={0x4D36E978,0xE325,0x11CE,{0xBF,0xC1,0x08,0x00,0x2B,0xE1,0x03,0x18}}; INFO=SetupDiGetClassDevs(&pGuid,NULL,NULL,DIGCF_PRESENT|DIGCF_INTERFACEDEVICE); if(INFO==INVALID_HANDLE_VALUE) { plist->AddString(\"NO HDEVINFO available for this GUID\\n\"); return; } INFODATA.cbSize=sizeof(INFODATA); if(!SetupDiEnumDeviceInterfaces(INFO,NULL,&pGuid,0,&INFODATA)) { plist->AddString(\"NO SP_INTERFACE_DEVICE_DATA available for this GUID instance\\n\"); SetupDiDestroyDeviceInfoList(INFO); return; } plist->AddString(\"Success\"); SetupDiGetDeviceInterfaceDetail(INFO,&INFODATA,NULL,0,&NeedLength,NULL); PINFODATADETAIL=(PSP_INTERFACE_DEVICE_DETAIL_DATA)malloc(NeedLength); if(PINFODATADETAIL==NULL) { plist->AddString(\"NO PSP_INTERFACE_DEVICE_DETAIL_DATA\\n\"); SetupDiDestroyDeviceInfoList(INFO); return; } INFODATA.cbSize=sizeof(SP_INTERFACE_DEVICE_DETAIL_DATA); if(!SetupDiGetDeviceInterfaceDetail(INFO,&INFODATA,PINFODATADETAIL,NeedLength,NULL,NULL)) { plist->AddString(\"Fail\");//程序运行到这里失败 SetupDiDestroyDeviceInfoList(INFO); return; } plist->AddString(PINFODATADETAIL->DevicePath); |
|