Initial commit: ROW Client source code

Game client codebase including:
- CharacterActionControl: Character and creature management
- GlobalScript: Network, items, skills, quests, utilities
- RYLClient: Main client application with GUI and event handlers
- Engine: 3D rendering engine (RYLGL)
- MemoryManager: Custom memory allocation
- Library: Third-party dependencies (DirectX, boost, etc.)
- Tools: Development utilities

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2025-11-29 16:24:34 +09:00
commit e067522598
5135 changed files with 1745744 additions and 0 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,144 @@
//Microsoft Developer Studio generated resource script.
//
#include "resource.h"
#define APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 2 resource.
//
#include "afxres.h"
/////////////////////////////////////////////////////////////////////////////
#undef APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
// English (U.S.) resources
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
#ifdef _WIN32
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
#pragma code_page(1252)
#endif //_WIN32
/////////////////////////////////////////////////////////////////////////////
//
// Dialog
//
IDD_LOBBY_CLIENT DIALOG DISCARDABLE 0, 0, 332, 260
STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION |
WS_SYSMENU
CAPTION "DirectPlay8 Lobby Client"
FONT 8, "MS Shell Dlg"
BEGIN
GROUPBOX "Launch Parameters",IDC_STATIC,7,7,318,163
LTEXT "Registered Applications:",IDC_STATIC,15,16,77,8
LISTBOX IDC_APP_LIST,16,25,95,137,LBS_SORT |
LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP
RTEXT "Player Name:",IDC_STATIC,117,27,55,8
EDITTEXT IDC_PLAYER_NAME,178,25,140,12,ES_AUTOHSCROLL
RTEXT "Session Name:",IDC_STATIC,117,45,55,8
EDITTEXT IDC_SESSION_NAME,178,43,140,12,ES_AUTOHSCROLL
RTEXT "Serivce Provider:",IDC_STATIC,117,62,55,8
COMBOBOX IDC_SP_COMBO,178,60,140,65,CBS_DROPDOWNLIST | CBS_SORT |
WS_VSCROLL | WS_TABSTOP
RTEXT "IP Address:",IDC_ADDRESS_LINE1_TEXT,117,79,55,8
EDITTEXT IDC_ADDRESS_LINE1,178,77,68,12,ES_AUTOHSCROLL
RTEXT "Port:",IDC_ADDRESS_LINE2_TEXT,249,79,24,8
EDITTEXT IDC_ADDRESS_LINE2,275,77,43,12,ES_AUTOHSCROLL
GROUPBOX "Launch method",IDC_STATIC,119,112,84,49
CONTROL "Always launch",IDC_LAUNCH_NEW,"Button",
BS_AUTORADIOBUTTON,123,122,61,10
CONTROL "Launch if not found",IDC_LAUNCH_NOT_FOUND,"Button",
BS_AUTORADIOBUTTON,123,134,77,10
CONTROL "Do not launch",IDC_DONT_LAUNCH,"Button",
BS_AUTORADIOBUTTON,123,146,61,10
CONTROL "Host session",IDC_HOST_SESSION,"Button",BS_AUTOCHECKBOX |
WS_TABSTOP,208,118,56,10
CONTROL "Do not send connection settings",IDC_NO_SETTINGS,"Button",
BS_AUTOCHECKBOX | WS_TABSTOP,208,130,118,10
PUSHBUTTON "Launch App",IDC_LAUNCH,259,149,58,14
GROUPBOX "Active Connections",IDC_STATIC,7,169,318,63
LISTBOX IDC_ACTIVE_CONNECTIONS,13,183,96,40,LBS_SORT |
LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP
PUSHBUTTON "Send Message",IDC_SEND_MSG,121,184,58,14
PUSHBUTTON "Disconnect",IDC_DISCONNECT,185,184,58,14
LTEXT "Status:",IDC_STATIC,119,208,24,8
EDITTEXT IDC_STATUS,152,205,161,14,ES_AUTOHSCROLL | ES_READONLY
PUSHBUTTON "Exit",IDCANCEL,267,239,58,14
RTEXT "Adapter:",IDC_STATIC,117,96,55,8
COMBOBOX IDC_ADAPTER_COMBO,178,94,140,65,CBS_DROPDOWNLIST |
CBS_SORT | WS_VSCROLL | WS_TABSTOP
END
/////////////////////////////////////////////////////////////////////////////
//
// DESIGNINFO
//
#ifdef APSTUDIO_INVOKED
GUIDELINES DESIGNINFO DISCARDABLE
BEGIN
IDD_LOBBY_CLIENT, DIALOG
BEGIN
LEFTMARGIN, 7
RIGHTMARGIN, 325
TOPMARGIN, 7
BOTTOMMARGIN, 253
END
END
#endif // APSTUDIO_INVOKED
#ifdef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// TEXTINCLUDE
//
1 TEXTINCLUDE DISCARDABLE
BEGIN
"resource.h\0"
END
2 TEXTINCLUDE DISCARDABLE
BEGIN
"#include ""afxres.h""\r\n"
"\0"
END
3 TEXTINCLUDE DISCARDABLE
BEGIN
"\r\n"
"\0"
END
#endif // APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Icon
//
// Icon with lowest ID value placed first to ensure application icon
// remains consistent on all systems.
IDI_MAIN ICON DISCARDABLE "directx.ico"
#endif // English (U.S.) resources
/////////////////////////////////////////////////////////////////////////////
#ifndef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 3 resource.
//
/////////////////////////////////////////////////////////////////////////////
#endif // not APSTUDIO_INVOKED

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@@ -0,0 +1,193 @@
# Microsoft Developer Studio Project File - Name="LobbyClient" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 6.00
# ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) Application" 0x0101
CFG=LobbyClient - Win32 Debug
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
!MESSAGE use the Export Makefile command and run
!MESSAGE
!MESSAGE NMAKE /f "lobbyclient.mak".
!MESSAGE
!MESSAGE You can specify a configuration when running NMAKE
!MESSAGE by defining the macro CFG on the command line. For example:
!MESSAGE
!MESSAGE NMAKE /f "lobbyclient.mak" CFG="LobbyClient - Win32 Debug Unicode"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "LobbyClient - Win32 Debug Unicode" (based on "Win32 (x86) Application")
!MESSAGE "LobbyClient - Win32 Release Unicode" (based on "Win32 (x86) Application")
!MESSAGE "LobbyClient - Win32 Release" (based on "Win32 (x86) Application")
!MESSAGE "LobbyClient - Win32 Debug" (based on "Win32 (x86) Application")
!MESSAGE
# Begin Project
# PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName ""
# PROP Scc_LocalPath ""
CPP=cl.exe
MTL=midl.exe
RSC=rc.exe
!IF "$(CFG)" == "LobbyClient - Win32 Release"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "Release"
# PROP BASE Intermediate_Dir "Release"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "Release"
# PROP Intermediate_Dir "Release"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /YX /FD /c
# ADD CPP /nologo /MT /W3 /GX /O2 /I "." /I "..\..\common\include" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "WIN32" /D "_WIN32_DCOM" /YX /FD /c
# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x409 /d "NDEBUG"
# ADD RSC /l 0x409 /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /machine:I386
# ADD LINK32 ws2_32.lib wsock32.lib dplay.lib dxguid.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib oleaut32.lib odbc32.lib odbccp32.lib dxerr8.lib winmm.lib kernel32.lib user32.lib ole32.lib uuid.lib /nologo /subsystem:windows /machine:I386 /stack:0x10000,0x10000
!ELSEIF "$(CFG)" == "LobbyClient - Win32 Debug"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "Debug"
# PROP BASE Intermediate_Dir "Debug"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "Debug"
# PROP Intermediate_Dir "Debug"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /YX /FD /c
# ADD CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /I "..\..\common\include" /D "_WINDOWS" /D "_DEBUG" /D "WIN32" /D "_WIN32_DCOM" /YX /FD /c
# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x409 /d "_DEBUG"
# ADD RSC /l 0x409 /d "_DEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
# ADD LINK32 wsock32.lib dplay.lib dxguid.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib oleaut32.lib odbc32.lib odbccp32.lib dxerr8.lib winmm.lib kernel32.lib user32.lib ole32.lib uuid.lib /nologo /subsystem:windows /debug /machine:I386 /nodefaultlib:"LIBC" /pdbtype:sept /stack:0x10000,0x10000
# SUBTRACT LINK32 /incremental:no /nodefaultlib
!ELSEIF "$(CFG)" == "LobbyClient - Win32 Debug Unicode"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "Win32_Debug_Unicode"
# PROP BASE Intermediate_Dir "Win32_Debug_Unicode"
# PROP BASE Ignore_Export_Lib 0
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "Win32_Debug_Unicode"
# PROP Intermediate_Dir "Win32_Debug_Unicode"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /I "..\..\common\include" /D "_WINDOWS" /D "_DEBUG" /D "WIN32" /D "_WIN32_DCOM" /YX /FD /c
# ADD CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /I "..\..\common\include" /D "_DEBUG" /D "_WINDOWS" /D "WIN32" /D "_WIN32_DCOM" /D "UNICODE" /D "_UNICODE" /YX /FD /c
# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x409 /d "_DEBUG"
# ADD RSC /l 0x409 /d "_DEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 wsock32.lib dplay.lib dxguid.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib oleaut32.lib odbc32.lib odbccp32.lib dxerr8.lib winmm.lib kernel32.lib user32.lib ole32.lib uuid.lib /nologo /subsystem:windows /debug /machine:I386 /nodefaultlib:"LIBC" /pdbtype:sept
# SUBTRACT BASE LINK32 /incremental:no /nodefaultlib
# ADD LINK32 wsock32.lib dplay.lib dxguid.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib oleaut32.lib odbc32.lib odbccp32.lib dxerr8.lib winmm.lib kernel32.lib user32.lib ole32.lib uuid.lib /nologo /subsystem:windows /debug /machine:I386 /nodefaultlib:"LIBC" /pdbtype:sept /stack:0x10000,0x10000
# SUBTRACT LINK32 /incremental:no /nodefaultlib
!ELSEIF "$(CFG)" == "LobbyClient - Win32 Release Unicode"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "Win32_Release_Unicode"
# PROP BASE Intermediate_Dir "Win32_Release_Unicode"
# PROP BASE Ignore_Export_Lib 0
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "Win32_Release_Unicode"
# PROP Intermediate_Dir "Win32_Release_Unicode"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MT /W3 /GX /O2 /I "." /I "..\..\common\include" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "WIN32" /D "_WIN32_DCOM" /YX /FD /c
# ADD CPP /nologo /MT /W3 /GX /O2 /I "." /I "..\..\common\include" /D "NDEBUG" /D "_MBCS" /D "_WINDOWS" /D "WIN32" /D "_WIN32_DCOM" /D "UNICODE" /D "_UNICODE" /YX /FD /c
# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x409 /d "NDEBUG"
# ADD RSC /l 0x409 /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 ws2_32.lib wsock32.lib dplay.lib dxguid.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib oleaut32.lib odbc32.lib odbccp32.lib dxerr8.lib winmm.lib kernel32.lib user32.lib ole32.lib uuid.lib /nologo /subsystem:windows /machine:I386
# ADD LINK32 ws2_32.lib wsock32.lib dplay.lib dxguid.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib oleaut32.lib odbc32.lib odbccp32.lib dxerr8.lib winmm.lib kernel32.lib user32.lib ole32.lib uuid.lib /nologo /subsystem:windows /machine:I386 /stack:0x10000,0x10000
!ENDIF
# Begin Target
# Name "LobbyClient - Win32 Release"
# Name "LobbyClient - Win32 Debug"
# Name "LobbyClient - Win32 Debug Unicode"
# Name "LobbyClient - Win32 Release Unicode"
# Begin Group "Source Files"
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
# Begin Source File
SOURCE=.\LobbyClient.cpp
# End Source File
# End Group
# Begin Group "Resource Files"
# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
# Begin Source File
SOURCE=.\directx.ico
# End Source File
# Begin Source File
SOURCE=.\LobbyClient.rc
# End Source File
# Begin Source File
SOURCE=.\resource.h
# End Source File
# End Group
# Begin Group "Common"
# PROP Default_Filter ""
# Begin Source File
SOURCE=..\..\common\src\dxutil.cpp
# End Source File
# Begin Source File
SOURCE=..\..\common\include\dxutil.h
# End Source File
# End Group
# Begin Source File
SOURCE=.\readme.txt
# End Source File
# End Target
# End Project

