Jeff Smith : user.exe16: Releasing DC does not disable it.

Alexandre Julliard julliard at winehq.org
Mon Jan 13 16:11:52 CST 2020


Module: wine
Branch: master
Commit: 0778945e34968c66ccbe8a8be1f9749b8383f55e
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=0778945e34968c66ccbe8a8be1f9749b8383f55e

Author: Jeff Smith <whydoubt at gmail.com>
Date:   Sun Jan 12 14:54:10 2020 -0600

user.exe16: Releasing DC does not disable it.

ReleaseDC in user32 marks cache DCs as disabled.  For user.exe (the
16-bit equivalent), this causes DCs to become inaccessible after
release.  On Windows, they are still accessible after release.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=44408
Signed-off-by: Jeff Smith <whydoubt at gmail.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/user.exe16/window.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/dlls/user.exe16/window.c b/dlls/user.exe16/window.c
index 10f1389f0a..bf86719325 100644
--- a/dlls/user.exe16/window.c
+++ b/dlls/user.exe16/window.c
@@ -23,6 +23,7 @@
 #include "user_private.h"
 #include "wine/list.h"
 #include "wine/server.h"
+#include "wine/gdi_driver.h"
 #include "wine/debug.h"
 
 WINE_DEFAULT_DEBUG_CHANNEL(win);
@@ -675,7 +676,9 @@ HDC16 WINAPI GetWindowDC16( HWND16 hwnd )
  */
 INT16 WINAPI ReleaseDC16( HWND16 hwnd, HDC16 hdc )
 {
-    return (INT16)ReleaseDC( WIN_Handle32(hwnd), HDC_32(hdc) );
+    INT16 ret = (INT16)ReleaseDC( WIN_Handle32(hwnd), HDC_32(hdc) );
+    SetHookFlags( HDC_32(hdc), DCHF_ENABLEDC );
+    return ret;
 }
 
 




More information about the wine-cvs mailing list