mirror of
https://github.com/reactos/reactos.git
synced 2025-08-03 17:56:00 +00:00
[Win32SS]
- Add utility of setting and clearing the state bits from user space. Use this later. svn path=/trunk/; revision=56663
This commit is contained in:
parent
df4cb8e91f
commit
845ea709c3
5 changed files with 57 additions and 2 deletions
|
@ -522,6 +522,8 @@ typedef struct _SBINFOEX
|
|||
#define WNDS_MAXIMIZESTOMONITOR 0x40000000
|
||||
#define WNDS_DESTROYED 0x80000000
|
||||
|
||||
#define WNDSACTIVEFRAME 0x00000006
|
||||
|
||||
// State2 Flags !Not Implemented!
|
||||
#define WNDS2_WMPAINTSENT 0X00000001
|
||||
#define WNDS2_ENDPAINTINVALIDATE 0X00000002
|
||||
|
|
|
@ -569,9 +569,9 @@ NtUserCallHwndLock(
|
|||
break;
|
||||
|
||||
case HWNDLOCK_ROUTINE_SETFOREGROUNDWINDOW:
|
||||
TRACE("co_IntSetForegroundWindow 1 %p\n",hWnd);
|
||||
ERR("co_IntSetForegroundWindow 1 %p\n",hWnd);
|
||||
Ret = co_IntSetForegroundWindow(Window);
|
||||
TRACE("co_IntSetForegroundWindow 2 \n");
|
||||
ERR("co_IntSetForegroundWindow 2 \n");
|
||||
break;
|
||||
|
||||
case HWNDLOCK_ROUTINE_UPDATEWINDOW:
|
||||
|
@ -749,6 +749,24 @@ NtUserCallHwndParam(
|
|||
UserLeave();
|
||||
return 0;
|
||||
}
|
||||
case HWNDPARAM_ROUTINE_CLEARWINDOWSTATE:
|
||||
{
|
||||
PWND pWnd;
|
||||
UserEnterExclusive();
|
||||
pWnd = UserGetWindowObject(hWnd);
|
||||
if (pWnd) IntClearWindowState(pWnd, (UINT)Param);
|
||||
UserLeave();
|
||||
return 0;
|
||||
}
|
||||
case HWNDPARAM_ROUTINE_SETWINDOWSTATE:
|
||||
{
|
||||
PWND pWnd;
|
||||
UserEnterExclusive();
|
||||
pWnd = UserGetWindowObject(hWnd);
|
||||
if (pWnd) IntSetWindowState(pWnd, (UINT)Param);
|
||||
UserLeave();
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
STUB;
|
||||
|
|
|
@ -81,6 +81,9 @@ UserSystemParametersInfo(
|
|||
PVOID pvParam,
|
||||
UINT fWinIni);
|
||||
|
||||
VOID FASTCALL IntSetWindowState(PWND, UINT);
|
||||
VOID FASTCALL IntClearWindowState(PWND, UINT);
|
||||
|
||||
/*************** MESSAGE.C ***************/
|
||||
|
||||
BOOL FASTCALL
|
||||
|
|
|
@ -6,6 +6,8 @@
|
|||
#error
|
||||
#endif
|
||||
|
||||
BOOL FASTCALL TestState(PWND, UINT);
|
||||
|
||||
EXTINLINE BOOL WINAPI
|
||||
GetScrollBarInfo(HWND hWnd, LONG idObject, PSCROLLBARINFO psbi)
|
||||
{
|
||||
|
@ -732,6 +734,18 @@ EXTINLINE BOOL NtUserxSetMessageBox(HWND hWnd)
|
|||
return NtUserCallHwnd(hWnd, HWND_ROUTINE_SETMSGBOX);
|
||||
}
|
||||
|
||||
EXTINLINE VOID NtUserxClearWindowState(PWND pWnd, UINT Flag)
|
||||
{
|
||||
if (!TestState(pWnd, Flag)) return;
|
||||
NtUserCallHwndParam(UserHMGetHandle(pWnd), (DWORD_PTR)Flag, HWNDPARAM_ROUTINE_CLEARWINDOWSTATE);
|
||||
}
|
||||
|
||||
EXTINLINE VOID NtUserxSetWindowState(PWND pWnd, UINT Flag)
|
||||
{
|
||||
if (TestState(pWnd, Flag)) return;
|
||||
NtUserCallHwndParam(UserHMGetHandle(pWnd), (DWORD_PTR)Flag, HWNDPARAM_ROUTINE_SETWINDOWSTATE);
|
||||
}
|
||||
|
||||
EXTINLINE HWND NtUserxSetTaskmanWindow(HWND hWnd)
|
||||
{
|
||||
return NtUserCallHwndOpt(hWnd, HWNDOPT_ROUTINE_SETTASKMANWINDOW);
|
||||
|
|
|
@ -257,6 +257,24 @@ TestWindowProcess(PWND Wnd)
|
|||
(DWORD_PTR)NtCurrentTeb()->ClientId.UniqueProcess );
|
||||
}
|
||||
|
||||
BOOL
|
||||
FASTCALL
|
||||
TestState(PWND pWnd, UINT Flag)
|
||||
{
|
||||
UINT bit;
|
||||
bit = 1 << LOWORD(Flag);
|
||||
switch(HIWORD(Flag))
|
||||
{
|
||||
case 0:
|
||||
return (pWnd->state & bit);
|
||||
case 1:
|
||||
return (pWnd->state2 & bit);
|
||||
case 2:
|
||||
return (pWnd->ExStyle2 & bit);
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
PUSER_HANDLE_ENTRY
|
||||
FASTCALL
|
||||
GetUser32Handle(HANDLE handle)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue