call_dialog_proc16() truncates the return values from 16-bit application window procedures to 16 bits. Since WINPROC_CallDlgProcA() is not available in uxtheme, CallWindowProcW() is used instead and the higher bits should be ignored as well.
Wine-Bug-Id: https://bugs.winehq.org/show_bug.cgi?id=52713 Signed-off-by: Zhiyi Zhang zzhang@codeweavers.com --- dlls/uxtheme/dialog.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/dlls/uxtheme/dialog.c b/dlls/uxtheme/dialog.c index b91e20f0f33..706d170936e 100644 --- a/dlls/uxtheme/dialog.c +++ b/dlls/uxtheme/dialog.c @@ -129,7 +129,7 @@ LRESULT WINAPI UXTHEME_DefDlgProc(HWND hwnd, UINT msg, WPARAM wp, LPARAM lp, BOO case WM_ERASEBKGND: { dlgproc = (WNDPROC)GetWindowLongPtrW(hwnd, DWLP_DLGPROC); - lr = CallWindowProcW(dlgproc, hwnd, msg, wp, lp); + lr = LOWORD(CallWindowProcW(dlgproc, hwnd, msg, wp, lp)); if (lr) return lr;