ProxySetDlg.cpp
上传用户:zhanglf88
上传日期:2013-11-19
资源大小:6036k
文件大小:7k
源码类别:

金融证券系统

开发平台:

Visual C++

  1. // ProxySetDlg.cpp : implementation file
  2. //
  3. #include "stdafx.h"
  4. #include "ProxySetDlg.h"
  5. #include "ProxySocket.h"
  6. #ifdef _DEBUG
  7. #define new DEBUG_NEW
  8. #undef THIS_FILE
  9. static char THIS_FILE[] = __FILE__;
  10. #endif
  11. /////////////////////////////////////////////////////////////////////////////
  12. // CProxySetDlg dialog
  13. CProxySetDlg::CProxySetDlg(CWnd* pParent /*=NULL*/)
  14. : CDialog(CProxySetDlg::IDD, pParent)
  15. {
  16. //{{AFX_DATA_INIT(CProxySetDlg)
  17. m_strProxyAddress = _T("");
  18. m_nProxyPort = 0;
  19. m_strProxyUser = _T("");
  20. m_strProxyPasswd = _T("");
  21. //}}AFX_DATA_INIT
  22. }
  23. void CProxySetDlg::EnableWindows( BOOL bEnable )
  24. {
  25. m_staticProxyAddress.EnableWindow( bEnable );
  26. m_editProxyAddress.EnableWindow( bEnable );
  27. m_staticProxyPort.EnableWindow( bEnable );
  28. m_editProxyPort.EnableWindow( bEnable );
  29. m_staticProxyUser.EnableWindow( bEnable );
  30. m_editProxyUser.EnableWindow( bEnable );
  31. m_staticProxyPasswd.EnableWindow( bEnable );
  32. m_editProxyPasswd.EnableWindow( bEnable );
  33. CWnd * pWnd = GetDlgItem( IDC_PROXY_SOCKS4 );
  34. if( pWnd ) pWnd->EnableWindow( bEnable );
  35. pWnd = GetDlgItem( IDC_PROXY_SOCKS5 );
  36. if( pWnd ) pWnd->EnableWindow( bEnable );
  37. pWnd = GetDlgItem( IDC_PROXY_HTTP );
  38. if( pWnd ) pWnd->EnableWindow( bEnable );
  39. }
  40. int CProxySetDlg::DoModal()
  41. {
  42. HINSTANCE hInstanceOld = AfxGetResourceHandle();
  43. AfxSetResourceHandle( AfxGetModuleHandle() );
  44. int nRet = CDialog::DoModal();
  45. AfxSetResourceHandle( hInstanceOld );
  46. return nRet;
  47. }
  48. void CProxySetDlg::DoDataExchange(CDataExchange* pDX)
  49. {
  50. CDialog::DoDataExchange(pDX);
  51. //{{AFX_DATA_MAP(CProxySetDlg)
  52. DDX_Control(pDX, IDCANCEL, m_btnCancel);
  53. DDX_Control(pDX, IDOK, m_btnOK);
  54. DDX_Control(pDX, IDC_EDIT_PROXYPASSWD, m_editProxyPasswd);
  55. DDX_Control(pDX, IDC_EDIT_PROXYUSER, m_editProxyUser);
  56. DDX_Control(pDX, IDC_STATIC_PROXYPASSWD, m_staticProxyPasswd);
  57. DDX_Control(pDX, IDC_STATIC_PROXYUSER, m_staticProxyUser);
  58. DDX_Control(pDX, IDC_EDIT_PROXYPORT, m_editProxyPort);
  59. DDX_Control(pDX, IDC_EDIT_PROXYADDRESS, m_editProxyAddress);
  60. DDX_Control(pDX, IDC_STATIC_PROXYPORT, m_staticProxyPort);
  61. DDX_Control(pDX, IDC_STATIC_PROXYADDRESS, m_staticProxyAddress);
  62. DDX_Text(pDX, IDC_EDIT_PROXYADDRESS, m_strProxyAddress);
  63. DDX_Text(pDX, IDC_EDIT_PROXYPORT, m_nProxyPort);
  64. DDV_MinMaxUInt(pDX, m_nProxyPort, 0, 65535);
  65. DDX_Text(pDX, IDC_EDIT_PROXYUSER, m_strProxyUser);
  66. DDX_Text(pDX, IDC_EDIT_PROXYPASSWD, m_strProxyPasswd);
  67. DDV_MaxChars(pDX, m_strProxyAddress, CProxySocket::MaxLenAddress);
  68. DDV_MaxChars(pDX, m_strProxyUser, CProxySocket::MaxLenAddress);
  69. DDV_MaxChars(pDX, m_strProxyPasswd, CProxySocket::MaxLenAddress);
  70. //}}AFX_DATA_MAP
  71. }
  72. BEGIN_MESSAGE_MAP(CProxySetDlg, CDialog)
  73. //{{AFX_MSG_MAP(CProxySetDlg)
  74. ON_BN_CLICKED(IDC_DIRECT, OnDirect)
  75. ON_BN_CLICKED(IDC_PRECONFIG, OnPreconfig)
  76. ON_BN_CLICKED(IDC_PROXY, OnProxy)
  77. ON_BN_CLICKED(IDC_PROXY_SOCKS4, OnProxySocks4)
  78. ON_BN_CLICKED(IDC_PROXY_SOCKS5, OnProxySocks5)
  79. ON_BN_CLICKED(IDC_PROXY_HTTP, OnProxyHttp)
  80. //}}AFX_MSG_MAP
  81. END_MESSAGE_MAP()
  82. /////////////////////////////////////////////////////////////////////////////
  83. // CProxySetDlg message handlers
  84. BOOL CProxySetDlg::OnInitDialog() 
  85. {
  86. CDialog::OnInitDialog();
  87. // TODO: Add extra initialization here
  88. int nAccessType = AfxGetQSProfile().GetAccessType();
  89. int nProxyType = AfxGetQSProfile().GetProxyType();
  90. m_strProxyAddress = AfxGetQSProfile().GetProxyAddress();
  91. m_nProxyPort = AfxGetQSProfile().GetProxyPort();
  92. m_strProxyUser = AfxGetQSProfile().GetProxyUser();
  93. m_strProxyPasswd = AfxGetQSProfile().GetProxyPasswd();
  94. UpdateData( FALSE );
  95. if( CProxySocket::TypeSocks4 == nProxyType )
  96. {
  97. CheckRadioButton( IDC_PROXY_SOCKS4, IDC_PROXY_HTTP, IDC_PROXY_SOCKS4 );
  98. OnProxySocks4();
  99. }
  100. else if( CProxySocket::TypeSocks5 == nProxyType )
  101. {
  102. CheckRadioButton( IDC_PROXY_SOCKS4, IDC_PROXY_HTTP, IDC_PROXY_SOCKS5 );
  103. OnProxySocks5();
  104. }
  105. else
  106. {
  107. CheckRadioButton( IDC_PROXY_SOCKS4, IDC_PROXY_HTTP, IDC_PROXY_HTTP );
  108. OnProxyHttp();
  109. }
  110. if( INTERNET_OPEN_TYPE_DIRECT == nAccessType )
  111. {
  112. CheckRadioButton( IDC_DIRECT, IDC_PROXY, IDC_DIRECT );
  113. OnDirect();
  114. }
  115. else if( INTERNET_OPEN_TYPE_PROXY == nAccessType )
  116. {
  117. CheckRadioButton( IDC_DIRECT, IDC_PROXY, IDC_PROXY );
  118. OnProxy();
  119. }
  120. else
  121. {
  122. CheckRadioButton( IDC_DIRECT, IDC_PROXY, IDC_PRECONFIG );
  123. OnPreconfig( );
  124. }
  125. return TRUE;  // return TRUE unless you set the focus to a control
  126.               // EXCEPTION: OCX Property Pages should return FALSE
  127. }
  128. void CProxySetDlg::OnDirect() 
  129. {
  130. EnableWindows( FALSE );
  131. }
  132. void CProxySetDlg::OnPreconfig() 
  133. {
  134. EnableWindows( FALSE );
  135. }
  136. void CProxySetDlg::OnProxy() 
  137. {
  138. EnableWindows( TRUE );
  139. CButton * pbtnProxySocks4 = (CButton *)GetDlgItem(IDC_PROXY_SOCKS4);
  140. if( pbtnProxySocks4 && pbtnProxySocks4->GetCheck() )
  141. {
  142. m_staticProxyUser.EnableWindow( FALSE );
  143. m_editProxyUser.EnableWindow( FALSE );
  144. m_staticProxyPasswd.EnableWindow( FALSE );
  145. m_editProxyPasswd.EnableWindow( FALSE );
  146. }
  147. }
  148. void CProxySetDlg::OnProxySocks4() 
  149. {
  150. EnableWindows( TRUE );
  151. m_staticProxyUser.EnableWindow( FALSE );
  152. m_editProxyUser.EnableWindow( FALSE );
  153. m_staticProxyPasswd.EnableWindow( FALSE );
  154. m_editProxyPasswd.EnableWindow( FALSE );
  155. }
  156. void CProxySetDlg::OnProxySocks5() 
  157. {
  158. EnableWindows( TRUE );
  159. }
  160. void CProxySetDlg::OnProxyHttp() 
  161. {
  162. EnableWindows( TRUE );
  163. }
  164. void CProxySetDlg::OnOK() 
  165. {
  166. // TODO: Add extra validation here
  167. UpdateData( );
  168. int nAccessType = INTERNET_OPEN_TYPE_PRECONFIG;
  169. CButton * pbtnDirect = (CButton *)GetDlgItem( IDC_DIRECT );
  170. // CButton * pbtnPreconfig = (CButton *)GetDlgItem( IDC_PRECONFIG );
  171. CButton * pbtnProxy = (CButton *)GetDlgItem( IDC_PROXY );
  172. if( pbtnDirect && pbtnDirect->GetCheck() )
  173. nAccessType = INTERNET_OPEN_TYPE_DIRECT;
  174. else if( pbtnProxy && pbtnProxy->GetCheck() )
  175. nAccessType = INTERNET_OPEN_TYPE_PROXY;
  176. int nProxyType = CProxySocket::TypeHTTP;
  177. CButton * pbtnProxySocks4 = (CButton *)GetDlgItem( IDC_PROXY_SOCKS4 );
  178. CButton * pbtnProxySocks5 = (CButton *)GetDlgItem( IDC_PROXY_SOCKS5 );
  179. // CButton * pbtnProxyHttp = (CButton *)GetDlgItem( IDC_PROXY_HTTP );
  180. if( pbtnProxySocks4 && pbtnProxySocks4->GetCheck() )
  181. nProxyType = CProxySocket::TypeSocks4;
  182. else if( pbtnProxySocks5 && pbtnProxySocks5->GetCheck() )
  183. nProxyType = CProxySocket::TypeSocks5;
  184. AfxGetQSProfile().SetAccessType( nAccessType );
  185. AfxGetQSProfile().SetProxyType( nProxyType );
  186. AfxGetQSProfile().SetProxyAddress( m_strProxyAddress );
  187. AfxGetQSProfile().SetProxyPort( m_nProxyPort );
  188. AfxGetQSProfile().SetProxyUser( m_strProxyUser );
  189. AfxGetQSProfile().SetProxyPasswd( m_strProxyPasswd );
  190. AfxGetQSProfile().StoreProfile();
  191. CDialog::OnOK();
  192. }