diff --git a/src/dd.c b/src/dd.c index 7a92681..af1310e 100644 --- a/src/dd.c +++ b/src/dd.c @@ -68,6 +68,7 @@ HRESULT dd_EnumDisplayModes(DWORD dwFlags, LPDDSURFACEDESC lpDDSurfaceDesc, LPVO dprintfex(" %d: %dx%d@%d %d bpp\n", (int)i, (int)m.dmPelsWidth, (int)m.dmPelsHeight, (int)m.dmDisplayFrequency, (int)m.dmBitsPerPel); memset(&s, 0, sizeof(DDSURFACEDESC)); + s.dwSize = sizeof(DDSURFACEDESC); s.dwFlags = DDSD_HEIGHT | DDSD_REFRESHRATE | DDSD_WIDTH | DDSD_PIXELFORMAT; s.dwHeight = m.dmPelsHeight; @@ -117,6 +118,7 @@ HRESULT dd_EnumDisplayModes(DWORD dwFlags, LPDDSURFACEDESC lpDDSurfaceDesc, LPVO for (i = 0; i < sizeof(resolutions) / sizeof(resolutions[0]); i++) { memset(&s, 0, sizeof(DDSURFACEDESC)); + s.dwSize = sizeof(DDSURFACEDESC); s.dwFlags = DDSD_HEIGHT | DDSD_REFRESHRATE | DDSD_WIDTH | DDSD_PIXELFORMAT; s.dwHeight = resolutions[i].cy; @@ -273,6 +275,7 @@ HRESULT dd_SetDisplayMode(DWORD width, DWORD height, DWORD bpp) g_ddraw->altenter = FALSE; memset(&g_ddraw->render.mode, 0, sizeof(DEVMODE)); + g_ddraw->render.mode.dmSize = sizeof(DEVMODE); g_ddraw->render.mode.dmFields = DM_PELSWIDTH | DM_PELSHEIGHT; g_ddraw->render.mode.dmPelsWidth = g_ddraw->render.width; @@ -322,6 +325,7 @@ HRESULT dd_SetDisplayMode(DWORD width, DWORD height, DWORD bpp) if (g_ddraw->windowed) //windowed-fullscreen aka borderless { border = FALSE; + g_config.window_rect.left = -32000; g_config.window_rect.top = -32000; @@ -348,12 +352,13 @@ HRESULT dd_SetDisplayMode(DWORD width, DWORD height, DWORD bpp) mouse_unlock(); memset(&g_ddraw->render.mode, 0, sizeof(DEVMODE)); + g_ddraw->render.mode.dmSize = sizeof(DEVMODE); g_ddraw->render.mode.dmFields = DM_PELSWIDTH|DM_PELSHEIGHT; g_ddraw->render.mode.dmPelsWidth = g_ddraw->render.width; g_ddraw->render.mode.dmPelsHeight = g_ddraw->render.height; - if(g_ddraw->render.bpp) + if (g_ddraw->render.bpp) { g_ddraw->render.mode.dmFields |= DM_BITSPERPEL; g_ddraw->render.mode.dmBitsPerPel = g_ddraw->render.bpp; @@ -736,9 +741,11 @@ ULONG dd_Release() if (g_ddraw->ref == 0) { if (g_ddraw->bpp) + { cfg_save(); + } - if(g_ddraw->render.run) + if (g_ddraw->render.run) { EnterCriticalSection(&g_ddraw->cs); g_ddraw->render.run = FALSE; diff --git a/src/dllmain.c b/src/dllmain.c index a3e8c69..b02628d 100644 --- a/src/dllmain.c +++ b/src/dllmain.c @@ -82,14 +82,14 @@ BOOL WINAPI DllMain(HANDLE hDll, DWORD dwReason, LPVOID lpReserved) if (!set_dpi_aware) { - HMODULE hUser32 = GetModuleHandle("user32.dll"); + HMODULE huser32 = GetModuleHandle("user32.dll"); - if (hUser32) + if (huser32) { typedef BOOL(__stdcall* SETPROCESSDPIAWAREPROC)(); SETPROCESSDPIAWAREPROC set_aware = - (SETPROCESSDPIAWAREPROC)GetProcAddress(hUser32, "SetProcessDPIAware"); + (SETPROCESSDPIAWAREPROC)GetProcAddress(huser32, "SetProcessDPIAware"); if (set_aware) set_aware(); diff --git a/src/hook.c b/src/hook.c index fd8037a..8b79f1a 100644 --- a/src/hook.c +++ b/src/hook.c @@ -155,7 +155,6 @@ void hook_create(char *module_name, char *function_name, PROC new_function, PROC if (g_hook_method == 1) { hook_patch_iat(GetModuleHandle(NULL), module_name, function_name, new_function); - hook_patch_iat(GetModuleHandle("storm.dll"), module_name, function_name, new_function); } } @@ -213,12 +212,6 @@ void hook_revert(char *module_name, char *function_name, PROC new_function, PROC module_name, function_name, GetProcAddress(GetModuleHandle(module_name), function_name)); - - hook_patch_iat( - GetModuleHandle("storm.dll"), - module_name, - function_name, - GetProcAddress(GetModuleHandle(module_name), function_name)); } }