View File

@@ -0,0 +1,29 @@
Microsoft Developer Studio Workspace File, Format Version 6.00
# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
###############################################################################
Project: "LobbyClient"=.\LobbyClient.dsp - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
}}}
###############################################################################
Global:
Package=<5>
{{{
}}}
Package=<3>
{{{
}}}
###############################################################################

View File

@@ -0,0 +1,364 @@
# Microsoft Developer Studio Generated NMAKE File, Based on LobbyClient.dsp
!IF "$(CFG)" == ""
CFG=LobbyClient - Win32 Debug Unicode
!MESSAGE No configuration specified. Defaulting to LobbyClient - Win32 Debug Unicode.
!ENDIF
!IF "$(CFG)" != "LobbyClient - Win32 Release" && "$(CFG)" != "LobbyClient - Win32 Debug" && "$(CFG)" != "LobbyClient - Win32 Debug Unicode" && "$(CFG)" != "LobbyClient - Win32 Release Unicode"
!MESSAGE Invalid configuration "$(CFG)" specified.
!MESSAGE You can specify a configuration when running NMAKE
!MESSAGE by defining the macro CFG on the command line. For example:
!MESSAGE
!MESSAGE NMAKE /f "LobbyClient.mak" CFG="LobbyClient - Win32 Debug Unicode"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "LobbyClient - Win32 Release" (based on "Win32 (x86) Application")
!MESSAGE "LobbyClient - Win32 Debug" (based on "Win32 (x86) Application")
!MESSAGE "LobbyClient - Win32 Debug Unicode" (based on "Win32 (x86) Application")
!MESSAGE "LobbyClient - Win32 Release Unicode" (based on "Win32 (x86) Application")
!MESSAGE
!ERROR An invalid configuration is specified.
!ENDIF
!IF "$(OS)" == "Windows_NT"
NULL=
!ELSE
NULL=nul
!ENDIF
!IF "$(CFG)" == "LobbyClient - Win32 Release"
OUTDIR=.\Release
INTDIR=.\Release
# Begin Custom Macros
OutDir=.\Release
# End Custom Macros
ALL : "$(OUTDIR)\LobbyClient.exe"
CLEAN :
-@erase "$(INTDIR)\dxutil.obj"
-@erase "$(INTDIR)\LobbyClient.obj"
-@erase "$(INTDIR)\LobbyClient.res"
-@erase "$(INTDIR)\vc60.idb"
-@erase "$(OUTDIR)\LobbyClient.exe"
"$(OUTDIR)" :
if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
CPP=cl.exe
CPP_PROJ=/nologo /MT /W3 /GX /O2 /I "." /I "..\..\common\include" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "WIN32" /D "_WIN32_DCOM" /Fp"$(INTDIR)\LobbyClient.pch" /YX /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c
.c{$(INTDIR)}.obj::
$(CPP) @<<
$(CPP_PROJ) $<
<<
.cpp{$(INTDIR)}.obj::
$(CPP) @<<
$(CPP_PROJ) $<
<<
.cxx{$(INTDIR)}.obj::
$(CPP) @<<
$(CPP_PROJ) $<
<<
.c{$(INTDIR)}.sbr::
$(CPP) @<<
$(CPP_PROJ) $<
<<
.cpp{$(INTDIR)}.sbr::
$(CPP) @<<
$(CPP_PROJ) $<
<<
.cxx{$(INTDIR)}.sbr::
$(CPP) @<<
$(CPP_PROJ) $<
<<
MTL=midl.exe
MTL_PROJ=/nologo /D "NDEBUG" /mktyplib203 /win32
RSC=rc.exe
RSC_PROJ=/l 0x409 /fo"$(INTDIR)\LobbyClient.res" /d "NDEBUG"
BSC32=bscmake.exe
BSC32_FLAGS=/nologo /o"$(OUTDIR)\LobbyClient.bsc"
BSC32_SBRS= \
LINK32=link.exe
LINK32_FLAGS=ws2_32.lib wsock32.lib dplay.lib dxguid.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib oleaut32.lib odbc32.lib odbccp32.lib dxerr8.lib winmm.lib kernel32.lib user32.lib ole32.lib uuid.lib /nologo /subsystem:windows /incremental:no /pdb:"$(OUTDIR)\LobbyClient.pdb" /machine:I386 /out:"$(OUTDIR)\LobbyClient.exe" /stack:0x10000,0x10000
LINK32_OBJS= \
"$(INTDIR)\LobbyClient.obj" \
"$(INTDIR)\dxutil.obj" \
"$(INTDIR)\LobbyClient.res"
"$(OUTDIR)\LobbyClient.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
$(LINK32) @<<
$(LINK32_FLAGS) $(LINK32_OBJS)
<<
!ELSEIF "$(CFG)" == "LobbyClient - Win32 Debug"
OUTDIR=.\Debug
INTDIR=.\Debug
# Begin Custom Macros
OutDir=.\Debug
# End Custom Macros
ALL : "$(OUTDIR)\LobbyClient.exe"
CLEAN :
-@erase "$(INTDIR)\dxutil.obj"
-@erase "$(INTDIR)\LobbyClient.obj"
-@erase "$(INTDIR)\LobbyClient.res"
-@erase "$(INTDIR)\vc60.idb"
-@erase "$(INTDIR)\vc60.pdb"
-@erase "$(OUTDIR)\LobbyClient.exe"
-@erase "$(OUTDIR)\LobbyClient.ilk"
-@erase "$(OUTDIR)\LobbyClient.pdb"
"$(OUTDIR)" :
if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
CPP=cl.exe
CPP_PROJ=/nologo /MTd /W3 /Gm /GX /Zi /Od /I "..\..\common\include" /D "_WINDOWS" /D "_DEBUG" /D "WIN32" /D "_WIN32_DCOM" /Fp"$(INTDIR)\LobbyClient.pch" /YX /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c
.c{$(INTDIR)}.obj::
$(CPP) @<<
$(CPP_PROJ) $<
<<
.cpp{$(INTDIR)}.obj::
$(CPP) @<<
$(CPP_PROJ) $<
<<
.cxx{$(INTDIR)}.obj::
$(CPP) @<<
$(CPP_PROJ) $<
<<
.c{$(INTDIR)}.sbr::
$(CPP) @<<
$(CPP_PROJ) $<
<<
.cpp{$(INTDIR)}.sbr::
$(CPP) @<<
$(CPP_PROJ) $<
<<
.cxx{$(INTDIR)}.sbr::
$(CPP) @<<
$(CPP_PROJ) $<
<<
MTL=midl.exe
MTL_PROJ=/nologo /D "_DEBUG" /mktyplib203 /win32
RSC=rc.exe
RSC_PROJ=/l 0x409 /fo"$(INTDIR)\LobbyClient.res" /d "_DEBUG"
BSC32=bscmake.exe
BSC32_FLAGS=/nologo /o"$(OUTDIR)\LobbyClient.bsc"
BSC32_SBRS= \
LINK32=link.exe
LINK32_FLAGS=wsock32.lib dplay.lib dxguid.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib oleaut32.lib odbc32.lib odbccp32.lib dxerr8.lib winmm.lib kernel32.lib user32.lib ole32.lib uuid.lib /nologo /subsystem:windows /incremental:yes /pdb:"$(OUTDIR)\LobbyClient.pdb" /debug /machine:I386 /nodefaultlib:"LIBC" /out:"$(OUTDIR)\LobbyClient.exe" /pdbtype:sept /stack:0x10000,0x10000
LINK32_OBJS= \
"$(INTDIR)\LobbyClient.obj" \
"$(INTDIR)\dxutil.obj" \
"$(INTDIR)\LobbyClient.res"
"$(OUTDIR)\LobbyClient.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
$(LINK32) @<<
$(LINK32_FLAGS) $(LINK32_OBJS)
<<
!ELSEIF "$(CFG)" == "LobbyClient - Win32 Debug Unicode"
OUTDIR=.\Win32_Debug_Unicode
INTDIR=.\Win32_Debug_Unicode
# Begin Custom Macros
OutDir=.\Win32_Debug_Unicode
# End Custom Macros
ALL : "$(OUTDIR)\LobbyClient.exe"
CLEAN :
-@erase "$(INTDIR)\dxutil.obj"
-@erase "$(INTDIR)\LobbyClient.obj"
-@erase "$(INTDIR)\LobbyClient.res"
-@erase "$(INTDIR)\vc60.idb"
-@erase "$(INTDIR)\vc60.pdb"
-@erase "$(OUTDIR)\LobbyClient.exe"
-@erase "$(OUTDIR)\LobbyClient.ilk"
-@erase "$(OUTDIR)\LobbyClient.pdb"
"$(OUTDIR)" :
if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
CPP=cl.exe
CPP_PROJ=/nologo /MTd /W3 /Gm /GX /Zi /Od /I "..\..\common\include" /D "_DEBUG" /D "_WINDOWS" /D "WIN32" /D "_WIN32_DCOM" /D "UNICODE" /D "_UNICODE" /Fp"$(INTDIR)\LobbyClient.pch" /YX /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c
.c{$(INTDIR)}.obj::
$(CPP) @<<
$(CPP_PROJ) $<
<<
.cpp{$(INTDIR)}.obj::
$(CPP) @<<
$(CPP_PROJ) $<
<<
.cxx{$(INTDIR)}.obj::
$(CPP) @<<
$(CPP_PROJ) $<
<<
.c{$(INTDIR)}.sbr::
$(CPP) @<<
$(CPP_PROJ) $<
<<
.cpp{$(INTDIR)}.sbr::
$(CPP) @<<
$(CPP_PROJ) $<
<<
.cxx{$(INTDIR)}.sbr::
$(CPP) @<<
$(CPP_PROJ) $<
<<
MTL=midl.exe
MTL_PROJ=/nologo /D "_DEBUG" /mktyplib203 /win32
RSC=rc.exe
RSC_PROJ=/l 0x409 /fo"$(INTDIR)\LobbyClient.res" /d "_DEBUG"
BSC32=bscmake.exe
BSC32_FLAGS=/nologo /o"$(OUTDIR)\LobbyClient.bsc"
BSC32_SBRS= \
LINK32=link.exe
LINK32_FLAGS=wsock32.lib dplay.lib dxguid.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib oleaut32.lib odbc32.lib odbccp32.lib dxerr8.lib winmm.lib kernel32.lib user32.lib ole32.lib uuid.lib /nologo /subsystem:windows /incremental:yes /pdb:"$(OUTDIR)\LobbyClient.pdb" /debug /machine:I386 /nodefaultlib:"LIBC" /out:"$(OUTDIR)\LobbyClient.exe" /pdbtype:sept /stack:0x10000,0x10000
LINK32_OBJS= \
"$(INTDIR)\LobbyClient.obj" \
"$(INTDIR)\dxutil.obj" \
"$(INTDIR)\LobbyClient.res"
"$(OUTDIR)\LobbyClient.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
$(LINK32) @<<
$(LINK32_FLAGS) $(LINK32_OBJS)
<<
!ELSEIF "$(CFG)" == "LobbyClient - Win32 Release Unicode"
OUTDIR=.\Win32_Release_Unicode
INTDIR=.\Win32_Release_Unicode
# Begin Custom Macros
OutDir=.\Win32_Release_Unicode
# End Custom Macros
ALL : "$(OUTDIR)\LobbyClient.exe"
CLEAN :
-@erase "$(INTDIR)\dxutil.obj"
-@erase "$(INTDIR)\LobbyClient.obj"
-@erase "$(INTDIR)\LobbyClient.res"
-@erase "$(INTDIR)\vc60.idb"
-@erase "$(OUTDIR)\LobbyClient.exe"
"$(OUTDIR)" :
if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
CPP=cl.exe
CPP_PROJ=/nologo /MT /W3 /GX /O2 /I "." /I "..\..\common\include" /D "NDEBUG" /D "_MBCS" /D "_WINDOWS" /D "WIN32" /D "_WIN32_DCOM" /D "UNICODE" /D "_UNICODE" /Fp"$(INTDIR)\LobbyClient.pch" /YX /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c
.c{$(INTDIR)}.obj::
$(CPP) @<<
$(CPP_PROJ) $<
<<
.cpp{$(INTDIR)}.obj::
$(CPP) @<<
$(CPP_PROJ) $<
<<
.cxx{$(INTDIR)}.obj::
$(CPP) @<<
$(CPP_PROJ) $<
<<
.c{$(INTDIR)}.sbr::
$(CPP) @<<
$(CPP_PROJ) $<
<<
.cpp{$(INTDIR)}.sbr::
$(CPP) @<<
$(CPP_PROJ) $<
<<
.cxx{$(INTDIR)}.sbr::
$(CPP) @<<
$(CPP_PROJ) $<
<<
MTL=midl.exe
MTL_PROJ=/nologo /D "NDEBUG" /mktyplib203 /win32
RSC=rc.exe
RSC_PROJ=/l 0x409 /fo"$(INTDIR)\LobbyClient.res" /d "NDEBUG"
BSC32=bscmake.exe
BSC32_FLAGS=/nologo /o"$(OUTDIR)\LobbyClient.bsc"
BSC32_SBRS= \
LINK32=link.exe
LINK32_FLAGS=ws2_32.lib wsock32.lib dplay.lib dxguid.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib oleaut32.lib odbc32.lib odbccp32.lib dxerr8.lib winmm.lib kernel32.lib user32.lib ole32.lib uuid.lib /nologo /subsystem:windows /incremental:no /pdb:"$(OUTDIR)\LobbyClient.pdb" /machine:I386 /out:"$(OUTDIR)\LobbyClient.exe" /stack:0x10000,0x10000
LINK32_OBJS= \
"$(INTDIR)\LobbyClient.obj" \
"$(INTDIR)\dxutil.obj" \
"$(INTDIR)\LobbyClient.res"
"$(OUTDIR)\LobbyClient.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
$(LINK32) @<<
$(LINK32_FLAGS) $(LINK32_OBJS)
<<
!ENDIF
!IF "$(NO_EXTERNAL_DEPS)" != "1"
!IF EXISTS("LobbyClient.dep")
!INCLUDE "LobbyClient.dep"
!ELSE
!MESSAGE Warning: cannot find "LobbyClient.dep"
!ENDIF
!ENDIF
!IF "$(CFG)" == "LobbyClient - Win32 Release" || "$(CFG)" == "LobbyClient - Win32 Debug" || "$(CFG)" == "LobbyClient - Win32 Debug Unicode" || "$(CFG)" == "LobbyClient - Win32 Release Unicode"
SOURCE=.\LobbyClient.cpp
"$(INTDIR)\LobbyClient.obj" : $(SOURCE) "$(INTDIR)"
SOURCE=.\LobbyClient.rc
"$(INTDIR)\LobbyClient.res" : $(SOURCE) "$(INTDIR)"
$(RSC) $(RSC_PROJ) $(SOURCE)
SOURCE=..\..\common\src\dxutil.cpp
"$(INTDIR)\dxutil.obj" : $(SOURCE) "$(INTDIR)"
$(CPP) $(CPP_PROJ) $(SOURCE)
!ENDIF

