diff --git a/src/dd.c b/src/dd.c index 2eb5e73..7789e43 100644 --- a/src/dd.c +++ b/src/dd.c @@ -758,14 +758,6 @@ HRESULT dd_SetDisplayMode(DWORD dwWidth, DWORD dwHeight, DWORD dwBPP, DWORD dwFl real_SetWindowLongA(g_ddraw->hwnd, GWL_EXSTYLE, exstyle & ~(WS_EX_TOOLWINDOW)); } - if (g_ddraw->wine) - { - real_SetWindowLongA( - g_ddraw->hwnd, - GWL_STYLE, - (real_GetWindowLongA(g_ddraw->hwnd, GWL_STYLE) | WS_MINIMIZEBOX) & ~(WS_MAXIMIZEBOX | WS_THICKFRAME)); - } - /* center the window with correct dimensions */ int cy = g_ddraw->mode.dmPelsWidth ? g_ddraw->mode.dmPelsWidth : g_ddraw->render.width; int cx = g_ddraw->mode.dmPelsHeight ? g_ddraw->mode.dmPelsHeight : g_ddraw->render.height; diff --git a/src/winapi_hooks.c b/src/winapi_hooks.c index dcf2be2..0a02e09 100644 --- a/src/winapi_hooks.c +++ b/src/winapi_hooks.c @@ -13,6 +13,7 @@ #include "render_gdi.h" #include "directinput.h" #include "ddsurface.h" +#include "ddclipper.h" #include "dllmain.h" #include "hook.h" @@ -1206,6 +1207,8 @@ HRESULT WINAPI fake_CoCreateInstance(REFCLSID rclsid, LPUNKNOWN pUnkOuter, DWORD if (IsEqualGUID(&CLSID_DirectDraw, rclsid) || IsEqualGUID(&CLSID_DirectDraw7, rclsid)) { + TRACE(" GUID = %08X (CLSID_DirectDrawX)\n", ((GUID*)rclsid)->Data1); + if (IsEqualGUID(&IID_IDirectDraw2, riid) || IsEqualGUID(&IID_IDirectDraw4, riid) || IsEqualGUID(&IID_IDirectDraw7, riid)) @@ -1217,6 +1220,16 @@ HRESULT WINAPI fake_CoCreateInstance(REFCLSID rclsid, LPUNKNOWN pUnkOuter, DWORD return dd_CreateEx(NULL, ppv, &IID_IDirectDraw, NULL); } } + + if (IsEqualGUID(&CLSID_DirectDrawClipper, rclsid)) + { + TRACE(" GUID = %08X (CLSID_DirectDrawClipper)\n", ((GUID*)rclsid)->Data1); + + if (IsEqualGUID(&IID_IDirectDrawClipper, riid)) + { + return dd_CreateClipper(0, (IDirectDrawClipperImpl**)ppv, NULL); + } + } } return real_CoCreateInstance(rclsid, pUnkOuter, dwClsContext, riid, ppv);