413 lines
11 KiB
C++
413 lines
11 KiB
C++
|
|
#include "Stdafx.h"
|
|||
|
|
#include "Resource.h"
|
|||
|
|
#include "DlgServerItem.h"
|
|||
|
|
|
|||
|
|
//////////////////////////////////////////////////////////////////////////////////
|
|||
|
|
|
|||
|
|
//<2F>б<EFBFBD><D0B1><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
#define LIST_STYTE LVS_EX_FULLROWSELECT|LVS_EX_HEADERDRAGDROP|LVS_EX_FLATSB
|
|||
|
|
|
|||
|
|
//////////////////////////////////////////////////////////////////////////////////
|
|||
|
|
|
|||
|
|
BEGIN_MESSAGE_MAP(CDlgServerItem, CDialog)
|
|||
|
|
|
|||
|
|
//<2F><>ť<EFBFBD><C5A5>Ϣ
|
|||
|
|
ON_BN_CLICKED(IDC_LOAD_SERVER, OnBnClickedLoadServer)
|
|||
|
|
ON_BN_CLICKED(IDC_RELOAD_LIST, OnBnClickedReLoadList)
|
|||
|
|
ON_BN_CLICKED(IDC_DELETE_SERVER, OnBnClickedDeleteServer)
|
|||
|
|
ON_BN_CLICKED(IDC_SERVICE_ATTRIB, OnBnClickedServiceAttrib)
|
|||
|
|
|
|||
|
|
//<2F>ؼ<EFBFBD><D8BC><EFBFBD>Ϣ
|
|||
|
|
ON_NOTIFY(NM_DBLCLK, IDC_SERVER_LIST, OnNMDblclkServerList)
|
|||
|
|
ON_NOTIFY(LVN_ITEMCHANGED, IDC_SERVER_LIST, OnLvnItemChangedServerList)
|
|||
|
|
|
|||
|
|
END_MESSAGE_MAP()
|
|||
|
|
|
|||
|
|
//////////////////////////////////////////////////////////////////////////////////
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD>캯<EFBFBD><ECBAAF>
|
|||
|
|
CDlgServerItem::CDlgServerItem() : CDialog(IDD_SERVER_ITEM)
|
|||
|
|
{
|
|||
|
|
//ģ<><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
ZeroMemory(&m_ModuleInitParameter,sizeof(m_ModuleInitParameter));
|
|||
|
|
|
|||
|
|
return;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
CDlgServerItem::~CDlgServerItem()
|
|||
|
|
{
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//<2F>ؼ<EFBFBD><D8BC><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
VOID CDlgServerItem::DoDataExchange(CDataExchange * pDX)
|
|||
|
|
{
|
|||
|
|
__super::DoDataExchange(pDX);
|
|||
|
|
DDX_Control(pDX, IDC_SERVER_LIST, m_ServerListControl);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//<2F><>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>
|
|||
|
|
BOOL CDlgServerItem::PreTranslateMessage(MSG * pMsg)
|
|||
|
|
{
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
if ((pMsg->message==WM_KEYDOWN)&&(pMsg->wParam==VK_ESCAPE))
|
|||
|
|
{
|
|||
|
|
return TRUE;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
return __super::PreTranslateMessage(pMsg);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
BOOL CDlgServerItem::OnInitDialog()
|
|||
|
|
{
|
|||
|
|
__super::OnInitDialog();
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ
|
|||
|
|
AfxSetResourceHandle(GetModuleHandle(NULL));
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD>ط<EFBFBD><D8B7><EFBFBD>
|
|||
|
|
LoadDBServerItem();
|
|||
|
|
|
|||
|
|
return TRUE;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//ȷ<><C8B7><EFBFBD><EFBFBD>Ϣ
|
|||
|
|
VOID CDlgServerItem::OnOK()
|
|||
|
|
{
|
|||
|
|
return;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//<2F><EFBFBD><F2BFAAB7><EFBFBD>
|
|||
|
|
bool CDlgServerItem::OpenGameServer()
|
|||
|
|
{
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ
|
|||
|
|
AfxSetResourceHandle(GetModuleHandle(MODULE_MANAGER_DLL_NAME));
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD>÷<EFBFBD><C3B7><EFBFBD>
|
|||
|
|
if (DoModal()==IDC_LOAD_SERVER)
|
|||
|
|
{
|
|||
|
|
return true;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
return false;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//<2F><EFBFBD><F2BFAAB7><EFBFBD>
|
|||
|
|
bool CDlgServerItem::OpenGameServer(WORD wServerID)
|
|||
|
|
{
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
tagGameServerInfo GameServerResult;
|
|||
|
|
ZeroMemory(&GameServerResult,sizeof(GameServerResult));
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʶ
|
|||
|
|
TCHAR szMachineID[LEN_MACHINE_ID];
|
|||
|
|
CWHService::GetMachineID(szMachineID);
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD>ط<EFBFBD><D8B7><EFBFBD>
|
|||
|
|
CServerInfoManager ServerInfoManager;
|
|||
|
|
if (ServerInfoManager.LoadGameServerInfo(szMachineID,wServerID,GameServerResult)==false)
|
|||
|
|
{
|
|||
|
|
return false;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
|
|||
|
|
if (GetModuleInitParameter(&GameServerResult,true)==false)
|
|||
|
|
{
|
|||
|
|
return false;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
return true;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>
|
|||
|
|
bool CDlgServerItem::LoadDBServerItem()
|
|||
|
|
{
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>
|
|||
|
|
m_ServerListControl.DeleteAllItems();
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD>ð<EFBFBD>ť
|
|||
|
|
GetDlgItem(IDC_LOAD_SERVER)->EnableWindow(FALSE);
|
|||
|
|
GetDlgItem(IDC_DELETE_SERVER)->EnableWindow(FALSE);
|
|||
|
|
GetDlgItem(IDC_SERVICE_ATTRIB)->EnableWindow(FALSE);
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʶ
|
|||
|
|
TCHAR szMachineID[LEN_MACHINE_ID];
|
|||
|
|
CWHService::GetMachineID(szMachineID);
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
|
|||
|
|
CServerInfoManager ServerInfoManager;
|
|||
|
|
if (ServerInfoManager.LoadGameServerInfo(szMachineID,m_ServerInfoBuffer)==true)
|
|||
|
|
{
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
POSITION Position=m_ServerInfoBuffer.m_GameServerInfoMap.GetStartPosition();
|
|||
|
|
|
|||
|
|
//ö<><C3B6>ģ<EFBFBD><C4A3>
|
|||
|
|
while (Position!=NULL)
|
|||
|
|
{
|
|||
|
|
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
|
|||
|
|
WORD wServerID=0L;
|
|||
|
|
tagGameServerInfo * pGameServerInfo=NULL;
|
|||
|
|
m_ServerInfoBuffer.m_GameServerInfoMap.GetNextAssoc(Position,wServerID,pGameServerInfo);
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>
|
|||
|
|
ASSERT(pGameServerInfo!=NULL);
|
|||
|
|
if (pGameServerInfo!=NULL) m_ServerListControl.InsertServerInfo(pGameServerInfo);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
return true;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
return false;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD>°<EFBFBD>ť
|
|||
|
|
bool CDlgServerItem::UpdateControlStatus()
|
|||
|
|
{
|
|||
|
|
//<2F><>ȡѡ<C8A1><D1A1>
|
|||
|
|
POSITION Position=m_ServerListControl.GetFirstSelectedItemPosition();
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>
|
|||
|
|
if (Position!=NULL)
|
|||
|
|
{
|
|||
|
|
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
|
|||
|
|
INT nListItem=m_ServerListControl.GetNextSelectedItem(Position);
|
|||
|
|
tagGameServerInfo * pGameServerInfo=(tagGameServerInfo *)m_ServerListControl.GetItemData(nListItem);
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD>ð<EFBFBD>ť
|
|||
|
|
if (pGameServerInfo->dwNativeVersion!=0L)
|
|||
|
|
{
|
|||
|
|
GetDlgItem(IDC_LOAD_SERVER)->EnableWindow(TRUE);
|
|||
|
|
GetDlgItem(IDC_DELETE_SERVER)->EnableWindow(TRUE);
|
|||
|
|
GetDlgItem(IDC_SERVICE_ATTRIB)->EnableWindow(TRUE);
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
GetDlgItem(IDC_LOAD_SERVER)->EnableWindow(FALSE);
|
|||
|
|
GetDlgItem(IDC_DELETE_SERVER)->EnableWindow(TRUE);
|
|||
|
|
GetDlgItem(IDC_SERVICE_ATTRIB)->EnableWindow(FALSE);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
//<2F><><EFBFBD>ð<EFBFBD>ť
|
|||
|
|
GetDlgItem(IDC_LOAD_SERVER)->EnableWindow(FALSE);
|
|||
|
|
GetDlgItem(IDC_DELETE_SERVER)->EnableWindow(FALSE);
|
|||
|
|
GetDlgItem(IDC_SERVICE_ATTRIB)->EnableWindow(FALSE);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
return true;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
|
|||
|
|
bool CDlgServerItem::GetModuleInitParameter(tagGameServerInfo * pGameServerInfo, bool bAutoMode)
|
|||
|
|
{
|
|||
|
|
//Ч<><D0A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
ASSERT(pGameServerInfo!=NULL);
|
|||
|
|
if (pGameServerInfo==NULL) return false;
|
|||
|
|
|
|||
|
|
//<2F><>Ϸģ<CFB7><C4A3>
|
|||
|
|
CGameServiceManagerHelper GameServiceManager;
|
|||
|
|
GameServiceManager.SetModuleCreateInfo(pGameServerInfo->szServerDLLName,GAME_SERVICE_CREATE_NAME);
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
|
|||
|
|
if (pGameServerInfo->dwNativeVersion==0)
|
|||
|
|
{
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ
|
|||
|
|
TCHAR szString[128]=TEXT("");
|
|||
|
|
_sntprintf_s(szString,CountArray(szString),TEXT("[ %s ] <20><>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD>а<EFBFBD>װ<EFBFBD><D7B0><EFBFBD><EFBFBD><EFBFBD>Ȱ<EFBFBD>װ<EFBFBD><D7B0>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"),pGameServerInfo->szGameName);
|
|||
|
|
|
|||
|
|
//<2F><>ʾ<EFBFBD><CABE>Ϣ
|
|||
|
|
if (bAutoMode==true) CTraceService::TraceString(szString,TraceLevel_Exception);
|
|||
|
|
else AfxMessageBox(szString,MB_ICONERROR);
|
|||
|
|
|
|||
|
|
return false;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
|
|||
|
|
if (pGameServerInfo->dwNativeVersion!=pGameServerInfo->dwServerVersion)
|
|||
|
|
{
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ
|
|||
|
|
TCHAR szString[128]=TEXT("");
|
|||
|
|
_sntprintf_s(szString,CountArray(szString),TEXT("[ %s ] <20><>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѿ<EFBFBD><D1BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ˣ<EFBFBD><CBA3><EFBFBD><EFBFBD>ܼ<EFBFBD><DCBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"),pGameServerInfo->szGameName);
|
|||
|
|
|
|||
|
|
//<2F><>ʾ<EFBFBD><CABE>Ϣ
|
|||
|
|
if (bAutoMode==true) CTraceService::TraceString(szString,TraceLevel_Exception);
|
|||
|
|
else AfxMessageBox(szString,MB_ICONERROR);
|
|||
|
|
|
|||
|
|
return false;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3>
|
|||
|
|
if (GameServiceManager.CreateInstance()==false)
|
|||
|
|
{
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ
|
|||
|
|
TCHAR szString[128]=TEXT("");
|
|||
|
|
_sntprintf_s(szString,CountArray(szString),TEXT("[ %s ] <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڻ<EFBFBD><DABB><EFBFBD><DFBC><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>°<EFBFBD>װ<EFBFBD><D7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"),pGameServerInfo->szGameName);
|
|||
|
|
|
|||
|
|
//<2F><>ʾ<EFBFBD><CABE>Ϣ
|
|||
|
|
if (bAutoMode==true) CTraceService::TraceString(szString,TraceLevel_Exception);
|
|||
|
|
else AfxMessageBox(szString,MB_ICONERROR);
|
|||
|
|
|
|||
|
|
return false;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//ģ<><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
GameServiceManager->GetServiceAttrib(m_ModuleInitParameter.GameServiceAttrib);
|
|||
|
|
|
|||
|
|
//<2F>ҽ<EFBFBD><D2BD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
m_ModuleInitParameter.GameServiceOption.wKindID=pGameServerInfo->wKindID;
|
|||
|
|
m_ModuleInitParameter.GameServiceOption.wNodeID=pGameServerInfo->wNodeID;
|
|||
|
|
m_ModuleInitParameter.GameServiceOption.wSortID=pGameServerInfo->wSortID;
|
|||
|
|
m_ModuleInitParameter.GameServiceOption.wServerID=pGameServerInfo->wServerID;
|
|||
|
|
|
|||
|
|
//˰<><CBB0><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
m_ModuleInitParameter.GameServiceOption.lCellScore=pGameServerInfo->lCellScore;
|
|||
|
|
m_ModuleInitParameter.GameServiceOption.wRevenueRatio=pGameServerInfo->wRevenueRatio;
|
|||
|
|
m_ModuleInitParameter.GameServiceOption.lServiceScore=pGameServerInfo->lServiceScore;
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
m_ModuleInitParameter.GameServiceOption.lRestrictScore=pGameServerInfo->lRestrictScore;
|
|||
|
|
m_ModuleInitParameter.GameServiceOption.lMinTableScore=pGameServerInfo->lMinTableScore;
|
|||
|
|
m_ModuleInitParameter.GameServiceOption.lMinEnterScore=pGameServerInfo->lMinEnterScore;
|
|||
|
|
m_ModuleInitParameter.GameServiceOption.lMaxEnterScore=pGameServerInfo->lMaxEnterScore;
|
|||
|
|
|
|||
|
|
//<2F><>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD>
|
|||
|
|
m_ModuleInitParameter.GameServiceOption.cbMinEnterMember=pGameServerInfo->cbMinEnterMember;
|
|||
|
|
m_ModuleInitParameter.GameServiceOption.cbMaxEnterMember=pGameServerInfo->cbMaxEnterMember;
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
m_ModuleInitParameter.GameServiceOption.dwServerRule=pGameServerInfo->dwServerRule;
|
|||
|
|
m_ModuleInitParameter.GameServiceOption.dwAttachUserRight=pGameServerInfo->dwAttachUserRight;
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
m_ModuleInitParameter.GameServiceOption.wMaxPlayer=pGameServerInfo->wMaxPlayer;
|
|||
|
|
m_ModuleInitParameter.GameServiceOption.wTableCount=pGameServerInfo->wTableCount;
|
|||
|
|
m_ModuleInitParameter.GameServiceOption.wServerPort=pGameServerInfo->wServerPort;
|
|||
|
|
m_ModuleInitParameter.GameServiceOption.wServerType=pGameServerInfo->wServerType;
|
|||
|
|
lstrcpyn(m_ModuleInitParameter.GameServiceOption.szServerName,pGameServerInfo->szServerName,LEN_SERVER);
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
m_ModuleInitParameter.GameServiceOption.cbDistributeRule=pGameServerInfo->cbDistributeRule;
|
|||
|
|
m_ModuleInitParameter.GameServiceOption.wMinDistributeUser=pGameServerInfo->wMinDistributeUser;
|
|||
|
|
m_ModuleInitParameter.GameServiceOption.wMaxDistributeUser=pGameServerInfo->wMaxDistributeUser;
|
|||
|
|
m_ModuleInitParameter.GameServiceOption.wDistributeTimeSpace=pGameServerInfo->wDistributeTimeSpace;
|
|||
|
|
m_ModuleInitParameter.GameServiceOption.wDistributeDrawCount=pGameServerInfo->wDistributeDrawCount;
|
|||
|
|
m_ModuleInitParameter.GameServiceOption.wDistributeStartDelay=pGameServerInfo->wDistributeStartDelay;
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
|
|||
|
|
lstrcpyn(m_ModuleInitParameter.GameServiceOption.szDataBaseName,pGameServerInfo->szDataBaseName,CountArray(m_ModuleInitParameter.GameServiceOption.szDataBaseName));
|
|||
|
|
lstrcpyn(m_ModuleInitParameter.GameServiceOption.szDataBaseAddr,pGameServerInfo->szDataBaseAddr,CountArray(m_ModuleInitParameter.GameServiceOption.szDataBaseAddr));
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
UINT uCustomRuleSize=sizeof(m_ModuleInitParameter.GameServiceOption.cbCustomRule);
|
|||
|
|
CopyMemory(m_ModuleInitParameter.GameServiceOption.cbCustomRule,pGameServerInfo->cbCustomRule,uCustomRuleSize);
|
|||
|
|
|
|||
|
|
return true;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD>ط<EFBFBD><D8B7><EFBFBD>
|
|||
|
|
VOID CDlgServerItem::OnBnClickedLoadServer()
|
|||
|
|
{
|
|||
|
|
//<2F><>ȡѡ<C8A1><D1A1>
|
|||
|
|
ASSERT(m_ServerListControl.GetFirstSelectedItemPosition()!=NULL);
|
|||
|
|
POSITION Position=m_ServerListControl.GetFirstSelectedItemPosition();
|
|||
|
|
|
|||
|
|
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
|
|||
|
|
INT nListItem=m_ServerListControl.GetNextSelectedItem(Position);
|
|||
|
|
tagGameServerInfo * pGameServerInfo=(tagGameServerInfo *)m_ServerListControl.GetItemData(nListItem);
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD>ñ<EFBFBD><C3B1><EFBFBD>
|
|||
|
|
if ((pGameServerInfo!=NULL)&&(GetModuleInitParameter(pGameServerInfo,false)==true))
|
|||
|
|
{
|
|||
|
|
EndDialog(IDC_LOAD_SERVER);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
return;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//ˢ<><CBA2><EFBFBD>б<EFBFBD>
|
|||
|
|
VOID CDlgServerItem::OnBnClickedReLoadList()
|
|||
|
|
{
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>
|
|||
|
|
LoadDBServerItem();
|
|||
|
|
|
|||
|
|
return;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//ɾ<><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
VOID CDlgServerItem::OnBnClickedDeleteServer()
|
|||
|
|
{
|
|||
|
|
//<2F><>ȡѡ<C8A1><D1A1>
|
|||
|
|
ASSERT(m_ServerListControl.GetFirstSelectedItemPosition()!=NULL);
|
|||
|
|
POSITION Position=m_ServerListControl.GetFirstSelectedItemPosition();
|
|||
|
|
|
|||
|
|
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
|
|||
|
|
INT nListItem=m_ServerListControl.GetNextSelectedItem(Position);
|
|||
|
|
tagGameServerInfo * pGameServerInfo=(tagGameServerInfo *)m_ServerListControl.GetItemData(nListItem);
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD>ñ<EFBFBD><C3B1><EFBFBD>
|
|||
|
|
if (pGameServerInfo!=NULL)
|
|||
|
|
{
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ
|
|||
|
|
TCHAR szString[128]=TEXT("");
|
|||
|
|
_sntprintf_s(szString,CountArray(szString),TEXT("ȷʵҪɾ<EFBFBD><EFBFBD> [ %s ] <20><>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"),pGameServerInfo->szServerName);
|
|||
|
|
|
|||
|
|
//<2F><>ʾ<EFBFBD><CABE>Ϣ
|
|||
|
|
if (AfxMessageBox(szString,MB_ICONQUESTION|MB_YESNO)!=IDYES) return;
|
|||
|
|
|
|||
|
|
//ɾ<><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
CServerInfoManager ServerInfoManager;
|
|||
|
|
if (ServerInfoManager.DeleteGameServer(pGameServerInfo->wServerID)==false) return;
|
|||
|
|
|
|||
|
|
//ɾ<><C9BE><EFBFBD>б<EFBFBD>
|
|||
|
|
m_ServerListControl.DeleteItem(nListItem);
|
|||
|
|
m_ServerInfoBuffer.DeleteServerInfo(pGameServerInfo->wServerID);
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>
|
|||
|
|
if (m_ServerListControl.GetItemCount()>0)
|
|||
|
|
{
|
|||
|
|
//<2F><><EFBFBD>ñ<EFBFBD><C3B1><EFBFBD>
|
|||
|
|
INT nItemCount=m_ServerListControl.GetItemCount();
|
|||
|
|
INT nNextItem=(nListItem>=nItemCount)?(nItemCount-1):nListItem;
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1>
|
|||
|
|
m_ServerListControl.SetItemState(nNextItem,LVIS_SELECTED,LVIS_SELECTED);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD>¿<EFBFBD><C2BF><EFBFBD>
|
|||
|
|
UpdateControlStatus();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
return;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
VOID CDlgServerItem::OnBnClickedServiceAttrib()
|
|||
|
|
{
|
|||
|
|
return;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//˫<><CBAB><EFBFBD>б<EFBFBD>
|
|||
|
|
VOID CDlgServerItem::OnNMDblclkServerList(NMHDR * pNMHDR, LRESULT * pResult)
|
|||
|
|
{
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
if (((NMITEMACTIVATE *)pNMHDR)->iItem!=LB_ERR)
|
|||
|
|
{
|
|||
|
|
OnBnClickedLoadServer();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
return;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//ѡ<><D1A1><EFBFBD>ı<EFBFBD>
|
|||
|
|
VOID CDlgServerItem::OnLvnItemChangedServerList(NMHDR * pNMHDR, LRESULT * pResult)
|
|||
|
|
{
|
|||
|
|
//<2F><><EFBFBD>¿<EFBFBD><C2BF><EFBFBD>
|
|||
|
|
UpdateControlStatus();
|
|||
|
|
|
|||
|
|
return;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//////////////////////////////////////////////////////////////////////////////////
|