Author: jimtabor Date: Tue Mar 9 04:48:05 2010 New Revision: 46025
URL: http://svn.reactos.org/svn/reactos?rev=46025&view=rev Log: - [User32] Fix timer crash when calling proc.
Modified: trunk/reactos/dll/win32/user32/windows/message.c
Modified: trunk/reactos/dll/win32/user32/windows/message.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/user32/windows/me... ============================================================================== --- trunk/reactos/dll/win32/user32/windows/message.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/user32/windows/message.c [iso-8859-1] Tue Mar 9 04:48:05 2010 @@ -1211,7 +1211,14 @@
if (PreResult) goto Exit;
- Result = WndProc(AnsiMsg.hwnd, AnsiMsg.message, AnsiMsg.wParam, AnsiMsg.lParam); + _SEH2_TRY // wine does this. + { + Result = WndProc(AnsiMsg.hwnd, AnsiMsg.message, AnsiMsg.wParam, AnsiMsg.lParam); + } + _SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER) + { + } + _SEH2_END;
if (Hook && MsgOverride) { @@ -1252,7 +1259,14 @@
if (PreResult) goto Exit;
- Result = WndProc(hWnd, Msg, wParam, lParam); + _SEH2_TRY + { + Result = WndProc(hWnd, Msg, wParam, lParam); + } + _SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER) + { + } + _SEH2_END;
if (Hook && MsgOverride) { @@ -1329,7 +1343,14 @@
if (PreResult) goto Exit;
- Result = WndProc(hWnd, Msg, wParam, lParam); + _SEH2_TRY + { + Result = WndProc(hWnd, Msg, wParam, lParam); + } + _SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER) + { + } + _SEH2_END;
if (Hook && MsgOverride) { @@ -1374,8 +1395,15 @@
if (PreResult) goto Exit;
- Result = WndProc(UnicodeMsg.hwnd, UnicodeMsg.message, - UnicodeMsg.wParam, UnicodeMsg.lParam); + _SEH2_TRY + { + Result = WndProc(UnicodeMsg.hwnd, UnicodeMsg.message, + UnicodeMsg.wParam, UnicodeMsg.lParam); + } + _SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER) + { + } + _SEH2_END;
if (Hook && MsgOverride) { @@ -1573,10 +1601,18 @@ if ( lpmsg->message == WM_SYSTIMER ) return NtUserDispatchMessage( (PMSG)lpmsg );
- Ret = WndProc(lpmsg->hwnd, - lpmsg->message, - lpmsg->wParam, - GetTickCount()); + _SEH2_TRY // wine does this. + { + Ret = WndProc(lpmsg->hwnd, + lpmsg->message, + lpmsg->wParam, + GetTickCount()); + } + _SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER) + { + } + _SEH2_END; + } else if (Wnd != NULL) { @@ -1633,10 +1669,17 @@ if ( lpmsg->message == WM_SYSTIMER ) return NtUserDispatchMessage( (PMSG) lpmsg );
- Ret = WndProc(lpmsg->hwnd, - lpmsg->message, - lpmsg->wParam, - GetTickCount()); + _SEH2_TRY + { + Ret = WndProc(lpmsg->hwnd, + lpmsg->message, + lpmsg->wParam, + GetTickCount()); + } + _SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER) + { + } + _SEH2_END; } else if (Wnd != NULL) {