View File

@@ -0,0 +1,91 @@
//-----------------------------------------------------------------------------
//
// Sample Name: LobbyClient Sample
//
// Copyright (c) 1999-2001 Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
Description
===========
LobbyClient is a simple lobby client. It displays all registered DirectPlay
applications on the local system. It allows the
user to launch one or more of these applications using a chosen
service provider. A launched lobbied application may be told to either
join or host a game.
Path
====
Source: DXSDK\Samples\Multimedia\DirectPlay\LobbyClient
Executable: DXSDK\Samples\Multimedia\DirectPlay\Bin
User's Guide
============
Choose launch settings from dialog, and click "Launch App". The
lobby client will launch the app selected based on the settings in the UI.
The active connections list will display the handle to all the current
lobbied applications. Clicking on "Send Message" will send a lobby message
to the lobbied application. This done mainly for demonstration purposes. A more
complex lobby client may want to use this functionality in a more meaningful way
by passing a message that the lobbied application responds to.
Programming Notes
=================
* Initialize DirectPlay. See InitDirectPlay()
1. Init COM with CoInitialize()
2. Create a IIDirectPlay8Peer with CoCreateInstance()
3. Call IDirectPlay8Peer::Initialize to tell the interface about our
message handler
4. Create a IDirectPlay8LobbyClient with CoCreateInstance()
5. Call IDirectPlay8LobbyClient::Initialize to tell the interface
about our lobby message handler
* Initialize dialog box. See OnInitDialog()
1. Enumerate the registered lobbied applications and display them
in the dialog listbox. See EnumRegisteredApplications()
2. Enumerate the DirectPlay service providers and display them
in the dialog listbox. See EnumServiceProviders()
3. Whenever a new service provider is selected (and upon init) then
enumerate the service provider's adapters. See EnumAdapters().
* When "Launch App" button is clicked. See LaunchApp()
1. Fill out a DPL_CONNECT_INFO struct. This is complex
since it contains the host and device addresses as well as
the DPN_APPLICATION_DESC. See LaunchApp() and
AllocAndInitConnectSettings().
2. Call IDirectPlay8LobbyClient::ConnectApplication() passing in
the DPL_CONNECT_INFO struct.
3. Free the DPL_CONNECT_INFO struct. This is also complex since this
struct has a number of DPlay addresses. See FreeConnectSettings().
* Upon DirectPlay Lobby messages. See DirectPlayLobbyMessageHandler()
- Upon DPL_MSGID_DISCONNECT:
pDisconnectMsg->hDisconnectId will contain the handle of the
lobbied application that was disconnected, and
pDisconnectMsg->hrReason will be the reason. This simple
sample just pops up a message box.
- Upon DPL_MSGID_RECEIVE:
The lobbied application sent the client data. This simple sample
doesn't respond to any message.
- Upon DPL_MSGID_SESSION_STATUS:
A lobbied application has changed its status. pStatusMsg->hSender
will one of several predefined status codes. This simple
sample just updated the UI showing that the lobby status has
updated, however more complex lobby clients many want to take action.
- Upon DPL_MSGID_CONNECTION_SETTINGS:
A lobbied application has changed its connection settings. This
simple lobby client doesn't take any action however, more complex
clients may want to take action.
* When "Send Message" is clicked. See SendMsgToApp()
Call IDirectPlay8LobbyClient::Send() with the handle of the
lobbied application to send the message to, and the buffer to send.
* When "Disconnect" is clicked. See DisconnectFromApp()
Call IDirectPlay8LobbyClient::ReleaseApplication() with the handle of
lobbied application to disconnect from.

