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;
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;