1 #pragma once 2 class CVariant 3 { 4 public: 5 CVariant(int value); 6 CVariant(size_t value); 7 CVariant(double value); 8 CVariant(LPCTSTR value); 9 CVariant(const CString& value); 10 CVariant(const wstring& value); 11 12 ~CVariant(); 13 14 CString ToString() const; 15 int ToInt() const; 16 double ToDouble() const; 17 bool ToBool() const; 18 19 private: 20 enum class eType { INT, UINT, DOUBLE, STRING }; 21 22 int m_value_int{}; 23 double m_value_double{}; 24 CString m_value_string; 25 eType m_type; 26 27 }; 28 29