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(a)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/win32s…
==============================================================================
--- 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)
{