#pragma once #include "Common.h" class CContext : public IRxObject { public: CContext(); virtual ~CContext(); public: int addRef(); int release(); public: virtual std::string& getClassName() = 0; virtual std::string toString() = 0; void setRetCode(int code); int getRetCode(); void setRetMsg(const char* pszMsg); std::string& getRetMsg(); HANDLE getEventHandle(); void setEvent(); void resetEvent(); static void createDir(CString strDir); float toFloat(const char* pszAddr); protected: inline void Lock() { EnterCriticalSection(&m_criticalSection); } inline void Unlock() { LeaveCriticalSection(&m_criticalSection); } void ReadString(CArchive& ar, std::string& string); void WriteString(CArchive& ar, std::string& string); static BOOL IsBoxId(CString& strId); static BOOL IsLotId(CString& strId); private: int m_nRef; CRITICAL_SECTION m_criticalSection; protected: int m_nRetCode; std::string m_strRetMsg; HANDLE m_hEvent; };