Restructure repository to include all source folders
Move git root from Client/ to src/ to track all source code: - Client: Game client source (moved to Client/Client/) - Server: Game server source - GameTools: Development tools - CryptoSource: Encryption utilities - database: Database scripts - Script: Game scripts - rylCoder_16.02.2008_src: Legacy coder tools - GMFont, Game: Additional resources 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
81
Server/ManageTool/RylServerRunSetup/ReadMe.txt
Normal file
81
Server/ManageTool/RylServerRunSetup/ReadMe.txt
Normal file
@@ -0,0 +1,81 @@
|
||||
================================================================================
|
||||
MFC 라이브러리 : RylServerRunSetup 프로젝트 개요
|
||||
================================================================================
|
||||
|
||||
응용 프로그램 마법사를 사용하여 RylServerRunSetup 응용 프로그램을 만듭니다. 이 응용
|
||||
프로그램에서는 기본적인 MFC 사용 밥법과 응용 프로그램 작성 방법을 설명합니다.
|
||||
|
||||
이 파일에는 RylServerRunSetup 응용 프로그램을 구성하는 각 파일에 대한 개요가 포함되어
|
||||
있습니다.
|
||||
|
||||
RylServerRunSetup.vcproj
|
||||
응용 프로그램 마법사를 사용하여 생성된 VC++ 프로젝트의 주 프로젝트 파일입니다.
|
||||
이 파일에는 파일을 생성한 Visual C++ 버전 정보 및 응용 프로그램 마법사에서 선택한 플랫폼,
|
||||
구성, 프로젝트 기능 등의 정보가 포함됩니다.
|
||||
|
||||
RylServerRunSetup.h
|
||||
응용 프로그램의 주 헤더 파일입니다. 이 파일에는 다른 프로젝트에 관련된 Resource.h와 같은
|
||||
특정 헤더가 포함되며 CRylServerRunSetupApp 응용 프로그램 클래스가 선언됩니다.
|
||||
|
||||
RylServerRunSetup.cpp
|
||||
CRylServerRunSetupApp 응용 프로그램 클래스를 포함하는 주 응용 프로그램의 소스 파일입니다.
|
||||
|
||||
RylServerRunSetup.rc
|
||||
프로그램에서 사용하는 모든 Microsoft Windows 리소스가 나열된 파일입니다.
|
||||
이 파일에는 RES 하위 디렉터리에 저장된 아이콘, 비트맵 및 커서가 포함되며
|
||||
Microsoft Visual C++에서 직접 이 파일을 편집할 수도 있습니다. 사용자의 프로젝트
|
||||
리소스는 1042에 들어 있습니다.
|
||||
|
||||
res\RylServerRunSetup.ico
|
||||
응용 프로그램의 아이콘으로 사용되는 아이콘 파일입니다.
|
||||
이 아이콘은 주 리소스 파일인 RylServerRunSetup.rc에 포함됩니다.
|
||||
|
||||
res\RylServerRunSetup.rc2
|
||||
Microsoft Visual C++에서 편집할 수 없는 리소스가 포함된 파일입니다.
|
||||
리소스 편집기에서 편집할 수 없는 모든 리소스는 이 파일에 포함되어 있습니다.
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
응용 프로그램 마법사에서는 단일 대화 상자 클래스를 만듭니다.
|
||||
RylServerRunSetupDlg.h, RylServerRunSetupDlg.cpp - 대화 상자
|
||||
CRylServerRunSetupDlg 클래스를 포함하는 파일입니다. 이 클래스에는 응용 프로그램의
|
||||
주 대화 상자에 대한 동작이 정의됩니다. 대화 상자의 템플릿은 RylServerRunSetup.rc에
|
||||
있으며 Microsoft Visual C++에서 편집할 수 있습니다.
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
기타 기능
|
||||
|
||||
ActiveX 컨트롤
|
||||
응용 프로그램에서 ActiveX 컨트롤을 사용할 수 있습니다.
|
||||
|
||||
인쇄 및 인쇄 미리보기 지원
|
||||
응용 프로그램 마법사에서 MFC 라이브러리의 CView 클래스에 있는 멤버 함수를 호출하여
|
||||
인쇄, 인쇄 설정, 인쇄 미리보기 명령을 처리할 수 있는 코드를 생성합니다.
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
기타 표준 파일
|
||||
|
||||
StdAfx.h, StdAfx.cpp
|
||||
미리 컴파일된 헤더 파일(PCH) RylServerRunSetup.pch 및 미리 컴파일된
|
||||
형식 파일 StdAfx.obj를 빌드할 때 사용되는 파일입니다.
|
||||
|
||||
Resource.h
|
||||
새로운 리소스 ID를 정의하는 표준 헤더 파일입니다.
|
||||
Microsoft Visual C++에서 이 파일을 읽고 업데이트합니다.
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
기타 정보
|
||||
|
||||
응용 프로그램 마법사에서는 "TODO:"를 사용하여 추가하거나 사용자 지정해야 하는
|
||||
소스 코드를 나타냅니다.
|
||||
|
||||
응용 프로그램에서 공유 DLL에 MFC를 사용하고 응용 프로그램의 언어가 운영 체제의
|
||||
언어와 다른 경우 Microsoft Visual C++ CD-ROM의 Win\System 디렉터리에 있는
|
||||
해당 지역의 리소스인 MFC70XXX.DLL을 컴퓨터의 system 또는 system32 디렉터리에
|
||||
복사한 다음 MFCLOC.DLL로 이름을 바꾸어야 합니다. "XXX"는 해당 언어를 나타내는
|
||||
약어입니다. 예를 들어 MFC70DEU.DLL에는 독일어로 변환된 리소스가 포함됩니다.
|
||||
이런 작업을 하지 않으면 응용 프로그램의 일부 UI 요소가 운영 체제의 언어로
|
||||
남아 있게 됩니다.
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
32
Server/ManageTool/RylServerRunSetup/Resource.h
Normal file
32
Server/ManageTool/RylServerRunSetup/Resource.h
Normal file
@@ -0,0 +1,32 @@
|
||||
//{{NO_DEPENDENCIES}}
|
||||
// Microsoft Visual C++ generated include file.
|
||||
// Used by RylServerRunSetup.rc
|
||||
//
|
||||
#define IDM_ABOUTBOX 0x0010
|
||||
#define IDD_ABOUTBOX 100
|
||||
#define IDS_ABOUTBOX 101
|
||||
#define IDD_SERVERRUNSETUP_DIALOG 102
|
||||
#define IDR_MAINFRAME 128
|
||||
#define IDC_SERVERTYPE_CB 1002
|
||||
#define IDC_SERVERGROUP_CB 1003
|
||||
#define IDC_ZONE_CB 1004
|
||||
#define IDC_CHANNEL_CB 1005
|
||||
#define IDC_RUNINFO_LIST 1007
|
||||
#define IDC_MATCH_BTN 1008
|
||||
#define IDC_SERVERID_EDIT 1009
|
||||
#define IDC_SORTING_BTN 1010
|
||||
#define IDC_SELSERVERID_EDIT 1011
|
||||
#define IDC_SELSERVERID_EDIT2 1012
|
||||
#define IDC_BUTTON3 1013
|
||||
#define IDC_BUTTON1 1014
|
||||
|
||||
// Next default values for new objects
|
||||
//
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
#ifndef APSTUDIO_READONLY_SYMBOLS
|
||||
#define _APS_NEXT_RESOURCE_VALUE 129
|
||||
#define _APS_NEXT_COMMAND_VALUE 32771
|
||||
#define _APS_NEXT_CONTROL_VALUE 1015
|
||||
#define _APS_NEXT_SYMED_VALUE 101
|
||||
#endif
|
||||
#endif
|
||||
79
Server/ManageTool/RylServerRunSetup/RylServerRunSetup.cpp
Normal file
79
Server/ManageTool/RylServerRunSetup/RylServerRunSetup.cpp
Normal file
@@ -0,0 +1,79 @@
|
||||
// RylServerRunSetup.cpp : 응용 프로그램에 대한 클래스 동작을 정의합니다.
|
||||
//
|
||||
|
||||
#include "stdafx.h"
|
||||
#include "RylServerRunSetup.h"
|
||||
#include "./Dialog/RylServerRunSetupDlg.h"
|
||||
|
||||
#include <DB/ManageServerDB.h>
|
||||
#include <Setup/RylServerBindRunID.h>
|
||||
|
||||
#ifdef _DEBUG
|
||||
#define new DEBUG_NEW
|
||||
#endif
|
||||
|
||||
// CRylServerRunSetupApp
|
||||
|
||||
BEGIN_MESSAGE_MAP(CRylServerRunSetupApp, CWinApp)
|
||||
ON_COMMAND(ID_HELP, CWinApp::OnHelp)
|
||||
END_MESSAGE_MAP()
|
||||
|
||||
|
||||
// CRylServerRunSetupApp 생성
|
||||
|
||||
CRylServerRunSetupApp::CRylServerRunSetupApp()
|
||||
{
|
||||
// TODO: 여기에 생성 코드를 추가합니다.
|
||||
// InitInstance에 모든 중요한 초기화 작업을 배치합니다.
|
||||
}
|
||||
|
||||
|
||||
// 유일한 CRylServerRunSetupApp 개체입니다.
|
||||
|
||||
CRylServerRunSetupApp theApp;
|
||||
|
||||
|
||||
// CRylServerRunSetupApp 초기화
|
||||
|
||||
BOOL CRylServerRunSetupApp::InitInstance()
|
||||
{
|
||||
if(!CManageServerDB::GetInstance().Initialize())
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
// 응용 프로그램 매니페스트가 ComCtl32.dll 버전 6 이상을 사용하여 비주얼 스타일을
|
||||
// 사용하도록 지정하는 경우, Windows XP 상에서 반드시 InitCommonControls()가 필요합니다.
|
||||
// InitCommonControls()를 사용하지 않으면 창을 만들 수 없습니다.
|
||||
InitCommonControls();
|
||||
|
||||
CWinApp::InitInstance();
|
||||
|
||||
AfxEnableControlContainer();
|
||||
|
||||
// 표준 초기화
|
||||
// 이들 기능을 사용하지 않고 최종 실행 파일의 크기를 줄이려면
|
||||
// 아래에서 필요 없는 특정 초기화 루틴을 제거해야 합니다.
|
||||
// 해당 설정이 저장된 레지스트리 키를 변경하십시오.
|
||||
// TODO: 이 문자열을 회사 또는 조직의 이름과 같은
|
||||
// 적절한 내용으로 수정해야 합니다.
|
||||
SetRegistryKey(_T("로컬 응용 프로그램 마법사에서 생성한 응용 프로그램"));
|
||||
|
||||
CRylServerRunSetupDlg dlg;
|
||||
m_pMainWnd = &dlg;
|
||||
INT_PTR nResponse = dlg.DoModal();
|
||||
if (nResponse == IDOK)
|
||||
{
|
||||
// TODO: 여기에 대화 상자가 확인을 눌러 없어지는 경우 처리할
|
||||
// 코드를 배치합니다.
|
||||
}
|
||||
else if (nResponse == IDCANCEL)
|
||||
{
|
||||
// TODO: 여기에 대화 상자가 취소를 눌러 없어지는 경우 처리할
|
||||
// 코드를 배치합니다.
|
||||
}
|
||||
|
||||
// 대화 상자가 닫혔으므로 응용 프로그램의 메시지 펌프를 시작하지 않고
|
||||
// 응용 프로그램을 끝낼 수 있도록 FALSE를 반환합니다.
|
||||
return FALSE;
|
||||
}
|
||||
31
Server/ManageTool/RylServerRunSetup/RylServerRunSetup.h
Normal file
31
Server/ManageTool/RylServerRunSetup/RylServerRunSetup.h
Normal file
@@ -0,0 +1,31 @@
|
||||
// RylServerRunSetup.h : PROJECT_NAME 응용 프로그램에 대한 주 헤더 파일입니다.
|
||||
//
|
||||
|
||||
#pragma once
|
||||
|
||||
#ifndef __AFXWIN_H__
|
||||
#error PCH에서 이 파일을 포함하기 전에 'stdafx.h'를 포함하십시오.
|
||||
#endif
|
||||
|
||||
#include "resource.h" // 주 기호
|
||||
|
||||
|
||||
// CRylServerRunSetupApp:
|
||||
// 이 클래스의 구현에 대해서는 RylServerRunSetup.cpp을 참조하십시오.
|
||||
//
|
||||
|
||||
class CRylServerRunSetupApp : public CWinApp
|
||||
{
|
||||
public:
|
||||
CRylServerRunSetupApp();
|
||||
|
||||
// 재정의
|
||||
public:
|
||||
virtual BOOL InitInstance();
|
||||
|
||||
// 구현
|
||||
|
||||
DECLARE_MESSAGE_MAP()
|
||||
};
|
||||
|
||||
extern CRylServerRunSetupApp theApp;
|
||||
220
Server/ManageTool/RylServerRunSetup/RylServerRunSetup.rc
Normal file
220
Server/ManageTool/RylServerRunSetup/RylServerRunSetup.rc
Normal file
@@ -0,0 +1,220 @@
|
||||
// Microsoft Visual C++ generated resource script.
|
||||
//
|
||||
#include "resource.h"
|
||||
|
||||
#define APSTUDIO_READONLY_SYMBOLS
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Generated from the TEXTINCLUDE 2 resource.
|
||||
//
|
||||
#include "afxres.h"
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
#undef APSTUDIO_READONLY_SYMBOLS
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// 한국어 resources
|
||||
|
||||
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_KOR)
|
||||
#ifdef _WIN32
|
||||
LANGUAGE LANG_KOREAN, SUBLANG_DEFAULT
|
||||
#pragma code_page(949)
|
||||
#endif //_WIN32
|
||||
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// TEXTINCLUDE
|
||||
//
|
||||
|
||||
1 TEXTINCLUDE
|
||||
BEGIN
|
||||
"resource.h\0"
|
||||
END
|
||||
|
||||
2 TEXTINCLUDE
|
||||
BEGIN
|
||||
"#include ""afxres.h""\r\n"
|
||||
"\0"
|
||||
END
|
||||
|
||||
3 TEXTINCLUDE
|
||||
BEGIN
|
||||
"#define _AFX_NO_SPLITTER_RESOURCES\r\n"
|
||||
"#define _AFX_NO_OLE_RESOURCES\r\n"
|
||||
"#define _AFX_NO_TRACKER_RESOURCES\r\n"
|
||||
"#define _AFX_NO_PROPERTY_RESOURCES\r\n"
|
||||
"\r\n"
|
||||
"#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_KOR)\r\n"
|
||||
"LANGUAGE 18, 1\r\n"
|
||||
"#pragma code_page(949)\r\n"
|
||||
"#include ""res\\RylServerRunSetup.rc2"" // Microsoft Visual C++에서 편집되지 않은 리소스\r\n"
|
||||
"#include ""afxres.rc"" // 표준 구성 요소\r\n"
|
||||
"#endif\r\n"
|
||||
"\0"
|
||||
END
|
||||
|
||||
#endif // APSTUDIO_INVOKED
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Icon
|
||||
//
|
||||
|
||||
// Icon with lowest ID value placed first to ensure application icon
|
||||
// remains consistent on all systems.
|
||||
IDR_MAINFRAME ICON "res\\RylServerRunSetup.ico"
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Dialog
|
||||
//
|
||||
|
||||
IDD_ABOUTBOX DIALOGEX 0, 0, 235, 55
|
||||
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION |
|
||||
WS_SYSMENU
|
||||
CAPTION "ROWServerRunSetup Info"
|
||||
FONT 9, "MS Shell Dlg", 0, 0, 0x1
|
||||
BEGIN
|
||||
ICON IDR_MAINFRAME,IDC_STATIC,11,17,20,20
|
||||
LTEXT "ROWServerRunSetup Version 1.0",IDC_STATIC,40,10,119,8,
|
||||
SS_NOPREFIX
|
||||
LTEXT "Copyright (C) 2008 Youxiland.",IDC_STATIC,40,25,119,8
|
||||
DEFPUSHBUTTON "확인",IDOK,178,7,50,16,WS_GROUP
|
||||
END
|
||||
|
||||
IDD_SERVERRUNSETUP_DIALOG DIALOGEX 0, 0, 535, 364
|
||||
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_VISIBLE |
|
||||
WS_CAPTION | WS_SYSMENU
|
||||
EXSTYLE WS_EX_APPWINDOW
|
||||
CAPTION "ROW ServerRunSetup ( ID Matching )"
|
||||
FONT 9, "MS Shell Dlg", 0, 0, 0x1
|
||||
BEGIN
|
||||
COMBOBOX IDC_SERVERGROUP_CB,169,52,74,86,CBS_DROPDOWNLIST |
|
||||
CBS_SORT | WS_DISABLED | WS_VSCROLL | WS_TABSTOP
|
||||
COMBOBOX IDC_SERVERTYPE_CB,94,52,74,85,CBS_DROPDOWNLIST |
|
||||
CBS_SORT | WS_VSCROLL | WS_TABSTOP
|
||||
COMBOBOX IDC_ZONE_CB,243,52,76,85,CBS_DROPDOWNLIST | CBS_SORT |
|
||||
WS_DISABLED | WS_VSCROLL | WS_TABSTOP
|
||||
COMBOBOX IDC_CHANNEL_CB,319,52,62,85,CBS_DROPDOWNLIST | CBS_SORT |
|
||||
WS_DISABLED | WS_VSCROLL | WS_TABSTOP
|
||||
LTEXT "ServerType",IDC_STATIC,96,43,37,8
|
||||
LTEXT "ServerGroup",IDC_STATIC,171,43,40,8
|
||||
LTEXT "Channel",IDC_STATIC,320,43,26,8
|
||||
LTEXT "Zone",IDC_STATIC,245,43,17,8
|
||||
CONTROL "",IDC_RUNINFO_LIST,"SysListView32",LVS_REPORT |
|
||||
LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_ALIGNLEFT |
|
||||
WS_BORDER | WS_TABSTOP,10,68,514,286
|
||||
GROUPBOX "▶ RunInfo List",IDC_STATIC,4,4,527,356,BS_FLAT
|
||||
PUSHBUTTON "Match",IDC_MATCH_BTN,94,25,60,12,BS_FLAT
|
||||
EDITTEXT IDC_SERVERID_EDIT,10,52,81,13,ES_CENTER | ES_AUTOHSCROLL |
|
||||
ES_READONLY
|
||||
EDITTEXT IDC_SELSERVERID_EDIT,11,25,81,12,ES_CENTER |
|
||||
ES_AUTOHSCROLL | ES_READONLY
|
||||
LTEXT "▷ Selected Server ID",IDC_STATIC,11,14,69,8
|
||||
LTEXT "▷▷ New Server ID",IDC_STATIC,11,41,63,8
|
||||
END
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Version
|
||||
//
|
||||
|
||||
VS_VERSION_INFO VERSIONINFO
|
||||
FILEVERSION 1,0,0,1
|
||||
PRODUCTVERSION 1,0,0,1
|
||||
FILEFLAGSMASK 0x3fL
|
||||
#ifdef _DEBUG
|
||||
FILEFLAGS 0x1L
|
||||
#else
|
||||
FILEFLAGS 0x0L
|
||||
#endif
|
||||
FILEOS 0x4L
|
||||
FILETYPE 0x1L
|
||||
FILESUBTYPE 0x0L
|
||||
BEGIN
|
||||
BLOCK "StringFileInfo"
|
||||
BEGIN
|
||||
BLOCK "000004b0"
|
||||
BEGIN
|
||||
VALUE "CompanyName", "(C) Youxiland"
|
||||
VALUE "FileDescription", "Youxiland Inner Tool"
|
||||
VALUE "FileVersion", "1.0.0.1"
|
||||
VALUE "InternalName", "RylServerRunSetup.exe"
|
||||
VALUE "LegalCopyright", "(c) Youxiland. All rights reserved."
|
||||
VALUE "OriginalFilename", "RylServerRunSetup.exe"
|
||||
VALUE "ProductName", "ROWServerRunSetup"
|
||||
VALUE "ProductVersion", "1.0.0.1"
|
||||
END
|
||||
END
|
||||
BLOCK "VarFileInfo"
|
||||
BEGIN
|
||||
VALUE "Translation", 0x0, 1200
|
||||
END
|
||||
END
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// DESIGNINFO
|
||||
//
|
||||
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
GUIDELINES DESIGNINFO
|
||||
BEGIN
|
||||
IDD_ABOUTBOX, DIALOG
|
||||
BEGIN
|
||||
LEFTMARGIN, 7
|
||||
RIGHTMARGIN, 228
|
||||
TOPMARGIN, 7
|
||||
BOTTOMMARGIN, 48
|
||||
END
|
||||
|
||||
IDD_SERVERRUNSETUP_DIALOG, DIALOG
|
||||
BEGIN
|
||||
LEFTMARGIN, 4
|
||||
RIGHTMARGIN, 531
|
||||
TOPMARGIN, 4
|
||||
BOTTOMMARGIN, 360
|
||||
END
|
||||
END
|
||||
#endif // APSTUDIO_INVOKED
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// String Table
|
||||
//
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_ABOUTBOX "ROW ServerRunSetup Info(&A)..."
|
||||
END
|
||||
|
||||
#endif // 한국어 resources
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
|
||||
#ifndef APSTUDIO_INVOKED
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Generated from the TEXTINCLUDE 3 resource.
|
||||
//
|
||||
#define _AFX_NO_SPLITTER_RESOURCES
|
||||
#define _AFX_NO_OLE_RESOURCES
|
||||
#define _AFX_NO_TRACKER_RESOURCES
|
||||
#define _AFX_NO_PROPERTY_RESOURCES
|
||||
|
||||
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_KOR)
|
||||
LANGUAGE 18, 1
|
||||
#pragma code_page(949)
|
||||
#include "res\RylServerRunSetup.rc2" // Microsoft Visual C++에서 편집되지 않은 리소스
|
||||
#include "afxres.rc" // 표준 구성 요소
|
||||
#endif
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
#endif // not APSTUDIO_INVOKED
|
||||
|
||||
197
Server/ManageTool/RylServerRunSetup/RylServerRunSetup.vcproj
Normal file
197
Server/ManageTool/RylServerRunSetup/RylServerRunSetup.vcproj
Normal file
@@ -0,0 +1,197 @@
|
||||
<?xml version="1.0" encoding="ks_c_5601-1987"?>
|
||||
<VisualStudioProject
|
||||
ProjectType="Visual C++"
|
||||
Version="7.10"
|
||||
Name="RylSetupServerRun"
|
||||
ProjectGUID="{943BCBA9-BD4E-47C4-AB1D-334F7F7551A0}"
|
||||
Keyword="MFCProj">
|
||||
<Platforms>
|
||||
<Platform
|
||||
Name="Win32"/>
|
||||
</Platforms>
|
||||
<Configurations>
|
||||
<Configuration
|
||||
Name="Debug|Win32"
|
||||
OutputDirectory="../Executable/$(ConfigurationName)"
|
||||
IntermediateDirectory="../Intermediate/$(ProjectName)/$(ConfigurationName)"
|
||||
ConfigurationType="1"
|
||||
UseOfMFC="1"
|
||||
CharacterSet="2">
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories="./;../;../../RylServerProject/RylServerLibrary;../../RylServerProject/BaseLibrary;../ManageLibrary"
|
||||
PreprocessorDefinitions="WIN32;_WINDOWS;_DEBUG"
|
||||
MinimalRebuild="TRUE"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="1"
|
||||
TreatWChar_tAsBuiltInType="TRUE"
|
||||
UsePrecompiledHeader="2"
|
||||
WarningLevel="3"
|
||||
Detect64BitPortabilityProblems="TRUE"
|
||||
DebugInformationFormat="4"/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
LinkIncremental="2"
|
||||
GenerateDebugInformation="TRUE"
|
||||
SubSystem="2"
|
||||
TargetMachine="1"/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
PreprocessorDefinitions="_DEBUG"
|
||||
MkTypLibCompatible="FALSE"/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"/>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
PreprocessorDefinitions="_DEBUG"
|
||||
Culture="1042"
|
||||
AdditionalIncludeDirectories="$(IntDir)"/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCWebDeploymentTool"/>
|
||||
<Tool
|
||||
Name="VCManagedWrapperGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Release|Win32"
|
||||
OutputDirectory="../Executable/$(ConfigurationName)"
|
||||
IntermediateDirectory="../Intermediate/$(ProjectName)/$(ConfigurationName)"
|
||||
ConfigurationType="1"
|
||||
UseOfMFC="1"
|
||||
CharacterSet="2">
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories="./;../;../../RylServerProject/RylServerLibrary;../../RylServerProject/BaseLibrary;../ManageLibrary"
|
||||
PreprocessorDefinitions="WIN32;_WINDOWS;NDEBUG"
|
||||
MinimalRebuild="FALSE"
|
||||
RuntimeLibrary="0"
|
||||
TreatWChar_tAsBuiltInType="TRUE"
|
||||
UsePrecompiledHeader="2"
|
||||
WarningLevel="3"
|
||||
Detect64BitPortabilityProblems="TRUE"
|
||||
DebugInformationFormat="3"/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
LinkIncremental="1"
|
||||
GenerateDebugInformation="TRUE"
|
||||
SubSystem="2"
|
||||
OptimizeReferences="2"
|
||||
EnableCOMDATFolding="2"
|
||||
TargetMachine="1"/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
PreprocessorDefinitions="NDEBUG"
|
||||
MkTypLibCompatible="FALSE"/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"/>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
PreprocessorDefinitions="NDEBUG"
|
||||
Culture="1042"
|
||||
AdditionalIncludeDirectories="$(IntDir)"/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCWebDeploymentTool"/>
|
||||
<Tool
|
||||
Name="VCManagedWrapperGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
|
||||
</Configuration>
|
||||
</Configurations>
|
||||
<References>
|
||||
</References>
|
||||
<Files>
|
||||
<Filter
|
||||
Name="Resource"
|
||||
Filter="">
|
||||
<File
|
||||
RelativePath=".\res\RylServerRunSetup.ico">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\res\RylServerRunSetup.manifest">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\RylServerRunSetup.rc">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\res\RylServerRunSetup.rc2">
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Dialog"
|
||||
Filter="">
|
||||
<File
|
||||
RelativePath=".\dialog\RylServerRunSetupDlg.cpp">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\dialog\RylServerRunSetupDlg.h">
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Misc"
|
||||
Filter="">
|
||||
<File
|
||||
RelativePath=".\Misc\GlobalFunc.cpp">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\Misc\GlobalFunc.h">
|
||||
</File>
|
||||
</Filter>
|
||||
<File
|
||||
RelativePath=".\ReadMe.txt">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\Resource.h">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\RylServerRunSetup.cpp">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\RylServerRunSetup.h">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\stdafx.cpp">
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32">
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
UsePrecompiledHeader="1"/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Release|Win32">
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
UsePrecompiledHeader="1"/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\stdafx.h">
|
||||
</File>
|
||||
</Files>
|
||||
<Globals>
|
||||
<Global
|
||||
Name="RESOURCE_FILE"
|
||||
Value="RylServerRunSetup.rc"/>
|
||||
</Globals>
|
||||
</VisualStudioProject>
|
||||
@@ -0,0 +1,494 @@
|
||||
// RylServerRunSetupDlg.cpp : 구현 파일
|
||||
//
|
||||
|
||||
#include "stdafx.h"
|
||||
#include "RylServerRunSetup.h"
|
||||
#include "RylServerRunSetupDlg.h"
|
||||
|
||||
#include "./Misc/GlobalFunc.h"
|
||||
#include <Network/Packet/PacketStruct/ServerInfo.h>
|
||||
#include <Utility/Setup/ServerSetup.h>
|
||||
|
||||
#include <ServerManage/ManageClientManager.h>
|
||||
#include <Setup/RylServerBindRunID.h>
|
||||
#include <Setup/RylServerGroupSetup.h>
|
||||
|
||||
#include <vector>
|
||||
|
||||
#ifdef _DEBUG
|
||||
#define new DEBUG_NEW
|
||||
#endif
|
||||
|
||||
|
||||
class CRemoveEmptyRunID
|
||||
{
|
||||
public:
|
||||
|
||||
typedef std::vector<unsigned long> DeleteRunID;
|
||||
|
||||
CRemoveEmptyRunID(DeleteRunID& deleteRunID) : m_DeleteRunID(deleteRunID) { }
|
||||
|
||||
bool operator() (unsigned long dwRunID, unsigned long dwServerID)
|
||||
{
|
||||
if(!CManageClientManager::GetInstance().HasRunInfo(dwRunID))
|
||||
{
|
||||
m_DeleteRunID.push_back(dwRunID);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
private:
|
||||
|
||||
DeleteRunID& m_DeleteRunID;
|
||||
};
|
||||
|
||||
|
||||
// 응용 프로그램 정보에 사용되는 CAboutDlg 대화 상자입니다.
|
||||
|
||||
class CAboutDlg : public CDialog
|
||||
{
|
||||
public:
|
||||
CAboutDlg();
|
||||
|
||||
// 대화 상자 데이터
|
||||
enum { IDD = IDD_ABOUTBOX };
|
||||
|
||||
protected:
|
||||
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 지원
|
||||
|
||||
// 구현
|
||||
protected:
|
||||
DECLARE_MESSAGE_MAP()
|
||||
};
|
||||
|
||||
CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
|
||||
{
|
||||
}
|
||||
|
||||
void CAboutDlg::DoDataExchange(CDataExchange* pDX)
|
||||
{
|
||||
CDialog::DoDataExchange(pDX);
|
||||
}
|
||||
|
||||
BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
|
||||
END_MESSAGE_MAP()
|
||||
|
||||
|
||||
// CRylServerRunSetupDlg 대화 상자
|
||||
|
||||
|
||||
|
||||
CRylServerRunSetupDlg::CRylServerRunSetupDlg(CWnd* pParent /*=NULL*/)
|
||||
: CDialog(CRylServerRunSetupDlg::IDD, pParent)
|
||||
, m_strServerID(_T(""))
|
||||
, m_dwServerID(0)
|
||||
, m_strSelServerID(_T(""))
|
||||
{
|
||||
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
|
||||
}
|
||||
|
||||
void CRylServerRunSetupDlg::DoDataExchange(CDataExchange* pDX)
|
||||
{
|
||||
CDialog::DoDataExchange(pDX);
|
||||
|
||||
DDX_Control(pDX, IDC_SERVERGROUP_CB, m_ctrlServerGroupCb);
|
||||
DDX_Control(pDX, IDC_SERVERTYPE_CB, m_ctrlServerTypeCb);
|
||||
DDX_Control(pDX, IDC_ZONE_CB, m_ctrlZoneCb);
|
||||
DDX_Control(pDX, IDC_CHANNEL_CB, m_ctrlChannelCb);
|
||||
DDX_Control(pDX, IDC_RUNINFO_LIST, m_ctrlRunInfoList);
|
||||
|
||||
DDX_Text(pDX, IDC_SERVERID_EDIT, m_strServerID);
|
||||
DDX_Text(pDX, IDC_SELSERVERID_EDIT, m_strSelServerID);
|
||||
}
|
||||
|
||||
BEGIN_MESSAGE_MAP(CRylServerRunSetupDlg, CDialog)
|
||||
ON_WM_SYSCOMMAND()
|
||||
ON_WM_PAINT()
|
||||
ON_WM_QUERYDRAGICON()
|
||||
//}}AFX_MSG_MAP
|
||||
ON_CBN_SELCHANGE(IDC_SERVERGROUP_CB, OnCbnSelchangeServergroupCb)
|
||||
ON_CBN_SELCHANGE(IDC_SERVERTYPE_CB, OnCbnSelchangeServertypeCb)
|
||||
ON_CBN_SELCHANGE(IDC_ZONE_CB, OnCbnSelchangeZoneCb)
|
||||
ON_CBN_SELCHANGE(IDC_CHANNEL_CB, OnCbnSelchangeChannelCb)
|
||||
ON_BN_CLICKED(IDC_MATCH_BTN, OnBnClickedMatchBtn)
|
||||
ON_NOTIFY(LVN_ITEMCHANGED, IDC_RUNINFO_LIST, OnLvnItemchangedRuninfoList)
|
||||
END_MESSAGE_MAP()
|
||||
|
||||
|
||||
|
||||
class CSetServerStringToComboBox
|
||||
{
|
||||
public:
|
||||
|
||||
CSetServerStringToComboBox(CComboBox& comboBox) : m_ComboBox(comboBox) { }
|
||||
|
||||
bool operator() (unsigned long dwKey, const char* szString)
|
||||
{
|
||||
int nInsertPos = m_ComboBox.GetCount();
|
||||
m_ComboBox.InsertString(nInsertPos, szString);
|
||||
m_ComboBox.SetItemData(nInsertPos, dwKey);
|
||||
return true;
|
||||
}
|
||||
|
||||
private:
|
||||
CComboBox& m_ComboBox;
|
||||
};
|
||||
|
||||
// CRylServerRunSetupDlg 메시지 처리기
|
||||
|
||||
BOOL CRylServerRunSetupDlg::OnInitDialog()
|
||||
{
|
||||
CDialog::OnInitDialog();
|
||||
|
||||
// 시스템 메뉴에 "정보..." 메뉴 항목을 추가합니다.
|
||||
|
||||
// IDM_ABOUTBOX는 시스템 명령 범위에 있어야 합니다.
|
||||
ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
|
||||
ASSERT(IDM_ABOUTBOX < 0xF000);
|
||||
|
||||
CMenu* pSysMenu = GetSystemMenu(FALSE);
|
||||
if (pSysMenu != NULL)
|
||||
{
|
||||
CString strAboutMenu;
|
||||
strAboutMenu.LoadString(IDS_ABOUTBOX);
|
||||
if (!strAboutMenu.IsEmpty())
|
||||
{
|
||||
pSysMenu->AppendMenu(MF_SEPARATOR);
|
||||
pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
|
||||
}
|
||||
}
|
||||
|
||||
// 이 대화 상자의 아이콘을 설정합니다. 응용 프로그램의 주 창이 대화 상자가 아닐 경우에는
|
||||
// 프레임워크가 이 작업을 자동으로 수행합니다.
|
||||
SetIcon(m_hIcon, TRUE); // 큰 아이콘을 설정합니다.
|
||||
SetIcon(m_hIcon, FALSE); // 작은 아이콘을 설정합니다.
|
||||
|
||||
CRylServerGroupSetup::GetInstance().EnumSetup(
|
||||
CRylServerGroupSetup::SERVER_GROUP, CSetServerStringToComboBox(m_ctrlServerGroupCb));
|
||||
|
||||
CRylServerGroupSetup::GetInstance().EnumSetup(
|
||||
CRylServerGroupSetup::SERVER_TYPE, CSetServerStringToComboBox(m_ctrlServerTypeCb));
|
||||
|
||||
CRylServerGroupSetup::GetInstance().EnumSetup(
|
||||
CRylServerGroupSetup::SERVER_ZONE, CSetServerStringToComboBox(m_ctrlZoneCb));
|
||||
|
||||
CRylServerGroupSetup::GetInstance().EnumSetup(
|
||||
CRylServerGroupSetup::SERVER_CHANNEL, CSetServerStringToComboBox(m_ctrlChannelCb));
|
||||
|
||||
m_ctrlServerGroupCb.SetCurSel(0);
|
||||
m_ctrlServerTypeCb.SetCurSel(0);
|
||||
m_ctrlZoneCb.SetCurSel(0);
|
||||
m_ctrlChannelCb.SetCurSel(0);
|
||||
|
||||
m_ctrlRunInfoList.SetExtendedStyle ( LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES | LVS_EX_FLATSB );
|
||||
m_ctrlRunInfoList.SetBkColor ( COLORREF RGB( 255, 255, 215) );
|
||||
m_ctrlRunInfoList.SetTextBkColor ( COLORREF RGB( 255, 255, 215) );
|
||||
m_ctrlRunInfoList.InsertColumn ( 0, _T("RunID"), LVCFMT_LEFT, 45 );
|
||||
m_ctrlRunInfoList.InsertColumn ( 1, _T("ServerID"), LVCFMT_LEFT, 100 );
|
||||
m_ctrlRunInfoList.InsertColumn ( 2, _T("IP"), LVCFMT_LEFT, 105 );
|
||||
m_ctrlRunInfoList.InsertColumn ( 3, _T("Name"), LVCFMT_LEFT, 100 );
|
||||
m_ctrlRunInfoList.InsertColumn ( 4, _T("Path"), LVCFMT_LEFT, 390 );
|
||||
m_ctrlRunInfoList.InsertColumn ( 5, _T("Option"), LVCFMT_LEFT, 140 );
|
||||
|
||||
|
||||
CRylServerBindRunID::GetInstance().Load();
|
||||
|
||||
|
||||
CRemoveEmptyRunID::DeleteRunID deleteRunID;
|
||||
CRylServerBindRunID::GetInstance().EnumID(CRemoveEmptyRunID(deleteRunID));
|
||||
|
||||
|
||||
CRemoveEmptyRunID::DeleteRunID::iterator pos = deleteRunID.begin();
|
||||
CRemoveEmptyRunID::DeleteRunID::iterator end = deleteRunID.end();
|
||||
|
||||
|
||||
for(; pos != end; ++pos)
|
||||
{
|
||||
CRylServerBindRunID::GetInstance().RemoveFromRunID(*pos);
|
||||
}
|
||||
|
||||
|
||||
RunInfoListSet();
|
||||
|
||||
return TRUE; // 컨트롤에 대한 포커스를 설정하지 않을 경우 TRUE를 반환합니다.
|
||||
}
|
||||
|
||||
void CRylServerRunSetupDlg::OnSysCommand(UINT nID, LPARAM lParam)
|
||||
{
|
||||
if ((nID & 0xFFF0) == IDM_ABOUTBOX)
|
||||
{
|
||||
CAboutDlg dlgAbout;
|
||||
dlgAbout.DoModal();
|
||||
}
|
||||
else
|
||||
{
|
||||
CDialog::OnSysCommand(nID, lParam);
|
||||
}
|
||||
}
|
||||
|
||||
// 대화 상자에 최소화 단추를 추가할 경우 아이콘을 그리려면
|
||||
// 아래 코드가 필요합니다. 문서/뷰 모델을 사용하는 MFC 응용 프로그램의 경우에는
|
||||
// 프레임워크에서 이 작업을 자동으로 수행합니다.
|
||||
|
||||
void CRylServerRunSetupDlg::OnPaint()
|
||||
{
|
||||
if (IsIconic())
|
||||
{
|
||||
CPaintDC dc(this); // 그리기를 위한 디바이스 컨텍스트
|
||||
|
||||
SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0);
|
||||
|
||||
// 클라이언트 사각형에서 아이콘을 가운데에 맞춥니다.
|
||||
int cxIcon = GetSystemMetrics(SM_CXICON);
|
||||
int cyIcon = GetSystemMetrics(SM_CYICON);
|
||||
CRect rect;
|
||||
GetClientRect(&rect);
|
||||
int x = (rect.Width() - cxIcon + 1) / 2;
|
||||
int y = (rect.Height() - cyIcon + 1) / 2;
|
||||
|
||||
// 아이콘을 그립니다.
|
||||
dc.DrawIcon(x, y, m_hIcon);
|
||||
}
|
||||
else
|
||||
{
|
||||
CDialog::OnPaint();
|
||||
}
|
||||
}
|
||||
|
||||
// 사용자가 최소화된 창을 끄는 동안에 커서가 표시되도록 시스템에서
|
||||
// 이 함수를 호출합니다.
|
||||
HCURSOR CRylServerRunSetupDlg::OnQueryDragIcon()
|
||||
{
|
||||
return static_cast<HCURSOR>(m_hIcon);
|
||||
}
|
||||
|
||||
|
||||
// ------------------------------------------------------------------------------
|
||||
// 콤보 박스 선택 변경 이벤트 처리
|
||||
|
||||
void CRylServerRunSetupDlg::OnCbnSelchangeServergroupCb()
|
||||
{
|
||||
ServerIDSet();
|
||||
}
|
||||
|
||||
void CRylServerRunSetupDlg::OnCbnSelchangeServertypeCb()
|
||||
{
|
||||
// 서버 타입 콤보 변경 시에는 활성화, 비활성화 시켜야 할 항목이 있음
|
||||
ServerIDSet();
|
||||
|
||||
SERVER_ID serverID;
|
||||
serverID.dwID = m_dwServerID;
|
||||
|
||||
m_ctrlServerGroupCb.EnableWindow(false);
|
||||
m_ctrlZoneCb.EnableWindow(false);
|
||||
m_ctrlChannelCb.EnableWindow(false);
|
||||
|
||||
switch( serverID.GetType() ){
|
||||
case CServerSetup::LoginServer:
|
||||
m_ctrlChannelCb.EnableWindow(true);
|
||||
break;
|
||||
case CServerSetup::UIDServer:
|
||||
m_ctrlServerGroupCb.EnableWindow(true);
|
||||
break;
|
||||
case CServerSetup::AuthServer:
|
||||
m_ctrlServerGroupCb.EnableWindow(true);
|
||||
break;
|
||||
case CServerSetup::AgentServer:
|
||||
m_ctrlServerGroupCb.EnableWindow(true);
|
||||
break;
|
||||
case CServerSetup::GameServer:
|
||||
m_ctrlServerGroupCb.EnableWindow(true);
|
||||
m_ctrlZoneCb.EnableWindow(true);
|
||||
m_ctrlChannelCb.EnableWindow(true);
|
||||
break;
|
||||
case CServerSetup::ChatServer:
|
||||
m_ctrlServerGroupCb.EnableWindow(true);
|
||||
m_ctrlChannelCb.EnableWindow(true);
|
||||
break;
|
||||
};
|
||||
}
|
||||
|
||||
void CRylServerRunSetupDlg::OnCbnSelchangeZoneCb()
|
||||
{
|
||||
ServerIDSet();
|
||||
}
|
||||
|
||||
void CRylServerRunSetupDlg::OnCbnSelchangeChannelCb()
|
||||
{
|
||||
ServerIDSet();
|
||||
}
|
||||
|
||||
// ------------------------------------------------------------------------------
|
||||
|
||||
void CRylServerRunSetupDlg::ServerIDSet()
|
||||
{
|
||||
SERVER_ID ServerID;
|
||||
ServerID.dwID = 0;
|
||||
|
||||
ServerID.sID.Group = static_cast<char>(m_ctrlServerGroupCb.GetItemData(m_ctrlServerGroupCb.GetCurSel()));
|
||||
ServerID.sID.Type = static_cast<char>(m_ctrlServerTypeCb.GetItemData(m_ctrlServerTypeCb.GetCurSel()));
|
||||
ServerID.sID.ID = static_cast<char>(m_ctrlZoneCb.GetItemData(m_ctrlZoneCb.GetCurSel()));
|
||||
ServerID.sID.Channel = static_cast<char>(m_ctrlChannelCb.GetItemData(m_ctrlChannelCb.GetCurSel()));
|
||||
|
||||
if( ServerID.GetType() != CServerSetup::GameServer )
|
||||
{
|
||||
ServerID.sID.ID = 0;
|
||||
}
|
||||
|
||||
if( ServerID.GetType() == CServerSetup::LoginServer )
|
||||
{
|
||||
ServerID.sID.Group = 0;
|
||||
}
|
||||
|
||||
if( ServerID.GetType() == CServerSetup::UIDServer )
|
||||
{
|
||||
// ServerID.sID.Group = 0;
|
||||
ServerID.sID.Channel = 0;
|
||||
}
|
||||
|
||||
m_strServerID.Format( "0x%08X", ServerID.dwID );
|
||||
m_dwServerID = ServerID.dwID;
|
||||
|
||||
UpdateData(false);
|
||||
}
|
||||
|
||||
|
||||
class CRefreshRunInfoList
|
||||
{
|
||||
public:
|
||||
|
||||
CRefreshRunInfoList(CListCtrl& ctrlList) : m_ctrlList(ctrlList) { }
|
||||
|
||||
bool operator() (const ServerManage::RunInfo& runInfo)
|
||||
{
|
||||
const int MIN_BUFFER = 64;
|
||||
char szRunID[MIN_BUFFER];
|
||||
char szServerID[MIN_BUFFER];
|
||||
|
||||
in_addr addr;
|
||||
addr.S_un.S_addr = runInfo.m_dwServerIP;
|
||||
|
||||
_snprintf(szRunID, MIN_BUFFER - 1, "%u", runInfo.m_dwRunID);
|
||||
szRunID[MIN_BUFFER - 1] = 0;
|
||||
|
||||
int nItemCount = m_ctrlList.GetItemCount();
|
||||
|
||||
m_ctrlList.InsertItem(nItemCount, "");
|
||||
m_ctrlList.SetItemText(nItemCount, 0, szRunID);
|
||||
|
||||
unsigned long dwServerID = 0;
|
||||
if(CRylServerBindRunID::GetInstance().GetServerID(runInfo.m_dwRunID, &dwServerID))
|
||||
{
|
||||
_snprintf(szServerID, MIN_BUFFER - 1, "0x%08X", dwServerID);
|
||||
szServerID[MIN_BUFFER - 1] = 0;
|
||||
|
||||
m_ctrlList.SetItemText(nItemCount, 1, szServerID);
|
||||
}
|
||||
else
|
||||
{
|
||||
m_ctrlList.SetItemText(nItemCount, 1, "not matched");
|
||||
}
|
||||
|
||||
m_ctrlList.SetItemText(nItemCount, 2, inet_ntoa(addr));
|
||||
m_ctrlList.SetItemText(nItemCount, 3, runInfo.m_szServerName);
|
||||
m_ctrlList.SetItemText(nItemCount, 4, runInfo.m_szPath);
|
||||
m_ctrlList.SetItemText(nItemCount, 5, runInfo.m_szOption);
|
||||
return true;
|
||||
}
|
||||
|
||||
private:
|
||||
|
||||
CListCtrl& m_ctrlList;
|
||||
};
|
||||
|
||||
|
||||
void CRylServerRunSetupDlg::RunInfoListSet()
|
||||
{
|
||||
// 실행 정보 리스트 컨트롤 갱신
|
||||
m_ctrlRunInfoList.DeleteAllItems();
|
||||
CManageClientManager::GetInstance().EnumRunInfo(CRefreshRunInfoList(m_ctrlRunInfoList));
|
||||
}
|
||||
|
||||
void CRylServerRunSetupDlg::OnBnClickedMatchBtn()
|
||||
{
|
||||
UpdateData(true);
|
||||
|
||||
int nSelIndex = m_ctrlRunInfoList.GetNextItem( -1, LVNI_SELECTED );
|
||||
if(-1 != nSelIndex)
|
||||
{
|
||||
unsigned long dwRunID = atol(m_ctrlRunInfoList.GetItemText(nSelIndex, 0));
|
||||
|
||||
if( "not matched" != m_ctrlRunInfoList.GetItemText(nSelIndex, 1) ) // 이미 매칭되어있는 경우
|
||||
{
|
||||
CRylServerBindRunID::GetInstance().RemoveFromRunID( dwRunID );
|
||||
CRylServerBindRunID::GetInstance().Save();
|
||||
}
|
||||
|
||||
if(!CRylServerBindRunID::GetInstance().SetID(dwRunID, m_dwServerID))
|
||||
{
|
||||
AfxMessageBox("Binding Error!");
|
||||
}
|
||||
else
|
||||
{
|
||||
CRylServerBindRunID::GetInstance().Save();
|
||||
RunInfoListSet();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
AfxMessageBox("Select bindinfo. then match~");
|
||||
}
|
||||
}
|
||||
|
||||
void CRylServerRunSetupDlg::OnLvnItemchangedRuninfoList(NMHDR *pNMHDR, LRESULT *pResult)
|
||||
{
|
||||
LPNMLISTVIEW pNMLV = reinterpret_cast<LPNMLISTVIEW>(pNMHDR);
|
||||
|
||||
char szSelServerID[MAX_PATH] = "";
|
||||
|
||||
int nSelIndex = m_ctrlRunInfoList.GetNextItem( -1, LVNI_SELECTED );
|
||||
if(-1 != nSelIndex)
|
||||
{
|
||||
unsigned long dwRunID = atol(m_ctrlRunInfoList.GetItemText(nSelIndex, 0));
|
||||
|
||||
m_ctrlRunInfoList.GetItemText( nSelIndex, 1, szSelServerID, sizeof(szSelServerID) );
|
||||
m_strSelServerID.Format( "%s", szSelServerID );
|
||||
|
||||
SERVER_ID serverID;
|
||||
CRylServerBindRunID::GetInstance().GetServerID( dwRunID, &serverID.dwID );
|
||||
|
||||
/*
|
||||
m_ctrlServerGroupCb.SetCurSel ( serverID.GetGroup() );
|
||||
m_ctrlServerTypeCb.SetCurSel ( serverID.GetType() );
|
||||
m_ctrlZoneCb.SetCurSel ( serverID.GetZone() );
|
||||
m_ctrlChannelCb.SetCurSel ( serverID.GetChannel() );
|
||||
|
||||
m_ctrlServerGroupCb.EnableWindow(false);
|
||||
m_ctrlZoneCb.EnableWindow(false);
|
||||
m_ctrlChannelCb.EnableWindow(false);
|
||||
|
||||
switch( serverID.GetType() ){
|
||||
case CServerSetup::AuthServer:
|
||||
m_ctrlServerGroupCb.EnableWindow(true);
|
||||
break;
|
||||
case CServerSetup::AgentServer:
|
||||
m_ctrlServerGroupCb.EnableWindow(true);
|
||||
break;
|
||||
case CServerSetup::GameServer:
|
||||
m_ctrlServerGroupCb.EnableWindow(true);
|
||||
m_ctrlZoneCb.EnableWindow(true);
|
||||
m_ctrlChannelCb.EnableWindow(true);
|
||||
break;
|
||||
case CServerSetup::ChatServer:
|
||||
m_ctrlServerGroupCb.EnableWindow(true);
|
||||
m_ctrlChannelCb.EnableWindow(true);
|
||||
break;
|
||||
};
|
||||
*/
|
||||
}
|
||||
|
||||
UpdateData( false );
|
||||
|
||||
*pResult = 0;
|
||||
}
|
||||
@@ -0,0 +1,54 @@
|
||||
// RylServerRunSetupDlg.h : 헤더 파일
|
||||
//
|
||||
|
||||
#pragma once
|
||||
#include "afxwin.h"
|
||||
#include "afxcmn.h"
|
||||
|
||||
|
||||
// CRylServerRunSetupDlg 대화 상자
|
||||
class CRylServerRunSetupDlg : public CDialog
|
||||
{
|
||||
// 생성
|
||||
public:
|
||||
CRylServerRunSetupDlg(CWnd* pParent = NULL); // 표준 생성자
|
||||
|
||||
// 대화 상자 데이터
|
||||
enum { IDD = IDD_SERVERRUNSETUP_DIALOG };
|
||||
|
||||
protected:
|
||||
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 지원
|
||||
|
||||
// 구현
|
||||
protected:
|
||||
HICON m_hIcon;
|
||||
|
||||
// 메시지 맵 함수를 생성했습니다.
|
||||
virtual BOOL OnInitDialog();
|
||||
afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
|
||||
afx_msg void OnPaint();
|
||||
afx_msg HCURSOR OnQueryDragIcon();
|
||||
DECLARE_MESSAGE_MAP()
|
||||
|
||||
afx_msg void OnLvnItemchangedRuninfoList(NMHDR *pNMHDR, LRESULT *pResult);
|
||||
afx_msg void OnCbnSelchangeServergroupCb();
|
||||
afx_msg void OnCbnSelchangeServertypeCb();
|
||||
afx_msg void OnCbnSelchangeZoneCb();
|
||||
afx_msg void OnCbnSelchangeChannelCb();
|
||||
afx_msg void OnBnClickedMatchBtn();
|
||||
|
||||
private:
|
||||
CString m_strServerID;
|
||||
unsigned long m_dwServerID;
|
||||
CString m_strSelServerID;
|
||||
|
||||
CComboBox m_ctrlServerTypeCb;
|
||||
CComboBox m_ctrlServerGroupCb;
|
||||
CComboBox m_ctrlZoneCb;
|
||||
CComboBox m_ctrlChannelCb;
|
||||
|
||||
CListCtrl m_ctrlRunInfoList;
|
||||
|
||||
void RunInfoListSet(); // 실행 정보 리스트 컨트롤 갱신
|
||||
void ServerIDSet(); // 서버 아이디 표시
|
||||
};
|
||||
18
Server/ManageTool/RylServerRunSetup/misc/GlobalFunc.cpp
Normal file
18
Server/ManageTool/RylServerRunSetup/misc/GlobalFunc.cpp
Normal file
@@ -0,0 +1,18 @@
|
||||
#include "stdafx.h"
|
||||
#include "GlobalFunc.h"
|
||||
|
||||
|
||||
// 셋업 파일에서 Int형 value 얻어오기
|
||||
int GlobalFunc::GetSetupInt(const char* Filename, const CString& Section, const CString& key )
|
||||
{
|
||||
return GetPrivateProfileInt( Section, key, 0, Filename );
|
||||
}
|
||||
|
||||
// 셋업 파일에서 문자열 얻어오기
|
||||
CString GlobalFunc::GetSetupString(const char* Filename, const CString& Section, const CString& key)
|
||||
{
|
||||
char value[MAX_PATH];
|
||||
GetPrivateProfileString( Section, key, "default", value, MAX_PATH, Filename );
|
||||
|
||||
return value;
|
||||
}
|
||||
6
Server/ManageTool/RylServerRunSetup/misc/GlobalFunc.h
Normal file
6
Server/ManageTool/RylServerRunSetup/misc/GlobalFunc.h
Normal file
@@ -0,0 +1,6 @@
|
||||
namespace GlobalFunc
|
||||
{
|
||||
// 파일 읽기
|
||||
int GetSetupInt (const char* Filename, const CString& Section, const CString& key);
|
||||
CString GetSetupString (const char* Filename, const CString& Section, const CString& key);
|
||||
};
|
||||
BIN
Server/ManageTool/RylServerRunSetup/res/RylServerRunSetup.ico
Normal file
BIN
Server/ManageTool/RylServerRunSetup/res/RylServerRunSetup.ico
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 2.2 KiB |
@@ -0,0 +1,22 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
|
||||
<assemblyIdentity
|
||||
version="1.0.0.0"
|
||||
processorArchitecture="X86"
|
||||
name="Microsoft.Windows.RylServerRunSetup"
|
||||
type="win32"
|
||||
/>
|
||||
<description>여기에 응용 프로그램 설명을 추가합니다.</description>
|
||||
<dependency>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity
|
||||
type="win32"
|
||||
name="Microsoft.Windows.Common-Controls"
|
||||
version="6.0.0.0"
|
||||
processorArchitecture="X86"
|
||||
publicKeyToken="6595b64144ccf1df"
|
||||
language="*"
|
||||
/>
|
||||
</dependentAssembly>
|
||||
</dependency>
|
||||
</assembly>
|
||||
@@ -0,0 +1,13 @@
|
||||
//
|
||||
// RylServerRunSetup.RC2 - resources Microsoft Visual C++에서 직접 편집하지 않는 리소스
|
||||
//
|
||||
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
#error 이 파일은 Microsoft Visual C++에서 편집할 수 없습니다.
|
||||
#endif //APSTUDIO_INVOKED
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// 여기에 수동으로 편집한 리소스를 추가합니다.
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
7
Server/ManageTool/RylServerRunSetup/stdafx.cpp
Normal file
7
Server/ManageTool/RylServerRunSetup/stdafx.cpp
Normal file
@@ -0,0 +1,7 @@
|
||||
// stdafx.cpp : 표준 포함 파일을 포함하는 소스 파일입니다.
|
||||
// RylServerRunSetup.pch는 미리 컴파일된 헤더가 됩니다.
|
||||
// stdafx.obj는 미리 컴파일된 형식 정보를 포함합니다.
|
||||
|
||||
#include "stdafx.h"
|
||||
|
||||
|
||||
42
Server/ManageTool/RylServerRunSetup/stdafx.h
Normal file
42
Server/ManageTool/RylServerRunSetup/stdafx.h
Normal file
@@ -0,0 +1,42 @@
|
||||
// stdafx.h : 잘 변경되지 않고 자주 사용하는
|
||||
// 표준 시스템 포함 파일 및 프로젝트 관련 포함 파일이
|
||||
// 들어 있는 포함 파일입니다.
|
||||
|
||||
#pragma once
|
||||
|
||||
#ifndef VC_EXTRALEAN
|
||||
#define VC_EXTRALEAN // Windows 헤더에서 거의 사용되지 않는 내용을 제외시킵니다.
|
||||
#endif
|
||||
|
||||
// 아래 지정된 플랫폼보다 우선하는 플랫폼을 대상으로 하는 경우 다음 정의를 수정하십시오.
|
||||
// 다른 플랫폼에 사용되는 해당 값의 최신 정보는 MSDN을 참조하십시오.
|
||||
#ifndef WINVER // Windows 95 및 Windows NT 4 이후 버전에서만 기능을 사용할 수 있습니다.
|
||||
#define WINVER 0x0400 // Windows 98과 Windows 2000 이후 버전에 맞도록 적합한 값으로 변경해 주십시오.
|
||||
#endif
|
||||
|
||||
#ifndef _WIN32_WINNT // Windows NT 4 이후 버전에서만 기능을 사용할 수 있습니다.
|
||||
#define _WIN32_WINNT 0x0400 // Windows 98과 Windows 2000 이후 버전에 맞도록 적합한 값으로 변경해 주십시오.
|
||||
#endif
|
||||
|
||||
#ifndef _WIN32_WINDOWS // Windows 98 이후 버전에서만 기능을 사용할 수 있습니다.
|
||||
#define _WIN32_WINDOWS 0x0410 // Windows Me 이후 버전에 맞도록 적합한 값으로 변경해 주십시오.
|
||||
#endif
|
||||
|
||||
#ifndef _WIN32_IE // IE 4.0 이후 버전에서만 기능을 사용할 수 있습니다.
|
||||
#define _WIN32_IE 0x0400 // IE 5.0 이후 버전에 맞도록 적합한 값으로 변경해 주십시오.
|
||||
#endif
|
||||
|
||||
#define _ATL_CSTRING_EXPLICIT_CONSTRUCTORS // 일부 CString 생성자는 명시적으로 선언됩니다.
|
||||
|
||||
// MFC의 공통 부분과 무시 가능한 경고 메시지에 대한 숨기기를 해제합니다.
|
||||
#define _AFX_ALL_WARNINGS
|
||||
|
||||
#include <afxwin.h> // MFC 핵심 및 표준 구성 요소
|
||||
#include <afxext.h> // MFC 익스텐션
|
||||
#include <afxdisp.h> // MFC 자동화 클래스
|
||||
|
||||
#include <afxdtctl.h> // Internet Explorer 4 공용 컨트롤에 대한 MFC 지원
|
||||
#ifndef _AFX_NO_AFXCMN_SUPPORT
|
||||
#include <afxcmn.h> // Windows 공용 컨트롤에 대한 MFC 지원
|
||||
#endif // _AFX_NO_AFXCMN_SUPPORT
|
||||
|
||||
Reference in New Issue
Block a user