// DlgPath.cpp : implementation file // #include "stdafx.h" #include "udpadmintool.h" #include "DlgPath.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CDlgPath dialog CDlgPath::CDlgPath(CWnd* pParent /*=NULL*/) : CDialog(CDlgPath::IDD, pParent) { //{{AFX_DATA_INIT(CDlgPath) m_bUpFW = FALSE; m_bUpBL = FALSE; m_bUpOCX = FALSE; m_bUpWeb = FALSE; m_strBLPath = _T(""); m_strFWPath = _T(""); m_strOCXPath = _T(""); m_uVerBL = 0; m_uVerFW = 0; m_uVerOCX = 0; m_uVerWeb = 0; m_strWebPath = _T(""); m_iCondBL = -1; m_iCondFW = -1; m_iCondOCX = -1; m_iCondWeb = -1; m_strPkgPath = _T(""); //}}AFX_DATA_INIT } void CDlgPath::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CDlgPath) DDX_Control(pDX, IDC_CHK_PROTECT, m_btnProtect); DDX_Control(pDX, IDC_COMBO_COND_WEB, m_cbWeb); DDX_Control(pDX, IDC_COMBO_COND_OCX, m_cbOcx); DDX_Control(pDX, IDC_COMBO_COND_FIRMWARE, m_cbFirmware); DDX_Control(pDX, IDC_COMBO_COND_BOOTLOADER, m_cbBootloader); DDX_Check(pDX, IDC_CHK_FIRMWARE, m_bUpFW); DDX_Check(pDX, IDC_CHK_BOOTLOADER, m_bUpBL); DDX_Check(pDX, IDC_CHK_OCX, m_bUpOCX); DDX_Check(pDX, IDC_CHK_WEB, m_bUpWeb); DDX_Text(pDX, IDC_EDIT_BOOTLOADER_PATH, m_strBLPath); DDX_Text(pDX, IDC_EDIT_FIRMWARE_PATH, m_strFWPath); DDX_Text(pDX, IDC_EDIT_OCX_PATH, m_strOCXPath); DDX_Text(pDX, IDC_EDIT_VER_BOOTLOADER, m_uVerBL); DDX_Text(pDX, IDC_EDIT_VER_FIRMWARE, m_uVerFW); DDX_Text(pDX, IDC_EDIT_VER_OCX, m_uVerOCX); DDX_Text(pDX, IDC_EDIT_VER_WEB, m_uVerWeb); DDX_Text(pDX, IDC_EDIT_WEB_PATH, m_strWebPath); DDX_CBIndex(pDX, IDC_COMBO_COND_BOOTLOADER, m_iCondBL); DDX_CBIndex(pDX, IDC_COMBO_COND_FIRMWARE, m_iCondFW); DDX_CBIndex(pDX, IDC_COMBO_COND_OCX, m_iCondOCX); DDX_CBIndex(pDX, IDC_COMBO_COND_WEB, m_iCondWeb); DDX_Text(pDX, IDC_EDIT_PACKAGE_PATH, m_strPkgPath); //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(CDlgPath, CDialog) //{{AFX_MSG_MAP(CDlgPath) ON_BN_CLICKED(IDC_BUTTON_BROWSE_BOOTLOADER, OnButtonBrowseBootloader) ON_BN_CLICKED(IDC_BUTTON_BROWSE_FIRMWARE, OnButtonBrowseFirmware) ON_BN_CLICKED(IDC_BUTTON_BROWSE_OCX, OnButtonBrowseOcx) ON_BN_CLICKED(IDC_BUTTON_BROWSE_WEB, OnButtonBrowseWeb) ON_BN_CLICKED(IDC_CHK_PROTECT, OnChkProtect) ON_BN_CLICKED(IDC_BUTTON_BROWSE_PACKAGE, OnButtonBrowsePackage) //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CDlgPath message handlers BOOL CDlgPath::OnInitDialog() { CDialog::OnInitDialog(); // TODO: Add extra initialization here m_cbOcx.AddString("Lower"); m_cbOcx.AddString("Upper"); m_cbOcx.SetCurSel(0); m_cbWeb.AddString("Lower"); m_cbWeb.AddString("Upper"); m_cbWeb.SetCurSel(0); m_cbFirmware.AddString("Lower"); m_cbFirmware.AddString("Upper"); m_cbFirmware.SetCurSel(0); m_cbBootloader.AddString("Lower"); m_cbBootloader.AddString("Upper"); m_cbBootloader.SetCurSel(0); m_szFilePath[0] = '\0'; m_btnProtect.SetCheck(atoi((LPSTR)(LPCSTR)theApp.get_value("ENV", "Protect"))); m_strOCXPath = theApp.get_ocx_path(); m_strWebPath = theApp.get_web_path(); m_strFWPath = theApp.get_fw_path(); m_strBLPath = theApp.get_value("PATH", "Bootloader"); m_strPkgPath = theApp.get_value("PATH", "Package"); m_uVerFW = theApp.get_fw_ver(); m_uVerBL = atoi((LPSTR)(LPCSTR)theApp.get_value("VER", "Bootloader")); m_iCondFW = theApp.get_fw_cond(); m_iCondBL = atoi((LPSTR)(LPCSTR)theApp.get_value("COND", "Bootloader")); m_bUpOCX = atoi((LPSTR)(LPCSTR)theApp.get_value("ENV", "UpOCX")); m_bUpWeb = atoi((LPSTR)(LPCSTR)theApp.get_value("ENV", "UpWeb")); m_bUpFW = atoi((LPSTR)(LPCSTR)theApp.get_value("ENV", "UpFW")); m_bUpBL = atoi((LPSTR)(LPCSTR)theApp.get_value("ENV", "UpBL")); OnChkProtect(); UpdateData(FALSE); return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE } void CDlgPath::OnButtonBrowseBootloader() { // TODO: Add your control notification handler code here CFileDialog fileDlg(TRUE, NULL, theApp.get_value("PATH", "Bootloader"), OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, "Bootloader Files (*.img)|*.img||"); if (fileDlg.DoModal() == IDOK) { CString strPath = fileDlg.GetPathName(); SetDlgItemText(IDC_EDIT_BOOTLOADER_PATH, strPath); } } void CDlgPath::OnButtonBrowseFirmware() { // TODO: Add your control notification handler code here CFileDialog fileDlg(TRUE, NULL, theApp.get_fw_path(), OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, "Firmware Files (*.*)|*.*||"); if (fileDlg.DoModal() == IDOK) { CString strPath = fileDlg.GetPathName(); SetDlgItemText(IDC_EDIT_FIRMWARE_PATH, strPath); } } void CDlgPath::OnButtonBrowseOcx() { // TODO: Add your control notification handler code here CFileDialog fileDlg(TRUE, NULL, theApp.get_ocx_path(), OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, "OCX Files (*.cab)|*.cab||"); if (fileDlg.DoModal() == IDOK) { CString strPath = fileDlg.GetPathName(); SetDlgItemText(IDC_EDIT_OCX_PATH, strPath); } } void CDlgPath::OnButtonBrowseWeb() { // TODO: Add your control notification handler code here BROWSEINFO bi; ZeroMemory(&bi, sizeof(bi)); TCHAR szDisplayName[MAX_PATH]; szDisplayName[0] = '\0'; bi.hwndOwner = NULL; bi.pidlRoot = NULL; bi.pszDisplayName = szDisplayName; bi.lpszTitle = TEXT("Select the folder."); // bi.ulFlags = BIF_EDITBOX | BIF_VALIDATE ; bi.ulFlags = BIF_VALIDATE ; #ifndef SHOW_PROBLEM bi.lpfn = BrowseCallbackProc; #endif strncpy(m_szFilePath, (LPSTR)(LPCTSTR)theApp.get_web_path(), sizeof(m_szFilePath)); bi.lParam = (LPARAM)(LPSTR)(LPCTSTR)m_szFilePath; //À̺κÐÀÌ Ã³À½ Æú´õ¼±Åà ´ëÈ­»óÀÚ°¡ ÃʱâÈ­µÉ¶§ //¼±ÅõǴ Æú´õ¸íÀ» ³Ñ°ÜÁØ´Ù. bi.iImage = 0; // do LPITEMIDLIST pidl = SHBrowseForFolder(&bi); // result TCHAR szPath[MAX_PATH] = {0}; if(NULL != pidl) SHGetPathFromIDList(pidl, szPath); if(strlen(szPath) < 1) return; SetDlgItemText(IDC_EDIT_WEB_PATH, szPath); } int CDlgPath::BrowseCallbackProc(HWND hwnd, UINT uMsg, LPARAM lParam, LPARAM dwData) { CDlgPath* PDlg = (CDlgPath *)AfxGetMainWnd(); TCHAR* szDir; TCHAR szText[MAX_PATH] = {0}; CString str; szDir = (TCHAR * )(LPSTR)(LPCTSTR) dwData; switch(uMsg) { case BFFM_INITIALIZED: ::SendMessage(hwnd, BFFM_SETSELECTION, TRUE, (LPARAM)szDir); break; case BFFM_SELCHANGED: SHGetPathFromIDList(reinterpret_cast(lParam), szText); ::SendMessage(hwnd, BFFM_SETSTATUSTEXT, 0, reinterpret_cast(szText)); break; case BFFM_VALIDATEFAILED: str.Format("\"%s\" Wrong folder path", reinterpret_cast(lParam)); AfxMessageBox(str); return 1; } return 0; } void CDlgPath::OnOK() { // TODO: Add extra validation here UpdateData(TRUE); CString strValue; strValue.Format("%d", m_btnProtect.GetCheck()); theApp.set_value("ENV", "Protect", strValue); theApp.set_ocx_path(m_strOCXPath); theApp.set_web_path(m_strWebPath); theApp.set_fw_path(m_strFWPath); theApp.set_value("PATH", "Bootloader", m_strBLPath); theApp.set_value("PATH", "Package", m_strPkgPath); theApp.set_fw_ver(m_uVerFW); theApp.set_fw_cond(m_iCondFW); strValue.Format("%d", m_uVerBL); theApp.set_value("VER", "Bootloader", strValue); strValue.Format("%d", m_iCondBL); theApp.set_value("COND", "Bootloader", strValue); strValue.Format("%d", m_bUpOCX); theApp.set_value("ENV", "UpOCX", strValue); strValue.Format("%d", m_bUpWeb); theApp.set_value("ENV", "UpWeb", strValue); strValue.Format("%d", m_bUpFW); theApp.set_value("ENV", "UpFW", strValue); strValue.Format("%d", m_bUpBL); theApp.set_value("ENV", "UpBL", strValue); CDialog::OnOK(); } void CDlgPath::OnChkProtect() { // TODO: Add your control notification handler code here if (m_btnProtect.GetCheck()) { ((CButton*)GetDlgItem(IDC_CHK_OCX))->EnableWindow(FALSE); ((CButton*)GetDlgItem(IDC_CHK_WEB))->EnableWindow(FALSE); ((CButton*)GetDlgItem(IDC_CHK_FIRMWARE))->EnableWindow(FALSE); ((CButton*)GetDlgItem(IDC_BUTTON_BROWSE_OCX))->EnableWindow(FALSE); ((CButton*)GetDlgItem(IDC_BUTTON_BROWSE_WEB))->EnableWindow(FALSE); ((CButton*)GetDlgItem(IDC_BUTTON_BROWSE_FIRMWARE))->EnableWindow(FALSE); ((CButton*)GetDlgItem(IDC_EDIT_VER_FIRMWARE))->EnableWindow(FALSE); ((CButton*)GetDlgItem(IDC_STATIC_FW_VER))->EnableWindow(FALSE); m_cbFirmware.EnableWindow(FALSE); ((CButton*)GetDlgItem(IDC_STATIC_PACKAGE))->EnableWindow(TRUE); ((CButton*)GetDlgItem(IDC_EDIT_PACKAGE_PATH))->EnableWindow(TRUE); ((CButton*)GetDlgItem(IDC_BUTTON_BROWSE_PACKAGE))->EnableWindow(TRUE); } else { ((CButton*)GetDlgItem(IDC_CHK_OCX))->EnableWindow(TRUE); ((CButton*)GetDlgItem(IDC_CHK_WEB))->EnableWindow(TRUE); ((CButton*)GetDlgItem(IDC_CHK_FIRMWARE))->EnableWindow(TRUE); ((CButton*)GetDlgItem(IDC_BUTTON_BROWSE_OCX))->EnableWindow(TRUE); ((CButton*)GetDlgItem(IDC_BUTTON_BROWSE_WEB))->EnableWindow(TRUE); ((CButton*)GetDlgItem(IDC_BUTTON_BROWSE_FIRMWARE))->EnableWindow(TRUE); ((CButton*)GetDlgItem(IDC_EDIT_VER_FIRMWARE))->EnableWindow(TRUE); ((CButton*)GetDlgItem(IDC_STATIC_FW_VER))->EnableWindow(TRUE); m_cbFirmware.EnableWindow(TRUE); ((CButton*)GetDlgItem(IDC_STATIC_PACKAGE))->EnableWindow(FALSE); ((CButton*)GetDlgItem(IDC_EDIT_PACKAGE_PATH))->EnableWindow(FALSE); ((CButton*)GetDlgItem(IDC_BUTTON_BROWSE_PACKAGE))->EnableWindow(FALSE); } } void CDlgPath::OnButtonBrowsePackage() { // TODO: Add your control notification handler code here CFileDialog fileDlg(TRUE, NULL, theApp.get_value("PATH", "Package"), OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, "Protected File(*.enc;*.pkg)|*.enc;*.pkg||"); if (fileDlg.DoModal() == IDOK) { CString strPath = fileDlg.GetPathName(); SetDlgItemText(IDC_EDIT_PACKAGE_PATH, strPath); } }