ServerListProc.cpp
上传用户:szopptop
上传日期:2013-04-23
资源大小:1047k
文件大小:3k
源码类别:

模拟服务器

开发平台:

Visual C++

  1. #include "stdafx.h"
  2. extern HINSTANCE g_hInst;
  3. extern HWND g_hMainWnd;
  4. BOOL jRegGetKey(LPCTSTR pSubKeyName, LPCTSTR pValueName, LPBYTE pValue);
  5. LONG jRegEnumKey(LPCTSTR pSubKeyName, int nIndex, LPTSTR lpSubKey, int nSubkeyLen);
  6. BOOL CALLBACK AddSvrListProc(HWND hWndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam);
  7. void InitListView(HWND hWndDlg)
  8. {
  9. LV_ITEM lvi;
  10. TCHAR szText[64];
  11. UINT nCount = 0;
  12. TCHAR szKey[128];
  13. TCHAR szTitle[64];
  14. DWORD dwPrivateIP = 0, dwPublicIP = 0;
  15. UINT nNumberOfGate = 0;
  16. lvi.mask = LVIF_TEXT;
  17. lvi.iItem = nCount;
  18. lvi.iSubItem = 0;
  19. ZeroMemory(szText, sizeof(szText));
  20. while (jRegEnumKey(_LOGIN_SERVERLIST_REGISTRY, nCount, szText, sizeof(szText)) != ERROR_NO_MORE_ITEMS)
  21. {
  22. lvi.pszText = szText;
  23. ListView_InsertItem(GetDlgItem(hWndDlg, IDC_SERVERINFO_LIST), &lvi);
  24. lstrcpy(szKey, _LOGIN_SERVERLIST_REGISTRY);
  25. lstrcat(szKey, _TEXT("\"));
  26. lstrcat(szKey, szText);
  27. jRegGetKey(szKey, _T("Title"), (LPBYTE)szTitle);
  28. ListView_SetItemText(GetDlgItem(hWndDlg, IDC_SERVERINFO_LIST), nCount, 1, szTitle);
  29. jRegGetKey(szKey, _T("PrivateIP"), (LPBYTE)dwPrivateIP);
  30. wsprintf(szText, _TEXT("%d.%d.%d.%d"), FIRST_IPADDRESS(dwPrivateIP), SECOND_IPADDRESS(dwPrivateIP), 
  31. THIRD_IPADDRESS(dwPrivateIP), FOURTH_IPADDRESS(dwPrivateIP)); 
  32. ListView_SetItemText(GetDlgItem(hWndDlg, IDC_SERVERINFO_LIST), nCount, 2, szText);
  33. jRegGetKey(szKey, _T("PublicIP"), (LPBYTE)dwPublicIP);
  34. wsprintf(szText, _TEXT("%d.%d.%d.%d"), FIRST_IPADDRESS(dwPublicIP), SECOND_IPADDRESS(dwPublicIP), 
  35. THIRD_IPADDRESS(dwPublicIP), FOURTH_IPADDRESS(dwPublicIP)); 
  36. ListView_SetItemText(GetDlgItem(hWndDlg, IDC_SERVERINFO_LIST), nCount, 2, szText);
  37. nCount++;
  38. }
  39. /* jRegGetKey(szKey, _T("NumberOfGate"), REG_DWORD, (LPBYTE)&nGateCount, sizeof(UINT));
  40. jRegSetKey(szKey, szSubKey, REG_SZ, (LPBYTE)szGateList, _tcslen(szGateList));
  41. */
  42. }
  43. BOOL CALLBACK ServerListProc(HWND hWndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
  44. {
  45. static PROPSHEETPAGE *ps;
  46. switch (uMsg)
  47. {
  48. case WM_INITDIALOG:
  49. {
  50. ps = (PROPSHEETPAGE *)lParam;
  51. LV_COLUMN lvc;
  52. TCHAR szText[64];
  53. lvc.mask = LVCF_FMT | LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM;
  54. lvc.fmt = LVCFMT_LEFT;
  55. lvc.cx = 100;
  56. lvc.pszText = szText;
  57. for (int i = 0; i < 5; i++)
  58. {
  59. lvc.iSubItem = i;
  60. LoadString((HINSTANCE)g_hInst, IDS_CONFLVS_LABEL1 + i, szText, sizeof(szText));
  61. ListView_InsertColumn(GetDlgItem(hWndDlg, IDC_SERVERINFO_LIST), i, &lvc);
  62. }
  63. ListView_DeleteAllItems(GetDlgItem(hWndDlg, IDC_SERVERINFO_LIST));
  64. BYTE btInstalled;
  65. if (jRegGetKey(_LOGIN_SERVER_REGISTRY, _T("Installed"), (LPBYTE)&btInstalled))
  66. InitListView(hWndDlg);
  67. return TRUE;
  68. }
  69. case WM_COMMAND:
  70. {
  71. case IDC_SVRLIST_ADD:
  72. DialogBox(g_hInst, MAKEINTRESOURCE(IDD_SVRLIST_ADD), hWndDlg, (DLGPROC)AddSvrListProc);
  73. break;
  74. }
  75. }
  76. return FALSE;
  77. }