ServerBrowserDlg.cpp
上传用户:fuyouda
上传日期:2015-08-19
资源大小:6876k
文件大小:3k
源码类别:

家庭/个人应用

开发平台:

Visual C++

  1. // ServerBrowserDlg.cpp : implementation file
  2. //
  3. #include "stdafx.h"
  4. #include "DAC_VCDEMO.h"
  5. #include "ServerBrowserDlg.h"
  6. #include "DACLTSDK.h"
  7. #ifdef _DEBUG
  8. #define new DEBUG_NEW
  9. #undef THIS_FILE
  10. static char THIS_FILE[] = __FILE__;
  11. #endif
  12. /////////////////////////////////////////////////////////////////////////////
  13. // ServerBrowserDlg dialog
  14. ServerBrowserDlg::ServerBrowserDlg(CWnd* pParent /*=NULL*/)
  15. : CDialog(ServerBrowserDlg::IDD, pParent)
  16. {
  17. //{{AFX_DATA_INIT(ServerBrowserDlg)
  18. //}}AFX_DATA_INIT
  19. }
  20. void ServerBrowserDlg::DoDataExchange(CDataExchange* pDX)
  21. {
  22. CDialog::DoDataExchange(pDX);
  23. //{{AFX_DATA_MAP(ServerBrowserDlg)
  24. DDX_Control(pDX, IDC_CHECK1, m_Check);
  25. DDX_Control(pDX, IDC_EDIT3, m_Edit3);
  26. DDX_Control(pDX, IDC_EDIT2, m_Edit2);
  27. DDX_Control(pDX, IDC_EDIT1, m_Edit1);
  28. DDX_Control(pDX, IDC_LIST, m_List);
  29. //}}AFX_DATA_MAP
  30. }
  31. BEGIN_MESSAGE_MAP(ServerBrowserDlg, CDialog)
  32. //{{AFX_MSG_MAP(ServerBrowserDlg)
  33. ON_BN_CLICKED(IDRefresh, OnRefresh)
  34. ON_LBN_SELCHANGE(IDC_LIST, OnSelChange)
  35. ON_WM_SHOWWINDOW()
  36. //}}AFX_MSG_MAP
  37. END_MESSAGE_MAP()
  38. /////////////////////////////////////////////////////////////////////////////
  39. // ServerBrowserDlg message handlers
  40. void ServerBrowserDlg::OnRefresh() 
  41. {
  42. VARIANT ServerNames;
  43. VARIANT ServerClassIDs;
  44. DWORD dwCount, I;
  45. m_Edit3.GetWindowText(ComputerName);
  46. m_List.ResetContent();
  47. if(m_Check.GetCheck()==0)
  48. {
  49. Version=1;
  50. }
  51. else
  52. {
  53. Version=2;
  54. }
  55. VariantInit(&ServerNames);
  56. VariantInit(&ServerClassIDs);
  57. dwCount=ASDAC_GetServers(ComputerName, Version, &ServerNames, &ServerClassIDs);
  58. if(dwCount>0)
  59. {
  60. COleSafeArray Names, ClassIDs;
  61. BSTR *pbName, *pbClassID;
  62. Names.Attach(ServerNames);
  63. Names.AccessData((LPVOID*)&pbName);
  64. ClassIDs.Attach(ServerClassIDs);
  65. ClassIDs.AccessData((LPVOID*)&pbClassID);
  66. for(I=0;I<dwCount;I++)
  67. {
  68. CNM[I]= pbName[I];
  69. CID[I]= pbClassID[I];
  70. m_List.AddString(CNM[I]);
  71. }
  72. Names.Detach();
  73. ClassIDs.Detach();
  74. }
  75. }
  76. void ServerBrowserDlg::OnSelChange() 
  77. {
  78. int nIndex = m_List.GetCurSel();
  79. if(nIndex!=LB_ERR)
  80. {
  81. m_Edit1.SetWindowText(CNM[nIndex]);
  82. m_Edit2.SetWindowText(CID[nIndex]);
  83. ServerClassID=CID[nIndex];
  84. ServerName=CNM[nIndex];
  85. }
  86. }
  87. void ServerBrowserDlg::OnShowWindow(BOOL bShow, UINT nStatus) 
  88. {
  89. CDialog::OnShowWindow(bShow, nStatus);
  90. m_Edit1.SetWindowText(ServerName);
  91. m_Edit2.SetWindowText(ServerClassID);
  92. m_Edit3.SetWindowText(ComputerName);
  93. OnRefresh();
  94. if(Version=2)
  95. m_Check.SetCheck(1);
  96. else
  97. m_Check.SetCheck(0);
  98. }