From d46570474a167e56f85721fd2ffd59532639f4c0 Mon Sep 17 00:00:00 2001 From: Thomas Faber Date: Sun, 30 Jul 2017 10:58:32 +0000 Subject: [PATCH] [0.4.9] cherry-pick [WIN32SS] Mask WndProc exceptions to hide all tickets linked to CORE-11915 e.g. this allows using MsDepends (cherry picked from commit 92748594384d66b40f8115daa576d92c4a444971) cherry-picked by Joachim Henze --- win32ss/user/user32/windows/message.c | 28 ++++----------------------- 1 file changed, 4 insertions(+), 24 deletions(-) diff --git a/win32ss/user/user32/windows/message.c b/win32ss/user/user32/windows/message.c index 57f15d85b3f..f1e8ed5f025 100644 --- a/win32ss/user/user32/windows/message.c +++ b/win32ss/user/user32/windows/message.c @@ -1462,20 +1462,15 @@ IntCallWindowProcW(BOOL IsAnsiProc, if (PreResult) goto Exit; - if (!Dialog) - Result = CALL_EXTERN_WNDPROC(WndProc, AnsiMsg.hwnd, AnsiMsg.message, AnsiMsg.wParam, AnsiMsg.lParam); - else - { _SEH2_TRY { Result = CALL_EXTERN_WNDPROC(WndProc, AnsiMsg.hwnd, AnsiMsg.message, AnsiMsg.wParam, AnsiMsg.lParam); } _SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER) { - ERR("Exception Dialog Ansi %p Msg %d pti %p Wndpti %p\n",WndProc,Msg,GetW32ThreadInfo(),pWnd->head.pti); + ERR("Exception when calling Ansi WndProc %p Msg %d pti %p Wndpti %p\n",WndProc,Msg,GetW32ThreadInfo(),pWnd->head.pti); } _SEH2_END; - } if (Hook && (MsgOverride || DlgOverride)) { @@ -1518,20 +1513,15 @@ IntCallWindowProcW(BOOL IsAnsiProc, if (PreResult) goto Exit; - if (!Dialog) - Result = CALL_EXTERN_WNDPROC(WndProc, hWnd, Msg, wParam, lParam); - else - { _SEH2_TRY { Result = CALL_EXTERN_WNDPROC(WndProc, hWnd, Msg, wParam, lParam); } _SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER) { - ERR("Exception Dialog unicode %p Msg %d pti %p Wndpti %p\n",WndProc, Msg,GetW32ThreadInfo(),pWnd->head.pti); + ERR("Exception when calling unicode WndProc %p Msg %d pti %p Wndpti %p\n",WndProc, Msg,GetW32ThreadInfo(),pWnd->head.pti); } _SEH2_END; - } if (Hook && (MsgOverride || DlgOverride)) { @@ -1612,20 +1602,15 @@ IntCallWindowProcA(BOOL IsAnsiProc, if (PreResult) goto Exit; - if (!Dialog) - Result = CALL_EXTERN_WNDPROC(WndProc, hWnd, Msg, wParam, lParam); - else - { _SEH2_TRY { Result = CALL_EXTERN_WNDPROC(WndProc, hWnd, Msg, wParam, lParam); } _SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER) { - ERR("Exception Dialog Ansi %p Msg %d pti %p Wndpti %p\n",WndProc,Msg,GetW32ThreadInfo(),pWnd->head.pti); + ERR("Exception when calling Ansi WndProc %p Msg %d pti %p Wndpti %p\n",WndProc,Msg,GetW32ThreadInfo(),pWnd->head.pti); } _SEH2_END; - } if (Hook && (MsgOverride || DlgOverride)) { @@ -1675,20 +1660,15 @@ IntCallWindowProcA(BOOL IsAnsiProc, if (PreResult) goto Exit; - if (!Dialog) - Result = CALL_EXTERN_WNDPROC(WndProc, UnicodeMsg.hwnd, UnicodeMsg.message, UnicodeMsg.wParam, UnicodeMsg.lParam); - else - { _SEH2_TRY { Result = CALL_EXTERN_WNDPROC(WndProc, UnicodeMsg.hwnd, UnicodeMsg.message, UnicodeMsg.wParam, UnicodeMsg.lParam); } _SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER) { - ERR("Exception Dialog unicode %p Msg %d pti %p Wndpti %p\n",WndProc, Msg,GetW32ThreadInfo(),pWnd->head.pti); + ERR("Exception when calling unicode WndProc %p Msg %d pti %p Wndpti %p\n",WndProc, Msg,GetW32ThreadInfo(),pWnd->head.pti); } _SEH2_END; - } if (Hook && (MsgOverride || DlgOverride)) {