[PATCH] user.exe16: Fix LPARAM conversions in WM_DDE_EXECUTE. (v2)

Zebediah Figura z.figura12 at gmail.com
Fri Jan 6 16:52:15 CST 2017


Addresses, but does not fix, bug 42023.

Try 2: use HIWORD instead; also fix opposite conversion.

Signed-off-by: Zebediah Figura <z.figura12 at gmail.com>
---
 dlls/user.exe16/message.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/dlls/user.exe16/message.c b/dlls/user.exe16/message.c
index 7bcc8e2..b898470 100644
--- a/dlls/user.exe16/message.c
+++ b/dlls/user.exe16/message.c
@@ -900,7 +900,7 @@ LRESULT WINPROC_CallProc16To32A( winproc_callback_t callback, HWND16 hwnd, UINT1
         }
         break; /* FIXME don't know how to free allocated memory (handle) !! */
     case WM_DDE_EXECUTE:
-        lParam = convert_handle_16_to_32( lParam, GMEM_DDESHARE );
+        lParam = convert_handle_16_to_32( HIWORD(lParam), GMEM_DDESHARE );
         ret = callback( hwnd32, msg, wParam, lParam, result, arg );
         break; /* FIXME don't know how to free allocated memory (handle) !! */
     case WM_PAINTCLIPBOARD:
@@ -1281,7 +1281,7 @@ LRESULT WINPROC_CallProc32ATo16( winproc_callback16_t callback, HWND hwnd, UINT
         break; /* FIXME don't know how to free allocated memory (handle) !! */
     case WM_DDE_EXECUTE:
         lParam = convert_handle_32_to_16(lParam, GMEM_DDESHARE);
-        ret = callback( HWND_16(hwnd), msg, wParam, lParam, result, arg );
+        ret = callback( HWND_16(hwnd), msg, wParam, MAKELPARAM(0, lParam), result, arg );
         break; /* FIXME don't know how to free allocated memory (handle) !! */
     case SBM_SETRANGE:
         ret = callback( HWND_16(hwnd), SBM_SETRANGE16, 0, MAKELPARAM(wParam, lParam), result, arg );
-- 
2.7.4




More information about the wine-patches mailing list