mirror of
https://github.com/reactos/reactos.git
synced 2025-08-06 14:13:01 +00:00
When sending WM_WINDOWPOSCHANGING and WM_WINDOWPOSCHANGED messages from
Win32k, make sure the WINDOWPOS structure referenced by lParam is located in user space svn path=/trunk/; revision=4703
This commit is contained in:
parent
b41ecb619a
commit
c865c87d30
1 changed files with 47 additions and 1 deletions
|
@ -1,4 +1,4 @@
|
||||||
/* $Id: window.c,v 1.30 2003/05/17 09:20:23 gvg Exp $
|
/* $Id: window.c,v 1.31 2003/05/17 14:37:23 gvg Exp $
|
||||||
*
|
*
|
||||||
* COPYRIGHT: See COPYING in the top level directory
|
* COPYRIGHT: See COPYING in the top level directory
|
||||||
* PROJECT: ReactOS user32.dll
|
* PROJECT: ReactOS user32.dll
|
||||||
|
@ -131,6 +131,52 @@ User32SendNCCREATEMessageForKernel(PVOID Arguments, ULONG ArgumentLength)
|
||||||
return(ZwCallbackReturn(&Result, sizeof(LRESULT), STATUS_SUCCESS));
|
return(ZwCallbackReturn(&Result, sizeof(LRESULT), STATUS_SUCCESS));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
NTSTATUS STDCALL
|
||||||
|
User32SendWINDOWPOSCHANGINGMessageForKernel(PVOID Arguments, ULONG ArgumentLength)
|
||||||
|
{
|
||||||
|
PSENDWINDOWPOSCHANGING_CALLBACK_ARGUMENTS CallbackArgs;
|
||||||
|
WNDPROC Proc;
|
||||||
|
LRESULT Result;
|
||||||
|
|
||||||
|
DPRINT("User32SendWINDOWPOSCHANGINGMessageForKernel.\n");
|
||||||
|
CallbackArgs = (PSENDWINDOWPOSCHANGING_CALLBACK_ARGUMENTS)Arguments;
|
||||||
|
if (ArgumentLength != sizeof(SENDWINDOWPOSCHANGING_CALLBACK_ARGUMENTS))
|
||||||
|
{
|
||||||
|
DPRINT("Wrong length.\n");
|
||||||
|
return(STATUS_INFO_LENGTH_MISMATCH);
|
||||||
|
}
|
||||||
|
Proc = (WNDPROC)GetWindowLongW(CallbackArgs->Wnd, GWL_WNDPROC);
|
||||||
|
DPRINT("Proc %X\n", Proc);
|
||||||
|
/* Call the window procedure; notice kernel messages are always unicode. */
|
||||||
|
Result = CallWindowProcW(Proc, CallbackArgs->Wnd, WM_WINDOWPOSCHANGING, 0,
|
||||||
|
(LPARAM)&CallbackArgs->WindowPos);
|
||||||
|
DPRINT("Returning result %d.\n", Result);
|
||||||
|
return(ZwCallbackReturn(&Result, sizeof(LRESULT), STATUS_SUCCESS));
|
||||||
|
}
|
||||||
|
|
||||||
|
NTSTATUS STDCALL
|
||||||
|
User32SendWINDOWPOSCHANGEDMessageForKernel(PVOID Arguments, ULONG ArgumentLength)
|
||||||
|
{
|
||||||
|
PSENDWINDOWPOSCHANGED_CALLBACK_ARGUMENTS CallbackArgs;
|
||||||
|
WNDPROC Proc;
|
||||||
|
LRESULT Result;
|
||||||
|
|
||||||
|
DPRINT("User32SendWINDOWPOSCHANGEDMessageForKernel.\n");
|
||||||
|
CallbackArgs = (PSENDWINDOWPOSCHANGED_CALLBACK_ARGUMENTS)Arguments;
|
||||||
|
if (ArgumentLength != sizeof(SENDWINDOWPOSCHANGED_CALLBACK_ARGUMENTS))
|
||||||
|
{
|
||||||
|
DPRINT("Wrong length.\n");
|
||||||
|
return(STATUS_INFO_LENGTH_MISMATCH);
|
||||||
|
}
|
||||||
|
Proc = (WNDPROC)GetWindowLongW(CallbackArgs->Wnd, GWL_WNDPROC);
|
||||||
|
DPRINT("Proc %X\n", Proc);
|
||||||
|
/* Call the window procedure; notice kernel messages are always unicode. */
|
||||||
|
Result = CallWindowProcW(Proc, CallbackArgs->Wnd, WM_WINDOWPOSCHANGED, 0,
|
||||||
|
(LPARAM)&CallbackArgs->WindowPos);
|
||||||
|
DPRINT("Returning result %d.\n", Result);
|
||||||
|
return(ZwCallbackReturn(&Result, sizeof(LRESULT), STATUS_SUCCESS));
|
||||||
|
}
|
||||||
|
|
||||||
NTSTATUS STDCALL
|
NTSTATUS STDCALL
|
||||||
User32CallSendAsyncProcForKernel(PVOID Arguments, ULONG ArgumentLength)
|
User32CallSendAsyncProcForKernel(PVOID Arguments, ULONG ArgumentLength)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue