#include "stdafx.h"
#include "..//Include//Variant.h"
#include "..//Include//Debug.h"
namespace kaBasicClasses {
std::string getSymbolicVT( VARTYPE vt )
{
if( vt & VT_ARRAY )
return std::string("VT_ARRAY | ") + getSymbolicVT(vt - VT_ARRAY);
switch( vt )
{
case VT_UI1: return "VT_UI1";
case VT_I2: return "VT_I2";
case VT_I4: return "VT_I4";
case VT_R4: return "VT_R4";
case VT_R8: return "VT_R8";
case VT_BOOL: return "VT_BOOL";
case VT_ERROR: return "VT_ERROR";
case VT_CY: return "VT_CY";
case VT_DATE: return "VT_DATE";
case VT_BSTR: return "VT_BSTR";
case VT_UNKNOWN: return "VT_UNKNOWN";
case VT_DISPATCH: return "VT_DISPATCH";
case VT_VARIANT: return "VT_VARIANT";
case VT_BYREF | VT_UI1: return "VT_BYREF | VT_UI1";
case VT_BYREF | VT_I2: return "VT_BYREF | VT_I2";
case VT_BYREF | VT_I4: return "VT_BYREF | VT_I4";
case VT_BYREF | VT_R4: return "VT_BYREF | VT_R4";
case VT_BYREF | VT_R8: return "VT_BYREF | VT_R8";
case VT_BYREF | VT_BOOL: return "VT_BYREF | VT_BOOL";
case VT_BYREF | VT_ERROR: return "VT_BYREF | VT_ERROR";
case VT_BYREF | VT_CY: return "VT_BYREF | VT_CY";
case VT_BYREF | VT_DATE: return "VT_BYREF | VT_DATE";
case VT_BYREF | VT_BSTR: return "VT_BYREF | VT_BSTR";
case VT_BYREF | VT_UNKNOWN: return "VT_BYREF | VT_UNKNOWN";
case VT_BYREF | VT_DISPATCH: return "VT_BYREF | VT_DISPATCH";
case VT_BYREF | VT_VARIANT: return "VT_BYREF | VT_VARIANT";
}
throw std::exception( "unexpected case in getSymbolicVT" );
}
Variant::operator double()
{
switch( vt )
{
case VT_UI1: return (double )bVal;
case VT_I2: return (double )iVal;
case VT_I4: return (double )lVal;
case VT_R4: return (double )fltVal;
case VT_R8: return dblVal;
case VT_BOOL: return (double )boolVal;
}
throw std::exception( "unexpected case in Variant::operator double()" );
}
}; //kaBasicClasses