|
// FtpClientTesterDlg.cpp : ±¸Çö ÆÄÀÏ
|
//
|
|
#include "stdafx.h"
|
#include "FtpClientTester.h"
|
#include "FtpClientTesterDlg.h"
|
#include "afxdialogex.h"
|
|
|
|
#ifdef _DEBUG
|
#define new DEBUG_NEW
|
#endif
|
|
|
// ÀÀ¿ë ÇÁ·Î±×·¥ Á¤º¸¿¡ »ç¿ëµÇ´Â CAboutDlg ´ëÈ »óÀÚÀÔ´Ï´Ù.
|
|
class CAboutDlg : public CDialogEx
|
{
|
public:
|
CAboutDlg();
|
|
// ´ëÈ »óÀÚ µ¥ÀÌÅÍÀÔ´Ï´Ù.
|
enum { IDD = IDD_ABOUTBOX };
|
|
protected:
|
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV Áö¿øÀÔ´Ï´Ù.
|
|
// ±¸ÇöÀÔ´Ï´Ù.
|
protected:
|
DECLARE_MESSAGE_MAP()
|
};
|
|
CAboutDlg::CAboutDlg() : CDialogEx(CAboutDlg::IDD)
|
{
|
}
|
|
void CAboutDlg::DoDataExchange(CDataExchange* pDX)
|
{
|
CDialogEx::DoDataExchange(pDX);
|
}
|
|
BEGIN_MESSAGE_MAP(CAboutDlg, CDialogEx)
|
END_MESSAGE_MAP()
|
|
|
// CFtpClientTesterDlg ´ëÈ »óÀÚ
|
|
|
|
|
CFtpClientTesterDlg::CFtpClientTesterDlg(CWnd* pParent /*=NULL*/)
|
: CDialogEx(CFtpClientTesterDlg::IDD, pParent)
|
, m_strServerFolder(_T("LotHistory"))
|
, m_strServerFile(_T(""))
|
, m_strLocalFolder(_T(""))
|
, m_strLocalFile(_T(""))
|
, m_strSignalFolder(_T("LotHistory"))
|
, m_strSignalFile(_T(""))
|
{
|
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
|
}
|
|
void CFtpClientTesterDlg::DoDataExchange(CDataExchange* pDX)
|
{
|
CDialogEx::DoDataExchange(pDX);
|
DDX_Text(pDX, IDC_EDIT_SERVER_FOLDER, m_strServerFolder);
|
DDX_Text(pDX, IDC_EDIT_SERVER_FILE, m_strServerFile);
|
DDX_Text(pDX, IDC_EDIT_LOCAL_FOLDER, m_strLocalFolder);
|
DDX_Text(pDX, IDC_EDIT_LOCAL_FILE, m_strLocalFile);
|
DDX_Text(pDX, IDC_EDIT_SIGNAL_FOLDER, m_strSignalFolder);
|
DDX_Text(pDX, IDC_EDIT_SIGNAL_FILE, m_strSignalFile);
|
DDX_Control(pDX, IDC_CHECK_CREATE_SIGNAL, m_ctrlCreateSignal);
|
DDX_Control(pDX, IDC_CHECK_RESULT_ACK, m_ctrlResultAck);
|
}
|
|
BEGIN_MESSAGE_MAP(CFtpClientTesterDlg, CDialogEx)
|
ON_WM_SYSCOMMAND()
|
ON_WM_PAINT()
|
ON_WM_QUERYDRAGICON()
|
ON_BN_CLICKED(IDC_BUTTON_DOWNLOAD, &CFtpClientTesterDlg::OnBnClickedButtonDownload)
|
ON_WM_COPYDATA()
|
ON_BN_CLICKED(IDC_BUTTON_UPLOAD, &CFtpClientTesterDlg::OnBnClickedButtonUpload)
|
ON_BN_CLICKED(IDC_BUTTON_SERVER, &CFtpClientTesterDlg::OnBnClickedButtonServer)
|
ON_BN_CLICKED(IDC_BUTTON_LOCAL, &CFtpClientTesterDlg::OnBnClickedButtonLocal)
|
ON_BN_CLICKED(IDC_BUTTON_SIGNAL, &CFtpClientTesterDlg::OnBnClickedButtonSignal)
|
END_MESSAGE_MAP()
|
|
|
// CFtpClientTesterDlg ¸Þ½ÃÁö 󸮱â
|
|
BOOL CFtpClientTesterDlg::OnInitDialog()
|
{
|
CDialogEx::OnInitDialog();
|
|
// ½Ã½ºÅÛ ¸Þ´º¿¡ "Á¤º¸..." ¸Þ´º Ç׸ñÀ» Ãß°¡ÇÕ´Ï´Ù.
|
|
// IDM_ABOUTBOX´Â ½Ã½ºÅÛ ¸í·É ¹üÀ§¿¡ ÀÖ¾î¾ß ÇÕ´Ï´Ù.
|
ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
|
ASSERT(IDM_ABOUTBOX < 0xF000);
|
|
CMenu* pSysMenu = GetSystemMenu(FALSE);
|
if (pSysMenu != NULL)
|
{
|
BOOL bNameValid;
|
CString strAboutMenu;
|
bNameValid = strAboutMenu.LoadString(IDS_ABOUTBOX);
|
ASSERT(bNameValid);
|
if (!strAboutMenu.IsEmpty())
|
{
|
pSysMenu->AppendMenu(MF_SEPARATOR);
|
pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
|
}
|
}
|
|
// ÀÌ ´ëÈ »óÀÚÀÇ ¾ÆÀÌÄÜÀ» ¼³Á¤ÇÕ´Ï´Ù. ÀÀ¿ë ÇÁ·Î±×·¥ÀÇ ÁÖ Ã¢ÀÌ ´ëÈ »óÀÚ°¡ ¾Æ´Ò °æ¿ì¿¡´Â
|
// ÇÁ·¹ÀÓ¿öÅ©°¡ ÀÌ ÀÛ¾÷À» ÀÚµ¿À¸·Î ¼öÇàÇÕ´Ï´Ù.
|
SetIcon(m_hIcon, TRUE); // Å« ¾ÆÀÌÄÜÀ» ¼³Á¤ÇÕ´Ï´Ù.
|
SetIcon(m_hIcon, FALSE); // ÀÛÀº ¾ÆÀÌÄÜÀ» ¼³Á¤ÇÕ´Ï´Ù.
|
|
// TODO: ¿©±â¿¡ Ãß°¡ ÃʱâÈ ÀÛ¾÷À» Ãß°¡ÇÕ´Ï´Ù.
|
|
return TRUE; // Æ÷Ä¿½º¸¦ ÄÁÆ®·Ñ¿¡ ¼³Á¤ÇÏÁö ¾ÊÀ¸¸é TRUE¸¦ ¹ÝȯÇÕ´Ï´Ù.
|
}
|
|
void CFtpClientTesterDlg::OnSysCommand(UINT nID, LPARAM lParam)
|
{
|
if ((nID & 0xFFF0) == IDM_ABOUTBOX)
|
{
|
CAboutDlg dlgAbout;
|
dlgAbout.DoModal();
|
}
|
else
|
{
|
CDialogEx::OnSysCommand(nID, lParam);
|
}
|
}
|
|
// ´ëÈ »óÀÚ¿¡ ÃÖ¼ÒÈ ´ÜÃ߸¦ Ãß°¡ÇÒ °æ¿ì ¾ÆÀÌÄÜÀ» ±×¸®·Á¸é
|
// ¾Æ·¡ Äڵ尡 ÇÊ¿äÇÕ´Ï´Ù. ¹®¼/ºä ¸ðµ¨À» »ç¿ëÇÏ´Â MFC ÀÀ¿ë ÇÁ·Î±×·¥ÀÇ °æ¿ì¿¡´Â
|
// ÇÁ·¹ÀÓ¿öÅ©¿¡¼ ÀÌ ÀÛ¾÷À» ÀÚµ¿À¸·Î ¼öÇàÇÕ´Ï´Ù.
|
|
void CFtpClientTesterDlg::OnPaint()
|
{
|
if (IsIconic())
|
{
|
CPaintDC dc(this); // ±×¸®±â¸¦ À§ÇÑ µð¹ÙÀ̽º ÄÁÅØ½ºÆ®ÀÔ´Ï´Ù.
|
|
SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0);
|
|
// Ŭ¶óÀÌ¾ðÆ® »ç°¢Çü¿¡¼ ¾ÆÀÌÄÜÀ» °¡¿îµ¥¿¡ ¸ÂÃä´Ï´Ù.
|
int cxIcon = GetSystemMetrics(SM_CXICON);
|
int cyIcon = GetSystemMetrics(SM_CYICON);
|
CRect rect;
|
GetClientRect(&rect);
|
int x = (rect.Width() - cxIcon + 1) / 2;
|
int y = (rect.Height() - cyIcon + 1) / 2;
|
|
// ¾ÆÀÌÄÜÀ» ±×¸³´Ï´Ù.
|
dc.DrawIcon(x, y, m_hIcon);
|
}
|
else
|
{
|
CDialogEx::OnPaint();
|
}
|
}
|
|
// »ç¿ëÀÚ°¡ ÃÖ¼ÒÈµÈ Ã¢À» ²ô´Â µ¿¾È¿¡ Ä¿¼°¡ Ç¥½ÃµÇµµ·Ï ½Ã½ºÅÛ¿¡¼
|
// ÀÌ ÇÔ¼ö¸¦ È£ÃâÇÕ´Ï´Ù.
|
HCURSOR CFtpClientTesterDlg::OnQueryDragIcon()
|
{
|
return static_cast<HCURSOR>(m_hIcon);
|
}
|
|
|
|
void CFtpClientTesterDlg::OnBnClickedButtonDownload()
|
{
|
UpdateData(TRUE);
|
|
HWND hWnd = GetFTPUploaderWndHandle();
|
if (hWnd==NULL)
|
{
|
return;
|
}
|
|
CFTPCopyDataParam downParam;
|
_stprintf_s(downParam.m_strServer_FolderName, m_strServerFolder);
|
_stprintf_s(downParam.m_strServer_FileName, m_strServerFile);
|
_stprintf_s(downParam.m_strLocal_FolderName, m_strLocalFolder);
|
_stprintf_s(downParam.m_strLocal_FileName, m_strLocalFile);
|
_stprintf_s(downParam.m_strServer_SignalFolderName, m_strSignalFolder);
|
_stprintf_s(downParam.m_strServer_SignalFileName, m_strSignalFile);
|
downParam.m_nCreateSignalFile = m_ctrlCreateSignal.GetCheck();
|
downParam.m_nSendResultCode = m_ctrlResultAck.GetCheck();
|
downParam.m_nProcessType = FTPProcessType_DownFile;
|
|
COPYDATASTRUCT cds;
|
cds.dwData = COPYDATA_RAW_DOWNLOAD;
|
cds.cbData = sizeof(CFTPCopyDataParam);
|
cds.lpData = &downParam;
|
|
DWORD dwReturn = 0;
|
if(SendMessageTimeout(hWnd, WM_COPYDATA, NULL, (LPARAM)&cds, SMTO_NORMAL, 20000, (PDWORD_PTR)(dwReturn)) == FALSE)
|
{
|
}
|
|
m_vecFTPCopyDataParam.push_back(downParam);
|
|
}
|
|
|
void CFtpClientTesterDlg::OnBnClickedButtonUpload()
|
{
|
UpdateData(TRUE);
|
|
HWND hWnd = GetFTPUploaderWndHandle();
|
if (hWnd==NULL)
|
{
|
return;
|
}
|
|
CFTPCopyDataParam upParam;
|
_stprintf_s(upParam.m_strServer_FolderName, m_strServerFolder);
|
_stprintf_s(upParam.m_strServer_FileName, m_strServerFile);
|
_stprintf_s(upParam.m_strLocal_FolderName, m_strLocalFolder);
|
_stprintf_s(upParam.m_strLocal_FileName, m_strLocalFile);
|
_stprintf_s(upParam.m_strServer_SignalFolderName, m_strSignalFolder);
|
_stprintf_s(upParam.m_strServer_SignalFileName, m_strSignalFile);
|
upParam.m_nCreateSignalFile = m_ctrlCreateSignal.GetCheck();
|
upParam.m_nSendResultCode = m_ctrlResultAck.GetCheck();
|
upParam.m_nProcessType = FTPProcessType_UpFile;
|
|
COPYDATASTRUCT cds;
|
cds.dwData = COPYDATA_RAW_UPLOAD;
|
cds.cbData = sizeof(CFTPCopyDataParam);
|
cds.lpData = &upParam;
|
|
DWORD dwReturn = 0;
|
if(SendMessageTimeout(hWnd, WM_COPYDATA, NULL, (LPARAM)&cds, SMTO_NORMAL, 20000, (PDWORD_PTR)(dwReturn)) == FALSE)
|
{
|
}
|
|
m_vecFTPCopyDataParam.push_back(upParam);
|
|
}
|
|
BOOL CFtpClientTesterDlg::OnCopyData(CWnd* pWnd, COPYDATASTRUCT* pCopyDataStruct)
|
{
|
switch( pCopyDataStruct->dwData )
|
{
|
case COPYDATA_RAW_DOWNLOAD_ACK:
|
{
|
CFTPCopyDataParam* pParam = static_cast<CFTPCopyDataParam*>(pCopyDataStruct->lpData);
|
ASSERT(pParam);
|
|
|
AfxMessageBox(pParam->m_strLocal_FileName);
|
}
|
break;
|
|
case COPYDATA_RAW_UPLOAD_ACK:
|
{
|
CFTPCopyDataParam* pParam = static_cast<CFTPCopyDataParam*>(pCopyDataStruct->lpData);
|
ASSERT(pParam);
|
|
AfxMessageBox(pParam->m_strLocal_FileName);
|
|
}
|
break;
|
|
}
|
|
|
return CDialogEx::OnCopyData(pWnd, pCopyDataStruct);
|
}
|
|
|
|
|
|
void CFtpClientTesterDlg::OnBnClickedButtonServer()
|
{
|
static TCHAR BASED_CODE szFilter[] = _T("¸ðµçÆÄÀÏ(*.*)|*.*||");
|
CFileDialog dlg(TRUE, _T("*.*"), _T("All Files"), OFN_HIDEREADONLY, szFilter);
|
if(IDOK == dlg.DoModal())
|
{
|
CString strValue = dlg.GetPathName();
|
|
int nIdx = strValue.ReverseFind(_T('\\'));
|
int nLength = strValue.GetLength() - nIdx;
|
m_strServerFolder = strValue.Left(nIdx);
|
m_strServerFile = strValue.Mid(nIdx+1, nLength);
|
}
|
UpdateData(FALSE);
|
}
|
|
|
void CFtpClientTesterDlg::OnBnClickedButtonLocal()
|
{
|
static TCHAR BASED_CODE szFilter[] = _T("¸ðµçÆÄÀÏ(*.*)|*.*||");
|
CFileDialog dlg(TRUE, _T("*.*"), _T("All Files"), OFN_HIDEREADONLY, szFilter);
|
if(IDOK == dlg.DoModal())
|
{
|
CString strValue = dlg.GetPathName();
|
|
int nIdx = strValue.ReverseFind(_T('\\'));
|
int nLength = strValue.GetLength() - nIdx;
|
m_strLocalFolder = strValue.Left(nIdx);
|
m_strLocalFile = strValue.Mid(nIdx+1, nLength);
|
m_strServerFile = m_strLocalFile;
|
m_strSignalFile = m_strLocalFile;
|
m_strSignalFile += _T(".ini");
|
}
|
UpdateData(FALSE);
|
}
|
|
|
void CFtpClientTesterDlg::OnBnClickedButtonSignal()
|
{
|
static TCHAR BASED_CODE szFilter[] = _T("¸ðµçÆÄÀÏ(*.*)|*.*||");
|
CFileDialog dlg(TRUE, _T("*.*"), _T("All Files"), OFN_HIDEREADONLY, szFilter);
|
if(IDOK == dlg.DoModal())
|
{
|
CString strValue = dlg.GetPathName();
|
|
int nIdx = strValue.ReverseFind(_T('\\'));
|
int nLength = strValue.GetLength() - nIdx;
|
m_strSignalFolder = strValue.Left(nIdx);
|
m_strSignalFile = strValue.Mid(nIdx+1, nLength);
|
}
|
UpdateData(FALSE);
|
}
|