描述:
VARIANT vResult;
::VariantInit(&vResult);
vResult.vt = VT_UI1 | VT_ARRAY;
SAFEARRAY* psa;
SAFEARRAYBOUND bound[1];
bound[0].lLbound = 0;
bound[0].cElements = nDataLen;//nDataLen为已知的字节流长的
psa = ::SafeArrayCreate(VT_UI1, 1, bound);
vResult.parray = psa;
_variant_t vart;
//把页面数据存放到VARIANT类型变量里面
vart = pWebASP->GetResponse()->GetBody()->ReadBytes(nDataLen);
//vart.ChangeType(VT_UI1 | VT_ARRAY);
vResult = (VARIANT)vart;
BYTE FAR * pvData = NULL;
SafeArrayAccessData(psa,(void HUGEP* FAR*)&pvData);
BYTE * pMyData = new BYTE[nDataLen + 1];
memcpy(pMyData, pvData, nDataLen);
//operate pMyData
// ......
delete[] pMyData;
SafeArrayDestroy(psa);
为什么上面的代码不能正确取到字节流,pMyData中全部为NULL;