View File

@@ -0,0 +1,36 @@
//{{NO_DEPENDENCIES}}
// Microsoft Developer Studio generated include file.
// Used by LobbyClient.rc
//
#define IDD_LOBBY_CLIENT 101
#define IDC_SP_COMBO 1005
#define IDC_SESSION_NAME 1006
#define IDC_PLAYER_NAME 1007
#define IDC_ADAPTER_COMBO 1008
#define IDC_ADDRESS_LINE1 1011
#define IDC_STATUS 1013
#define IDC_LAUNCH 1014
#define IDC_ACTIVE_CONNECTIONS 1017
#define IDC_APP_LIST 1018
#define IDC_DISCONNECT 1019
#define IDC_SEND_MSG 1020
#define IDC_HOST_SESSION 1021
#define IDC_NO_SETTINGS 1022
#define IDC_ADDRESS_LINE2 1024
#define IDC_ADDRESS_LINE1_TEXT 1025
#define IDC_ADDRESS_LINE2_TEXT 1026
#define IDC_LAUNCH_NEW 1029
#define IDC_LAUNCH_NOT_FOUND 1030
#define IDC_DONT_LAUNCH 1031
#define IDI_MAIN 11014
// Next default values for new objects
//
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 105
#define _APS_NEXT_COMMAND_VALUE 40001
#define _APS_NEXT_CONTROL_VALUE 1030
#define _APS_NEXT_SYMED_VALUE 103
#endif
#endif