mirror of
https://github.com/reactos/reactos.git
synced 2025-02-24 17:34:57 +00:00
- Add hits to track callback and winproc faults.
svn path=/trunk/; revision=54184
This commit is contained in:
parent
2387a1229b
commit
c27a66c36c
1 changed files with 53 additions and 4 deletions
|
@ -1133,7 +1133,7 @@ IntCallWindowProcW(BOOL IsAnsiProc,
|
|||
MSG UnicodeMsg;
|
||||
BOOL Hook = FALSE, MsgOverride = FALSE, Dialog;
|
||||
LRESULT Result = 0, PreResult = 0;
|
||||
DWORD Data = 0;
|
||||
DWORD Hit = 0, Data = 0;
|
||||
|
||||
if (WndProc == NULL)
|
||||
{
|
||||
|
@ -1189,6 +1189,7 @@ IntCallWindowProcW(BOOL IsAnsiProc,
|
|||
}
|
||||
_SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER)
|
||||
{
|
||||
Hit = 1;
|
||||
}
|
||||
_SEH2_END;
|
||||
|
||||
|
@ -1237,6 +1238,7 @@ IntCallWindowProcW(BOOL IsAnsiProc,
|
|||
}
|
||||
_SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER)
|
||||
{
|
||||
Hit = 2;
|
||||
}
|
||||
_SEH2_END;
|
||||
|
||||
|
@ -1258,6 +1260,18 @@ IntCallWindowProcW(BOOL IsAnsiProc,
|
|||
|
||||
Exit:
|
||||
if (Hook) EndUserApiHook();
|
||||
if (Hit)
|
||||
{
|
||||
switch(Hit)
|
||||
{
|
||||
case 1:
|
||||
ERR("CallWindowProcW Ansi Failed!\n");
|
||||
break;
|
||||
case 2:
|
||||
ERR("CallWindowProcW Unicode Failed!\n");
|
||||
break;
|
||||
}
|
||||
}
|
||||
return Result;
|
||||
}
|
||||
|
||||
|
@ -1274,7 +1288,7 @@ IntCallWindowProcA(BOOL IsAnsiProc,
|
|||
MSG UnicodeMsg;
|
||||
BOOL Hook = FALSE, MsgOverride = FALSE, Dialog;
|
||||
LRESULT Result = 0, PreResult = 0;
|
||||
DWORD Data = 0;
|
||||
DWORD Hit = 0, Data = 0;
|
||||
|
||||
if (WndProc == NULL)
|
||||
{
|
||||
|
@ -1321,6 +1335,7 @@ IntCallWindowProcA(BOOL IsAnsiProc,
|
|||
}
|
||||
_SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER)
|
||||
{
|
||||
Hit = 1;
|
||||
}
|
||||
_SEH2_END;
|
||||
|
||||
|
@ -1374,6 +1389,7 @@ IntCallWindowProcA(BOOL IsAnsiProc,
|
|||
}
|
||||
_SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER)
|
||||
{
|
||||
Hit = 2;
|
||||
}
|
||||
_SEH2_END;
|
||||
|
||||
|
@ -1400,6 +1416,18 @@ IntCallWindowProcA(BOOL IsAnsiProc,
|
|||
|
||||
Exit:
|
||||
if (Hook) EndUserApiHook();
|
||||
if (Hit)
|
||||
{
|
||||
switch(Hit)
|
||||
{
|
||||
case 1:
|
||||
ERR("CallWindowProcA Ansi Failed!\n");
|
||||
break;
|
||||
case 2:
|
||||
ERR("CallWindowProcA Unicode Failed!\n");
|
||||
break;
|
||||
}
|
||||
}
|
||||
return Result;
|
||||
}
|
||||
|
||||
|
@ -1562,6 +1590,7 @@ DispatchMessageA(CONST MSG *lpmsg)
|
|||
LRESULT Ret = 0;
|
||||
MSG UnicodeMsg;
|
||||
PWND Wnd;
|
||||
BOOL Hit = FALSE;
|
||||
|
||||
if ( lpmsg->message & ~WM_MAXIMUM )
|
||||
{
|
||||
|
@ -1590,7 +1619,11 @@ DispatchMessageA(CONST MSG *lpmsg)
|
|||
if ( lpmsg->message == WM_SYSTIMER )
|
||||
return NtUserDispatchMessage( (PMSG)lpmsg );
|
||||
|
||||
if (!NtUserValidateTimerCallback(lpmsg->hwnd, lpmsg->wParam, lpmsg->lParam)) return 0;
|
||||
if (!NtUserValidateTimerCallback(lpmsg->hwnd, lpmsg->wParam, lpmsg->lParam))
|
||||
{
|
||||
WARN("Validating Timer Callback failed!\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
_SEH2_TRY // wine does this. Hint: Prevents call to another thread....
|
||||
{
|
||||
|
@ -1601,6 +1634,7 @@ DispatchMessageA(CONST MSG *lpmsg)
|
|||
}
|
||||
_SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER)
|
||||
{
|
||||
Hit = TRUE;
|
||||
}
|
||||
_SEH2_END;
|
||||
}
|
||||
|
@ -1630,6 +1664,11 @@ DispatchMessageA(CONST MSG *lpmsg)
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (Hit)
|
||||
{
|
||||
WARN("Exception in Timer Callback WndProcA!\n");
|
||||
}
|
||||
return Ret;
|
||||
}
|
||||
|
||||
|
@ -1642,6 +1681,7 @@ DispatchMessageW(CONST MSG *lpmsg)
|
|||
{
|
||||
LRESULT Ret = 0;
|
||||
PWND Wnd;
|
||||
BOOL Hit = FALSE;
|
||||
|
||||
if ( lpmsg->message & ~WM_MAXIMUM )
|
||||
{
|
||||
|
@ -1670,7 +1710,11 @@ DispatchMessageW(CONST MSG *lpmsg)
|
|||
if ( lpmsg->message == WM_SYSTIMER )
|
||||
return NtUserDispatchMessage( (PMSG) lpmsg );
|
||||
|
||||
if (!NtUserValidateTimerCallback(lpmsg->hwnd, lpmsg->wParam, lpmsg->lParam)) return 0;
|
||||
if (!NtUserValidateTimerCallback(lpmsg->hwnd, lpmsg->wParam, lpmsg->lParam))
|
||||
{
|
||||
WARN("Validating Timer Callback failed!\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
_SEH2_TRY
|
||||
{
|
||||
|
@ -1681,6 +1725,7 @@ DispatchMessageW(CONST MSG *lpmsg)
|
|||
}
|
||||
_SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER)
|
||||
{
|
||||
Hit = TRUE;
|
||||
}
|
||||
_SEH2_END;
|
||||
}
|
||||
|
@ -1699,6 +1744,10 @@ DispatchMessageW(CONST MSG *lpmsg)
|
|||
Ret = NtUserDispatchMessage( (PMSG) lpmsg );
|
||||
}
|
||||
|
||||
if (Hit)
|
||||
{
|
||||
WARN("Exception in Timer Callback WndProcW!\n");
|
||||
}
|
||||
return Ret;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue