COleSafeArray sa(ret);
long lNumRows;
long lNumCols;
sa.GetUBound(1, &lNumRows);
sa.GetUBound(2, &lNumCols);
long index[2];
VARIANT val;
int r, c;
CString cstr;
for(r=1;r<=lNumRows;r++)
{
for(c=1;c<=lNumCols;c++)
{
index[0]=r;
index[1]=c;
sa.GetElement(index, &val);
switch(val.vt)
{
case VT_R8: //数字
{
//TRACE("\t\t%1.2f", val.dblVal);
CString cstr2=_T("");
cstr2.Format(_T("%1.1f"),val.dblVal);
cstr+=cstr2+_T("\n");
break;
}
case VT_BSTR: //文字
{
//TRACE("\t\t%s",(CString)val.bstrVal);
cstr+=(CString)val.bstrVal+_T("\n");
break;
}
case VT_EMPTY:
break;
}
}
}
AfxMessageBox(cstr);