RemoteUpgrade.cpp 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174
  1. // RemoteUpgrade.cpp : implementation file
  2. //
  3. #include "stdafx.h"
  4. #include "StoneU_HC_OCX.h"
  5. #include "RemoteUpgrade.h"
  6. #ifdef _DEBUG
  7. #define new DEBUG_NEW
  8. #undef THIS_FILE
  9. static char THIS_FILE[] = __FILE__;
  10. #endif
  11. /////////////////////////////////////////////////////////////////////////////
  12. // CRemoteUpgrade dialog
  13. CRemoteUpgrade::CRemoteUpgrade(CWnd* pParent /*=NULL*/)
  14. : CDialog(CRemoteUpgrade::IDD, pParent)
  15. {
  16. //{{AFX_DATA_INIT(CRemoteUpgrade)
  17. m_sUpgradeFile = _T("");
  18. m_static = _T("");
  19. //}}AFX_DATA_INIT
  20. }
  21. void CRemoteUpgrade::DoDataExchange(CDataExchange* pDX)
  22. {
  23. CDialog::DoDataExchange(pDX);
  24. //{{AFX_DATA_MAP(CRemoteUpgrade)
  25. DDX_Text(pDX, IDC_UPGRADEFILE, m_sUpgradeFile);
  26. DDX_Text(pDX, IDC_UPGRADESTATIC, m_static);
  27. //}}AFX_DATA_MAP
  28. }
  29. BEGIN_MESSAGE_MAP(CRemoteUpgrade, CDialog)
  30. //{{AFX_MSG_MAP(CRemoteUpgrade)
  31. ON_BN_CLICKED(IDC_BUTTONBROWSEFILE, OnButtonbrowsefile)
  32. ON_BN_CLICKED(IDC_BUTTONBUPGRADE, OnButtonbupgrade)
  33. ON_BN_CLICKED(IDC_BUTTONBEXIT, OnButtonbexit)
  34. ON_WM_TIMER()
  35. //}}AFX_MSG_MAP
  36. END_MESSAGE_MAP()
  37. /////////////////////////////////////////////////////////////////////////////
  38. // CRemoteUpgrade message handlers
  39. void CRemoteUpgrade::OnButtonbrowsefile()
  40. {
  41. // TODO: Add your control notification handler code here
  42. static char szFilter[]="All File(*.*)|*.*||";
  43. CFileDialog dlg(TRUE,"*.*","digicap",OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,
  44. szFilter);
  45. if(dlg.DoModal()==IDOK)
  46. {
  47. m_sUpgradeFile = dlg.GetPathName();
  48. UpdateData(FALSE);
  49. }
  50. }
  51. void CRemoteUpgrade::OnButtonbupgrade()
  52. {
  53. // TODO: Add your control notification handler code here
  54. char filename[100];
  55. UpdateData(TRUE);
  56. strcpy(filename,m_sUpgradeFile);
  57. CFile file;
  58. if(!file.Open(filename,NULL))
  59. {
  60. MessageBox("打开文件失败或无此文件!", "温馨提示", MB_ICONINFORMATION);
  61. return;
  62. }
  63. DWORD dwFileSize = file.GetLength();
  64. if(dwFileSize == 0)
  65. MessageBox("升级文件为空!", "温馨提示", MB_ICONINFORMATION);
  66. file.Close();
  67. m_lUpgrade = NET_DVR_Upgrade(m_lServerID, filename);
  68. if(m_lUpgrade < 0)
  69. {
  70. MessageBox("升级失败!", "温馨提示", MB_ICONINFORMATION);
  71. }
  72. else
  73. {
  74. GetDlgItem(IDC_UPGRADESTATIC)->ShowWindow(SW_SHOW);
  75. GetDlgItem(IDC_BUTTONBUPGRADE)->EnableWindow(FALSE);
  76. GetDlgItem(IDC_BUTTONBEXIT)->EnableWindow(FALSE);
  77. GetDlgItem(IDC_BUTTONBROWSEFILE)->EnableWindow(FALSE);
  78. m_static = "状态:正在升级服务器,请等待......";
  79. m_bUpgrade = TRUE;
  80. m_nTime = SetTimer(UPGRADE_TIMER,1000,NULL);
  81. UpdateData(FALSE);
  82. }
  83. }
  84. void CRemoteUpgrade::OnButtonbexit()
  85. {
  86. // TODO: Add your control notification handler code here
  87. if(m_nTime)
  88. {
  89. KillTimer(UPGRADE_TIMER);
  90. }
  91. CDialog::OnCancel();
  92. }
  93. void CRemoteUpgrade::OnTimer(UINT nIDEvent)
  94. {
  95. // TODO: Add your message handler code here and/or call default
  96. if(nIDEvent == UPGRADE_TIMER)
  97. {
  98. if(m_bUpgrade)
  99. {
  100. int UpgradeStatic = NET_DVR_GetUpgradeState(m_lUpgrade);
  101. if(UpgradeStatic == 2)
  102. {
  103. m_static = "状态:正在升级服务器,请等待......";
  104. UpdateData(FALSE);
  105. }
  106. else
  107. {
  108. switch(UpgradeStatic) {
  109. case -1:
  110. MessageBox("升级失败!", "温馨提示", MB_ICONINFORMATION);
  111. break;
  112. case 1:
  113. m_static = "状态:升级服务器成功!";
  114. break;
  115. case 3:
  116. m_static = "状态:升级服务器失败!";
  117. break;
  118. case 4:
  119. m_static = "状态:网络断开,状态未知!";
  120. break;
  121. case 5:
  122. m_static = "状态:升级文件语言版本不匹配!";
  123. break;
  124. default:
  125. break;
  126. }
  127. UpdateData(FALSE);
  128. m_bUpgrade = FALSE;
  129. GetDlgItem(IDC_BUTTONBUPGRADE)->EnableWindow(TRUE);
  130. GetDlgItem(IDC_BUTTONBEXIT)->EnableWindow(TRUE);
  131. GetDlgItem(IDC_BUTTONBROWSEFILE)->EnableWindow(TRUE);
  132. NET_DVR_CloseUpgradeHandle(m_lUpgrade);
  133. }
  134. }
  135. }
  136. CDialog::OnTimer(nIDEvent);
  137. }
  138. BOOL CRemoteUpgrade::OnInitDialog()
  139. {
  140. CDialog::OnInitDialog();
  141. // TODO: Add extra initialization here
  142. m_sUpgradeFile.Format("c:\\digicap");
  143. UpdateData(FALSE);
  144. m_bUpgrade = FALSE;
  145. return TRUE; // return TRUE unless you set the focus to a control
  146. // EXCEPTION: OCX Property Pages should return FALSE
  147. }
  148. void CRemoteUpgrade::OnCancel()
  149. {
  150. // TODO: Add extra cleanup here
  151. // CDialog::OnCancel();
  152. }