#pragma once #include "CHEdgeTriangle/Singleton.h" interface IDisplayMessage2Parent { public: virtual void DM2P_DisplayMessage(const CString& strMessage) = 0; virtual void DM2P_DisplayMessage(const TCHAR* lpstrFormat, ...) = 0; }; class CDisplayMessage : public Singleton { public: CDisplayMessage(const CString& strPath); virtual ~CDisplayMessage(void); public: void SetDM2P(IDisplayMessage2Parent* pDM2P) { m_pDM2P = pDM2P; } void SetPath(const CString& strPath); BOOL MakeLogFile(); BOOL WriteToFile(const CString& strMessage); void DisplayMessage(const CString& strMessage); void DisplayMessage(const TCHAR* lpstrFormat, ...); public: CTime m_TimeLogFile; CFile* m_pFileLog; CString m_strLogPath; CString m_strLogFile; IDisplayMessage2Parent* m_pDM2P; CRITICAL_SECTION m_csLog; }; #define g_pLog CDisplayMessage::GetSingletonPtr()