VariantEx.h
上传用户:maryhy001
上传日期:2007-05-02
资源大小:2317k
文件大小:2k
源码类别:

网格计算

开发平台:

Visual C++

  1. #ifndef _VARIANTEX_H
  2. #define _VARIANTEX_H
  3. #include <comdef.h> //_variant_t class defined here
  4. #include ".TimeEx.h"
  5. //variant type simple define
  6. typedef enum VARTYPE_ENUM{
  7. //empty type
  8. VTE_EMPTY = 0,
  9. //string type
  10. VTE_STRING = 1,
  11. //integer type(int/short int/long int)
  12. VTE_INT = 2,
  13. VTE_SHORT   = 3,
  14. VTE_LONG = 4,
  15. //unsigned integer(u_int/u_long)
  16. VTE_UNSHORT = 5,
  17. VTE_UNINT = 6,
  18. VTE_ULINT = 7,
  19. //real type(%.4f format)
  20. VTE_FLOAT = 8,
  21. VTE_DECIMAL = 9,
  22. //real type(%.8f format)
  23. VTE_DOUBLE = 10,
  24. //bool type(true/false)
  25. VTE_BOOL = 11,
  26. //datetime type
  27. VTE_DATETIME= 12,
  28. //"NULL" type
  29. VTE_NULL = 13,
  30. VTE_BLOB = 14,
  31. VTE_BLOB_OBJECT=15,
  32. VTE_TEXT = 16,
  33. //unKnown type
  34. VTE_UNKNOWN = 17
  35. };
  36. /*
  37.  * CVariant class --- _variant_t encapsulation class 
  38.  */
  39. /********************************************************
  40.  *  Class Name : CVariantEx. *
  41.  * Purpose : _variant_t encapsulation class. *
  42.  *  File  Name : VariantEx.h / VariantEx.cpp. *
  43.  *------------------------------------------------------*
  44.  * Author : Devia Lee. Date: 2004-04-01 *
  45.  ********************************************************/
  46. class CVariantEx
  47. {
  48. public:
  49. CVariantEx();
  50. CVariantEx(_variant_t &vt);
  51. CVariantEx(CVariantEx &var);
  52. CVariantEx(const bool bVar);
  53. CVariantEx(const long nVar);
  54. CVariantEx(const double dVar);
  55. CVariantEx(LPCSTR lpszVar);
  56. CVariantEx& operator=(_variant_t &vt);
  57. CVariantEx& operator=(CVariantEx &var);
  58. CVariantEx& operator=(const bool bVar);
  59. CVariantEx& operator=(const long nVar);
  60. CVariantEx& operator=(const double dVar);
  61. CVariantEx& operator=(LPCSTR lpszVar);
  62. virtual ~CVariantEx();
  63. //###################################################
  64. //determine the var whether is null
  65. bool IsNull();
  66. //clear the var value
  67. bool Clear();
  68. //get the variant type
  69. VARTYPE_ENUM getVarType();
  70. //get the variant value
  71. _variant_t& get_variant_t();
  72. //##############force convert value to someone type value##########
  73. //convert to string type
  74. string AsString();
  75. //convert to boolean type
  76. bool AsBool();
  77. //convert to integer type
  78. int AsInteger();
  79. //convert to real type
  80. double AsReal();
  81. //convert to datetime type
  82. CDateTimeEx AsDateTime();
  83. protected:
  84. _variant_t m_var;
  85. };
  86. #endif //_VARIANTEX_H