小弟目前在做一个PDA移植到PC的项目
以下代码在VC++环境中报错,内容是:DEVICE_ID不能识别.
是不是要自己做个函数去替换GetDeviceID这个函数?????
请高人指点!!!!!!!!!!!!
BOOL  CPostAccountsData::GetDeviceID(GUID* pGuid)
{
BOOL fRes;
    DWORD dwBytesReturned =0;
DEVICE_ID* pDevID;
int wSize; if (NULL == pGuid)
return FALSE; memset(pGuid, 0, sizeof(GUID)); pDevID = (DEVICE_ID*)HeapAlloc(GetProcessHeap(), 0, sizeof(DEVICE_ID));
memset(pDevID, 0, sizeof(DEVICE_ID));
pDevID->dwSize = sizeof(DEVICE_ID);   fRes = KernelIoControl( IOCTL_HAL_GET_DEVICEID, NULL, 0,
            pDevID, sizeof( DEVICE_ID ), &dwBytesReturned ); wSize = pDevID->dwSize;
HeapFree(GetProcessHeap(), 0, pDevID);
if( (FALSE != fRes) || (ERROR_INSUFFICIENT_BUFFER != GetLastError()))
return FALSE; pDevID = (DEVICE_ID*)HeapAlloc(GetProcessHeap(), 0, wSize);
memset(pDevID, 0, wSize);
pDevID->dwSize = wSize;
    fRes = KernelIoControl( IOCTL_HAL_GET_DEVICEID, NULL, 0,
            pDevID, wSize, &dwBytesReturned ); if((FALSE == fRes) || (ERROR_INSUFFICIENT_BUFFER == GetLastError()) )
return FALSE; BYTE* pDat = (BYTE*)&pGuid->Data1;
BYTE* pSrc = (BYTE*)(pDevID) + pDevID->dwPresetIDOffset;
memcpy(pDat, pSrc, pDevID->dwPresetIDBytes);
pDat +=  pDevID->dwPresetIDBytes;
pSrc =  (BYTE*)(pDevID) + pDevID->dwPlatformIDOffset;
memcpy(pDat, pSrc, pDevID->dwPlatformIDBytes); HeapFree(GetProcessHeap(), 0, pDevID);
return TRUE;
}