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/m…
==============================================================================
--- 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)
{