InteractiveListen.cpp
上传用户:jinandeyu
上传日期:2007-01-05
资源大小:620k
文件大小:4k
源码类别:

远程控制编程

开发平台:

WINDOWS

  1. /*  Back Orifice 2000 - Remote Administration Suite
  2.     Copyright (C) 1999, Cult Of The Dead Cow
  3.     This program is free software; you can redistribute it and/or modify
  4.     it under the terms of the GNU General Public License as published by
  5.     the Free Software Foundation; either version 2 of the License, or
  6.     (at your option) any later version.
  7.     This program is distributed in the hope that it will be useful,
  8.     but WITHOUT ANY WARRANTY; without even the implied warranty of
  9.     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  10.     GNU General Public License for more details.
  11.     You should have received a copy of the GNU General Public License
  12.     along with this program; if not, write to the Free Software
  13.     Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  14. The author of this program may be contacted at dildog@l0pht.com. */
  15. // InteractiveListen.cpp : implementation file
  16. //
  17. #include "stdafx.h"
  18. #include "bo2kgui.h"
  19. #include "InteractiveListen.h"
  20. #include "MainFrm.h"
  21. #ifdef _DEBUG
  22. #define new DEBUG_NEW
  23. #undef THIS_FILE
  24. static char THIS_FILE[] = __FILE__;
  25. #endif
  26. /////////////////////////////////////////////////////////////////////////////
  27. // CInteractiveListen dialog
  28. CInteractiveListen::CInteractiveListen(CWnd* pParent /*=NULL*/)
  29. : CDialog(CInteractiveListen::IDD, pParent)
  30. {
  31. //{{AFX_DATA_INIT(CInteractiveListen)
  32. m_nAuthHandler = -1;
  33. m_nConnType = -1;
  34. m_nEncryption = -1;
  35. m_strSvrAddr = _T("");
  36. //}}AFX_DATA_INIT
  37. }
  38. void CInteractiveListen::DoDataExchange(CDataExchange* pDX)
  39. {
  40. CDialog::DoDataExchange(pDX);
  41. //{{AFX_DATA_MAP(CInteractiveListen)
  42. DDX_CBIndex(pDX, IDC_AUTH_HANDLER, m_nAuthHandler);
  43. DDX_CBIndex(pDX, IDC_CONNECTION_TYPE, m_nConnType);
  44. DDX_CBIndex(pDX, IDC_ENCRYPTION_ENGINE, m_nEncryption);
  45. DDX_Text(pDX, IDC_SERVER_ADDRESS, m_strSvrAddr);
  46. //}}AFX_DATA_MAP
  47. }
  48. BEGIN_MESSAGE_MAP(CInteractiveListen, CDialog)
  49. //{{AFX_MSG_MAP(CInteractiveListen)
  50. // NOTE: the ClassWizard will add message map macros here
  51. //}}AFX_MSG_MAP
  52. END_MESSAGE_MAP()
  53. /////////////////////////////////////////////////////////////////////////////
  54. // CInteractiveListen message handlers
  55. void CInteractiveListen::OnOK() 
  56. {
  57. CComboBox *ccb;
  58. ccb=(CComboBox *)GetDlgItem(IDC_CONNECTION_TYPE);
  59. m_strSelectedIO=g_pIOHandler->Query(ccb->GetItemData(ccb->GetCurSel()));
  60. ccb=(CComboBox *)GetDlgItem(IDC_ENCRYPTION_ENGINE);
  61. m_strSelectedEnc=g_pEncryptionHandler->Query(ccb->GetItemData(ccb->GetCurSel()));
  62. ccb=(CComboBox *)GetDlgItem(IDC_AUTH_HANDLER);
  63. m_strSelectedAuth=g_pAuthHandler->Query(ccb->GetItemData(ccb->GetCurSel()));
  64. CDialog::OnOK();
  65. }
  66. BOOL CInteractiveListen::OnInitDialog() 
  67. {
  68. int i;
  69. CComboBox *ccb;
  70. CDialog::OnInitDialog();
  71. // Add connection types
  72. ccb=(CComboBox *)GetDlgItem(IDC_CONNECTION_TYPE);
  73. if(ccb==NULL) return FALSE;
  74. for(i=0;i<MAX_IO_HANDLERS;i++) {
  75. char *txt;
  76. txt=g_pIOHandler->Query(i);
  77. if(txt!=NULL) {
  78. ccb->InsertString(0,txt);
  79. ccb->SetItemData(0,i);
  80. if(lstrcmp(txt,m_strSelectedIO)==0) {
  81. ccb->SetCurSel(0);
  82. }
  83. }
  84. }
  85. if(ccb->GetCurSel()==CB_ERR) ccb->SetCurSel(0);
  86. // Add Encryption Types
  87. ccb=(CComboBox *)GetDlgItem(IDC_ENCRYPTION_ENGINE);
  88. if(ccb==NULL) return FALSE;
  89. for(i=0;i<MAX_ENCRYPTION_ENGINES;i++) {
  90. char *txt;
  91. txt=g_pEncryptionHandler->Query(i);
  92. if(txt!=NULL) {
  93. ccb->InsertString(0,txt);
  94. ccb->SetItemData(0,i);
  95. if(lstrcmp(txt,m_strSelectedEnc)==0) {
  96. ccb->SetCurSel(0);
  97. }
  98. }
  99. }
  100. if(ccb->GetCurSel()==CB_ERR) ccb->SetCurSel(0);
  101. // Add Authentication Types
  102. ccb=(CComboBox *)GetDlgItem(IDC_AUTH_HANDLER);
  103. if(ccb==NULL) return FALSE;
  104. for(i=0;i<MAX_AUTH_HANDLERS;i++) {
  105. char *txt=g_pAuthHandler->Query(i);
  106. if(txt!=NULL) {
  107. ccb->InsertString(0,txt);
  108. ccb->SetItemData(0,i);
  109. if(lstrcmp(txt,m_strSelectedAuth)==0) {
  110. ccb->SetCurSel(0);
  111. }
  112. }
  113. }
  114. if(ccb->GetCurSel()==CB_ERR) ccb->SetCurSel(0);
  115. return TRUE;  // return TRUE unless you set the focus to a control
  116.               // EXCEPTION: OCX Property Pages should return FALSE
  117. }