SDC C-Project CF Review 프로그램
KEJ
2024-06-26 0c66940a8e2cf64c9890519901f433b3668216b6
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#pragma once
 
#include "CHEdgeTriangle/Singleton.h"
 
#define WM_DIPLAY_LOG          WM_USER + 1000
 
interface IDisplayMessage2Parent
{
public:
    virtual void    DM2P_DisplayMessage(const CString& strMessage) = 0;
    virtual void    DM2P_DisplayMessage(const TCHAR* lpstrFormat, ...) = 0;
};
 
 
class CDisplayMessage : public Singleton<CDisplayMessage>
{
    /*< SWK 20221226 - #4403 ADD Start >*/
    typedef struct _Log_Data
    {
        SYSTEMTIME    currentTime;
        CString        strLog;
    }LogData, *pLogData;
    /*< SWK 20221226 - #4403 ADD End >*/
public:
    CDisplayMessage(const CString& strPath);
    virtual ~CDisplayMessage(void);
 
public:
    void    SetDM2P(IDisplayMessage2Parent* pDM2P)        { m_pDM2P = pDM2P; }
    void    SetPath(const CString& strPath);
    void    DisplayMessage(const CString& strMessage);
    void    DisplayMessage(const TCHAR* lpstrFormat, ...);
    //< SWK 20221226 - #4403 MOD >
//    void    ThreadDisplayMessage(const CString & strMessage);
    void    ThreadDisplayMessage(const LogData& logdata);
protected:
    BOOL    MakeLogFile();
    //< SWK 20221226 - #4403 MOD >
//    BOOL    WriteToFile(const CString& strMessage);
    BOOL    WriteToFile(const SYSTEMTIME& time, const CString& strMessage);
 
    static DWORD    RunThreadDisplayLog(LPVOID param);
private:
    CTime                        m_TimeLogFile;
    CFile*                        m_pFileLog;
    CString                        m_strLogPath;
    CString                        m_strLogFile;
    IDisplayMessage2Parent*        m_pDM2P;
    CRITICAL_SECTION            m_csLog;
    DWORD                        m_ThreadId;
};
 
#define g_pLog    CDisplayMessage::GetSingletonPtr()