VARIANT类型的数据要如何操作

VARIANT类型的数据要怎么操作?
STDMETHODIMP CDsoFramerControl:: office(VARIANT user,VARIANT passwd,VARIANT ftpip, VARIANT ftpport,long operate,VARIANT rpath,
VARIANT wpath,VARIANT filename,VARIANT info,VARIANT flag,BSTR* strValue)
{
CString ftp1=ftpip.bstrVal;
CString ftp2=ftpport.bstrVal;
  CString ftp3=rpath.bstrVal;
CString ftp4=wpath.bstrVal;
CString ftp5=filename.bstrVal;
   
CString rfileadr="";
if(ftp1!="")
{
rfileadr=ftp1+":"+ftp2+"//"+ftp3+ftp5;
}
else
{
  rfileadr=ftp3+ftp5;
}
CString wfileadr=ftp1+":"+ftp2+"//"+ftp4+ftp5;

if(operate==1)
{
  Open(COleVariant(rfileadr),flag,flag,user,passwd);
VARIANT_BOOL pbool = TRUE;
SetMenuDisplay(4,&pbool);
}
if(operate==2)
{
// Open(COleVariant(rfileadr1),flag,flag,user,passwd);
  Save(COleVariant(wfileadr),flag,user,passwd);
}
if(operate==3)
{
Open(COleVariant(wfileadr),flag,flag,user,passwd);
}
if(operate==4)
{
  Close();
}
return S_OK;
}
我的ACTIVEX空间里面的接口是这么写的,但是在函数内部我不能给VARIANT filename赋值0,比如我在外面给调用这个接口的时候给filename赋值0,在内部即使用COleVariant(0)或者COleVariant("0")都是无效的。

------解决方案--------------------
你是想赋值整型0还是字符串“0”

VariantInit(&filename); //filename被初始化为VT_EMPTY

字符串类型
filename.vt = VT_BSTR;
filename.bstrVal = _bstr_t("0");

整型0
filename.vt = VT_I4;
filename.lVal = (long)0;