[DxWnd](https://sourceforge.net/p/dxwnd/home/Home/) is a remarkable tool for working with badly behaved old games. In [the DxWnd source code](https://sourceforge.net/projects/dxwnd/files/Sources/v2_06_01_src.rar/downlo...), see dll/ddraw.cpp for the list of hot-patched functions and dll/dxhook.cpp for the actual hot-patching.
From: Alex Henrie alexhenrie24@gmail.com
--- dlls/ddraw/ddraw.c | 2 +- dlls/ddraw/main.c | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/dlls/ddraw/ddraw.c b/dlls/ddraw/ddraw.c index 5887854556b..6a06891b700 100644 --- a/dlls/ddraw/ddraw.c +++ b/dlls/ddraw/ddraw.c @@ -3437,7 +3437,7 @@ static HRESULT WINAPI ddraw1_EnumSurfaces(IDirectDraw *iface, DWORD flags, * E_OUTOFMEMORY if allocating the object failed * *****************************************************************************/ -HRESULT WINAPI DirectDrawCreateClipper(DWORD flags, IDirectDrawClipper **clipper, IUnknown *outer_unknown) +HRESULT WINAPI DECLSPEC_HOTPATCH DirectDrawCreateClipper(DWORD flags, IDirectDrawClipper **clipper, IUnknown *outer_unknown) { struct ddraw_clipper *object; HRESULT hr; diff --git a/dlls/ddraw/main.c b/dlls/ddraw/main.c index 1ba2900704f..5d9d3f843c4 100644 --- a/dlls/ddraw/main.c +++ b/dlls/ddraw/main.c @@ -222,7 +222,7 @@ void *ddraw_get_object(struct ddraw_handle_table *t, DWORD handle, enum ddraw_ha return entry->object; }
-HRESULT WINAPI GetSurfaceFromDC(HDC dc, IDirectDrawSurface4 **surface, HDC *device_dc) +HRESULT WINAPI DECLSPEC_HOTPATCH GetSurfaceFromDC(HDC dc, IDirectDrawSurface4 **surface, HDC *device_dc) { struct ddraw *ddraw;
@@ -418,7 +418,7 @@ HRESULT WINAPI DECLSPEC_HOTPATCH DirectDrawCreateEx(GUID *driver_guid, * * ***********************************************************************/ -HRESULT WINAPI DirectDrawEnumerateA(LPDDENUMCALLBACKA callback, void *context) +HRESULT WINAPI DECLSPEC_HOTPATCH DirectDrawEnumerateA(LPDDENUMCALLBACKA callback, void *context) { struct callback_info info;
@@ -438,7 +438,7 @@ HRESULT WINAPI DirectDrawEnumerateA(LPDDENUMCALLBACKA callback, void *context) * The Flag member is not supported right now. * ***********************************************************************/ -HRESULT WINAPI DirectDrawEnumerateExA(LPDDENUMCALLBACKEXA callback, void *context, DWORD flags) +HRESULT WINAPI DECLSPEC_HOTPATCH DirectDrawEnumerateExA(LPDDENUMCALLBACKEXA callback, void *context, DWORD flags) { struct wined3d *wined3d;
@@ -497,7 +497,7 @@ HRESULT WINAPI DirectDrawEnumerateExA(LPDDENUMCALLBACKEXA callback, void *contex * This function is not implemented on Windows. * ***********************************************************************/ -HRESULT WINAPI DirectDrawEnumerateW(LPDDENUMCALLBACKW callback, void *context) +HRESULT WINAPI DECLSPEC_HOTPATCH DirectDrawEnumerateW(LPDDENUMCALLBACKW callback, void *context) { TRACE("callback %p, context %p.\n", callback, context);
@@ -514,7 +514,7 @@ HRESULT WINAPI DirectDrawEnumerateW(LPDDENUMCALLBACKW callback, void *context) * This function is not implemented on Windows. * ***********************************************************************/ -HRESULT WINAPI DirectDrawEnumerateExW(LPDDENUMCALLBACKEXW callback, void *context, DWORD flags) +HRESULT WINAPI DECLSPEC_HOTPATCH DirectDrawEnumerateExW(LPDDENUMCALLBACKEXW callback, void *context, DWORD flags) { TRACE("callback %p, context %p, flags %#lx.\n", callback, context, flags);
Hi,
It looks like your patch introduced the new failures shown below. Please investigate and fix them before resubmitting your patch. If they are not new, fixing them anyway would help a lot. Otherwise please ask for the known failures list to be updated.
The tests also ran into some preexisting test failures. If you know how to fix them that would be helpful. See the TestBot job for the details:
The full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=142688
Your paranoid android.
=== debian11 (32 bit report) ===
ddraw: Unhandled exception: page fault on execute access to 0x0084fd70 in 32-bit code (0x0084fd70).
This merge request was closed by Alex Henrie.