#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


Hosted by www.Geocities.ws

1