113 lines
2.9 KiB
C++
113 lines
2.9 KiB
C++
// gsMasterServerLauncher.cpp : Defines the class behaviors for the application.
|
|
//
|
|
|
|
#include "stdafx.h"
|
|
#include "gsMasterServerLauncher.h"
|
|
#include "gsMasterServerLauncherDlg.h"
|
|
|
|
#include "GSTypes.h"
|
|
#include "InitSockets.h"
|
|
#include "define.h"
|
|
|
|
|
|
//UBI.COM: These functions are called by the GSlibraries to allocate/free memory
|
|
extern "C"{
|
|
void * __stdcall ExtAlloc_Malloc(int iSize)
|
|
{
|
|
return malloc(iSize);
|
|
}
|
|
|
|
void __stdcall ExtAlloc_Free(void * ptr)
|
|
{
|
|
free(ptr);
|
|
}
|
|
void * __stdcall ExtAlloc_Realloc(void * ptr,int iSize)
|
|
{
|
|
return realloc( ptr, iSize);
|
|
}
|
|
|
|
}
|
|
|
|
//UBI.COM: The GSLibraries are not thread safe. This mutex will stop us from
|
|
// calling into the library twice at the same time
|
|
HANDLE g_Mutex;
|
|
|
|
|
|
|
|
#ifdef _DEBUG
|
|
#define new DEBUG_NEW
|
|
#undef THIS_FILE
|
|
static char THIS_FILE[] = __FILE__;
|
|
#endif
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CGsMasterServerLauncherApp
|
|
|
|
BEGIN_MESSAGE_MAP(CGsMasterServerLauncherApp, CWinApp)
|
|
//{{AFX_MSG_MAP(CGsMasterServerLauncherApp)
|
|
// NOTE - the ClassWizard will add and remove mapping macros here.
|
|
// DO NOT EDIT what you see in these blocks of generated code!
|
|
//}}AFX_MSG
|
|
ON_COMMAND(ID_HELP, CWinApp::OnHelp)
|
|
END_MESSAGE_MAP()
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CGsMasterServerLauncherApp construction
|
|
|
|
CGsMasterServerLauncherApp::CGsMasterServerLauncherApp()
|
|
{
|
|
// TODO: add construction code here,
|
|
// Place all significant initialization in InitInstance
|
|
}
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// The one and only CGsMasterServerLauncherApp object
|
|
|
|
CGsMasterServerLauncherApp theApp;
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CGsMasterServerLauncherApp initialization
|
|
|
|
BOOL CGsMasterServerLauncherApp::InitInstance()
|
|
{
|
|
if (!AfxSocketInit())
|
|
{
|
|
AfxMessageBox(IDP_SOCKETS_INIT_FAILED);
|
|
return FALSE;
|
|
}
|
|
|
|
// Standard initialization
|
|
// If you are not using these features and wish to reduce the size
|
|
// of your final executable, you should remove from the following
|
|
// the specific initialization routines you do not need.
|
|
|
|
#ifdef _AFXDLL
|
|
Enable3dControls(); // Call this when using MFC in a shared DLL
|
|
#else
|
|
Enable3dControlsStatic(); // Call this when linking to MFC statically
|
|
#endif
|
|
|
|
|
|
//UBI.COM: Initialize the Socket library. InitializeSockets will return the
|
|
// local IPAddress that is found.
|
|
GSchar szIPAddress[IPADDRESSLENGTH]="";
|
|
|
|
g_Mutex = CreateMutex(NULL,false,NULL);
|
|
LOCKMUTEX();
|
|
InitializeSockets(szIPAddress);
|
|
UNLOCKMUTEX();
|
|
|
|
CGsMasterServerLauncherDlg dlg;
|
|
m_pMainWnd = &dlg;
|
|
int nResponse = dlg.DoModal();
|
|
|
|
//UBI.COM: Uninitialize the socket library and exit the program
|
|
LOCKMUTEX();
|
|
UninitializeSockets();
|
|
UNLOCKMUTEX();
|
|
|
|
// Since the dialog has been closed, return FALSE so that we exit the
|
|
// application, rather than start the application's message pump.
|
|
return FALSE;
|
|
}
|