- Mask WndProc exceptions
CORE-11915

svn path=/branches/ros-branch-0_4_5/; revision=74426
This commit is contained in:
Thomas Faber 2017-04-28 07:26:15 +00:00
parent 79e1acbc92
commit 5f18c1e7db

View file

@ -1463,20 +1463,15 @@ IntCallWindowProcW(BOOL IsAnsiProc,
if (PreResult) goto Exit; if (PreResult) goto Exit;
if (!Dialog)
Result = CALL_EXTERN_WNDPROC(WndProc, AnsiMsg.hwnd, AnsiMsg.message, AnsiMsg.wParam, AnsiMsg.lParam);
else
{
_SEH2_TRY _SEH2_TRY
{ {
Result = CALL_EXTERN_WNDPROC(WndProc, AnsiMsg.hwnd, AnsiMsg.message, AnsiMsg.wParam, AnsiMsg.lParam); Result = CALL_EXTERN_WNDPROC(WndProc, AnsiMsg.hwnd, AnsiMsg.message, AnsiMsg.wParam, AnsiMsg.lParam);
} }
_SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER) _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; _SEH2_END;
}
if (Hook && (MsgOverride || DlgOverride)) if (Hook && (MsgOverride || DlgOverride))
{ {
@ -1517,20 +1512,15 @@ IntCallWindowProcW(BOOL IsAnsiProc,
if (PreResult) goto Exit; if (PreResult) goto Exit;
if (!Dialog)
Result = CALL_EXTERN_WNDPROC(WndProc, hWnd, Msg, wParam, lParam);
else
{
_SEH2_TRY _SEH2_TRY
{ {
Result = CALL_EXTERN_WNDPROC(WndProc, hWnd, Msg, wParam, lParam); Result = CALL_EXTERN_WNDPROC(WndProc, hWnd, Msg, wParam, lParam);
} }
_SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER) _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; _SEH2_END;
}
if (Hook && (MsgOverride || DlgOverride)) if (Hook && (MsgOverride || DlgOverride))
{ {
@ -1609,20 +1599,15 @@ IntCallWindowProcA(BOOL IsAnsiProc,
if (PreResult) goto Exit; if (PreResult) goto Exit;
if (!Dialog)
Result = CALL_EXTERN_WNDPROC(WndProc, hWnd, Msg, wParam, lParam);
else
{
_SEH2_TRY _SEH2_TRY
{ {
Result = CALL_EXTERN_WNDPROC(WndProc, hWnd, Msg, wParam, lParam); Result = CALL_EXTERN_WNDPROC(WndProc, hWnd, Msg, wParam, lParam);
} }
_SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER) _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; _SEH2_END;
}
if (Hook && (MsgOverride || DlgOverride)) if (Hook && (MsgOverride || DlgOverride))
{ {
@ -1670,20 +1655,15 @@ IntCallWindowProcA(BOOL IsAnsiProc,
if (PreResult) goto Exit; if (PreResult) goto Exit;
if (!Dialog)
Result = CALL_EXTERN_WNDPROC(WndProc, UnicodeMsg.hwnd, UnicodeMsg.message, UnicodeMsg.wParam, UnicodeMsg.lParam);
else
{
_SEH2_TRY _SEH2_TRY
{ {
Result = CALL_EXTERN_WNDPROC(WndProc, UnicodeMsg.hwnd, UnicodeMsg.message, UnicodeMsg.wParam, UnicodeMsg.lParam); Result = CALL_EXTERN_WNDPROC(WndProc, UnicodeMsg.hwnd, UnicodeMsg.message, UnicodeMsg.wParam, UnicodeMsg.lParam);
} }
_SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER) _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; _SEH2_END;
}
if (Hook && (MsgOverride || DlgOverride)) if (Hook && (MsgOverride || DlgOverride))
{ {