diff --git a/ddraw.def b/ddraw.def index b2a829e..9e214cd 100644 --- a/ddraw.def +++ b/ddraw.def @@ -3,3 +3,4 @@ LIBRARY ddraw.dll EXPORTS DirectDrawCreate @1 DirectDrawEnumerateA @2 + GameHandlesClose DATA diff --git a/src/main.c b/src/main.c index cd6076f..df62bb2 100644 --- a/src/main.c +++ b/src/main.c @@ -46,6 +46,7 @@ IDirectDrawImpl *ddraw = NULL; RECT WindowRect = { .left = -32000, .top = -32000, .right = 0, .bottom = 0 }; int WindowState = -1; BOOL Direct3D9Active; +BOOL GameHandlesClose; //BOOL WINAPI DllMainCRTStartup(HINSTANCE hinstDLL, DWORD dwReason, LPVOID lpvReserved) BOOL WINAPI DllMain(HANDLE hDll, DWORD dwReason, LPVOID lpReserved) @@ -956,7 +957,7 @@ LRESULT CALLBACK WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) /* C&C and RA really don't want to close down */ case WM_SYSCOMMAND: - if (wParam == SC_CLOSE) + if (wParam == SC_CLOSE && !GameHandlesClose) { exit(0); }