SDC C-Project CF Review 프로그램
LYW
2022-07-26 73f77c34a0d680de9e562a7e572764ffc746fbac
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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
#pragma once
 
#define PROGNAME_FTPUPLOADER        _T("FTPUploader")
#define LOCAL_SIGNAL_FILE_PATH        _T("c:\\temp")
 
#define    COPYDATA_RAW_DOWNLOAD        1
#define    COPYDATA_RAW_UPLOAD            2
#define    COPYDATA_LOT_UPLOAD            3
#define    COPYDATA_IMAGE_UPLOAD        4
 
#define    COPYDATA_RAW_DOWNLOAD_ACK    11
#define    COPYDATA_RAW_UPLOAD_ACK        12
#define    COPYDATA_LOT_UPLOAD_ACK        13
#define    COPYDATA_IMAGE_UPLOAD_ACK    14
 
#define MAX_PATH_NUM                255
#define MAX_FILE_NUM                100
#define MAX_STEPID_NUM                30
 
enum FTPProcessType { FTPProcessType_DownFile=0, FTPProcessType_UpFile, FTPProcessType_Count };
// [C-PRJ] Image Upload Define - KHT (2020/11/19)                                                  // RTMS PC·Î °Ë»ç, Review Config ÆÄÀÏ ÀÚµ¿¹é¾÷ Ãß°¡ [ 21-03-03 KJG ]
enum FTPDataType { FTPDataType_Unknown = 0, FTPDataType_Raw, FTPDataType_Image, FTPDataType_Stack, FTPDataType_AutoBackUp, FTPDataType_Index };
 
static HWND GetFTPUploaderWndHandle()
{
    HWND hWnd = ::FindWindow(NULL, PROGNAME_FTPUPLOADER);
    return hWnd;
}
 
static HWND GetProcessWndHandle(const CString& strProcessName)
{
    HWND hWnd = ::FindWindow(NULL, strProcessName);
    return hWnd;
}
 
class CFTPCopyDataParam
{
public:
    CFTPCopyDataParam()                { Reset(); }
    virtual ~CFTPCopyDataParam()    { Reset(); }
    void Reset()
    {
        memset(this, 0, sizeof(CFTPCopyDataParam));
        m_hSenderWnd = GetCurrentProcessWndHandle();
    }
 
    const HWND    GetSenderWnd() const                        { return m_hSenderWnd; }
    void        SetSenderWnd(HWND hWnd)                        { m_hSenderWnd = hWnd; }
 
public:
    int        m_nProcessType;                                // ÇÁ·Î¼¼½º Å¸ÀÔ
    int     m_nCreateSignalFile;                        // ½Ã±×³Î ÆÄÀÏ »ý¼ºÀ¯¹«
    int        m_bFirstPriority;                            // ÃÖ»óÀ§ ¿ì¼±¼øÀ§À¯¹«
    int        m_nSendResultCode;                            // º¸³½ °á°ú ÄÚµå
    // [C-PRJ] Image Upload Define - KHT (2020/11/19)
    int     m_nDataType;                                // RAW, IMAGE
 
    TCHAR    m_strServer_FolderName[MAX_PATH_NUM];        // ¼­¹ö °æ·Î¸í
    TCHAR    m_strServer_FileName[MAX_FILE_NUM];            // ¼­¹ö ÆÄÀϸí
 
    TCHAR    m_strLocal_FolderName[MAX_PATH_NUM];        // ·ÎÄà°æ·Î¸í
    TCHAR    m_strLocal_FileName[MAX_FILE_NUM];            // ·ÎÄàÆÄÀϸí
 
    TCHAR    m_strServer_SignalFolderName[MAX_PATH_NUM];    // ¼­¹ö ½Ã±×³Î °æ·Î¸í
    TCHAR    m_strServer_SignalFileName[MAX_FILE_NUM];    // ¼­¹ö ½Ã±×³Î ÆÄÀϸí
 
    TCHAR    m_strRTMS_FileName[MAX_FILE_NUM];
 
    TCHAR   m_strServer_SubFileName[MAX_FILE_NUM];  // ¼­¹ö ·ÎÄà°æ·Î³»¿¡ Ãß°¡ Raw ÆÄÀÏ »ý¼º À̸§
    TCHAR   m_strServer_SubFilePath[MAX_PATH_NUM];  // ¼­¹ö ·ÎÄà°æ·Î³»¿¡ Ãß°¡ Raw ÆÄÀÏ »ý¼º °æ·Î
 
protected:
    HWND    m_hSenderWnd;                                // º¸³½ ÇÁ·Î±×·¥ À©µµ¿ì
 
    static HWND GetCurrentProcessWndHandle()
    {
        DWORD dwPID = GetCurrentProcessId();
        HWND hWnd = FindWindow(NULL, NULL);
        while (hWnd != NULL)
        {
            if (GetParent(hWnd) == NULL){
                DWORD dwProcId;
                GetWindowThreadProcessId(hWnd, &dwProcId);
                if (dwPID == dwProcId){
                    return hWnd;
                }
            }
            hWnd = GetWindow(hWnd, GW_HWNDNEXT);
        }
        return NULL;
    }
};
 
class CFTPUploadParam : public CFTPCopyDataParam
{
public:
    CFTPUploadParam()            { Reset(); }
    virtual ~CFTPUploadParam()    { Reset(); }
    void Reset()
    {
        CFTPCopyDataParam::Reset();
        
        m_strInsertTime                = CTime::GetCurrentTime(); // Ãß°¡ ½Ã°£
        m_dwErrorCode                = 0;        // ¿¡·¯ ÄÚµå
        m_strErrorMessage            = _T("");    // ¿¡·¯ ¸Þ¼¼Áö
    }
 
public:
    CTime        m_strInsertTime;                    // Ãß°¡ ½Ã°£
    DWORD        m_dwErrorCode;                        // ¿¡·¯ ÄÚµå
    CString        m_strErrorMessage;                    // ¿¡·¯ ¸Þ¼¼Áö
};