In Windows, this is actually part of the AppCompat database. there's a flag in tagWND that enables/disables this behavior. Best regards, Alex Ionescu
On Mon, Jan 30, 2017 at 3:35 AM, tfaber@svn.reactos.org wrote:
Author: tfaber Date: Mon Jan 30 11:35:05 2017 New Revision: 73631
URL: http://svn.reactos.org/svn/reactos?rev=73631&view=rev Log: [0.4.4]
- Mask WndProc exceptions
CORE-11915
Modified: branches/ros-branch-0_4_4/reactos/win32ss/user/user32/windows/message.c
Modified: branches/ros-branch-0_4_4/reactos/win32ss/user/user32/windows/message.c URL: http://svn.reactos.org/svn/reactos/branches/ros-branch-0_4_4/reactos/win32ss... ============================================================================== --- branches/ros-branch-0_4_4/reactos/win32ss/user/user32/windows/message.c [iso-8859-1] (original) +++ branches/ros-branch-0_4_4/reactos/win32ss/user/user32/windows/message.c [iso-8859-1] Mon Jan 30 11:35:05 2017 @@ -1464,20 +1464,15 @@
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) {@@ -1518,20 +1513,15 @@
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) {@@ -1611,20 +1601,15 @@
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) {@@ -1672,20 +1657,15 @@
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) {