mirror of
https://github.com/reactos/reactos.git
synced 2025-08-06 10:03:26 +00:00
Git conversion: Make reactos the root directory, move rosapps, rostests, wallpapers into modules, and delete rossubsys.
This commit is contained in:
parent
b94e2d8ca0
commit
c2c66aff7d
24198 changed files with 0 additions and 37285 deletions
112
win32ss/user/user32/include/user_x.h
Normal file
112
win32ss/user/user32/include/user_x.h
Normal file
|
@ -0,0 +1,112 @@
|
|||
#pragma once
|
||||
|
||||
static __inline PVOID
|
||||
SharedPtrToUser(PVOID Ptr)
|
||||
{
|
||||
ASSERT(Ptr != NULL);
|
||||
ASSERT(g_ulSharedDelta != 0);
|
||||
return (PVOID)((ULONG_PTR)Ptr - g_ulSharedDelta);
|
||||
}
|
||||
|
||||
static __inline PVOID
|
||||
DesktopPtrToUser(PVOID Ptr)
|
||||
{
|
||||
PCLIENTINFO pci;
|
||||
PDESKTOPINFO pdi;
|
||||
GetW32ThreadInfo();
|
||||
pci = GetWin32ClientInfo();
|
||||
pdi = pci->pDeskInfo;
|
||||
|
||||
ASSERT(Ptr != NULL);
|
||||
ASSERT(pdi != NULL);
|
||||
if ((ULONG_PTR)Ptr >= (ULONG_PTR)pdi->pvDesktopBase &&
|
||||
(ULONG_PTR)Ptr < (ULONG_PTR)pdi->pvDesktopLimit)
|
||||
{
|
||||
return (PVOID)((ULONG_PTR)Ptr - pci->ulClientDelta);
|
||||
}
|
||||
else
|
||||
{
|
||||
/* NOTE: This is slow as it requires a call to win32k. This should only be
|
||||
neccessary if a thread wants to access an object on a different
|
||||
desktop */
|
||||
return (PVOID)NtUserxGetDesktopMapping(Ptr);
|
||||
}
|
||||
}
|
||||
|
||||
static __inline BOOL
|
||||
IsThreadHooked(PCLIENTINFO pci)
|
||||
{
|
||||
return (pci->fsHooks|pci->pDeskInfo->fsHooks) != 0;
|
||||
}
|
||||
|
||||
static __inline PDESKTOPINFO
|
||||
GetThreadDesktopInfo(VOID)
|
||||
{
|
||||
PTHREADINFO ti;
|
||||
PDESKTOPINFO di = NULL;
|
||||
|
||||
ti = GetW32ThreadInfo();
|
||||
if (ti != NULL)
|
||||
di = GetWin32ClientInfo()->pDeskInfo;
|
||||
|
||||
return di;
|
||||
}
|
||||
|
||||
static __inline BOOL
|
||||
IsCallProcHandle(IN WNDPROC lpWndProc)
|
||||
{
|
||||
/* FIXME - check for 64 bit architectures... */
|
||||
return ((ULONG_PTR)lpWndProc & 0xFFFF0000) == 0xFFFF0000;
|
||||
}
|
||||
|
||||
#define STATIC_UISTATE_GWL_OFFSET (sizeof(HFONT)+sizeof(HICON))// see UISTATE_GWL_OFFSET in static.c
|
||||
|
||||
/* Retrieve the UI state for the control */
|
||||
static __inline BOOL STATIC_update_uistate(HWND hwnd, BOOL unicode)
|
||||
{
|
||||
LONG flags, prevflags;
|
||||
|
||||
if (unicode)
|
||||
flags = DefWindowProcW(hwnd, WM_QUERYUISTATE, 0, 0);
|
||||
else
|
||||
flags = DefWindowProcA(hwnd, WM_QUERYUISTATE, 0, 0);
|
||||
|
||||
prevflags = GetWindowLongW(hwnd, STATIC_UISTATE_GWL_OFFSET);
|
||||
|
||||
if (prevflags != flags)
|
||||
{
|
||||
SetWindowLongW(hwnd, STATIC_UISTATE_GWL_OFFSET, flags);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static __inline void LoadUserApiHook()
|
||||
{
|
||||
if (!gfServerProcess &&
|
||||
!IsInsideUserApiHook() &&
|
||||
(gpsi->dwSRVIFlags & SRVINFO_APIHOOK) &&
|
||||
!RtlIsThreadWithinLoaderCallout())
|
||||
{
|
||||
NtUserCallNoParam(NOPARAM_ROUTINE_LOADUSERAPIHOOK);
|
||||
}
|
||||
}
|
||||
|
||||
#define UserHasDlgFrameStyle(Style, ExStyle) \
|
||||
(((ExStyle) & WS_EX_DLGMODALFRAME) || \
|
||||
(((Style) & WS_DLGFRAME) && (!((Style) & WS_THICKFRAME))))
|
||||
|
||||
#define UserHasThickFrameStyle(Style, ExStyle) \
|
||||
(((Style) & WS_THICKFRAME) && \
|
||||
(!(((Style) & (WS_DLGFRAME | WS_BORDER)) == WS_DLGFRAME)))
|
||||
|
||||
#define UserHasThinFrameStyle(Style, ExStyle) \
|
||||
(((Style) & WS_BORDER) || (!((Style) & (WS_CHILD | WS_POPUP))))
|
||||
|
||||
/* macro for source compatibility with wine */
|
||||
#define WIN_GetFullHandle(h) ((HWND)(h))
|
||||
|
||||
#define HOOKID_TO_FLAG(HookId) (1 << ((HookId) + 1))
|
||||
#define ISITHOOKED(HookId) (GetWin32ClientInfo()->fsHooks & HOOKID_TO_FLAG(HookId) ||\
|
||||
(GetWin32ClientInfo()->pDeskInfo && GetWin32ClientInfo()->pDeskInfo->fsHooks & HOOKID_TO_FLAG(HookId)))
|
Loading…
Add table
Add a link
Reference in a new issue