RemoteNetConfig.cpp 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482
  1. // RemoteNetConfig.cpp : implementation file
  2. //
  3. #include "stdafx.h"
  4. #include "StoneU_HC_OCX.h"
  5. #include "RemoteNetConfig.h"
  6. #include "EmailInfo.h"
  7. #ifdef _DEBUG
  8. #define new DEBUG_NEW
  9. #undef THIS_FILE
  10. static char THIS_FILE[] = __FILE__;
  11. #endif
  12. /////////////////////////////////////////////////////////////////////////////
  13. // CRemoteNetConfig dialog
  14. extern BOOL checkIPStr(CString ip);
  15. CRemoteNetConfig::CRemoteNetConfig(CWnd* pParent /*=NULL*/)
  16. : CDialog(CRemoteNetConfig::IDD, pParent)
  17. {
  18. //{{AFX_DATA_INIT(CRemoteNetConfig)
  19. m_AccountSendName = _T("");
  20. m_AccountUserName = _T("");
  21. m_AccountPasswd = _T("");
  22. m_AccountPasswdConf = _T("");
  23. m_ServerAddress = _T("");
  24. m_AuthenCheck = FALSE;
  25. m_AttachCheck = FALSE;
  26. m_NTPInterval = 0;
  27. m_DDNSAddress = _T("");
  28. m_NTPAddress = _T("");
  29. m_DDNSUserName = _T("");
  30. m_DDNSPwdConf = _T("");
  31. m_DDNSPwd = _T("");
  32. m_AccountAddress = _T("");
  33. m_NFSDirectory = _T("");
  34. m_NTPCheck = FALSE;
  35. m_DDNSCheck = FALSE;
  36. m_NFSIPAddress = _T("");
  37. m_NTPInterHour = 0;
  38. m_NTPInterMin = 0;
  39. m_DnsIP = _T("");
  40. //}}AFX_DATA_INIT
  41. m_bChangeFlag = FALSE;
  42. }
  43. void CRemoteNetConfig::DoDataExchange(CDataExchange* pDX)
  44. {
  45. CDialog::DoDataExchange(pDX);
  46. //{{AFX_DATA_MAP(CRemoteNetConfig)
  47. DDX_Control(pDX, IDC_NFSDISKCOMBO, m_NFSDiskCombo);
  48. DDX_Control(pDX, IDC_INTERVALCOMBO, m_IntervalCombo);
  49. DDX_Control(pDX, IDC_SERVERCOMBO, m_ServerCombo);
  50. DDX_Control(pDX, IDC_RECVLIST, m_RecvList);
  51. DDX_Text(pDX, IDC_ACCOUNTSENDNAME, m_AccountSendName);
  52. DDX_Text(pDX, IDC_ACCOUNTUSERNAME, m_AccountUserName);
  53. DDX_Text(pDX, IDC_ACCOUNTPASSWD, m_AccountPasswd);
  54. DDX_Text(pDX, IDC_ACCOUNTPASSWDCONF, m_AccountPasswdConf);
  55. DDX_Text(pDX, IDC_SERVERADDRESS, m_ServerAddress);
  56. DDX_Check(pDX, IDC_AUTHENCHECK, m_AuthenCheck);
  57. DDX_Check(pDX, IDC_ATTACHCHECK, m_AttachCheck);
  58. DDX_Text(pDX, IDC_NTPINTERVAL, m_NTPInterval);
  59. DDX_Text(pDX, IDC_DDNSADDRESS, m_DDNSAddress);
  60. DDX_Text(pDX, IDC_NTPADDRESS, m_NTPAddress);
  61. DDX_Text(pDX, IDC_DDNSUSERNAME, m_DDNSUserName);
  62. DDX_Text(pDX, IDC_DDNSPASSWDCONFIRM, m_DDNSPwdConf);
  63. DDX_Text(pDX, IDC_DDNSPASSWD, m_DDNSPwd);
  64. DDX_Text(pDX, IDC_ACCOUNTADDRESS, m_AccountAddress);
  65. DDX_Text(pDX, IDC_NFSDIRECTORY, m_NFSDirectory);
  66. DDX_Check(pDX, IDC_NTPCHECK, m_NTPCheck);
  67. DDX_Check(pDX, IDC_DDNSCHECK, m_DDNSCheck);
  68. DDX_Text(pDX, IDC_NFSIP, m_NFSIPAddress);
  69. DDX_Text(pDX, IDC_NTPINTERVALHOUR, m_NTPInterHour);
  70. DDX_Text(pDX, IDC_NTPINTERVALMIN, m_NTPInterMin);
  71. DDX_Text(pDX, IDC_DNSIP, m_DnsIP);
  72. //}}AFX_DATA_MAP
  73. }
  74. BEGIN_MESSAGE_MAP(CRemoteNetConfig, CDialog)
  75. //{{AFX_MSG_MAP(CRemoteNetConfig)
  76. ON_BN_CLICKED(IDC_ADDRECV, OnAddrecv)
  77. ON_BN_CLICKED(IDC_DELRECV, OnDelrecv)
  78. ON_BN_CLICKED(IDC_NTPCHECK, OnNtpcheck)
  79. ON_BN_CLICKED(IDC_DDNSCHECK, OnDdnscheck)
  80. ON_BN_CLICKED(IDC_SAVEPARA, OnConfirm)
  81. ON_CBN_SELCHANGE(IDC_NFSDISKCOMBO, OnSelchangeNfsdiskcombo)
  82. ON_BN_CLICKED(IDC_AUTHENCHECK, OnAuthencheck)
  83. ON_BN_CLICKED(IDC_ATTACHCHECK, OnAttachcheck)
  84. //cHn delete ON_BN_CLICKED(IDC_CANCEL, OnCancel)
  85. ON_BN_CLICKED(IDC_SAVENFS, OnSavenfs)
  86. //}}AFX_MSG_MAP
  87. END_MESSAGE_MAP()
  88. /////////////////////////////////////////////////////////////////////////////
  89. // CRemoteNetConfig message handlers
  90. BOOL CRemoteNetConfig::OnInitDialog()
  91. {
  92. CDialog::OnInitDialog();
  93. m_IntervalCombo.SetCurSel(0);
  94. m_ServerCombo.SetCurSel(0);
  95. m_RecvList.SetExtendedStyle(LVS_EX_GRIDLINES | LVS_EX_FULLROWSELECT);
  96. m_RecvList.InsertColumn(0, "接收方姓名", LVCFMT_LEFT, 90, -1);
  97. m_RecvList.InsertColumn(1, "接收方Email地址", LVCFMT_LEFT, 200, -1);
  98. CString sTemp;
  99. DWORD dwReturned;
  100. // m_AccountEmailCfg.dwSize = sizeof(NET_DVR_EMAILCFG);
  101. if(!NET_DVR_GetDVRConfig(m_lServerID, NET_DVR_GET_EMAILPARACFG, 0, &m_AccountEmailCfg, sizeof(NET_DVR_EMAILCFG), &dwReturned))
  102. {
  103. sTemp.Format("ERROR: NET_DVR_GET_EMAILPARACFG = %d \n", NET_DVR_GetLastError());
  104. TRACE(sTemp);
  105. }
  106. // m_NetAppPara.dwSize = sizeof(NET_DVR_GET_NETAPPCFG);
  107. if(!NET_DVR_GetDVRConfig(m_lServerID, NET_DVR_GET_NETAPPCFG, 0, &m_NetAppPara, sizeof(NET_DVR_NETAPPCFG), &dwReturned))
  108. {
  109. sTemp.Format("ERROR: NET_DVR_GET_NETAPPCFG = %d \n", NET_DVR_GetLastError());
  110. TRACE(sTemp);
  111. }
  112. // m_NFSCfg.dwSize = sizeof(NET_DVR_NFSCFG);
  113. if(!NET_DVR_GetDVRConfig(m_lServerID, NET_DVR_GET_NFSCFG, 0, &m_NFSCfg, sizeof(NET_DVR_NFSCFG), &dwReturned))
  114. {
  115. sTemp.Format("ERROR: NET_DVR_GET_NFSCFG = %d \n", NET_DVR_GetLastError());
  116. TRACE(sTemp);
  117. }
  118. //information of email account...
  119. //2008-02-21 帐户名(sUserName)和发送者名称(sFromName)颠倒了,在此更正
  120. m_AccountSendName.Format("%s", m_AccountEmailCfg.sFromName);
  121. m_AccountAddress.Format("%s", m_AccountEmailCfg.sFromAddr);
  122. m_AccountUserName.Format("%s", m_AccountEmailCfg.sUserName);
  123. if(!m_AccountUserName.IsEmpty())
  124. {
  125. m_AccountPasswd.Format("%s", m_AccountEmailCfg.sPassWord);
  126. m_AccountPasswdConf = m_AccountPasswd;
  127. }
  128. CString tmp1,tmp2;
  129. tmp1.Format("%s", m_AccountEmailCfg.sToName1);
  130. tmp2.Format("%s", m_AccountEmailCfg.sToAddr1);
  131. if(!tmp1.IsEmpty())
  132. {
  133. int index = m_RecvList.InsertItem(m_RecvList.GetItemCount(), tmp1);
  134. m_RecvList.SetItemText(index, 1, tmp2);
  135. }
  136. tmp1.Format("%s", m_AccountEmailCfg.sToName2);
  137. tmp2.Format("%s", m_AccountEmailCfg.sToAddr2);
  138. if(!tmp2.IsEmpty())
  139. {
  140. int index = m_RecvList.InsertItem(m_RecvList.GetItemCount(), tmp1);
  141. m_RecvList.SetItemText(index, 1, tmp2);
  142. }
  143. m_AuthenCheck = m_AccountEmailCfg.byUseAuthen;
  144. if(m_AuthenCheck != TRUE)
  145. {
  146. m_AuthenCheck = FALSE;
  147. }
  148. m_AttachCheck = m_AccountEmailCfg.byAttachment;
  149. if(m_AttachCheck != TRUE)
  150. {
  151. m_AttachCheck = FALSE;
  152. }
  153. m_IntervalCombo.SetCurSel(m_AccountEmailCfg.byMailinterval);
  154. m_ServerAddress.Format("%s", m_AccountEmailCfg.sEmailServer);
  155. char ip[20];
  156. ZeroMemory(ip, 20);
  157. memcpy(ip, m_NetAppPara.sDNSIp, 16);
  158. tmp1.Format("%s", ip);
  159. if(checkIPStr(tmp1))
  160. {
  161. m_DnsIP = tmp1;
  162. }
  163. //Information of NTP
  164. m_NTPCheck = m_NetAppPara.struNtpClientParam.byEnableNTP;
  165. if(m_NTPCheck == TRUE)
  166. {
  167. EnableNTPItem(m_NTPCheck);
  168. m_NTPAddress.Format("%s", m_NetAppPara.struNtpClientParam.sNTPServer);
  169. m_NTPInterval = m_NetAppPara.struNtpClientParam.wInterval;
  170. m_NTPInterHour = m_NetAppPara.struNtpClientParam.cTimeDifferenceH;
  171. m_NTPInterMin = m_NetAppPara.struNtpClientParam.cTimeDifferenceM;
  172. }
  173. else
  174. {
  175. m_NTPCheck = FALSE;
  176. }
  177. //Information of DDNS
  178. m_DDNSCheck = m_NetAppPara.struDDNSClientParam.byEnableDDNS;
  179. if(m_DDNSCheck == TRUE)
  180. {
  181. EnableDDNSItem(m_DDNSCheck);
  182. m_DDNSAddress.Format("%s", m_NetAppPara.struDDNSClientParam.sDomainName);
  183. m_DDNSUserName.Format("%s", m_NetAppPara.struDDNSClientParam.sUsername);
  184. m_DDNSPwd.Format("%s", m_NetAppPara.struDDNSClientParam.sPassword);
  185. m_DDNSPwdConf = m_DDNSPwd;
  186. }
  187. else
  188. {
  189. m_DDNSCheck = FALSE;
  190. }
  191. //Information of NFS
  192. for (int i=0; i<MAX_NFS_DISK; i++)
  193. {
  194. tmp1.Format("%d", i+1);
  195. m_NFSDiskCombo.AddString(tmp1);
  196. }
  197. m_NFSDiskCombo.SetCurSel(0);
  198. ZeroMemory(ip, 20);
  199. memcpy(ip, m_NFSCfg.struNfsDiskParam[0].sNfsHostIPAddr,16);
  200. tmp1.Format("%s", ip);
  201. if(checkIPStr(tmp1))
  202. {
  203. m_NFSDirectory.Format("%s", m_NFSCfg.struNfsDiskParam[0].sNfsDirectory);
  204. m_NFSIPAddress.Format("%s", m_NFSCfg.struNfsDiskParam[0].sNfsHostIPAddr);
  205. }
  206. UpdateData(FALSE);
  207. return FALSE; // return TRUE unless you set the focus to a control
  208. // EXCEPTION: OCX Property Pages should return FALSE
  209. }
  210. void CRemoteNetConfig::OnAddrecv()
  211. {
  212. // TODO: Add your control notification handler code here
  213. if(m_RecvList.GetItemCount() >= 2)
  214. {
  215. MessageBox("目前只支持两个接收端!", "温馨提示", MB_ICONINFORMATION);
  216. return;
  217. }
  218. CEmailInfo email;
  219. if(IDOK == email.DoModal())
  220. {
  221. int index = m_RecvList.InsertItem(m_RecvList.GetItemCount(), email.m_EmailName);
  222. m_RecvList.SetItemText(index, 1, email.m_EmailAddress);
  223. }
  224. }
  225. void CRemoteNetConfig::OnDelrecv()
  226. {
  227. // TODO: Add your control notification handler code here
  228. POSITION pos = m_RecvList.GetFirstSelectedItemPosition();
  229. int select = m_RecvList.GetNextSelectedItem(pos);
  230. if(select < 0)
  231. {
  232. return;
  233. }
  234. m_RecvList.DeleteItem(select);
  235. }
  236. void CRemoteNetConfig::OnNtpcheck()
  237. {
  238. // TODO: Add your control notification handler code here
  239. // m_NTPCheck = !m_NTPCheck;
  240. UpdateData(TRUE);
  241. EnableNTPItem(m_NTPCheck);
  242. }
  243. void CRemoteNetConfig::OnDdnscheck()
  244. {
  245. // TODO: Add your control notification handler code here
  246. // m_DDNSCheck = !m_DDNSCheck;
  247. UpdateData(TRUE);
  248. EnableDDNSItem(m_DDNSCheck);
  249. }
  250. void CRemoteNetConfig::OnConfirm()
  251. {
  252. // TODO: Add your control notification handler code here
  253. UpdateData(TRUE);
  254. if (!m_AccountAddress.IsEmpty() && !CheckEmailAddress(m_AccountAddress))
  255. {
  256. MessageBox("Email地址有误!", "温馨提示", MB_ICONINFORMATION);
  257. // return;
  258. }
  259. if (m_AccountPasswd != m_AccountPasswdConf)
  260. {
  261. MessageBox("Email帐户密码不匹配!", "温馨提示", MB_ICONINFORMATION);
  262. // return;
  263. }
  264. if (m_DDNSCheck &&m_DDNSPwd != m_DDNSPwdConf)
  265. {
  266. MessageBox("DDNS帐户密码不匹配!", "温馨提示", MB_ICONINFORMATION);
  267. // return;
  268. }
  269. if (!m_NFSIPAddress.IsEmpty() && !checkIPStr(m_NFSIPAddress))
  270. {
  271. MessageBox("NFS: IP地址有误!", "温馨提示", MB_ICONINFORMATION);
  272. // return;
  273. }
  274. if(!m_AccountPasswd.IsEmpty() && m_AccountUserName.IsEmpty())
  275. {
  276. MessageBox("Email帐户名不能为空!", "温馨提示", MB_ICONINFORMATION);
  277. // return;
  278. }
  279. if(m_NTPInterHour < -12 || m_NTPInterHour > 13 || m_NTPInterMin < 0 || m_NTPInterMin >59)
  280. {
  281. MessageBox("时差输入有误!", "温馨提示", MB_ICONINFORMATION);
  282. // return;
  283. }
  284. if (!m_DnsIP.IsEmpty() && !checkIPStr(m_DnsIP))
  285. {
  286. MessageBox("DNS: IP地址有误!", "温馨提示", MB_ICONINFORMATION);
  287. // return;
  288. }
  289. ZeroMemory(&m_AccountEmailCfg, sizeof(m_AccountEmailCfg));
  290. m_AccountEmailCfg.dwSize = sizeof(m_AccountEmailCfg);
  291. //2008-02-21 帐户名(m_AccountUserName)和发送者名称(m_AccountSendName)颠倒了,更正
  292. sprintf(m_AccountEmailCfg.sUserName, "%s", m_AccountUserName);
  293. sprintf(m_AccountEmailCfg.sPassWord, "%s", m_AccountPasswd);
  294. sprintf(m_AccountEmailCfg.sFromName, "%s", m_AccountSendName);
  295. sprintf(m_AccountEmailCfg.sFromAddr, "%s", m_AccountAddress);
  296. if(m_RecvList.GetItemCount() > 0)
  297. {
  298. sprintf(m_AccountEmailCfg.sToName1, "%s", m_RecvList.GetItemText(0,0));
  299. sprintf(m_AccountEmailCfg.sToAddr1, "%s", m_RecvList.GetItemText(0,1));
  300. }
  301. if(m_RecvList.GetItemCount() > 1)
  302. {
  303. sprintf(m_AccountEmailCfg.sToName2, "%s", m_RecvList.GetItemText(1,0));
  304. sprintf(m_AccountEmailCfg.sToAddr2, "%s", m_RecvList.GetItemText(1,1));
  305. }
  306. sprintf(m_AccountEmailCfg.sEmailServer, "%s", m_ServerAddress);
  307. m_AccountEmailCfg.byServerType = 0; //目前只限SMTP...
  308. m_AccountEmailCfg.byUseAuthen = m_AuthenCheck;
  309. m_AccountEmailCfg.byAttachment = m_AttachCheck;
  310. m_AccountEmailCfg.byMailinterval = m_IntervalCombo.GetCurSel();
  311. ZeroMemory(&m_NTPPara, sizeof(m_NTPPara));
  312. m_NTPPara.byEnableNTP = m_NTPCheck;
  313. if (m_NTPCheck)
  314. {
  315. memcpy(m_NTPPara.sNTPServer, m_NTPAddress, m_NTPAddress.GetLength());
  316. m_NTPPara.wInterval = m_NTPInterval;
  317. m_NTPPara.cTimeDifferenceH = (char)m_NTPInterHour;
  318. m_NTPPara.cTimeDifferenceM = (char)m_NTPInterMin;
  319. }
  320. ZeroMemory(&m_DDNSPara, sizeof(m_DDNSPara));
  321. m_DDNSPara.byEnableDDNS = m_DDNSCheck;
  322. if (m_DDNSCheck)
  323. {
  324. memcpy(m_DDNSPara.sDomainName,m_DDNSAddress, m_DDNSAddress.GetLength());
  325. memcpy(m_DDNSPara.sUsername,m_DDNSUserName, m_DDNSUserName.GetLength());
  326. memcpy(m_DDNSPara.sPassword,m_DDNSPwd, m_DDNSPwd.GetLength());
  327. }
  328. ZeroMemory(&m_NFSCfg.struNfsDiskParam[m_NFSDiskCombo.GetCurSel()], sizeof(m_NFSCfg.struNfsDiskParam[m_NFSDiskCombo.GetCurSel()]));
  329. m_NFSCfg.dwSize = sizeof(m_NFSCfg);
  330. sprintf(m_NFSCfg.struNfsDiskParam[m_NFSDiskCombo.GetCurSel()].sNfsHostIPAddr, "%s", m_NFSIPAddress);
  331. memcpy(m_NFSCfg.struNfsDiskParam[m_NFSDiskCombo.GetCurSel()].sNfsDirectory, m_NFSDirectory, m_NFSDirectory.GetLength());
  332. ZeroMemory(&m_NetAppPara, sizeof(m_NetAppPara));
  333. m_NetAppPara.dwSize = sizeof(m_NetAppPara);
  334. sprintf(m_NetAppPara.sDNSIp, "%s", m_DnsIP);
  335. //原样考一份,用不用再说...
  336. m_NetAppPara.struNtpClientParam.byEnableNTP = m_NTPPara.byEnableNTP;
  337. if (m_NTPPara.byEnableNTP)
  338. {
  339. memcpy(m_NetAppPara.struNtpClientParam.sNTPServer, m_NTPPara.sNTPServer, 64);
  340. m_NetAppPara.struNtpClientParam.wInterval = m_NTPPara.wInterval;
  341. m_NetAppPara.struNtpClientParam.cTimeDifferenceH = m_NTPPara.cTimeDifferenceH;
  342. m_NetAppPara.struNtpClientParam.cTimeDifferenceM = m_NTPPara.cTimeDifferenceM;
  343. }
  344. m_NetAppPara.struDDNSClientParam.byEnableDDNS = m_DDNSPara.byEnableDDNS;
  345. if (m_DDNSPara.byEnableDDNS)
  346. {
  347. memcpy(m_NetAppPara.struDDNSClientParam.sUsername, m_DDNSPara.sUsername, NAME_LEN);
  348. memcpy(m_NetAppPara.struDDNSClientParam.sPassword, m_DDNSPara.sPassword, PASSWD_LEN);
  349. memcpy(m_NetAppPara.struDDNSClientParam.sDomainName, m_DDNSPara.sDomainName, 64);
  350. }
  351. CString sTemp;
  352. BOOL error = FALSE;
  353. if (!NET_DVR_SetDVRConfig(m_lServerID, NET_DVR_SET_EMAILPARACFG, 0, &m_AccountEmailCfg, sizeof(NET_DVR_EMAILCFG)))
  354. {
  355. sTemp.Format("ERROR: NET_DVR_SET_EMAILPARACFG = %d \n", NET_DVR_GetLastError());
  356. TRACE(sTemp);
  357. MessageBox("Email参数保存失败!", "温馨提示", MB_ICONINFORMATION);
  358. error = TRUE;
  359. }
  360. if (!NET_DVR_SetDVRConfig(m_lServerID, NET_DVR_SET_NETAPPCFG, 0, &m_NetAppPara, sizeof(NET_DVR_NETAPPCFG)))
  361. {
  362. sTemp.Format("ERROR: NET_DVR_SET_NETAPPCFG = %d \n", NET_DVR_GetLastError());
  363. TRACE(sTemp);
  364. MessageBox("NetApp参数保存失败!", "温馨提示", MB_ICONINFORMATION);
  365. error = TRUE;
  366. }
  367. if (!NET_DVR_SetDVRConfig(m_lServerID, NET_DVR_SET_NFSCFG, 0, &m_NFSCfg,sizeof(NET_DVR_NFSCFG)))
  368. {
  369. sTemp.Format("ERROR: NET_DVR_SET_NFSCFG = %d \n", NET_DVR_GetLastError());
  370. TRACE(sTemp);
  371. MessageBox("NFS参数保存失败!", "温馨提示", MB_ICONINFORMATION);
  372. error = TRUE;
  373. }
  374. if(!error)
  375. {
  376. MessageBox("参数保存成功!", "温馨提示", MB_ICONINFORMATION);
  377. }
  378. }
  379. void CRemoteNetConfig::OnCancel()
  380. {
  381. // TODO: Add your control notification handler code here
  382. m_bChangeFlag = FALSE;
  383. CDialog::OnCancel();
  384. }
  385. void CRemoteNetConfig::EnableNTPItem(BOOL bEnable)
  386. {
  387. GetDlgItem(IDC_NTPADDRESS)->EnableWindow(bEnable);
  388. GetDlgItem(IDC_NTPINTERVAL)->EnableWindow(bEnable);
  389. GetDlgItem(IDC_NTPINTERVALHOUR)->EnableWindow(bEnable);
  390. GetDlgItem(IDC_NTPINTERVALMIN)->EnableWindow(bEnable);
  391. }
  392. void CRemoteNetConfig::EnableDDNSItem(BOOL bEnable)
  393. {
  394. GetDlgItem(IDC_DDNSADDRESS)->EnableWindow(bEnable);
  395. GetDlgItem(IDC_DDNSUSERNAME)->EnableWindow(bEnable);
  396. GetDlgItem(IDC_DDNSPASSWD)->EnableWindow(bEnable);
  397. GetDlgItem(IDC_DDNSPASSWDCONFIRM)->EnableWindow(bEnable);
  398. }
  399. void CRemoteNetConfig::OnSelchangeNfsdiskcombo()
  400. {
  401. // TODO: Add your control notification handler code here
  402. int sel = m_NFSDiskCombo.GetCurSel();
  403. CString tmp;
  404. tmp.Format("%s", m_NFSCfg.struNfsDiskParam[sel].sNfsHostIPAddr);
  405. if (checkIPStr(tmp))
  406. {
  407. m_NFSIPAddress = tmp;
  408. m_NFSDirectory.Format("%s", m_NFSCfg.struNfsDiskParam[sel].sNfsDirectory);
  409. }
  410. UpdateData(FALSE);
  411. }
  412. void CRemoteNetConfig::OnAuthencheck()
  413. {
  414. // TODO: Add your control notification handler code here
  415. UpdateData(TRUE);
  416. }
  417. void CRemoteNetConfig::OnAttachcheck()
  418. {
  419. // TODO: Add your control notification handler code here
  420. UpdateData(TRUE);
  421. }
  422. void CRemoteNetConfig::OnSavenfs()
  423. {
  424. // TODO: Add your control notification handler code here
  425. UpdateData(TRUE);
  426. ZeroMemory(&m_NFSCfg.struNfsDiskParam[m_NFSDiskCombo.GetCurSel()], sizeof(m_NFSCfg.struNfsDiskParam[m_NFSDiskCombo.GetCurSel()]));
  427. sprintf(m_NFSCfg.struNfsDiskParam[m_NFSDiskCombo.GetCurSel()].sNfsHostIPAddr, "%s", m_NFSIPAddress);
  428. memcpy(m_NFSCfg.struNfsDiskParam[m_NFSDiskCombo.GetCurSel()].sNfsDirectory, m_NFSDirectory, m_NFSDirectory.GetLength());
  429. }