VARIANT ExampleIAttrPtr pDisp;
VARIANT var_long_In, var_long_Out;
VariantInit(&var_long_In);
//long type VARIANT
var_long_In.vt = VT_I4;
var_long_In.lVal = 10000;
bool result = false;
try{
pDisp->Value = var_long_In;
var_long_Out = pDisp->Value;
if(var_long_In.lVal == var_long_Out.lVal) {
result = true;
} else {
test = false;
}
DisplayResult();
}
catch(_com_error&)
{
DisplayResult();
test = false;
}
catch(...)
{
DisplayResult();
test = false;
}
::VariantClear(&var_long_In);
::VariantClear(&var_long_Out);
//double type VARIANT
VARIANT var_dbl_In, var_dbl_Out;
try
{
VariantInit(&var_dbl_In);
var_dbl_In.vt = VT_R8;
var_dbl_In.dblVal = 100.03;
bool result = false;
pDisp->Value = var_dbl_In;
var_dbl_Out = pDisp->Value;
if(var_dbl_In.dblVal == var_dbl_Out.dblVal) {
result = true;
} else {
test = false;
}
DisplayResult();
}
catch(_com_error&)
{
DisplayResult();
test = false;
}
catch(...)
{
DisplayResult();
test = false;
}
::VariantClear(&var_dbl_In);
::VariantClear(&var_dbl_Out);
//BSTR type VARIANT
VARIANT var_str_In, var_str_Out;
try
{
var_str_In.vt = VT_BSTR;
var_str_In.bstrVal = SysAllocString(L"10000");
bool result = false;
pDisp->Value = var_str_In;
var_str_Out = pDisp->Value;
if(var_str_In.bstrVal == var_str_Out.bstrVal) {
result = true;
} else {
test = false;
}
DisplayResult();
}
catch(_com_error&)
{
DisplayResult();
test = false;
}
catch(...)
{
DisplayResult();
test = false;
}
::VariantClear(&var_str_In);
::VariantClear(&var_str_Out);
|