// RemoteUpgrade.cpp : implementation file // #include "stdafx.h" #include "newclient.h" #include "RemoteUpgrade.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CRemoteUpgrade dialog CRemoteUpgrade::CRemoteUpgrade(CWnd* pParent /*=NULL*/) : CDialog(CRemoteUpgrade::IDD, pParent) { //{{AFX_DATA_INIT(CRemoteUpgrade) m_sUpgradeFile = _T(""); m_static = _T(""); //}}AFX_DATA_INIT } void CRemoteUpgrade::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CRemoteUpgrade) DDX_Text(pDX, IDC_UPGRADEFILE, m_sUpgradeFile); DDX_Text(pDX, IDC_UPGRADESTATIC, m_static); //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(CRemoteUpgrade, CDialog) //{{AFX_MSG_MAP(CRemoteUpgrade) ON_BN_CLICKED(IDC_BUTTONBROWSEFILE, OnButtonbrowsefile) ON_BN_CLICKED(IDC_BUTTONBUPGRADE, OnButtonbupgrade) ON_BN_CLICKED(IDC_BUTTONBEXIT, OnButtonbexit) ON_WM_TIMER() //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CRemoteUpgrade message handlers void CRemoteUpgrade::OnButtonbrowsefile() { // TODO: Add your control notification handler code here static char szFilter[]="All File(*.*)|*.*||"; CFileDialog dlg(TRUE,"*.*","digicap",OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT, szFilter); if(dlg.DoModal()==IDOK) { m_sUpgradeFile = dlg.GetPathName(); UpdateData(FALSE); } } void CRemoteUpgrade::OnButtonbupgrade() { // TODO: Add your control notification handler code here char filename[100]; UpdateData(TRUE); strcpy(filename,m_sUpgradeFile); CFile file; if(!file.Open(filename,NULL)) { AfxMessageBox("打开文件失败或无此文件!"); return; } DWORD dwFileSize = file.GetLength(); if(dwFileSize == 0) AfxMessageBox("升级文件为空!"); file.Close(); m_lUpgrade = NET_DVR_Upgrade(m_lServerID, filename); if(m_lUpgrade < 0) { AfxMessageBox("升级失败!"); } else { GetDlgItem(IDC_UPGRADESTATIC)->ShowWindow(SW_SHOW); GetDlgItem(IDC_BUTTONBUPGRADE)->EnableWindow(FALSE); GetDlgItem(IDC_BUTTONBEXIT)->EnableWindow(FALSE); GetDlgItem(IDC_BUTTONBROWSEFILE)->EnableWindow(FALSE); m_static = "状态:正在升级服务器,请等待......"; m_bUpgrade = TRUE; m_nTime = SetTimer(UPGRADE_TIMER,1000,NULL); UpdateData(FALSE); } } void CRemoteUpgrade::OnButtonbexit() { // TODO: Add your control notification handler code here if(m_nTime) { KillTimer(UPGRADE_TIMER); } CDialog::OnCancel(); } void CRemoteUpgrade::OnTimer(UINT nIDEvent) { // TODO: Add your message handler code here and/or call default if(nIDEvent == UPGRADE_TIMER) { if(m_bUpgrade) { int UpgradeStatic = NET_DVR_GetUpgradeState(m_lUpgrade); if(UpgradeStatic == 2) { m_static = "状态:正在升级服务器,请等待......"; UpdateData(FALSE); } else { switch(UpgradeStatic) { case -1: AfxMessageBox("升级失败!"); break; case 1: m_static = "状态:升级服务器成功!"; break; case 3: m_static = "状态:升级服务器失败!"; break; case 4: m_static = "状态:网络断开,状态未知!"; break; case 5: m_static = "状态:升级文件语言版本不匹配!"; break; default: break; } UpdateData(FALSE); m_bUpgrade = FALSE; GetDlgItem(IDC_BUTTONBUPGRADE)->EnableWindow(TRUE); GetDlgItem(IDC_BUTTONBEXIT)->EnableWindow(TRUE); GetDlgItem(IDC_BUTTONBROWSEFILE)->EnableWindow(TRUE); NET_DVR_CloseUpgradeHandle(m_lUpgrade); } } } CDialog::OnTimer(nIDEvent); } BOOL CRemoteUpgrade::OnInitDialog() { CDialog::OnInitDialog(); // TODO: Add extra initialization here m_sUpgradeFile.Format("c:\\digicap"); UpdateData(FALSE); m_bUpgrade = FALSE; return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE } void CRemoteUpgrade::OnCancel() { // TODO: Add extra cleanup here // CDialog::OnCancel(); }