mirror of
https://github.com/reactos/reactos.git
synced 2025-08-05 04:03:05 +00:00
- Fix NtUserCallMsgFilter so it initiates the hook call.
svn path=/trunk/; revision=34794
This commit is contained in:
parent
4b1181962c
commit
9bec76e407
1 changed files with 44 additions and 4 deletions
|
@ -298,17 +298,57 @@ UnpackParam(LPARAM lParamPacked, UINT Msg, WPARAM wParam, LPARAM lParam)
|
||||||
BOOL
|
BOOL
|
||||||
STDCALL
|
STDCALL
|
||||||
NtUserCallMsgFilter(
|
NtUserCallMsgFilter(
|
||||||
LPMSG msg,
|
LPMSG lpmsg,
|
||||||
INT code)
|
INT code)
|
||||||
{
|
{
|
||||||
|
BOOL BadChk = FALSE;
|
||||||
|
MSG Msg;
|
||||||
DECLARE_RETURN(BOOL);
|
DECLARE_RETURN(BOOL);
|
||||||
|
|
||||||
DPRINT("Enter NtUserCallMsgFilter\n");
|
DPRINT("Enter NtUserCallMsgFilter\n");
|
||||||
UserEnterExclusive();
|
UserEnterExclusive();
|
||||||
|
if (lpmsg)
|
||||||
|
{
|
||||||
|
_SEH_TRY
|
||||||
|
{
|
||||||
|
ProbeForRead((PVOID)lpmsg,
|
||||||
|
sizeof(MSG),
|
||||||
|
1);
|
||||||
|
RtlCopyMemory( &Msg,
|
||||||
|
(PVOID)lpmsg,
|
||||||
|
sizeof(MSG));
|
||||||
|
}
|
||||||
|
_SEH_HANDLE
|
||||||
|
{
|
||||||
|
BadChk = TRUE;
|
||||||
|
}
|
||||||
|
_SEH_END;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
RETURN( FALSE);
|
||||||
|
|
||||||
if ( UserCallNextHookEx( WH_SYSMSGFILTER, code, 0, (LPARAM)msg, FALSE))
|
if (BadChk) RETURN( FALSE);
|
||||||
RETURN( TRUE);
|
|
||||||
RETURN( UserCallNextHookEx( WH_MSGFILTER, code, 0, (LPARAM)msg, FALSE));
|
if (!co_HOOK_CallHooks( WH_SYSMSGFILTER, code, 0, (LPARAM)&Msg))
|
||||||
|
{
|
||||||
|
co_HOOK_CallHooks( WH_MSGFILTER, code, 0, (LPARAM)&Msg);
|
||||||
|
}
|
||||||
|
|
||||||
|
_SEH_TRY
|
||||||
|
{
|
||||||
|
ProbeForWrite((PVOID)lpmsg,
|
||||||
|
sizeof(MSG),
|
||||||
|
1);
|
||||||
|
RtlCopyMemory((PVOID)lpmsg,
|
||||||
|
&Msg,
|
||||||
|
sizeof(MSG));
|
||||||
|
}
|
||||||
|
_SEH_HANDLE
|
||||||
|
{
|
||||||
|
BadChk = TRUE;
|
||||||
|
}
|
||||||
|
_SEH_END;
|
||||||
|
if (BadChk) RETURN( FALSE);
|
||||||
|
|
||||||
CLEANUP:
|
CLEANUP:
|
||||||
DPRINT("Leave NtUserCallMsgFilter. ret=%i\n", _ret_);
|
DPRINT("Leave NtUserCallMsgFilter. ret=%i\n", _ret_);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue