对不起,cyf,回家耽误了这么长的时间。
我编了下面的函数,将var的数据传到byt里
COleVariant var=m_com.GetOutput();
CByteArray byt;
PassData(COleVariant& var,CByteArray& byt,int num)
{
var.ChangeType(VT_ARRAY  and  VT_UI1);
BYTE HUGEP *pbstr;
HRESULT hr;
// Get a pointer to the elements of the array.
hr = SafeArrayAccessData(var.parray, (void HUGEP* FAR*)&pbstr);
if (FAILED(hr))
return; long Sum=0;
// long Sum=(long)num;
hr = SafeArrayGetUBound(var.parray, 1, &Sum);  
if(FAILED(hr))
return;
for (int i = 0; i <= Sum; i++)
{
byt.Add(pbstr[i]); } SafeArrayUnaccessData(var.parray);
}
祝你成功!