#ifndef _COM_VARIANTTIME_HPP_ #define _COM_VARIANTTIME_HPP_ #ifndef _COMMON_SYSTEMTIME_HPP_ #include #endif #ifndef _COM_COM_HPP_ #include #endif class VariantTime { public: VariantTime(void); VariantTime(const VariantTime &someVariantTime); VariantTime(const SystemTime &systemTime); VariantTime(const DATE &someDATE); virtual ~VariantTime(); VariantTime &operator=(const VariantTime &variantTime); VariantTime &operator=(const DATE &someDATE); VariantTime &operator=(const SystemTime &systemTime); bool operator==(const VariantTime &variantTime)const; bool operator==(const DATE &someDATE)const; bool operator==(const SystemTime &systemTime)const; void getTime(DATE &someDATE); void getTime(SystemTime &systemTime); void refresh(void); DATE &getDATE(void); private: DATE mDate; }; inline VariantTime::VariantTime(void) { refresh(); } inline VariantTime::VariantTime(const SystemTime &systemTime) { *this=systemTime; } inline VariantTime::VariantTime(const DATE &someDATE) { *this=someDATE; } inline VariantTime::VariantTime(const VariantTime &someVariantTime) { *this=someVariantTime; } inline VariantTime::~VariantTime() { } inline VariantTime &VariantTime::operator=(const VariantTime &variantTime) { mDate=variantTime.mDate; return *this; } inline VariantTime &VariantTime::operator=(const DATE &someDATE) { mDate=someDATE; return *this; } inline VariantTime &VariantTime::operator=(const SystemTime &systemTime) { ::SystemTimeToVariantTime(&((SystemTime&)systemTime).getSYSTEMTIME(),&mDate); return *this; } inline bool VariantTime::operator==(const VariantTime &variantTime)const { return mDate==variantTime.mDate; } inline bool VariantTime::operator==(const DATE &someDATE)const { return mDate==someDATE; } inline bool VariantTime::operator==(const SystemTime &systemTime)const { DATE date; ::SystemTimeToVariantTime(&((SystemTime&)systemTime).getSYSTEMTIME(),&date); return mDate==date; } inline void VariantTime::getTime(DATE &someDATE) { someDATE=mDate; } inline void VariantTime::getTime(SystemTime &systemTime) { ::VariantTimeToSystemTime(mDate,&systemTime.getSYSTEMTIME()); } inline void VariantTime::refresh(void) { SystemTime systemTime; ::SystemTimeToVariantTime(&systemTime.getSYSTEMTIME(),&mDate); } inline DATE &VariantTime::getDATE(void) { return mDate; } #endif