【VC开源代码栏目提醒】:网学会员VC开源代码为您提供AidSub.cpp参考,解决您在AidSub.cpp学习中工作中的难题,参考学习。
//**************************************************************************
//
// VariantToString() convert the value to String format
//
//**************************************************************************
#include "stdafx.h"
#include "OpcClientSpy.h"
void VariantToString(VARIANT value, CString& strText)
{
strText.Empty();
switch(value.vt)
{
case VT_BOOL:
strText = value.boolVal ? _T("On") : _T("Off");
break;
case VT_UI1:
strText.Format( _T("%hd"), (USHORT)value.bVal );
break;
case VT_UI2:
case VT_I2:
strText.Format( _T("%hd"), value.iVal );
break;
case VT_I4:
strText.Format( _T("%d"), value.lVal );
break;
case VT_R4:
strText.Format( _T("%g"), value.fltVal );
break;
case VT_R8:
strText.Format( _T("%g"), value.dblVal );
break;
case VT_BSTR:
strText = value.bstrVal;
break;
default: // Arrays of simple types
{
if( (value.vt & VT_ARRAY)==VT_ARRAY )
{
CString temp;
SAFEARRAY* pArray = value.parray;
LONG lBound = 0, uBound = 0;
SafeArrayGetLBound( pArray, 1, &lBound );
SafeArrayGetUBound( pArray, 1, &uBound );
for( long element=lBound; element<=uBound; element++ )
{
if( strText.IsEmpty() )
strText.Format( _T("(%d) "), uBound-lBound+1);
else
strText += _T(", ");
switch( value.vt & ~VT_ARRAY )
{
case VT_BOOL:
{
VARIANT_BOOL b=0;
SafeArrayGetElement(pArray, &element, &b);
temp = b ? _T("1") : _T("0");
}
break;
case VT_UI1:
{
BYTE b=0;
SafeArrayGetElement(pArray, &element, &b);
temp.Format( _T("%hd"), b );
}
break;
case VT_UI2:
case VT_I2:
{
short b=0;
SafeArrayGetElement(pArray, &element, &b);
temp.Format( _T("%hd"), b );
}
break;
case VT_I4:
{
long b=0;
SafeArrayGetElement(pArray, &element, &b);
temp.Format( _T("%d"), b );
}
break;
case VT_R4:
{
float d=0;
SafeArrayGetElement(pArray, &element, &d);
temp.Format( _T("%g"), d );
}
break;
case VT_R8:
{
double d=0;
SafeArrayGetElement(pArray, &element, &d);
temp.Format( _T("%g"), d );
}
break;
case VT_BSTR:
{
BSTR b;
SafeArrayGetElement(pArray, &element, &b);
temp = b;
}
break;
}
strText += temp;
}
}
else
strText = _T("?");
}
}
}
上一篇:
AI.CPP
下一篇:
js循环滚动切换首页焦点图幻灯代码