54 lines
1.1 KiB
C++
54 lines
1.1 KiB
C++
#include "Base.h"
|
|
#include "comm.h"
|
|
#include "Mapping.h"
|
|
#include "server_palpit.h"
|
|
#include "server_pipe.h"
|
|
#include "Gui.h"
|
|
#include "XorStr.h"
|
|
|
|
#define MUTEX_NAME XOR_STRING_W(L"Local\\seriver_mutex_anit")
|
|
|
|
BOOL WINAPI CtrlHandler(DWORD type)
|
|
{
|
|
switch (type)
|
|
{
|
|
case CTRL_C_EVENT:
|
|
case CTRL_BREAK_EVENT:
|
|
case CTRL_CLOSE_EVENT:
|
|
case CTRL_LOGOFF_EVENT:
|
|
case CTRL_SHUTDOWN_EVENT:
|
|
RequestShutdown(XorStr("console ctrl"));
|
|
return TRUE;
|
|
default:
|
|
return FALSE;
|
|
}
|
|
}
|
|
|
|
auto WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) -> int
|
|
{
|
|
//AllocConsole();
|
|
//freopen("CONOUT$", "w+", stdout);
|
|
|
|
HANDLE mutex = CreateMutex(nullptr, TRUE, MUTEX_NAME);
|
|
if (!mutex || GetLastError() == ERROR_ALREADY_EXISTS)
|
|
{
|
|
if (mutex)
|
|
CloseHandle(mutex);
|
|
|
|
return 0;
|
|
}
|
|
|
|
SetConsoleCtrlHandler(CtrlHandler, TRUE);
|
|
|
|
Gui::CreateGuiWindow();
|
|
|
|
StartServer();
|
|
|
|
MSG msg;
|
|
while (GetMessage(&msg, NULL, 0, 0)) {
|
|
TranslateMessage(&msg);
|
|
DispatchMessage(&msg);
|
|
}
|
|
|
|
return msg.wParam;
|
|
} |