• Main Page
  • Classes
  • Files
  • File List

UV4GUIClient/VariantC.h

00001 #pragma once
00002 #include "..\ViewIntf.h"
00003 #include "DefClassNames.h"
00004 
00005 #if 0
00006 
00007 typedef enum {
00008   TL_UNDEFINED,   // x
00009   TL_BOOL,        // b: format for parameter type
00010   TL_CHAR,        // c
00011   TL_UCHAR,       // C
00012   TL_SHORT,       // h
00013   TL_USHORT,      // H
00014   TL_INT,         // i
00015   TL_UINT,        // I
00016   TL_LONG,        // l
00017   TL_ULONG,       // L, == DWORD_PTR
00018   TL_LONGLONG,    // m
00019   TL_ULONGLONG,   // M
00020   TL_FLOAT,       // f
00021   TL_DOUBLE,      // d
00022   TL_LPCTSTR,     // s
00023 } TL_DATATYPE;
00024 
00025 typedef union vardata  {
00026     bool                    BoolVal;
00027     char                    CharVal;
00028     unsigned char          UcharVal;
00029     short                  ShortVal;
00030     unsigned short        UshortVal;
00031     int                      IntVal;
00032     unsigned int            UintVal;
00033     long                    LongVal;
00034     unsigned long          UlongVal;  // == DWORD_PTR
00035     long long           LongLongVal;
00036     unsigned long long ULongLongVal;
00037     float                  FloatVal;
00038     double                DoubleVal;
00039     LPCTSTR              LpctstrVal;
00040 } VARDATA;
00041 #endif
00042 
00044 class CVariantBase {
00045 public:
00046   CVariantBase();
00047   ~CVariantBase() {}
00048 
00049   VARDATA      m_Data;
00050   CString m_Str;
00051 
00052 public:
00053   TL_DATATYPE       vt;
00054   bool         m_IsHex;
00055 };
00056 
00057 
00072 class CVariant : public CVariantBase
00073 {
00074 public:
00075 
00076   /* constructors: */
00077   CVariant(void);
00078   CVariant(const CVariant &right);  // copy constructor
00079   CVariant(bool val);
00080   CVariant(char val);
00081   CVariant(unsigned char val);
00082   CVariant(short val);
00083   CVariant(unsigned short val);
00084   CVariant(int val); // like BOOL
00085   CVariant(unsigned int val);
00086   CVariant(long val);
00087   CVariant(unsigned long val);
00088   CVariant(long long val);
00089   CVariant(unsigned long long val);
00090   CVariant(float val);
00091   CVariant(double val);
00092   CVariant(LPCTSTR val);
00093 
00094   virtual ~CVariant(void);
00095 
00096   /* assign operators: */
00097   CVariant &operator = (const CVariant &right);
00098   CVariant &operator = (bool b);
00099   CVariant &operator = (char val);
00100   CVariant &operator = (unsigned char val);
00101   CVariant &operator = (short val);
00102   CVariant &operator = (unsigned short val);
00103   CVariant &operator = (int val);
00104   CVariant &operator = (unsigned int val);
00105   CVariant &operator = (long val);
00106   CVariant &operator = (unsigned long val);
00107   CVariant &operator = (long long val);
00108   CVariant &operator = (unsigned long long val);
00109   CVariant &operator = (float val);
00110   CVariant &operator = (double val);
00111   CVariant &operator = (LPCTSTR val);
00112 
00113   /* Comparision operators: */
00114   bool operator == (const CVariant &right) const;
00115   bool operator != (const CVariant &right) const;
00116 
00117 
00118   /* cast (conversion) operators: */
00119   operator LPCTSTR();
00120   operator bool();
00121   operator char();
00122   operator unsigned char();
00123   operator short();
00124   operator unsigned short();
00125   operator int();
00126   operator unsigned int();
00127   operator long();
00128   operator unsigned long();
00129   operator long long();
00130   operator unsigned long long();
00131   operator float();
00132   operator double();
00133 
00134   bool GetDispString(CString &dispStr, bool UseFormat = true);
00135 
00136   void SetFormatString(LPCTSTR FormatStr) {
00137     m_FormatStr = FormatStr;
00138   };
00139 
00140   const char * GetFormatString() {
00141     return m_FormatStr;
00142   };
00143 
00144   BOOL TextToVar(const CString& strText);
00145   void SetType(TL_DATATYPE NewType);
00146 
00147   CString m_FormatStr;
00148 
00149   // test functions
00150 #ifdef _DEBUG
00151   void ComponentTest();
00152 #endif
00153 
00154 private:
00155   void SaveLptstr(LPCTSTR val);
00156   //CString m_FormatStr;
00157 };

Generated on Fri Sep 17 2010 14:58:37 for RTOS_Viewer by  doxygen 1.7.1