⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 addsvrlistfunc.cpp

📁 此为传奇游戏源代码
💻 CPP
字号:
#include "stdafx.h"

BOOL jRegSetKey(LPCTSTR pSubKeyName, LPCTSTR pValueName, DWORD dwFlags, LPBYTE pValue, DWORD nValueSize);
BOOL jRegGetKey(LPCTSTR pSubKeyName, LPCTSTR pValueName, LPBYTE pValue);

extern HWND		g_hMainWnd;

BOOL CALLBACK AddSvrListProc(HWND hWndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
	switch (uMsg)
	{
		case WM_INITDIALOG:
		{
			CenterDialog(g_hMainWnd, hWndDlg);

			break;
		}
		case WM_COMMAND:
		{
			switch (wParam)
			{
				case IDC_ADD_GATELIST:
				{
					return IDOK;
					break;
				}
				case IDC_REMOVE_GATELIST:
				{
					int nSel = SendMessage(GetDlgItem(hWndDlg, IDC_GATELIST), LB_GETCURSEL, (WPARAM)0, (LPARAM)0L);

					if (nSel != LB_ERR)
						SendMessage(GetDlgItem(hWndDlg, IDC_GATELIST), LB_DELETESTRING, (WPARAM)nSel, (LPARAM)0L);

					break;
				}
				case IDOK:
				{
					TCHAR	szKey[64];
					TCHAR	szSubKey[32];
					TCHAR	szTitle[64];
					TCHAR	szGateList[32];
					DWORD	dwPrivateIP = 0, dwPublicIP = 0;
					UINT	nGateCount = 0;

					ZeroMemory(szKey, sizeof(szKey));
					ZeroMemory(szSubKey, sizeof(szSubKey));
					ZeroMemory(szTitle, sizeof(szTitle));
					ZeroMemory(szGateList, sizeof(szGateList));

					GetWindowText(GetDlgItem(hWndDlg, IDC_TITLE), szTitle, sizeof(szTitle));

					if (lstrlen(szTitle))
					{
						lstrcpy(szKey, _LOGIN_SERVER_REGISTRY);
						lstrcat(szKey, _T("\\Servers\\"));
						lstrcat(szKey, szTitle);

						jRegSetKey(szKey, _TEXT("Title"), REG_SZ, (LPBYTE)szTitle, _tcslen(szTitle) * sizeof(TCHAR));
						
						if (SendMessage(GetDlgItem(hWndDlg, IDC_IPADDRESS1), IPM_ISBLANK, (WPARAM)0, (LPARAM)0L) ||
							SendMessage(GetDlgItem(hWndDlg, IDC_IPADDRESS2), IPM_ISBLANK, (WPARAM)0, (LPARAM)0L))
						{
							MessageBox(hWndDlg, _TEXT("ERROR"), _T("Configuration"), MB_OK|MB_ICONSTOP);
							return FALSE;
						}

						SendMessage(GetDlgItem(hWndDlg, IDC_IPADDRESS1), IPM_GETADDRESS, (WPARAM)0, (LPARAM)(LPDWORD)&dwPrivateIP);
						SendMessage(GetDlgItem(hWndDlg, IDC_IPADDRESS2), IPM_GETADDRESS, (WPARAM)0, (LPARAM)(LPDWORD)&dwPublicIP);

						jRegSetKey(szKey, _TEXT("PrivateIP"), REG_DWORD, (LPBYTE)&dwPrivateIP, sizeof(DWORD));
						jRegSetKey(szKey, _TEXT("PublicIP"), REG_DWORD, (LPBYTE)&dwPublicIP, sizeof(DWORD));

						nGateCount = SendMessage(GetDlgItem(hWndDlg, IDC_GATELIST), LB_GETCOUNT, (WPARAM)0, (LPARAM)(LPDWORD)0L);

						jRegSetKey(szKey, _TEXT("NumberOfGate"), REG_DWORD, (LPBYTE)&nGateCount, sizeof(UINT));

						if (SendMessage(GetDlgItem(hWndDlg, IDC_IPADDRESS3), IPM_ISBLANK, (WPARAM)0, (LPARAM)0L) == 0)
						{
							DWORD	dwIP = 0;
							TCHAR	szPort[10];

							ZeroMemory(szPort, sizeof(szPort));

							SendMessage(GetDlgItem(hWndDlg, IDC_IPADDRESS3), IPM_GETADDRESS, (WPARAM)0, (LPARAM)(LPDWORD)&dwIP);
							
							GetWindowText(GetDlgItem(hWndDlg, IDC_PORT), szPort, sizeof(szPort));

							wsprintf(szGateList, _TEXT("%d.%d.%d.%d:%s"), FIRST_IPADDRESS(dwIP), SECOND_IPADDRESS(dwIP), 
															THIRD_IPADDRESS(dwIP), FOURTH_IPADDRESS(dwIP), szPort);

							jRegSetKey(szKey, _TEXT("Gate"), REG_SZ, (LPBYTE)szGateList, _tcslen(szGateList) * sizeof(TCHAR));
						}
					}
				}
				case IDCANCEL:
					return EndDialog(hWndDlg, IDCANCEL);
			}
		}
	}

	return FALSE;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -