mirror of
https://github.com/reactos/reactos.git
synced 2025-05-03 21:00:15 +00:00
[user32/win32k]
- cleanup internal headers - remove unused functions and definitions - move shared definitions to ntuser.h svn path=/trunk/; revision=53436
This commit is contained in:
parent
eec01877b4
commit
1c6b9c7b25
53 changed files with 722 additions and 838 deletions
|
@ -786,7 +786,7 @@ static LRESULT LISTBOX_GetText( LB_DESCR *descr, INT index, LPWSTR buffer, BOOL
|
|||
|
||||
TRACE("index %d (0x%04x) %s\n", index, index, debugstr_w(descr->items[index].str));
|
||||
|
||||
__TRY /* hide a Delphi bug that passes a read-only buffer */
|
||||
_SEH2_TRY /* hide a Delphi bug that passes a read-only buffer */
|
||||
{
|
||||
if(unicode)
|
||||
{
|
||||
|
@ -799,13 +799,13 @@ static LRESULT LISTBOX_GetText( LB_DESCR *descr, INT index, LPWSTR buffer, BOOL
|
|||
(LPSTR)buffer, 0x7FFFFFFF, NULL, NULL) - 1;
|
||||
}
|
||||
}
|
||||
__EXCEPT_PAGE_FAULT
|
||||
_SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER)
|
||||
{
|
||||
WARN( "got an invalid buffer (Delphi bug?)\n" );
|
||||
SetLastError( ERROR_INVALID_PARAMETER );
|
||||
return LB_ERR;
|
||||
len = LB_ERR;
|
||||
}
|
||||
__ENDTRY
|
||||
_SEH2_END
|
||||
} else {
|
||||
if (buffer)
|
||||
*((LPDWORD)buffer)=*(LPDWORD)(&descr->items[index].data);
|
||||
|
|
|
@ -1482,7 +1482,7 @@ BOOL WINAPI EnableScrollBar( HWND hwnd, UINT nBar, UINT flags )
|
|||
{
|
||||
BOOL Hook, Ret = FALSE;
|
||||
|
||||
LOADUSERAPIHOOK
|
||||
LoadUserApiHook();
|
||||
|
||||
Hook = BeginIfHookedUserApiHook();
|
||||
|
||||
|
@ -1534,7 +1534,7 @@ GetScrollInfo(HWND Wnd, INT SBType, LPSCROLLINFO Info)
|
|||
{
|
||||
BOOL Hook, Ret = FALSE;
|
||||
|
||||
LOADUSERAPIHOOK
|
||||
LoadUserApiHook();
|
||||
|
||||
Hook = BeginIfHookedUserApiHook();
|
||||
|
||||
|
@ -1615,7 +1615,7 @@ SetScrollInfo(HWND Wnd, int SBType, LPCSCROLLINFO Info, BOOL bRedraw)
|
|||
BOOL Hook;
|
||||
INT Ret = 0;
|
||||
|
||||
LOADUSERAPIHOOK
|
||||
LoadUserApiHook();
|
||||
|
||||
Hook = BeginIfHookedUserApiHook();
|
||||
|
||||
|
|
|
@ -1,26 +0,0 @@
|
|||
/* $Id$
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
/* ACCELERATOR TABLES CACHE */
|
||||
/* Cache entry */
|
||||
typedef struct _USER_ACCEL_CACHE_ENTRY
|
||||
{
|
||||
struct _USER_ACCEL_CACHE_ENTRY * Next;
|
||||
ULONG_PTR Usage; /* how many times the table has been loaded */
|
||||
HACCEL Object; /* handle to the NtUser accelerator table object */
|
||||
HGLOBAL Data; /* base address of the resource data */
|
||||
}
|
||||
U32_ACCEL_CACHE_ENTRY;
|
||||
|
||||
/* Lock guarding the cache */
|
||||
extern CRITICAL_SECTION U32AccelCacheLock;
|
||||
|
||||
/* Cache */
|
||||
extern U32_ACCEL_CACHE_ENTRY * U32AccelCache;
|
||||
|
||||
extern U32_ACCEL_CACHE_ENTRY ** WINAPI U32AccelCacheFind(HANDLE, HGLOBAL);
|
||||
extern void WINAPI U32AccelCacheAdd(HACCEL, HGLOBAL);
|
||||
|
||||
/* EOF */
|
|
@ -34,11 +34,7 @@
|
|||
#define HBMMENU_POPUP_MINIMIZE ((HBITMAP) 11)
|
||||
#endif
|
||||
|
||||
/* winuser.h */
|
||||
|
||||
|
||||
/* combo box */
|
||||
|
||||
#define ID_CB_LISTBOX 1000
|
||||
#define ID_CB_EDIT 1001
|
||||
|
||||
|
@ -111,6 +107,10 @@ LRESULT WINAPI ListBoxWndProc_common( HWND hwnd, UINT msg,WPARAM wParam, LPARAM
|
|||
LRESULT WINAPI MDIClientWndProcA( HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam );
|
||||
LRESULT WINAPI MDIClientWndProcW( HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam );
|
||||
LRESULT WINAPI MDIClientWndProc_common( HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam, BOOL unicode);
|
||||
LRESULT WINAPI PopupMenuWndProcA(HWND hWnd, UINT Message, WPARAM wParam, LPARAM lParam);
|
||||
LRESULT WINAPI PopupMenuWndProcW(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam);
|
||||
LRESULT WINAPI ScrollBarWndProcW( HWND hwnd, UINT uMsg, WPARAM wParam,LPARAM lParam );
|
||||
LRESULT WINAPI ScrollBarWndProcA( HWND hwnd, UINT uMsg, WPARAM wParam,LPARAM lParam );
|
||||
LRESULT WINAPI StaticWndProcA( HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam );
|
||||
LRESULT WINAPI StaticWndProcW( HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam );
|
||||
LRESULT WINAPI StaticWndProc_common( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL unicode);
|
||||
|
|
|
@ -1,15 +0,0 @@
|
|||
HCURSOR
|
||||
CursorIconToCursor(HICON hIcon,
|
||||
BOOL SemiTransparent);
|
||||
|
||||
HICON CreateCursorIconFromData(PVOID ImageData,
|
||||
ICONIMAGE* IconImage,
|
||||
int cxDesired,
|
||||
int cyDesired,
|
||||
int xHotspot,
|
||||
int yHotspot,
|
||||
BOOL fIcon);
|
||||
|
||||
|
||||
BOOL get_icon_size(HICON hIcon, SIZE *size);
|
||||
|
|
@ -1 +0,0 @@
|
|||
void DrawCaret(HWND hWnd, PTHRDCARETINFO CaretInfo);
|
|
@ -1,22 +0,0 @@
|
|||
/*
|
||||
* COPYRIGHT: See COPYING in the top level directory
|
||||
* PROJECT: ReactOS user32.dll
|
||||
* FILE: include/window.h
|
||||
* PURPOSE: Window management definitions
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
UINT
|
||||
MenuDrawMenuBar(HDC hDC, LPRECT Rect, HWND hWnd, BOOL Draw);
|
||||
BOOL
|
||||
MenuInit(VOID);
|
||||
VOID
|
||||
MenuCleanup(VOID);
|
||||
VOID
|
||||
MenuTrackMouseMenuBar(HWND hWnd, ULONG Ht, POINT Pt);
|
||||
VOID
|
||||
MenuTrackKbdMenuBar(HWND hWnd, UINT wParam, WCHAR wChar);
|
||||
|
||||
LRESULT WINAPI PopupMenuWndProcA(HWND hWnd, UINT Message, WPARAM wParam, LPARAM lParam);
|
||||
LRESULT WINAPI PopupMenuWndProcW(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam);
|
|
@ -1,19 +0,0 @@
|
|||
/* $Id$
|
||||
*
|
||||
* COPYRIGHT: See COPYING in the top level directory
|
||||
* PROJECT: ReactOS user32.dll
|
||||
* FILE: include/message.h
|
||||
* PURPOSE: Message management definitions
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
BOOL FASTCALL MessageInit(VOID);
|
||||
VOID FASTCALL MessageCleanup(VOID);
|
||||
|
||||
static __inline BOOL
|
||||
IsCallProcHandle(IN WNDPROC lpWndProc)
|
||||
{
|
||||
/* FIXME - check for 64 bit architectures... */
|
||||
return ((ULONG_PTR)lpWndProc & 0xFFFF0000) == 0xFFFF0000;
|
||||
}
|
|
@ -234,12 +234,30 @@ ChangeClipboardChain(HWND hWndRemove, HWND hWndNewNext)
|
|||
return NtUserChangeClipboardChain(hWndRemove, hWndNewNext);
|
||||
}
|
||||
|
||||
EXTINLINE BOOL WINAPI
|
||||
GetClipCursor(LPRECT lpRect)
|
||||
{
|
||||
return NtUserGetClipCursor(lpRect);
|
||||
}
|
||||
|
||||
EXTINLINE BOOL WINAPI
|
||||
GetCursorInfo(PCURSORINFO pci)
|
||||
{
|
||||
return NtUserGetCursorInfo(pci);
|
||||
}
|
||||
|
||||
EXTINLINE BOOL WINAPI
|
||||
ClipCursor(CONST RECT *lpRect)
|
||||
{
|
||||
return NtUserClipCursor((RECT *)lpRect);
|
||||
}
|
||||
|
||||
EXTINLINE HCURSOR WINAPI
|
||||
SetCursor(HCURSOR hCursor)
|
||||
{
|
||||
return NtUserSetCursor(hCursor);
|
||||
}
|
||||
|
||||
EXTINLINE HDC WINAPI
|
||||
GetDC(HWND hWnd)
|
||||
{
|
||||
|
@ -484,3 +502,300 @@ EXTINLINE BOOL WINAPI ValidateRect( HWND hWnd, CONST RECT *lpRect)
|
|||
{
|
||||
return NtUserValidateRect(hWnd, lpRect);
|
||||
}
|
||||
|
||||
EXTINLINE BOOL WINAPI ShowCaret( HWND hWnd )
|
||||
{
|
||||
return NtUserShowCaret(hWnd);
|
||||
}
|
||||
|
||||
EXTINLINE BOOL WINAPI HideCaret( HWND hWnd )
|
||||
{
|
||||
return NtUserHideCaret(hWnd);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/*
|
||||
Inline functions that make calling NtUserCall*** functions readable
|
||||
These functions are prepended with NtUserx because they are not
|
||||
real syscalls and they are inlined
|
||||
*/
|
||||
|
||||
EXTINLINE BOOL NtUserxDestroyCaret(VOID)
|
||||
{
|
||||
return (BOOL)NtUserCallNoParam(NOPARAM_ROUTINE_DESTROY_CARET);
|
||||
}
|
||||
|
||||
EXTINLINE VOID NtUserxMsqClearWakeMask()
|
||||
{
|
||||
NtUserCallNoParam(NOPARAM_ROUTINE_MSQCLEARWAKEMASK);
|
||||
}
|
||||
|
||||
EXTINLINE HMENU NtUserxCreateMenu()
|
||||
{
|
||||
return (HMENU)NtUserCallNoParam(NOPARAM_ROUTINE_CREATEMENU);
|
||||
}
|
||||
|
||||
EXTINLINE HMENU NtUserxCreatePopupMenu()
|
||||
{
|
||||
return (HMENU)NtUserCallNoParam(NOPARAM_ROUTINE_CREATEMENUPOPUP);
|
||||
}
|
||||
|
||||
EXTINLINE DWORD NtUserxGetMessagePos(VOID)
|
||||
{
|
||||
return (DWORD)NtUserCallNoParam(NOPARAM_ROUTINE_GETMSESSAGEPOS);
|
||||
}
|
||||
|
||||
EXTINLINE BOOL NtUserxReleaseCapture(VOID)
|
||||
{
|
||||
return (BOOL)NtUserCallNoParam(NOPARAM_ROUTINE_RELEASECAPTURE);
|
||||
}
|
||||
|
||||
EXTINLINE BOOL NtUserxInitMessagePump()
|
||||
{
|
||||
return NtUserCallNoParam(NOPARAM_ROUTINE_INIT_MESSAGE_PUMP);
|
||||
}
|
||||
|
||||
EXTINLINE BOOL NtUserxUnInitMessagePump()
|
||||
{
|
||||
return NtUserCallNoParam(NOPARAM_ROUTINE_UNINIT_MESSAGE_PUMP);
|
||||
}
|
||||
|
||||
EXTINLINE HANDLE NtUserxMsqSetWakeMask(DWORD_PTR dwWaitMask)
|
||||
{
|
||||
return (HANDLE)NtUserCallOneParam(dwWaitMask, ONEPARAM_ROUTINE_GETINPUTEVENT);
|
||||
}
|
||||
|
||||
EXTINLINE BOOL NtUserxSetCaretBlinkTime(UINT uMSeconds)
|
||||
{
|
||||
return (BOOL)NtUserCallOneParam(uMSeconds, ONEPARAM_ROUTINE_SETCARETBLINKTIME);
|
||||
}
|
||||
|
||||
EXTINLINE HWND NtUserxWindowFromDC(HDC hDC)
|
||||
{
|
||||
return (HWND)NtUserCallOneParam((DWORD_PTR)hDC, ONEPARAM_ROUTINE_WINDOWFROMDC);
|
||||
}
|
||||
|
||||
EXTINLINE BOOL NtUserxSwapMouseButton(BOOL fSwap)
|
||||
{
|
||||
return (BOOL)NtUserCallOneParam((DWORD_PTR)fSwap, ONEPARAM_ROUTINE_SWAPMOUSEBUTTON);
|
||||
}
|
||||
|
||||
EXTINLINE LPARAM NtUserxSetMessageExtraInfo(LPARAM lParam)
|
||||
{
|
||||
return (LPARAM)NtUserCallOneParam((DWORD_PTR)lParam, ONEPARAM_ROUTINE_SETMESSAGEEXTRAINFO);
|
||||
}
|
||||
|
||||
EXTINLINE INT NtUserxShowCursor(BOOL bShow)
|
||||
{
|
||||
return (INT)NtUserCallOneParam((DWORD_PTR)bShow, ONEPARAM_ROUTINE_SHOWCURSOR);
|
||||
}
|
||||
|
||||
EXTINLINE UINT NtUserxEnumClipboardFormats(UINT format)
|
||||
{
|
||||
return (UINT)NtUserCallOneParam((DWORD_PTR)format, ONEPARAM_ROUTINE_ENUMCLIPBOARDFORMATS);
|
||||
}
|
||||
|
||||
EXTINLINE HICON NtUserxCreateEmptyCurObject(DWORD_PTR Param)
|
||||
{
|
||||
return (HICON)NtUserCallOneParam(Param, ONEPARAM_ROUTINE_CREATEEMPTYCUROBJECT);
|
||||
}
|
||||
|
||||
EXTINLINE BOOL NtUserxMessageBeep(UINT uType)
|
||||
{
|
||||
return (BOOL)NtUserCallOneParam(uType, ONEPARAM_ROUTINE_MESSAGEBEEP);
|
||||
}
|
||||
|
||||
EXTINLINE HKL NtUserxGetKeyboardLayout(DWORD idThread)
|
||||
{
|
||||
return (HKL)NtUserCallOneParam((DWORD_PTR) idThread, ONEPARAM_ROUTINE_GETKEYBOARDLAYOUT);
|
||||
}
|
||||
|
||||
EXTINLINE INT NtUserxGetKeyboardType(INT nTypeFlag)
|
||||
{
|
||||
return (INT)NtUserCallOneParam((DWORD_PTR) nTypeFlag, ONEPARAM_ROUTINE_GETKEYBOARDTYPE);
|
||||
}
|
||||
|
||||
EXTINLINE INT NtUserxReleaseDC(HDC hDC)
|
||||
{
|
||||
return (INT)NtUserCallOneParam((DWORD_PTR) hDC, ONEPARAM_ROUTINE_RELEASEDC);
|
||||
}
|
||||
|
||||
EXTINLINE UINT NtUserxRealizePalette ( HDC hDC )
|
||||
{
|
||||
return (UINT)NtUserCallOneParam((DWORD_PTR) hDC, ONEPARAM_ROUTINE_REALIZEPALETTE);
|
||||
}
|
||||
|
||||
EXTINLINE VOID NtUserxCreateSystemThreads(DWORD param)
|
||||
{
|
||||
NtUserCallOneParam(param, ONEPARAM_ROUTINE_CREATESYSTEMTHREADS);
|
||||
}
|
||||
|
||||
EXTINLINE HDWP NtUserxBeginDeferWindowPos(INT nNumWindows)
|
||||
{
|
||||
return (HDWP)NtUserCallOneParam((DWORD_PTR)nNumWindows, ONEPARAM_ROUTINE_BEGINDEFERWNDPOS);
|
||||
}
|
||||
|
||||
EXTINLINE BOOL NtUserxReplyMessage(LRESULT lResult)
|
||||
{
|
||||
return NtUserCallOneParam(lResult, ONEPARAM_ROUTINE_REPLYMESSAGE);
|
||||
}
|
||||
|
||||
EXTINLINE VOID NtUserxPostQuitMessage(int nExitCode)
|
||||
{
|
||||
NtUserCallOneParam(nExitCode, ONEPARAM_ROUTINE_POSTQUITMESSAGE);
|
||||
}
|
||||
|
||||
EXTINLINE DWORD NtUserxGetQueueStatus(UINT flags)
|
||||
{
|
||||
return (DWORD)NtUserCallOneParam(flags, ONEPARAM_ROUTINE_GETQUEUESTATUS);
|
||||
}
|
||||
|
||||
EXTINLINE BOOL NtUserxValidateRgn(HWND hWnd, HRGN hRgn)
|
||||
{
|
||||
return (BOOL)NtUserCallTwoParam((DWORD_PTR)hWnd, (DWORD_PTR)hRgn, TWOPARAM_ROUTINE_VALIDATERGN);
|
||||
}
|
||||
|
||||
EXTINLINE BOOL NtUserxSetCursorPos(INT x, INT y)
|
||||
{
|
||||
return (BOOL)NtUserCallTwoParam((DWORD)x, (DWORD)y, TWOPARAM_ROUTINE_SETCURSORPOS);
|
||||
}
|
||||
|
||||
EXTINLINE BOOL NtUserxEnableWindow(HWND hWnd, BOOL bEnable)
|
||||
{
|
||||
return (BOOL)NtUserCallTwoParam((DWORD_PTR)hWnd, (DWORD_PTR)bEnable, TWOPARAM_ROUTINE_ENABLEWINDOW);
|
||||
}
|
||||
|
||||
EXTINLINE BOOL NtUserxUpdateUiState(HWND hWnd, DWORD Param)
|
||||
{
|
||||
return (BOOL)NtUserCallTwoParam((DWORD_PTR)hWnd, (DWORD_PTR)Param, TWOPARAM_ROUTINE_ROS_UPDATEUISTATE);
|
||||
}
|
||||
|
||||
EXTINLINE BOOL NtUserxShowOwnedPopups(HWND hWnd, BOOL fShow)
|
||||
{
|
||||
return (BOOL)NtUserCallTwoParam((DWORD_PTR)hWnd, fShow, TWOPARAM_ROUTINE_SHOWOWNEDPOPUPS);
|
||||
}
|
||||
|
||||
EXTINLINE BOOL NtUserxUnhookWindowsHook ( int nCode, HOOKPROC pfnFilterProc )
|
||||
{
|
||||
return (BOOL)NtUserCallTwoParam(nCode, (DWORD_PTR)pfnFilterProc, TWOPARAM_ROUTINE_UNHOOKWINDOWSHOOK);
|
||||
}
|
||||
|
||||
EXTINLINE BOOL NtUserxSetWindowContextHelpId(HWND hWnd, DWORD_PTR dwContextHelpId)
|
||||
{
|
||||
return (BOOL)NtUserCallHwndParam(hWnd, dwContextHelpId, HWNDPARAM_ROUTINE_SETWNDCONTEXTHLPID);
|
||||
}
|
||||
|
||||
EXTINLINE BOOL NtUserxKillSystemTimer(HWND hWnd, UINT_PTR IDEvent)
|
||||
{
|
||||
return (BOOL)NtUserCallHwndParam(hWnd, IDEvent, HWNDPARAM_ROUTINE_KILLSYSTEMTIMER);
|
||||
}
|
||||
|
||||
EXTINLINE VOID NtUserxSetDialogPointer(HWND hWnd, PVOID dlgInfo)
|
||||
{
|
||||
NtUserCallHwndParam( hWnd, (DWORD_PTR)dlgInfo, HWNDPARAM_ROUTINE_SETDIALOGPOINTER );
|
||||
}
|
||||
|
||||
EXTINLINE VOID NtUserxNotifyWinEvent(HWND hWnd, PVOID ne)
|
||||
{
|
||||
NtUserCallHwndParam(hWnd, (DWORD_PTR)ne, HWNDPARAM_ROUTINE_ROS_NOTIFYWINEVENT);
|
||||
}
|
||||
|
||||
EXTINLINE DWORD NtUserxGetWindowContextHelpId(HWND hwnd)
|
||||
{
|
||||
return NtUserCallHwnd(hwnd, HWND_ROUTINE_GETWNDCONTEXTHLPID);
|
||||
}
|
||||
|
||||
EXTINLINE BOOL NtUserxDeregisterShellHookWindow(HWND hWnd)
|
||||
{
|
||||
return NtUserCallHwnd(hWnd, HWND_ROUTINE_DEREGISTERSHELLHOOKWINDOW);
|
||||
}
|
||||
|
||||
EXTINLINE BOOL NtUserxRegisterShellHookWindow(HWND hWnd)
|
||||
{
|
||||
return NtUserCallHwnd(hWnd, HWND_ROUTINE_REGISTERSHELLHOOKWINDOW);
|
||||
}
|
||||
|
||||
EXTINLINE HWND NtUserxSetTaskmanWindow(HWND hWnd)
|
||||
{
|
||||
return NtUserCallHwndOpt(hWnd, HWNDOPT_ROUTINE_SETTASKMANWINDOW);
|
||||
}
|
||||
|
||||
EXTINLINE HWND NtUserxSetProgmanWindow(HWND hWnd)
|
||||
{
|
||||
return NtUserCallHwndOpt(hWnd, HWNDOPT_ROUTINE_SETPROGMANWINDOW);
|
||||
}
|
||||
|
||||
EXTINLINE UINT NtUserxArrangeIconicWindows(HWND hWnd)
|
||||
{
|
||||
return (UINT)NtUserCallHwndLock( hWnd, HWNDLOCK_ROUTINE_ARRANGEICONICWINDOWS);
|
||||
}
|
||||
|
||||
EXTINLINE BOOL NtUserxUpdateWindow(HWND hWnd)
|
||||
{
|
||||
return NtUserCallHwndLock(hWnd, HWNDLOCK_ROUTINE_UPDATEWINDOW);
|
||||
}
|
||||
|
||||
EXTINLINE BOOL NtUserxDrawMenuBar(HWND hWnd)
|
||||
{
|
||||
return (BOOL)NtUserCallHwndLock(hWnd, HWNDLOCK_ROUTINE_DRAWMENUBAR);
|
||||
}
|
||||
|
||||
EXTINLINE BOOL NtUserxMDIRedrawFrame(HWND hWnd)
|
||||
{
|
||||
return (BOOL)NtUserCallHwndLock(hWnd, HWNDLOCK_ROUTINE_REDRAWFRAME);
|
||||
}
|
||||
|
||||
EXTINLINE BOOL NtUserxSetForegroundWindow(HWND hWnd)
|
||||
{
|
||||
return NtUserCallHwndLock(hWnd, HWNDLOCK_ROUTINE_SETFOREGROUNDWINDOW);
|
||||
}
|
||||
|
||||
|
||||
/* Reactos specific definitions */
|
||||
|
||||
EXTINLINE LPARAM NtUserxGetMessageExtraInfo(VOID)
|
||||
{
|
||||
return (LPARAM)NtUserCallNoParam(NOPARAM_ROUTINE_GETMESSAGEEXTRAINFO);
|
||||
}
|
||||
|
||||
EXTINLINE BOOL NtUserxSwitchCaretShowing(THRDCARETINFO* CaretInfo)
|
||||
{
|
||||
return (BOOL)NtUserCallOneParam((DWORD_PTR)CaretInfo, ONEPARAM_ROUTINE_SWITCHCARETSHOWING);
|
||||
}
|
||||
|
||||
EXTINLINE VOID NtUserxEnableProcessWindowGhosting(BOOL bEnable)
|
||||
{
|
||||
NtUserCallOneParam((DWORD_PTR)bEnable, ONEPARAM_ROUTINE_ENABLEPROCWNDGHSTING);
|
||||
}
|
||||
|
||||
EXTINLINE PVOID NtUserxGetDesktopMapping(PVOID ptr)
|
||||
{
|
||||
return (PVOID)NtUserCallOneParam((DWORD_PTR)ptr, ONEPARAM_ROUTINE_GETDESKTOPMAPPING);
|
||||
}
|
||||
|
||||
EXTINLINE BOOL NtUserxGetCursorPos(POINT* lpPoint)
|
||||
{
|
||||
return (BOOL)NtUserCallOneParam((DWORD_PTR)lpPoint, ONEPARAM_ROUTINE_GETCURSORPOSITION);
|
||||
}
|
||||
|
||||
EXTINLINE BOOL NtUserxSetMenuBarHeight(HMENU menu, INT height)
|
||||
{
|
||||
return (BOOL)NtUserCallTwoParam((DWORD_PTR)menu, (DWORD_PTR)height, TWOPARAM_ROUTINE_SETMENUBARHEIGHT);
|
||||
}
|
||||
|
||||
EXTINLINE BOOL NtUserxSetGUIThreadHandle(DWORD_PTR field, HWND hwnd)
|
||||
{
|
||||
return (BOOL)NtUserCallTwoParam((DWORD_PTR)field, (DWORD_PTR)hwnd, TWOPARAM_ROUTINE_SETGUITHRDHANDLE);
|
||||
}
|
||||
|
||||
EXTINLINE BOOL NtUserxSetCaretPos(INT x, INT y)
|
||||
{
|
||||
return (BOOL)NtUserCallTwoParam((DWORD_PTR)x, (DWORD_PTR)y, TWOPARAM_ROUTINE_SETCARETPOS);
|
||||
}
|
||||
|
||||
EXTINLINE BOOL NtUserxRegisterLogonProcess(DWORD dwProcessId, BOOL bRegister)
|
||||
{
|
||||
return (BOOL)NtUserCallTwoParam((DWORD_PTR)dwProcessId, (DWORD_PTR)bRegister, TWOPARAM_ROUTINE_REGISTERLOGONPROCESS);
|
||||
}
|
||||
|
|
|
@ -1,13 +0,0 @@
|
|||
/* $Id$
|
||||
*
|
||||
* COPYRIGHT: See COPYING in the top level directory
|
||||
* PROJECT: ReactOS user32.dll
|
||||
* FILE: include/user32.h
|
||||
* PURPOSE: Global user32 definitions
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
LRESULT WINAPI ScrollBarWndProcW( HWND hwnd, UINT uMsg, WPARAM wParam,LPARAM lParam );
|
||||
LRESULT WINAPI ScrollBarWndProcA( HWND hwnd, UINT uMsg, WPARAM wParam,LPARAM lParam );
|
||||
VOID FASTCALL ScrollTrackScrollBar(HWND Wnd, INT SBType, POINT Pt);
|
|
@ -19,7 +19,6 @@
|
|||
#define NTOS_MODE_USER
|
||||
#define WIN32_NO_STATUS
|
||||
#include <windows.h>
|
||||
#include <winuser.h>
|
||||
#include <windowsx.h>
|
||||
#include <winnls32.h>
|
||||
#include <ndk/cmfuncs.h>
|
||||
|
@ -42,112 +41,11 @@
|
|||
/* WINE Headers */
|
||||
#include <wine/unicode.h>
|
||||
|
||||
/* Internal User32 Headers */
|
||||
#include "user32p.h"
|
||||
|
||||
/* SEH Support with PSEH */
|
||||
#include <pseh/pseh2.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)))
|
||||
/* Internal User32 Headers */
|
||||
#include "user32p.h"
|
||||
|
||||
/* Temporarily in here for now. */
|
||||
|
||||
extern RTL_CRITICAL_SECTION gcsUserApiHook;
|
||||
extern USERAPIHOOK guah;
|
||||
BOOL FASTCALL BeginIfHookedUserApiHook(VOID);
|
||||
BOOL FASTCALL EndUserApiHook(VOID);
|
||||
BOOL FASTCALL IsInsideUserApiHook(VOID);
|
||||
VOID FASTCALL ResetUserApiHook(PUSERAPIHOOK);
|
||||
BOOL FASTCALL IsMsgOverride(UINT,PUAHOWP);
|
||||
|
||||
#define LOADUSERAPIHOOK \
|
||||
if (!gfServerProcess && \
|
||||
!IsInsideUserApiHook() && \
|
||||
(gpsi->dwSRVIFlags & SRVINFO_APIHOOK) && \
|
||||
!RtlIsThreadWithinLoaderCallout()) \
|
||||
{ \
|
||||
NtUserCallNoParam(NOPARAM_ROUTINE_LOADUSERAPIHOOK); \
|
||||
} \
|
||||
|
||||
/* FIXME: Use ntgdi.h then cleanup... */
|
||||
LONG WINAPI GdiGetCharDimensions(HDC, LPTEXTMETRICW, LONG *);
|
||||
BOOL FASTCALL IsMetaFile(HDC);
|
||||
|
||||
extern PPROCESSINFO g_ppi;
|
||||
extern ULONG_PTR g_ulSharedDelta;
|
||||
extern PSERVERINFO gpsi;
|
||||
extern BOOL gfServerProcess;
|
||||
|
||||
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)NtUserGetDesktopMapping(Ptr);
|
||||
}
|
||||
}
|
||||
|
||||
static __inline PVOID
|
||||
SharedPtrToKernel(PVOID Ptr)
|
||||
{
|
||||
ASSERT(Ptr != NULL);
|
||||
ASSERT(g_ulSharedDelta != 0);
|
||||
return (PVOID)((ULONG_PTR)Ptr + g_ulSharedDelta);
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
PCALLPROCDATA FASTCALL ValidateCallProc(HANDLE hCallProc);
|
||||
PWND FASTCALL ValidateHwnd(HWND hwnd);
|
||||
PWND FASTCALL ValidateHwndOrDesk(HWND hwnd);
|
||||
PWND FASTCALL GetThreadDesktopWnd(VOID);
|
||||
PVOID FASTCALL ValidateHandleNoErr(HANDLE handle, UINT uType);
|
||||
PWND FASTCALL ValidateHwndNoErr(HWND hwnd);
|
||||
VOID FASTCALL GetConnected(VOID);
|
||||
BOOL FASTCALL DefSetText(HWND hWnd, PCWSTR String, BOOL Ansi);
|
||||
BOOL FASTCALL TestWindowProcess(PWND);
|
||||
VOID UserGetWindowBorders(DWORD, DWORD, SIZE *, BOOL);
|
||||
VOID FASTCALL IntNotifyWinEvent(DWORD, HWND, LONG, LONG, DWORD);
|
||||
/* User macros */
|
||||
#include "user_x.h"
|
||||
|
|
|
@ -11,231 +11,90 @@
|
|||
#pragma once
|
||||
|
||||
/* Private User32 Headers */
|
||||
#include "accel.h"
|
||||
#include "cursor.h"
|
||||
#include "controls.h"
|
||||
#include "draw.h"
|
||||
#include "dde_private.h"
|
||||
#include "menu.h"
|
||||
#include "message.h"
|
||||
#include "regcontrol.h"
|
||||
#include "resource.h"
|
||||
#include "scroll.h"
|
||||
#include "window.h"
|
||||
#include "winpos.h"
|
||||
#include "winsta.h"
|
||||
#include "ntwrapper.h"
|
||||
|
||||
/* global variables */
|
||||
extern HINSTANCE User32Instance;
|
||||
#define user32_module User32Instance
|
||||
extern PPROCESSINFO g_ppi;
|
||||
extern ULONG_PTR g_ulSharedDelta;
|
||||
extern PSERVERINFO gpsi;
|
||||
extern BOOL gfServerProcess;
|
||||
extern PUSER_HANDLE_TABLE gHandleTable;
|
||||
extern PUSER_HANDLE_ENTRY gHandleEntries;
|
||||
extern CRITICAL_SECTION U32AccelCacheLock;
|
||||
extern HINSTANCE hImmInstance;
|
||||
|
||||
#define IS_ATOM(x) \
|
||||
(((ULONG_PTR)(x) > 0x0) && ((ULONG_PTR)(x) < 0x10000))
|
||||
|
||||
/* One/Two Param Functions */
|
||||
#define NtUserMsqSetWakeMask(dwWaitMask) \
|
||||
(HANDLE)NtUserCallOneParam(dwWaitMask, ONEPARAM_ROUTINE_GETINPUTEVENT)
|
||||
|
||||
#define NtUserMsqClearWakeMask() \
|
||||
NtUserCallNoParam(NOPARAM_ROUTINE_MSQCLEARWAKEMASK)
|
||||
|
||||
#define NtUserValidateRgn(hWnd, hRgn) \
|
||||
(BOOL)NtUserCallTwoParam((DWORD_PTR)hWnd, (DWORD_PTR)hRgn, TWOPARAM_ROUTINE_VALIDATERGN)
|
||||
|
||||
#define NtUserSetWindowContextHelpId(hWnd, dwContextHelpId) \
|
||||
(BOOL)NtUserCallHwndParam(hWnd, dwContextHelpId, HWNDPARAM_ROUTINE_SETWNDCONTEXTHLPID)
|
||||
|
||||
#define NtUserSetCaretPos(X, Y) \
|
||||
(BOOL)NtUserCallTwoParam((DWORD_PTR)X, (DWORD_PTR)Y, TWOPARAM_ROUTINE_SETCARETPOS)
|
||||
|
||||
#define NtUserSetGUIThreadHandle(field, hwnd) \
|
||||
(BOOL)NtUserCallTwoParam((DWORD_PTR)field, (DWORD_PTR)hwnd, TWOPARAM_ROUTINE_SETGUITHRDHANDLE)
|
||||
|
||||
#define NtUserSetMenuBarHeight(menu, height) \
|
||||
(BOOL)NtUserCallTwoParam((DWORD_PTR)menu, (DWORD_PTR)height, TWOPARAM_ROUTINE_SETMENUBARHEIGHT)
|
||||
|
||||
#define NtUserRegisterLogonProcess(hproc, x) \
|
||||
(BOOL)NtUserCallTwoParam((DWORD_PTR)hproc, (DWORD_PTR)x, TWOPARAM_ROUTINE_REGISTERLOGONPROC)
|
||||
|
||||
#define NtUserGetSysColorBrushes(HBrushes, count) \
|
||||
(BOOL)NtUserCallTwoParam((DWORD_PTR)(HBrushes), (DWORD_PTR)(count), TWOPARAM_ROUTINE_GETSYSCOLORBRUSHES)
|
||||
|
||||
#define NtUserGetSysColors(ColorRefs, count) \
|
||||
(BOOL)NtUserCallTwoParam((DWORD_PTR)(ColorRefs), (DWORD_PTR)(count), TWOPARAM_ROUTINE_GETSYSCOLORS)
|
||||
|
||||
#define NtUserSetCaretBlinkTime(uMSeconds) \
|
||||
(BOOL)NtUserCallOneParam((DWORD_PTR)uMSeconds, ONEPARAM_ROUTINE_SETCARETBLINKTIME)
|
||||
|
||||
/*
|
||||
#define NtUserEnumClipboardFormats(format) \
|
||||
(UINT)NtUserCallOneParam(format, ONEPARAM_ROUTINE_ENUMCLIPBOARDFORMATS)
|
||||
*/
|
||||
|
||||
#define NtUserWindowFromDC(hDC) \
|
||||
(HWND)NtUserCallOneParam((DWORD_PTR)hDC, ONEPARAM_ROUTINE_WINDOWFROMDC)
|
||||
|
||||
#define NtUserSwitchCaretShowing(CaretInfo) \
|
||||
(BOOL)NtUserCallOneParam((DWORD_PTR)CaretInfo, ONEPARAM_ROUTINE_SWITCHCARETSHOWING)
|
||||
|
||||
#define NtUserSwapMouseButton(fSwap) \
|
||||
(BOOL)NtUserCallOneParam((DWORD_PTR)fSwap, ONEPARAM_ROUTINE_SWAPMOUSEBUTTON)
|
||||
|
||||
#define NtUserSetMessageExtraInfo(lParam) \
|
||||
(LPARAM)NtUserCallOneParam((DWORD_PTR)lParam, ONEPARAM_ROUTINE_SETMESSAGEEXTRAINFO)
|
||||
|
||||
#define NtUserGetWindowContextHelpId(hwnd) \
|
||||
NtUserCallOneParam((DWORD_PTR)hwnd, ONEPARAM_ROUTINE_GETWNDCONTEXTHLPID)
|
||||
|
||||
#define NtUserGetCursorPos(lpPoint) \
|
||||
(BOOL)NtUserCallOneParam((DWORD_PTR)lpPoint, ONEPARAM_ROUTINE_GETCURSORPOSITION)
|
||||
|
||||
#define NtUserEnableProcessWindowGhosting(bEnable) \
|
||||
NtUserCallOneParam((DWORD_PTR)bEnable, ONEPARAM_ROUTINE_ENABLEPROCWNDGHSTING)
|
||||
|
||||
#define NtUserShowCursor(bShow) \
|
||||
NtUserCallOneParam((DWORD_PTR)bShow, ONEPARAM_ROUTINE_SHOWCURSOR)
|
||||
|
||||
#define NtUserGetDesktopMapping(Ptr) \
|
||||
(PVOID)NtUserCallOneParam((DWORD_PTR)Ptr, ONEPARAM_ROUTINE_GETDESKTOPMAPPING)
|
||||
|
||||
#define NtUserSetCursorPos(x, y) \
|
||||
(BOOL)NtUserCallTwoParam((DWORD)x, (DWORD)y, TWOPARAM_ROUTINE_SETCURSORPOS)
|
||||
|
||||
#define ShowCaret(hwnd) \
|
||||
NtUserShowCaret(hwnd)
|
||||
|
||||
#define HideCaret(hwnd) \
|
||||
NtUserHideCaret(hwnd)
|
||||
|
||||
/* Internal Thread Data */
|
||||
extern HINSTANCE User32Instance;
|
||||
#define user32_module User32Instance
|
||||
extern HINSTANCE hImmInstance;
|
||||
|
||||
/* Critical Section*/
|
||||
extern RTL_CRITICAL_SECTION User32Crit;
|
||||
|
||||
/* FIXME: Belongs to some header. */
|
||||
/* FIXME: move to a correct header */
|
||||
/* undocumented gdi32 definitions */
|
||||
BOOL WINAPI GdiDllInitialize(HANDLE, DWORD, LPVOID);
|
||||
void InitStockObjects(void);
|
||||
VOID DeleteFrameBrushes(VOID);
|
||||
LONG WINAPI GdiGetCharDimensions(HDC, LPTEXTMETRICW, LONG *);
|
||||
|
||||
/* message spy definitions */
|
||||
/* definitions for spy.c */
|
||||
#define SPY_DISPATCHMESSAGE 0x0101
|
||||
#define SPY_SENDMESSAGE 0x0103
|
||||
#define SPY_DEFWNDPROC 0x0105
|
||||
|
||||
#define SPY_RESULT_OK 0x0001
|
||||
#define SPY_RESULT_INVALIDHWND 0x0003
|
||||
#define SPY_RESULT_DEFWND 0x0005
|
||||
|
||||
|
||||
extern const char *SPY_GetMsgName(UINT msg, HWND hWnd);
|
||||
extern const char *SPY_GetVKeyName(WPARAM wParam);
|
||||
extern void SPY_EnterMessage(INT iFlag, HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
|
||||
extern void SPY_ExitMessage(INT iFlag, HWND hwnd, UINT msg,
|
||||
LRESULT lReturn, WPARAM wParam, LPARAM lParam);
|
||||
extern void SPY_ExitMessage(INT iFlag, HWND hwnd, UINT msg, LRESULT lReturn, WPARAM wParam, LPARAM lParam);
|
||||
extern int SPY_Init(void);
|
||||
|
||||
/* definitions for usrapihk.c */
|
||||
extern RTL_CRITICAL_SECTION gcsUserApiHook;
|
||||
extern USERAPIHOOK guah;
|
||||
BOOL FASTCALL BeginIfHookedUserApiHook(VOID);
|
||||
BOOL FASTCALL EndUserApiHook(VOID);
|
||||
BOOL FASTCALL IsInsideUserApiHook(VOID);
|
||||
VOID FASTCALL ResetUserApiHook(PUSERAPIHOOK);
|
||||
BOOL FASTCALL IsMsgOverride(UINT,PUAHOWP);
|
||||
|
||||
/* Validate window handle types */
|
||||
#define VALIDATE_TYPE_FREE 0
|
||||
#define VALIDATE_TYPE_WIN 1
|
||||
#define VALIDATE_TYPE_MENU 2
|
||||
#define VALIDATE_TYPE_CURSOR 3
|
||||
#define VALIDATE_TYPE_MWPOS 4
|
||||
#define VALIDATE_TYPE_HOOK 5
|
||||
#define VALIDATE_TYPE_CALLPROC 7
|
||||
#define VALIDATE_TYPE_ACCEL 8
|
||||
#define VALIDATE_TYPE_MONITOR 12
|
||||
#define VALIDATE_TYPE_EVENT 15
|
||||
#define VALIDATE_TYPE_TIMER 16
|
||||
/* definitions for message.c */
|
||||
BOOL FASTCALL MessageInit(VOID);
|
||||
VOID FASTCALL MessageCleanup(VOID);
|
||||
|
||||
#define FIRST_USER_HANDLE 0x0020 /* first possible value for low word of user handle */
|
||||
#define LAST_USER_HANDLE 0xffef /* last possible value for low word of user handle */
|
||||
#define NB_USER_HANDLES ((LAST_USER_HANDLE - FIRST_USER_HANDLE + 1) >> 1)
|
||||
#define USER_HANDLE_TO_INDEX(hwnd) ((LOWORD(hwnd) - FIRST_USER_HANDLE) >> 1)
|
||||
|
||||
#define USER_HEADER_TO_BODY(ObjectHeader) \
|
||||
((PVOID)(((PUSER_OBJECT_HEADER)ObjectHeader) + 1))
|
||||
|
||||
#define USER_BODY_TO_HEADER(ObjectBody) \
|
||||
((PUSER_OBJECT_HEADER)(((PUSER_OBJECT_HEADER)ObjectBody) - 1))
|
||||
|
||||
#define HANDLEENTRY_INDESTROY 1
|
||||
|
||||
typedef struct _USER_HANDLE_ENTRY
|
||||
{
|
||||
void *ptr; /* pointer to object */
|
||||
union
|
||||
{
|
||||
PVOID pi;
|
||||
PTHREADINFO pti; // pointer to Win32ThreadInfo
|
||||
PPROCESSINFO ppi; // pointer to W32ProcessInfo
|
||||
};
|
||||
unsigned char type; /* object type (0 if free) */
|
||||
unsigned char flags;
|
||||
unsigned short generation; /* generation counter */
|
||||
} USER_HANDLE_ENTRY, * PUSER_HANDLE_ENTRY;
|
||||
|
||||
typedef struct _USER_HANDLE_TABLE
|
||||
{
|
||||
PUSER_HANDLE_ENTRY handles;
|
||||
PUSER_HANDLE_ENTRY freelist;
|
||||
int nb_handles;
|
||||
int allocated_handles;
|
||||
} USER_HANDLE_TABLE, * PUSER_HANDLE_TABLE;
|
||||
|
||||
extern PUSER_HANDLE_TABLE gHandleTable;
|
||||
extern PUSER_HANDLE_ENTRY gHandleEntries;
|
||||
|
||||
PUSER_HANDLE_ENTRY FASTCALL GetUser32Handle(HANDLE);
|
||||
/* definitions for misc.c */
|
||||
PCALLPROCDATA FASTCALL ValidateCallProc(HANDLE hCallProc);
|
||||
PWND FASTCALL ValidateHwnd(HWND hwnd);
|
||||
PWND FASTCALL ValidateHwndOrDesk(HWND hwnd);
|
||||
PWND FASTCALL GetThreadDesktopWnd(VOID);
|
||||
PVOID FASTCALL ValidateHandleNoErr(HANDLE handle, UINT uType);
|
||||
PWND FASTCALL ValidateHwndNoErr(HWND hwnd);
|
||||
BOOL FASTCALL TestWindowProcess(PWND);
|
||||
PVOID FASTCALL ValidateHandle(HANDLE, UINT);
|
||||
|
||||
#define WIN_GetFullHandle(h) ((HWND)(h))
|
||||
|
||||
#ifndef __ms_va_list
|
||||
# if defined(__x86_64__) && defined (__GNUC__)
|
||||
# define __ms_va_list __builtin_ms_va_list
|
||||
# define __ms_va_start(list,arg) __builtin_ms_va_start(list,arg)
|
||||
# define __ms_va_end(list) __builtin_ms_va_end(list)
|
||||
# else
|
||||
# define __ms_va_list va_list
|
||||
# define __ms_va_start(list,arg) va_start(list,arg)
|
||||
# define __ms_va_end(list) va_end(list)
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
#ifndef inline
|
||||
#define inline __inline
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/* Hack away wine hack */
|
||||
#define __TRY if(1)
|
||||
#define __EXCEPT_PAGE_FAULT else
|
||||
#define __ENDTRY
|
||||
|
||||
#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;
|
||||
}
|
||||
/* definitions for menu.c */
|
||||
BOOL MenuInit(VOID);
|
||||
VOID MenuCleanup(VOID);
|
||||
UINT MenuDrawMenuBar(HDC hDC, LPRECT Rect, HWND hWnd, BOOL Draw);
|
||||
VOID MenuTrackMouseMenuBar(HWND hWnd, ULONG Ht, POINT Pt);
|
||||
VOID MenuTrackKbdMenuBar(HWND hWnd, UINT wParam, WCHAR wChar);
|
||||
|
||||
/* misc definitions */
|
||||
BOOL FASTCALL DefSetText(HWND hWnd, PCWSTR String, BOOL Ansi);
|
||||
VOID FASTCALL ScrollTrackScrollBar(HWND Wnd, INT SBType, POINT Pt);
|
||||
HCURSOR CursorIconToCursor(HICON hIcon, BOOL SemiTransparent);
|
||||
BOOL get_icon_size(HICON hIcon, SIZE *size);
|
||||
VOID FASTCALL IntNotifyWinEvent(DWORD, HWND, LONG, LONG, DWORD);
|
||||
UINT WINAPI WinPosGetMinMaxInfo(HWND hWnd, POINT* MaxSize, POINT* MaxPos, POINT* MinTrack, POINT* MaxTrack);
|
||||
VOID UserGetWindowBorders(DWORD, DWORD, SIZE *, BOOL);
|
||||
void UserGetInsideRectNC(PWND Wnd, RECT *rect);
|
||||
VOID FASTCALL GetConnected(VOID);
|
||||
extern BOOL FASTCALL EnumNamesA(HWINSTA WindowStation, NAMEENUMPROCA EnumFunc, LPARAM Context, BOOL Desktops);
|
||||
extern BOOL FASTCALL EnumNamesW(HWINSTA WindowStation, NAMEENUMPROCW EnumFunc, LPARAM Context, BOOL Desktops);
|
||||
void DrawCaret(HWND hWnd, PTHRDCARETINFO CaretInfo);
|
||||
BOOL UserDrawSysMenuButton( HWND hWnd, HDC hDC, LPRECT, BOOL down );
|
||||
HWND* WIN_ListChildren (HWND hWndparent);
|
||||
VOID DeleteFrameBrushes(VOID);
|
||||
|
||||
/* EOF */
|
||||
|
|
112
reactos/dll/win32/user32/include/user_x.h
Normal file
112
reactos/dll/win32/user32/include/user_x.h
Normal file
|
@ -0,0 +1,112 @@
|
|||
|
||||
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)))
|
||||
|
|
@ -1,67 +0,0 @@
|
|||
/*
|
||||
* COPYRIGHT: See COPYING in the top level directory
|
||||
* PROJECT: ReactOS user32.dll
|
||||
* FILE: include/window.h
|
||||
* PURPOSE: Window management definitions
|
||||
*/
|
||||
#include <windows.h>
|
||||
|
||||
extern COLORREF SysColors[];
|
||||
extern HPEN SysPens[];
|
||||
extern HBRUSH SysBrushes[];
|
||||
|
||||
#define NUM_SYSCOLORS 31
|
||||
|
||||
|
||||
#define UserHasAnyFrameStyle(Style, ExStyle) \
|
||||
(((Style) & (WS_THICKFRAME | WS_DLGFRAME | WS_BORDER)) || \
|
||||
((ExStyle) & WS_EX_DLGMODALFRAME) || \
|
||||
(!((Style) & (WS_CHILD | WS_POPUP))))
|
||||
|
||||
#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))))
|
||||
|
||||
#define UserHasBigFrameStyle(Style, ExStyle) \
|
||||
(((Style) & (WS_THICKFRAME | WS_DLGFRAME)) || \
|
||||
((ExStyle) & WS_EX_DLGMODALFRAME))
|
||||
|
||||
|
||||
BOOL UserDrawSysMenuButton( HWND hWnd, HDC hDC, LPRECT, BOOL down );
|
||||
void
|
||||
UserGetFrameSize(ULONG Style, ULONG ExStyle, SIZE *Size);
|
||||
void
|
||||
UserGetInsideRectNC(PWND Wnd, RECT *rect);
|
||||
|
||||
DWORD
|
||||
SCROLL_HitTest( HWND hwnd, INT nBar, POINT pt, BOOL bDragging );
|
||||
|
||||
LRESULT FASTCALL IntCallWindowProcW(BOOL IsAnsiProc, WNDPROC WndProc, PWND pWnd,
|
||||
HWND hWnd, UINT Msg, WPARAM wParam,
|
||||
LPARAM lParam);
|
||||
|
||||
HWND WINAPI
|
||||
User32CreateWindowEx(DWORD dwExStyle,
|
||||
LPCSTR lpClassName,
|
||||
LPCSTR lpWindowName,
|
||||
DWORD dwStyle,
|
||||
int x,
|
||||
int y,
|
||||
int nWidth,
|
||||
int nHeight,
|
||||
HWND hWndParent,
|
||||
HMENU hMenu,
|
||||
HINSTANCE hInstance,
|
||||
LPVOID lpParam,
|
||||
BOOL Unicode);
|
||||
|
||||
HWND* WIN_ListChildren (HWND hWndparent);
|
||||
WNDPROC FASTCALL IntGetWndProc(PWND, BOOL);
|
||||
DWORD WINAPI GetRealWindowOwner(HWND);
|
|
@ -1,5 +0,0 @@
|
|||
BOOL
|
||||
WinPosShowIconTitle(HWND hWnd, BOOL bShow);
|
||||
UINT WINAPI
|
||||
WinPosGetMinMaxInfo(HWND hWnd, POINT* MaxSize, POINT* MaxPos,
|
||||
POINT* MinTrack, POINT* MaxTrack);
|
|
@ -1,12 +0,0 @@
|
|||
/* $Id$
|
||||
*
|
||||
* COPYRIGHT: See COPYING in the top level directory
|
||||
* PROJECT: ReactOS user32.dll
|
||||
* FILE: include/winsta.h
|
||||
* PURPOSE: Window stations
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
extern BOOL FASTCALL EnumNamesA(HWINSTA WindowStation, NAMEENUMPROCA EnumFunc, LPARAM Context, BOOL Desktops);
|
||||
extern BOOL FASTCALL EnumNamesW(HWINSTA WindowStation, NAMEENUMPROCW EnumFunc, LPARAM Context, BOOL Desktops);
|
|
@ -113,7 +113,7 @@ GetSystemMetrics(int nIndex)
|
|||
return RealGetSystemMetrics(nIndex);
|
||||
}
|
||||
|
||||
LOADUSERAPIHOOK
|
||||
LoadUserApiHook();
|
||||
|
||||
Hook = BeginIfHookedUserApiHook();
|
||||
|
||||
|
@ -336,7 +336,7 @@ SystemParametersInfoA(UINT uiAction,
|
|||
{
|
||||
BOOL Hook, Ret = FALSE;
|
||||
|
||||
LOADUSERAPIHOOK
|
||||
LoadUserApiHook();
|
||||
|
||||
Hook = BeginIfHookedUserApiHook();
|
||||
|
||||
|
@ -368,7 +368,7 @@ SystemParametersInfoW(UINT uiAction,
|
|||
{
|
||||
BOOL Hook, Ret = FALSE;
|
||||
|
||||
LOADUSERAPIHOOK
|
||||
LoadUserApiHook();
|
||||
|
||||
Hook = BeginIfHookedUserApiHook();
|
||||
|
||||
|
|
|
@ -243,7 +243,6 @@ Init(VOID)
|
|||
{
|
||||
InitializeCriticalSection(&U32AccelCacheLock);
|
||||
GdiDllInitialize(NULL, DLL_PROCESS_ATTACH, NULL);
|
||||
InitStockObjects();
|
||||
LoadAppInitDlls();
|
||||
|
||||
return TRUE;
|
||||
|
|
|
@ -42,9 +42,7 @@ BOOL
|
|||
WINAPI
|
||||
RegisterLogonProcess(DWORD dwProcessId, BOOL bRegister)
|
||||
{
|
||||
return NtUserCallTwoParam(dwProcessId,
|
||||
(DWORD_PTR)bRegister,
|
||||
TWOPARAM_ROUTINE_REGISTERLOGONPROC);
|
||||
return NtUserxRegisterLogonProcess(dwProcessId,bRegister);
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -259,22 +257,6 @@ TestWindowProcess(PWND Wnd)
|
|||
(DWORD_PTR)NtCurrentTeb()->ClientId.UniqueProcess );
|
||||
}
|
||||
|
||||
BOOL
|
||||
FASTCALL
|
||||
IsMetaFile(HDC hDc)
|
||||
{
|
||||
DWORD Type = GetObjectType((HGDIOBJ) hDc);
|
||||
switch(Type)
|
||||
{
|
||||
case OBJ_METADC:
|
||||
case OBJ_METAFILE:
|
||||
case OBJ_ENHMETADC:
|
||||
case OBJ_ENHMETAFILE:
|
||||
return TRUE;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
PUSER_HANDLE_ENTRY
|
||||
FASTCALL
|
||||
GetUser32Handle(HANDLE handle)
|
||||
|
@ -301,24 +283,24 @@ GetUser32Handle(HANDLE handle)
|
|||
/*
|
||||
* Decide whether an object is located on the desktop or shared heap
|
||||
*/
|
||||
static const BOOL g_ObjectHeapTypeShared[VALIDATE_TYPE_EVENT + 1] =
|
||||
static const BOOL g_ObjectHeapTypeShared[otEvent + 1] =
|
||||
{
|
||||
FALSE, /* VALIDATE_TYPE_FREE (not used) */
|
||||
FALSE, /* VALIDATE_TYPE_WIN */
|
||||
TRUE, /* VALIDATE_TYPE_MENU FALSE */
|
||||
TRUE, /* VALIDATE_TYPE_CURSOR */
|
||||
TRUE, /* VALIDATE_TYPE_MWPOS */
|
||||
FALSE, /* VALIDATE_TYPE_HOOK */
|
||||
FALSE, /* otFree (not used) */
|
||||
FALSE, /* otWindow */
|
||||
TRUE, /* otMenu FALSE */
|
||||
TRUE, /* otCursorIcon */
|
||||
TRUE, /* otSMWP */
|
||||
FALSE, /* otHook */
|
||||
FALSE, /* (not used) */
|
||||
FALSE, /* VALIDATE_TYPE_CALLPROC */
|
||||
TRUE, /* VALIDATE_TYPE_ACCEL */
|
||||
FALSE, /* otCallProc */
|
||||
TRUE, /* otAccel */
|
||||
FALSE, /* (not used) */
|
||||
FALSE, /* (not used) */
|
||||
FALSE, /* (not used) */
|
||||
TRUE, /* VALIDATE_TYPE_MONITOR */
|
||||
TRUE, /* otMonitor */
|
||||
FALSE, /* (not used) */
|
||||
FALSE, /* (not used) */
|
||||
TRUE /* VALIDATE_TYPE_EVENT */
|
||||
TRUE /* otEvent */
|
||||
};
|
||||
|
||||
//
|
||||
|
@ -331,7 +313,7 @@ ValidateHandle(HANDLE handle, UINT uType)
|
|||
PVOID ret;
|
||||
PUSER_HANDLE_ENTRY pEntry;
|
||||
|
||||
ASSERT(uType <= VALIDATE_TYPE_EVENT);
|
||||
ASSERT(uType <= otEvent);
|
||||
|
||||
pEntry = GetUser32Handle(handle);
|
||||
|
||||
|
@ -346,22 +328,22 @@ ValidateHandle(HANDLE handle, UINT uType)
|
|||
{
|
||||
switch ( uType )
|
||||
{ // Test (with wine too) confirms these results!
|
||||
case VALIDATE_TYPE_WIN:
|
||||
case otWindow:
|
||||
SetLastError(ERROR_INVALID_WINDOW_HANDLE);
|
||||
break;
|
||||
case VALIDATE_TYPE_MENU:
|
||||
case otMenu:
|
||||
SetLastError(ERROR_INVALID_MENU_HANDLE);
|
||||
break;
|
||||
case VALIDATE_TYPE_CURSOR:
|
||||
case otCursorIcon:
|
||||
SetLastError(ERROR_INVALID_CURSOR_HANDLE);
|
||||
break;
|
||||
case VALIDATE_TYPE_MWPOS:
|
||||
case otSMWP:
|
||||
SetLastError(ERROR_INVALID_DWP_HANDLE);
|
||||
break;
|
||||
case VALIDATE_TYPE_HOOK:
|
||||
case otHook:
|
||||
SetLastError(ERROR_INVALID_HOOK_HANDLE);
|
||||
break;
|
||||
case VALIDATE_TYPE_ACCEL:
|
||||
case otAccel:
|
||||
SetLastError(ERROR_INVALID_ACCEL_HANDLE);
|
||||
break;
|
||||
default:
|
||||
|
@ -389,7 +371,7 @@ ValidateHandleNoErr(HANDLE handle, UINT uType)
|
|||
PVOID ret;
|
||||
PUSER_HANDLE_ENTRY pEntry;
|
||||
|
||||
ASSERT(uType <= VALIDATE_TYPE_EVENT);
|
||||
ASSERT(uType <= otEvent);
|
||||
|
||||
pEntry = GetUser32Handle(handle);
|
||||
|
||||
|
@ -417,7 +399,7 @@ ValidateCallProc(HANDLE hCallProc)
|
|||
{
|
||||
PUSER_HANDLE_ENTRY pEntry;
|
||||
|
||||
PCALLPROCDATA CallProc = ValidateHandle(hCallProc, VALIDATE_TYPE_CALLPROC);
|
||||
PCALLPROCDATA CallProc = ValidateHandle(hCallProc, otCallProc);
|
||||
|
||||
pEntry = GetUser32Handle(hCallProc);
|
||||
|
||||
|
@ -443,7 +425,7 @@ ValidateHwnd(HWND hwnd)
|
|||
if (hwnd == ClientInfo->CallbackWnd.hWnd)
|
||||
return ClientInfo->CallbackWnd.pWnd;
|
||||
|
||||
Wnd = ValidateHandle((HANDLE)hwnd, VALIDATE_TYPE_WIN);
|
||||
Wnd = ValidateHandle((HANDLE)hwnd, otWindow);
|
||||
if (Wnd != NULL)
|
||||
{
|
||||
return Wnd;
|
||||
|
@ -467,7 +449,7 @@ ValidateHwndNoErr(HWND hwnd)
|
|||
if (hwnd == ClientInfo->CallbackWnd.hWnd)
|
||||
return ClientInfo->CallbackWnd.pWnd;
|
||||
|
||||
Wnd = ValidateHandleNoErr((HANDLE)hwnd, VALIDATE_TYPE_WIN);
|
||||
Wnd = ValidateHandleNoErr((HANDLE)hwnd, otWindow);
|
||||
if (Wnd != NULL)
|
||||
{
|
||||
return Wnd;
|
||||
|
|
|
@ -129,7 +129,7 @@ UINT
|
|||
WINAPI
|
||||
UserRealizePalette ( HDC hDC )
|
||||
{
|
||||
return NtUserCallOneParam((DWORD_PTR) hDC, ONEPARAM_ROUTINE_REALIZEPALETTE);
|
||||
return NtUserxRealizePalette(hDC);
|
||||
}
|
||||
|
||||
|
||||
|
@ -553,7 +553,7 @@ VOID
|
|||
WINAPI
|
||||
CreateSystemThreads(DWORD dwUnknown)
|
||||
{
|
||||
NtUserCallOneParam(dwUnknown, ONEPARAM_ROUTINE_CREATESYSTEMTHREADS);
|
||||
NtUserxCreateSystemThreads(dwUnknown);
|
||||
}
|
||||
|
||||
BOOL
|
||||
|
|
|
@ -39,9 +39,7 @@
|
|||
*/
|
||||
BOOL
|
||||
WINAPI
|
||||
KillSystemTimer(
|
||||
HWND hWnd,
|
||||
UINT_PTR IDEvent)
|
||||
KillSystemTimer( HWND hWnd, UINT_PTR IDEvent)
|
||||
{
|
||||
return NtUserCallHwndParam(hWnd, IDEvent, HWNDPARAM_ROUTINE_KILLSYSTEMTIMER);
|
||||
return NtUserxKillSystemTimer(hWnd, IDEvent);
|
||||
}
|
||||
|
|
|
@ -27,6 +27,7 @@ BOOL WINAPI RealMDIRedrawFrame(HWND,DWORD);
|
|||
INT WINAPI RealSetScrollInfo(HWND,int,LPCSCROLLINFO,BOOL);
|
||||
BOOL WINAPI RealSystemParametersInfoA(UINT,UINT,PVOID,UINT);
|
||||
BOOL WINAPI RealSystemParametersInfoW(UINT,UINT,PVOID,UINT);
|
||||
DWORD WINAPI GetRealWindowOwner(HWND);
|
||||
|
||||
/* GLOBALS *******************************************************************/
|
||||
|
||||
|
@ -309,7 +310,7 @@ BOOL
|
|||
WINAPI
|
||||
RealMDIRedrawFrame(HWND hWnd, DWORD flags)
|
||||
{
|
||||
return (BOOL)NtUserCallHwndLock(hWnd, HWNDLOCK_ROUTINE_REDRAWFRAME);
|
||||
return NtUserxMDIRedrawFrame(hWnd);
|
||||
}
|
||||
|
||||
BOOL
|
||||
|
@ -318,7 +319,7 @@ MDIRedrawFrame(HWND hWnd, DWORD flags)
|
|||
{
|
||||
BOOL Hook, Ret = FALSE;
|
||||
|
||||
LOADUSERAPIHOOK
|
||||
LoadUserApiHook();
|
||||
|
||||
Hook = BeginIfHookedUserApiHook();
|
||||
|
||||
|
|
|
@ -43,6 +43,16 @@ typedef struct
|
|||
WORD pad1;
|
||||
} PE_ACCEL, *LPPE_ACCEL;
|
||||
|
||||
/* Cache entry */
|
||||
typedef struct _USER_ACCEL_CACHE_ENTRY
|
||||
{
|
||||
struct _USER_ACCEL_CACHE_ENTRY * Next;
|
||||
ULONG_PTR Usage; /* how many times the table has been loaded */
|
||||
HACCEL Object; /* handle to the NtUser accelerator table object */
|
||||
HGLOBAL Data; /* base address of the resource data */
|
||||
}
|
||||
U32_ACCEL_CACHE_ENTRY;
|
||||
|
||||
/* FUNCTIONS *****************************************************************/
|
||||
|
||||
/* Lock guarding the cache */
|
||||
|
|
|
@ -88,7 +88,7 @@ BOOL
|
|||
WINAPI
|
||||
DestroyCaret(VOID)
|
||||
{
|
||||
return (BOOL)NtUserCallNoParam(NOPARAM_ROUTINE_DESTROY_CARET);
|
||||
return NtUserxDestroyCaret();
|
||||
}
|
||||
|
||||
|
||||
|
@ -99,7 +99,7 @@ BOOL
|
|||
WINAPI
|
||||
SetCaretBlinkTime(UINT uMSeconds)
|
||||
{
|
||||
return NtUserSetCaretBlinkTime(uMSeconds);
|
||||
return NtUserxSetCaretBlinkTime(uMSeconds);
|
||||
}
|
||||
|
||||
|
||||
|
@ -108,10 +108,9 @@ SetCaretBlinkTime(UINT uMSeconds)
|
|||
*/
|
||||
BOOL
|
||||
WINAPI
|
||||
SetCaretPos(int X,
|
||||
int Y)
|
||||
SetCaretPos(int X, int Y)
|
||||
{
|
||||
return NtUserSetCaretPos(X, Y);
|
||||
return NtUserxSetCaretPos(X, Y);
|
||||
}
|
||||
|
||||
/* EOF */
|
||||
|
|
|
@ -30,8 +30,7 @@ BOOL
|
|||
WINAPI
|
||||
OpenClipboard(HWND hWndNewOwner)
|
||||
{
|
||||
BOOL ret = NtUserOpenClipboard(hWndNewOwner, 0);
|
||||
return ret;
|
||||
return NtUserOpenClipboard(hWndNewOwner, 0);
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -41,8 +40,7 @@ UINT
|
|||
WINAPI
|
||||
EnumClipboardFormats(UINT format)
|
||||
{
|
||||
UINT ret = NtUserCallOneParam(format, ONEPARAM_ROUTINE_ENUMCLIPBOARDFORMATS);
|
||||
return ret;
|
||||
return NtUserxEnumClipboardFormats(format);
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
@ -76,8 +76,7 @@ static
|
|||
HICON
|
||||
CreateCursorIconHandle( PICONINFO IconInfo )
|
||||
{
|
||||
HICON hIcon = (HICON)NtUserCallOneParam(0,
|
||||
ONEPARAM_ROUTINE_CREATEEMPTYCUROBJECT);
|
||||
HICON hIcon = NtUserxCreateEmptyCurObject(0);
|
||||
if(!hIcon)
|
||||
return NULL;
|
||||
|
||||
|
@ -1238,25 +1237,12 @@ BOOL WINAPI DrawIcon( HDC hdc, INT x, INT y, HICON hIcon )
|
|||
return DrawIconEx( hdc, x, y, hIcon, 0, 0, 0, 0, DI_NORMAL | DI_COMPAT | DI_DEFAULTSIZE );
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
* SetCursor (USER32.@)
|
||||
*
|
||||
* Set the cursor shape.
|
||||
*
|
||||
* RETURNS
|
||||
* A handle to the previous cursor shape.
|
||||
*/
|
||||
HCURSOR WINAPI /*DECLSPEC_HOTPATCH*/ SetCursor( HCURSOR hCursor /* [in] Handle of cursor to show */ )
|
||||
{
|
||||
return NtUserSetCursor(hCursor);
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
* ShowCursor (USER32.@)
|
||||
*/
|
||||
INT WINAPI /*DECLSPEC_HOTPATCH*/ ShowCursor( BOOL bShow )
|
||||
{
|
||||
return NtUserShowCursor(bShow);
|
||||
return NtUserxShowCursor(bShow);
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
|
@ -1273,24 +1259,6 @@ HCURSOR WINAPI GetCursor(void)
|
|||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* ClipCursor (USER32.@)
|
||||
*/
|
||||
BOOL WINAPI /*DECLSPEC_HOTPATCH*/ ClipCursor( const RECT *rect )
|
||||
{
|
||||
return NtUserClipCursor((RECT *)rect);
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* GetClipCursor (USER32.@)
|
||||
*/
|
||||
BOOL WINAPI /*DECLSPEC_HOTPATCH*/ GetClipCursor( RECT *rect )
|
||||
{
|
||||
return NtUserGetClipCursor(rect);
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* SetSystemCursor (USER32.@)
|
||||
*/
|
||||
|
@ -1800,16 +1768,18 @@ HANDLE WINAPI LoadImageA( HINSTANCE hinst, LPCSTR name, UINT type,
|
|||
if (IS_INTRESOURCE(name))
|
||||
return LoadImageW(hinst, (LPCWSTR)name, type, desiredx, desiredy, loadflags);
|
||||
|
||||
__TRY {
|
||||
_SEH2_TRY
|
||||
{
|
||||
DWORD len = MultiByteToWideChar( CP_ACP, 0, name, -1, NULL, 0 );
|
||||
u_name = HeapAlloc( GetProcessHeap(), 0, len * sizeof(WCHAR) );
|
||||
MultiByteToWideChar( CP_ACP, 0, name, -1, u_name, len );
|
||||
}
|
||||
__EXCEPT_PAGE_FAULT {
|
||||
_SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER)
|
||||
{
|
||||
SetLastError( ERROR_INVALID_PARAMETER );
|
||||
return 0;
|
||||
_SEH2_YIELD(return 0);
|
||||
}
|
||||
__ENDTRY
|
||||
_SEH2_END
|
||||
res = LoadImageW(hinst, u_name, type, desiredx, desiredy, loadflags);
|
||||
HeapFree(GetProcessHeap(), 0, u_name);
|
||||
return res;
|
||||
|
@ -2133,10 +2103,9 @@ CursorIconToCursor(HICON hIcon,
|
|||
*/
|
||||
BOOL
|
||||
WINAPI
|
||||
SetCursorPos(int X,
|
||||
int Y)
|
||||
SetCursorPos(int X, int Y)
|
||||
{
|
||||
return NtUserSetCursorPos(X,Y);
|
||||
return NtUserxSetCursorPos(X,Y);
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -2154,7 +2123,7 @@ GetCursorPos(LPPOINT lpPoint)
|
|||
return FALSE;
|
||||
}
|
||||
|
||||
res = NtUserGetCursorPos(lpPoint);
|
||||
res = NtUserxGetCursorPos(lpPoint);
|
||||
|
||||
return res;
|
||||
}
|
||||
|
|
|
@ -53,8 +53,8 @@ ReleaseDC(HWND hWnd,
|
|||
if (!hDC) return FALSE; // Null hDC return zero.
|
||||
|
||||
GdiReleaseDC ( hDC ); // Release locals.
|
||||
// Win 3.1 throw back, hWnd is ignored and not used.
|
||||
return NtUserCallOneParam((DWORD_PTR) hDC, ONEPARAM_ROUTINE_RELEASEDC);
|
||||
|
||||
return NtUserxReleaseDC(hDC);
|
||||
}
|
||||
|
||||
|
||||
|
@ -65,5 +65,5 @@ HWND
|
|||
WINAPI
|
||||
WindowFromDC(HDC hDC)
|
||||
{
|
||||
return NtUserWindowFromDC(hDC);
|
||||
return NtUserxWindowFromDC(hDC);
|
||||
}
|
||||
|
|
|
@ -32,19 +32,6 @@ static short iMenuSysKey = 0;
|
|||
|
||||
/* FUNCTIONS *****************************************************************/
|
||||
|
||||
void
|
||||
InitStockObjects(void)
|
||||
{
|
||||
/* FIXME - Instead of copying the stuff to usermode we should map the tables to
|
||||
userland. The current implementation has one big flaw: the system color
|
||||
table doesn't get updated when another process changes them. That's why
|
||||
we should rather map the table into usermode. But it only affects the
|
||||
SysColors table - the pens, brushes and stock objects are not affected
|
||||
as their handles never change. But it'd be faster to map them, too. */
|
||||
|
||||
// Done! gpsi!
|
||||
}
|
||||
|
||||
/*
|
||||
* @implemented
|
||||
*/
|
||||
|
@ -522,7 +509,7 @@ DefWndDoSizeMove(HWND hwnd, WORD wParam)
|
|||
}
|
||||
|
||||
SendMessageA( hwnd, WM_ENTERSIZEMOVE, 0, 0 );
|
||||
(void)NtUserSetGUIThreadHandle(MSQ_STATE_MOVESIZE, hwnd);
|
||||
NtUserxSetGUIThreadHandle(MSQ_STATE_MOVESIZE, hwnd);
|
||||
if (GetCapture() != hwnd) SetCapture( hwnd );
|
||||
|
||||
if (Style & WS_CHILD)
|
||||
|
@ -681,7 +668,7 @@ DefWndDoSizeMove(HWND hwnd, WORD wParam)
|
|||
if (lResult) moved = FALSE;
|
||||
}
|
||||
|
||||
(void)NtUserSetGUIThreadHandle(MSQ_STATE_MOVESIZE, NULL);
|
||||
NtUserxSetGUIThreadHandle(MSQ_STATE_MOVESIZE, NULL);
|
||||
SendMessageA( hwnd, WM_EXITSIZEMOVE, 0, 0 );
|
||||
SendMessageA( hwnd, WM_SETVISIBLE, !IsIconic(hwnd), 0L);
|
||||
|
||||
|
@ -1595,7 +1582,7 @@ User32DefWindowProc(HWND hWnd,
|
|||
{
|
||||
case 0xffff: /* Caret timer */
|
||||
/* switch showing byte in win32k and get information about the caret */
|
||||
if(NtUserSwitchCaretShowing(&CaretInfo) && (CaretInfo.hWnd == hWnd))
|
||||
if(NtUserxSwitchCaretShowing(&CaretInfo) && (CaretInfo.hWnd == hWnd))
|
||||
{
|
||||
DrawCaret(hWnd, &CaretInfo);
|
||||
}
|
||||
|
@ -1808,7 +1795,7 @@ User32DefWindowProc(HWND hWnd,
|
|||
/* Pack the information and call win32k */
|
||||
if (Change)
|
||||
{
|
||||
if (!NtUserCallTwoParam((DWORD_PTR)hWnd, (DWORD_PTR)Flags | ((DWORD_PTR)Action << 3), TWOPARAM_ROUTINE_ROS_UPDATEUISTATE))
|
||||
if (!NtUserxUpdateUiState(hWnd, Flags | ((DWORD)Action << 3)))
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -2209,7 +2196,7 @@ DefWindowProcA(HWND hWnd,
|
|||
BOOL Hook, msgOverride = FALSE;
|
||||
LRESULT Result = 0;
|
||||
|
||||
LOADUSERAPIHOOK
|
||||
LoadUserApiHook();
|
||||
|
||||
Hook = BeginIfHookedUserApiHook();
|
||||
if (Hook)
|
||||
|
@ -2242,7 +2229,7 @@ DefWindowProcW(HWND hWnd,
|
|||
BOOL Hook, msgOverride = FALSE;
|
||||
LRESULT Result = 0;
|
||||
|
||||
LOADUSERAPIHOOK
|
||||
LoadUserApiHook();
|
||||
|
||||
Hook = BeginIfHookedUserApiHook();
|
||||
if (Hook)
|
||||
|
|
|
@ -154,7 +154,7 @@ DIALOGINFO * DIALOG_get_info( HWND hWnd, BOOL create )
|
|||
|
||||
SETDLGINFO( hWnd, dlgInfo );
|
||||
|
||||
NtUserCallHwndParam( hWnd, (DWORD_PTR)dlgInfo, HWNDPARAM_ROUTINE_SETDIALOGPOINTER );
|
||||
NtUserxSetDialogPointer( hWnd, dlgInfo );
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -1157,7 +1157,7 @@ static LRESULT DEFDLG_Proc( HWND hwnd, UINT msg, WPARAM wParam,
|
|||
if (dlgInfo->hMenu) DestroyMenu( dlgInfo->hMenu );
|
||||
HeapFree( GetProcessHeap(), 0, dlgInfo );
|
||||
NtUserSetThreadState(0,DF_DIALOGACTIVE);
|
||||
NtUserCallHwndParam( hwnd, 0, HWNDPARAM_ROUTINE_SETDIALOGPOINTER );
|
||||
NtUserxSetDialogPointer( hwnd, 0 );
|
||||
}
|
||||
/* Window clean-up */
|
||||
return DefWindowProcA( hwnd, msg, wParam, lParam );
|
||||
|
|
|
@ -1452,7 +1452,7 @@ DrawFrameControl(HDC hDC, LPRECT rc, UINT uType, UINT uState)
|
|||
{
|
||||
BOOL Hook, Ret = FALSE;
|
||||
|
||||
LOADUSERAPIHOOK
|
||||
LoadUserApiHook();
|
||||
|
||||
Hook = BeginIfHookedUserApiHook();
|
||||
|
||||
|
|
|
@ -128,7 +128,7 @@ IntNotifyWinEvent(
|
|||
ne.idChild = idChild;
|
||||
ne.flags = flags;
|
||||
if (gpsi->dwInstalledEventHooks & GetMaskFromEvent(event))
|
||||
NtUserCallHwndParam(hwnd, (DWORD)&ne, HWNDPARAM_ROUTINE_ROS_NOTIFYWINEVENT);
|
||||
NtUserxNotifyWinEvent(hwnd, &ne);
|
||||
}
|
||||
|
||||
/* FUNCTIONS *****************************************************************/
|
||||
|
@ -300,7 +300,7 @@ BOOL
|
|||
WINAPI
|
||||
DeregisterShellHookWindow(HWND hWnd)
|
||||
{
|
||||
return NtUserCallHwnd(hWnd, HWND_ROUTINE_DEREGISTERSHELLHOOKWINDOW);
|
||||
return NtUserxDeregisterShellHookWindow(hWnd);
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -310,7 +310,7 @@ BOOL
|
|||
WINAPI
|
||||
RegisterShellHookWindow(HWND hWnd)
|
||||
{
|
||||
return NtUserCallHwnd(hWnd, HWND_ROUTINE_REGISTERSHELLHOOKWINDOW);
|
||||
return NtUserxRegisterShellHookWindow(hWnd);
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -320,7 +320,7 @@ BOOL
|
|||
WINAPI
|
||||
UnhookWindowsHook ( int nCode, HOOKPROC pfnFilterProc )
|
||||
{
|
||||
return NtUserCallTwoParam(nCode, (DWORD_PTR)pfnFilterProc, TWOPARAM_ROUTINE_UNHOOKWINDOWSHOOK);
|
||||
return NtUserxUnhookWindowsHook(nCode, pfnFilterProc);
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
@ -104,10 +104,9 @@ DragDetect(
|
|||
* @implemented
|
||||
*/
|
||||
BOOL WINAPI
|
||||
EnableWindow(HWND hWnd,
|
||||
BOOL bEnable)
|
||||
EnableWindow(HWND hWnd, BOOL bEnable)
|
||||
{
|
||||
return NtUserCallTwoParam((DWORD_PTR)hWnd, (DWORD_PTR)bEnable, TWOPARAM_ROUTINE_ENABLEWINDOW);
|
||||
return NtUserxEnableWindow(hWnd, bEnable);
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -128,7 +127,7 @@ GetAsyncKeyState(int vKey)
|
|||
HKL WINAPI
|
||||
GetKeyboardLayout(DWORD idThread)
|
||||
{
|
||||
return (HKL)NtUserCallOneParam((DWORD_PTR) idThread, ONEPARAM_ROUTINE_GETKEYBOARDLAYOUT);
|
||||
return NtUserxGetKeyboardLayout(idThread);
|
||||
}
|
||||
|
||||
|
||||
|
@ -220,7 +219,7 @@ GetKeyboardLayoutNameW(LPWSTR pwszKLID)
|
|||
int WINAPI
|
||||
GetKeyboardType(int nTypeFlag)
|
||||
{
|
||||
return (int)NtUserCallOneParam((DWORD_PTR) nTypeFlag, ONEPARAM_ROUTINE_GETKEYBOARDTYPE);
|
||||
return NtUserxGetKeyboardType( nTypeFlag );
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -355,7 +354,7 @@ WINAPI
|
|||
SwapMouseButton(
|
||||
BOOL fSwap)
|
||||
{
|
||||
return NtUserSwapMouseButton(fSwap);
|
||||
return NtUserxSwapMouseButton(fSwap);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -2915,7 +2915,7 @@ MenuDoNextMenu(MTRACKER* Mt, UINT Vk, UINT wFlags)
|
|||
if (NewWnd != Mt->OwnerWnd)
|
||||
{
|
||||
Mt->OwnerWnd = NewWnd;
|
||||
(void)NtUserSetGUIThreadHandle(MSQ_STATE_MENUOWNER, Mt->OwnerWnd); // 1
|
||||
NtUserxSetGUIThreadHandle(MSQ_STATE_MENUOWNER, Mt->OwnerWnd); // 1
|
||||
SetCapture(Mt->OwnerWnd); // 2
|
||||
}
|
||||
|
||||
|
@ -3206,13 +3206,13 @@ static INT FASTCALL MenuTrackMenu(HMENU hmenu, UINT wFlags, INT x, INT y,
|
|||
|
||||
/* owner may not be visible when tracking a popup, so use the menu itself */
|
||||
capture_win = (wFlags & TPM_POPUPMENU) ? MenuInfo.Wnd : mt.OwnerWnd;
|
||||
(void)NtUserSetGUIThreadHandle(MSQ_STATE_MENUOWNER, capture_win); // 1
|
||||
NtUserxSetGUIThreadHandle(MSQ_STATE_MENUOWNER, capture_win); // 1
|
||||
SetCapture(capture_win); // 2
|
||||
|
||||
while (! fEndMenu)
|
||||
{
|
||||
BOOL ErrorExit = FALSE;
|
||||
PVOID menu = ValidateHandle(mt.CurrentMenu, VALIDATE_TYPE_MENU);
|
||||
PVOID menu = ValidateHandle(mt.CurrentMenu, otMenu);
|
||||
if (!menu) /* sometimes happens if I do a window manager close */
|
||||
break;
|
||||
|
||||
|
@ -3464,7 +3464,7 @@ static INT FASTCALL MenuTrackMenu(HMENU hmenu, UINT wFlags, INT x, INT y,
|
|||
else mt.TrackFlags &= ~TF_SKIPREMOVE;
|
||||
}
|
||||
|
||||
(void)NtUserSetGUIThreadHandle(MSQ_STATE_MENUOWNER, NULL);
|
||||
NtUserxSetGUIThreadHandle(MSQ_STATE_MENUOWNER, NULL);
|
||||
SetCapture(NULL); /* release the capture */
|
||||
|
||||
/* If dropdown is still painted and the close box is clicked on
|
||||
|
@ -4072,7 +4072,7 @@ HMENU WINAPI
|
|||
CreateMenu(VOID)
|
||||
{
|
||||
MenuLoadBitmaps();
|
||||
return (HMENU)NtUserCallNoParam(NOPARAM_ROUTINE_CREATEMENU);
|
||||
return NtUserxCreateMenu();
|
||||
}
|
||||
|
||||
|
||||
|
@ -4083,7 +4083,7 @@ HMENU WINAPI
|
|||
CreatePopupMenu(VOID)
|
||||
{
|
||||
MenuLoadBitmaps();
|
||||
return (HMENU)NtUserCallNoParam(NOPARAM_ROUTINE_CREATEMENUPOPUP);
|
||||
return NtUserxCreatePopupMenu();
|
||||
}
|
||||
|
||||
|
||||
|
@ -4093,7 +4093,7 @@ CreatePopupMenu(VOID)
|
|||
BOOL WINAPI
|
||||
DrawMenuBar(HWND hWnd)
|
||||
{
|
||||
// return (BOOL)NtUserCallHwndLock(hWnd, HWNDLOCK_ROUTINE_DRAWMENUBAR);
|
||||
// return NtUserxDrawMenuBar(hWnd);
|
||||
ROSMENUINFO MenuInfo;
|
||||
HMENU hMenu;
|
||||
hMenu = GetMenu(hWnd);
|
||||
|
@ -4720,7 +4720,7 @@ WINAPI
|
|||
IsMenu(
|
||||
HMENU Menu)
|
||||
{
|
||||
if (ValidateHandle(Menu, VALIDATE_TYPE_MENU)) return TRUE;
|
||||
if (ValidateHandle(Menu, otMenu)) return TRUE;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
|
|
@ -1035,7 +1035,7 @@ LPARAM
|
|||
WINAPI
|
||||
GetMessageExtraInfo(VOID)
|
||||
{
|
||||
return (LPARAM)NtUserCallNoParam(NOPARAM_ROUTINE_GETMESSAGEEXTRAINFO);
|
||||
return NtUserxGetMessageExtraInfo();
|
||||
}
|
||||
|
||||
|
||||
|
@ -1046,7 +1046,7 @@ DWORD
|
|||
WINAPI
|
||||
GetMessagePos(VOID)
|
||||
{
|
||||
return NtUserCallNoParam(NOPARAM_ROUTINE_GETMSESSAGEPOS);
|
||||
return NtUserxGetMessagePos();
|
||||
}
|
||||
|
||||
|
||||
|
@ -1100,10 +1100,9 @@ InSendMessageEx(
|
|||
*/
|
||||
BOOL
|
||||
WINAPI
|
||||
ReplyMessage(
|
||||
LRESULT lResult)
|
||||
ReplyMessage(LRESULT lResult)
|
||||
{
|
||||
return NtUserCallOneParam(lResult, ONEPARAM_ROUTINE_REPLYMESSAGE);
|
||||
return NtUserxReplyMessage(lResult);
|
||||
}
|
||||
|
||||
|
||||
|
@ -1115,7 +1114,7 @@ WINAPI
|
|||
SetMessageExtraInfo(
|
||||
LPARAM lParam)
|
||||
{
|
||||
return NtUserSetMessageExtraInfo(lParam);
|
||||
return NtUserxSetMessageExtraInfo(lParam);
|
||||
}
|
||||
|
||||
LRESULT FASTCALL
|
||||
|
@ -1933,7 +1932,7 @@ WINAPI
|
|||
PostQuitMessage(
|
||||
int nExitCode)
|
||||
{
|
||||
NtUserCallOneParam(nExitCode, ONEPARAM_ROUTINE_POSTQUITMESSAGE);
|
||||
NtUserxPostQuitMessage(nExitCode);
|
||||
}
|
||||
|
||||
|
||||
|
@ -2495,7 +2494,7 @@ GetCapture(VOID)
|
|||
BOOL WINAPI
|
||||
ReleaseCapture(VOID)
|
||||
{
|
||||
return (BOOL)NtUserCallNoParam(NOPARAM_ROUTINE_RELEASECAPTURE);
|
||||
return NtUserxReleaseCapture();
|
||||
}
|
||||
|
||||
|
||||
|
@ -2512,7 +2511,7 @@ RealGetQueueStatus(UINT flags)
|
|||
SetLastError( ERROR_INVALID_FLAGS );
|
||||
return 0;
|
||||
}
|
||||
return NtUserCallOneParam(flags, ONEPARAM_ROUTINE_GETQUEUESTATUS);
|
||||
return NtUserxGetQueueStatus(flags);
|
||||
}
|
||||
|
||||
|
||||
|
@ -2677,7 +2676,7 @@ BOOL WINAPI RegisterMessagePumpHook(MESSAGEPUMPHOOKPROC Hook)
|
|||
return FALSE;
|
||||
}
|
||||
}
|
||||
if(NtUserCallNoParam(NOPARAM_ROUTINE_INIT_MESSAGE_PUMP)) {
|
||||
if(NtUserxInitMessagePump()) {
|
||||
LeaveCriticalSection(&gcsMPH);
|
||||
return FALSE;
|
||||
}
|
||||
|
@ -2692,7 +2691,7 @@ BOOL WINAPI UnregisterMessagePumpHook(VOID)
|
|||
{
|
||||
EnterCriticalSection(&gcsMPH);
|
||||
if(gcLoadMPH > 0) {
|
||||
if(NtUserCallNoParam(NOPARAM_ROUTINE_UNINIT_MESSAGE_PUMP)) {
|
||||
if(NtUserxUnInitMessagePump()) {
|
||||
gcLoadMPH--;
|
||||
if(!gcLoadMPH) {
|
||||
InterlockedExchange((PLONG)&gfMessagePumpHook, 0);
|
||||
|
@ -2767,7 +2766,7 @@ RealMsgWaitForMultipleObjectsEx(
|
|||
}
|
||||
}
|
||||
|
||||
MessageQueueHandle = NtUserMsqSetWakeMask(MAKELONG(dwWakeMask, dwFlags));
|
||||
MessageQueueHandle = NtUserxMsqSetWakeMask(MAKELONG(dwWakeMask, dwFlags));
|
||||
if (MessageQueueHandle == NULL)
|
||||
{
|
||||
SetLastError(0); /* ? */
|
||||
|
@ -2777,7 +2776,7 @@ RealMsgWaitForMultipleObjectsEx(
|
|||
RealHandles = HeapAlloc(GetProcessHeap(), 0, (nCount + 1) * sizeof(HANDLE));
|
||||
if (RealHandles == NULL)
|
||||
{
|
||||
NtUserMsqClearWakeMask();
|
||||
NtUserxMsqClearWakeMask();
|
||||
SetLastError(ERROR_NOT_ENOUGH_MEMORY);
|
||||
return WAIT_FAILED;
|
||||
}
|
||||
|
@ -2790,7 +2789,7 @@ RealMsgWaitForMultipleObjectsEx(
|
|||
dwMilliseconds, dwFlags & MWMO_ALERTABLE);
|
||||
|
||||
HeapFree(GetProcessHeap(), 0, RealHandles);
|
||||
NtUserMsqClearWakeMask();
|
||||
NtUserxMsqClearWakeMask();
|
||||
//FIXME("Result 0X%x\n",Result);
|
||||
return Result;
|
||||
}
|
||||
|
|
|
@ -890,7 +890,7 @@ BOOL
|
|||
WINAPI
|
||||
MessageBeep(UINT uType)
|
||||
{
|
||||
return (BOOL)NtUserCallOneParam(uType, ONEPARAM_ROUTINE_MESSAGEBEEP);
|
||||
return NtUserxMessageBeep(uType);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -450,7 +450,7 @@ DefWndNCPaint(HWND hWnd, HRGN hRgn, BOOL Active)
|
|||
if (menu && !(Style & WS_CHILD))
|
||||
{
|
||||
TempRect = CurrentRect;
|
||||
TempRect.bottom = TempRect.top + (UINT)NtUserSetMenuBarHeight(menu, 0);
|
||||
TempRect.bottom = TempRect.top + (UINT)NtUserxSetMenuBarHeight(menu, 0);
|
||||
CurrentRect.top += MenuDrawMenuBar(hDC, &TempRect, hWnd, FALSE);
|
||||
}
|
||||
|
||||
|
@ -1104,7 +1104,7 @@ AdjustWindowRectEx(LPRECT lpRect,
|
|||
{
|
||||
BOOL Hook, Ret = FALSE;
|
||||
|
||||
LOADUSERAPIHOOK
|
||||
LoadUserApiHook();
|
||||
|
||||
Hook = BeginIfHookedUserApiHook();
|
||||
|
||||
|
@ -1148,7 +1148,7 @@ DrawCaption(HWND hWnd, HDC hDC, LPCRECT lprc, UINT uFlags)
|
|||
{
|
||||
BOOL Hook, Ret = FALSE;
|
||||
|
||||
LOADUSERAPIHOOK
|
||||
LoadUserApiHook();
|
||||
|
||||
Hook = BeginIfHookedUserApiHook();
|
||||
|
||||
|
|
|
@ -200,7 +200,7 @@ SetWindowRgn(
|
|||
BOOL Hook;
|
||||
int Ret = 0;
|
||||
|
||||
LOADUSERAPIHOOK
|
||||
LoadUserApiHook();
|
||||
|
||||
Hook = BeginIfHookedUserApiHook();
|
||||
|
||||
|
@ -244,7 +244,7 @@ UpdateWindow(
|
|||
pWnd->state & WNDS_INTERNALPAINT ||
|
||||
pWnd->spwndChild )
|
||||
{
|
||||
return NtUserCallHwndLock(hWnd, HWNDLOCK_ROUTINE_UPDATEWINDOW);
|
||||
return NtUserxUpdateWindow(hWnd);
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
@ -258,7 +258,7 @@ ValidateRgn(
|
|||
HWND hWnd,
|
||||
HRGN hRgn)
|
||||
{
|
||||
return NtUserCallHwndParamLock(hWnd, (DWORD)hRgn, TWOPARAM_ROUTINE_VALIDATERGN);
|
||||
return NtUserxValidateRgn(hWnd, hRgn);
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
@ -65,7 +65,7 @@ AllowSetForegroundWindow(DWORD dwProcessId)
|
|||
HDWP WINAPI
|
||||
BeginDeferWindowPos(int nNumWindows)
|
||||
{
|
||||
return (HDWP)NtUserCallOneParam((DWORD_PTR)nNumWindows, ONEPARAM_ROUTINE_BEGINDEFERWNDPOS);
|
||||
return NtUserxBeginDeferWindowPos(nNumWindows);
|
||||
}
|
||||
|
||||
|
||||
|
@ -1668,7 +1668,7 @@ RealChildWindowFromPoint(HWND hwndParent,
|
|||
BOOL WINAPI
|
||||
SetForegroundWindow(HWND hWnd)
|
||||
{
|
||||
return NtUserCallHwndLock(hWnd, HWNDLOCK_ROUTINE_SETFOREGROUNDWINDOW);
|
||||
return NtUserxSetForegroundWindow(hWnd);
|
||||
}
|
||||
|
||||
|
||||
|
@ -1750,10 +1750,9 @@ SetWindowTextW(HWND hWnd,
|
|||
* @implemented
|
||||
*/
|
||||
BOOL WINAPI
|
||||
ShowOwnedPopups(HWND hWnd,
|
||||
BOOL fShow)
|
||||
ShowOwnedPopups(HWND hWnd, BOOL fShow)
|
||||
{
|
||||
return (BOOL)NtUserCallTwoParam((DWORD_PTR)hWnd, fShow, TWOPARAM_ROUTINE_SHOWOWNEDPOPUPS);
|
||||
return NtUserxShowOwnedPopups(hWnd, fShow);
|
||||
}
|
||||
|
||||
|
||||
|
@ -1816,7 +1815,7 @@ BOOL WINAPI
|
|||
SetWindowContextHelpId(HWND hwnd,
|
||||
DWORD dwContextHelpId)
|
||||
{
|
||||
return NtUserSetWindowContextHelpId(hwnd, dwContextHelpId);
|
||||
return NtUserxSetWindowContextHelpId(hwnd, dwContextHelpId);
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -1825,7 +1824,7 @@ SetWindowContextHelpId(HWND hwnd,
|
|||
DWORD WINAPI
|
||||
GetWindowContextHelpId(HWND hwnd)
|
||||
{
|
||||
return NtUserCallHwnd(hwnd, HWND_ROUTINE_GETWNDCONTEXTHLPID);
|
||||
return NtUserxGetWindowContextHelpId(hwnd);
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -1879,7 +1878,7 @@ GetRealWindowOwner(HWND hwnd)
|
|||
HWND WINAPI
|
||||
SetTaskmanWindow(HWND hWnd)
|
||||
{
|
||||
return NtUserCallHwndOpt(hWnd, HWNDOPT_ROUTINE_SETTASKMANWINDOW);
|
||||
return NtUserxSetTaskmanWindow(hWnd);
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -1888,7 +1887,7 @@ SetTaskmanWindow(HWND hWnd)
|
|||
HWND WINAPI
|
||||
SetProgmanWindow(HWND hWnd)
|
||||
{
|
||||
return NtUserCallHwndOpt(hWnd, HWNDOPT_ROUTINE_SETPROGMANWINDOW);
|
||||
return NtUserxSetProgmanWindow(hWnd);
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -1992,7 +1991,7 @@ IsWindowInDestroy(HWND hWnd)
|
|||
VOID WINAPI
|
||||
DisableProcessWindowsGhosting(VOID)
|
||||
{
|
||||
NtUserEnableProcessWindowGhosting(FALSE);
|
||||
NtUserxEnableProcessWindowGhosting(FALSE);
|
||||
}
|
||||
|
||||
/* EOF */
|
||||
|
|
|
@ -108,7 +108,7 @@ GetActiveWindow(VOID)
|
|||
UINT WINAPI
|
||||
ArrangeIconicWindows(HWND hWnd)
|
||||
{
|
||||
return NtUserCallHwndLock( hWnd, HWNDLOCK_ROUTINE_ARRANGEICONICWINDOWS);
|
||||
return NtUserxArrangeIconicWindows( hWnd );
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
@ -6,6 +6,60 @@ typedef struct _THREADINFO *PTHREADINFO;
|
|||
struct _DESKTOP;
|
||||
struct _WND;
|
||||
|
||||
|
||||
#define FIRST_USER_HANDLE 0x0020 /* first possible value for low word of user handle */
|
||||
#define LAST_USER_HANDLE 0xffef /* last possible value for low word of user handle */
|
||||
|
||||
#define HANDLEENTRY_INDESTROY 1
|
||||
|
||||
typedef struct _USER_HANDLE_ENTRY
|
||||
{
|
||||
void *ptr; /* pointer to object */
|
||||
union
|
||||
{
|
||||
PVOID pi;
|
||||
PTHREADINFO pti; // pointer to Win32ThreadInfo
|
||||
PPROCESSINFO ppi; // pointer to W32ProcessInfo
|
||||
};
|
||||
unsigned char type; /* object type (0 if free) */
|
||||
unsigned char flags;
|
||||
unsigned short generation; /* generation counter */
|
||||
} USER_HANDLE_ENTRY, * PUSER_HANDLE_ENTRY;
|
||||
|
||||
typedef struct _USER_HANDLE_TABLE
|
||||
{
|
||||
PUSER_HANDLE_ENTRY handles;
|
||||
PUSER_HANDLE_ENTRY freelist;
|
||||
int nb_handles;
|
||||
int allocated_handles;
|
||||
} USER_HANDLE_TABLE, * PUSER_HANDLE_TABLE;
|
||||
|
||||
typedef enum _USER_OBJECT_TYPE
|
||||
{
|
||||
otFree = 0,
|
||||
otWindow,
|
||||
otMenu,
|
||||
otCursorIcon,
|
||||
otSMWP,
|
||||
otHook,
|
||||
otClipBoardData,
|
||||
otCallProc,
|
||||
otAccel,
|
||||
otDDEaccess,
|
||||
otDDEconv,
|
||||
otDDExact,
|
||||
otMonitor,
|
||||
otKBDlayout,
|
||||
otKBDfile,
|
||||
otEvent,
|
||||
otTimer,
|
||||
otInputContext,
|
||||
otHidData,
|
||||
otDeviceInfo,
|
||||
otTouchInput,
|
||||
otGestureInfo
|
||||
} USER_OBJECT_TYPE;
|
||||
|
||||
typedef enum _USERTHREADINFOCLASS
|
||||
{
|
||||
UserThreadShutdownInformation,
|
||||
|
@ -699,6 +753,8 @@ typedef LONG_PTR (NTAPI *PFN_FNID)(PWND, UINT, WPARAM, LPARAM, ULONG_PTR);
|
|||
#define SRVINFO_APIHOOK 0x0010
|
||||
#define SRVINFO_METRICS 0x0020
|
||||
|
||||
#define NUM_SYSCOLORS 31
|
||||
|
||||
typedef struct tagOEMBITMAPINFO
|
||||
{
|
||||
INT x;
|
||||
|
@ -727,9 +783,9 @@ typedef struct tagDPISERVERINFO
|
|||
typedef struct _PERUSERSERVERINFO
|
||||
{
|
||||
INT aiSysMet[SM_CMETRICS];
|
||||
ULONG argbSystemUnmatched[COLOR_LAST+1];
|
||||
COLORREF argbSystem[COLOR_LAST+1];
|
||||
HBRUSH ahbrSystem[COLOR_LAST+1];
|
||||
ULONG argbSystemUnmatched[NUM_SYSCOLORS];
|
||||
COLORREF argbSystem[NUM_SYSCOLORS];
|
||||
HBRUSH ahbrSystem[NUM_SYSCOLORS];
|
||||
HBRUSH hbrGray;
|
||||
POINT ptCursor;
|
||||
POINT ptCursorReal;
|
||||
|
@ -3119,7 +3175,6 @@ typedef struct tagKMDDELPARAM
|
|||
*/
|
||||
|
||||
#define NOPARAM_ROUTINE_GETMESSAGEEXTRAINFO 0xffff0005
|
||||
#define NOPARAM_ROUTINE_ANYPOPUP 0xffff0006
|
||||
#define ONEPARAM_ROUTINE_CSRSS_GUICHECK 0xffff0008
|
||||
#define ONEPARAM_ROUTINE_SWITCHCARETSHOWING 0xfffe0008
|
||||
#define ONEPARAM_ROUTINE_ENABLEPROCWNDGHSTING 0xfffe000d
|
||||
|
@ -3134,7 +3189,6 @@ typedef struct tagKMDDELPARAM
|
|||
#define MSQ_STATE_MOVESIZE 0x5
|
||||
#define MSQ_STATE_CARET 0x6
|
||||
#define TWOPARAM_ROUTINE_SETCARETPOS 0xfffd0060
|
||||
#define TWOPARAM_ROUTINE_REGISTERLOGONPROC 0xfffd0062
|
||||
#define TWOPARAM_ROUTINE_ROS_UPDATEUISTATE 0x1004
|
||||
#define HWNDPARAM_ROUTINE_ROS_NOTIFYWINEVENT 0x1005
|
||||
|
||||
|
|
|
@ -1,13 +1,5 @@
|
|||
#pragma once
|
||||
|
||||
#include "surface.h"
|
||||
|
||||
typedef struct tagBITMAPV5INFO
|
||||
{
|
||||
BITMAPV5HEADER bmiHeader;
|
||||
RGBQUAD bmiColors[256];
|
||||
} BITMAPV5INFO, *PBITMAPV5INFO;
|
||||
|
||||
INT APIENTRY BITMAP_GetObject(SURFACE * bmp, INT count, LPVOID buffer);
|
||||
HBITMAP FASTCALL IntCreateBitmap(IN SIZEL Size, IN LONG Width, IN ULONG Format, IN ULONG Flags, IN PVOID Bits);
|
||||
HBITMAP FASTCALL BITMAP_CopyBitmap (HBITMAP hBitmap);
|
||||
|
|
|
@ -1,7 +1,5 @@
|
|||
#pragma once
|
||||
|
||||
NTSTATUS FASTCALL InitCleanupImpl(VOID);
|
||||
|
||||
NTSTATUS FASTCALL
|
||||
IntSafeCopyUnicodeString(PUNICODE_STRING Dest,
|
||||
PUNICODE_STRING Source);
|
||||
|
@ -9,9 +7,3 @@ IntSafeCopyUnicodeString(PUNICODE_STRING Dest,
|
|||
NTSTATUS FASTCALL
|
||||
IntSafeCopyUnicodeStringTerminateNULL(PUNICODE_STRING Dest,
|
||||
PUNICODE_STRING Source);
|
||||
|
||||
NTSTATUS FASTCALL
|
||||
IntUnicodeStringToNULLTerminated(PWSTR *Dest, PUNICODE_STRING Src);
|
||||
|
||||
void FASTCALL
|
||||
IntFreeNULLTerminatedFromUnicodeString(PWSTR NullTerminated, PUNICODE_STRING UnicodeString);
|
||||
|
|
|
@ -1,8 +1,5 @@
|
|||
#pragma once
|
||||
|
||||
#include <include/dc.h>
|
||||
#include <include/region.h>
|
||||
|
||||
INT FASTCALL IntGdiGetClipBox(PDC, RECTL* rc);
|
||||
INT FASTCALL IntGdiExtSelectClipRgn (PDC, PROSRGNDATA, int);
|
||||
|
||||
|
|
|
@ -1,7 +1,5 @@
|
|||
#pragma once
|
||||
|
||||
#include <reactos/win32k/ntgdityp.h>
|
||||
#include <reactos/win32k/ntgdihdl.h>
|
||||
#include "dc.h"
|
||||
#include "math.h"
|
||||
#include "xformobj.h"
|
||||
|
|
|
@ -6,7 +6,6 @@
|
|||
#pragma once
|
||||
|
||||
/* Public GDI Object/Handle definitions */
|
||||
#include <win32k/ntgdihdl.h>
|
||||
#include "win32.h"
|
||||
|
||||
/* The first 10 entries are never used in windows, they are empty */
|
||||
|
|
|
@ -1,66 +1,5 @@
|
|||
#pragma once
|
||||
|
||||
#include "gdiobj.h"
|
||||
#include "bitmaps.h"
|
||||
#include "pen.h"
|
||||
|
||||
#define FIRST_USER_HANDLE 0x0020 /* first possible value for low word of user handle */
|
||||
#define LAST_USER_HANDLE 0xffef /* last possible value for low word of user handle */
|
||||
|
||||
#define HANDLEENTRY_INDESTROY 1
|
||||
|
||||
typedef struct _USER_HANDLE_ENTRY
|
||||
{
|
||||
void *ptr; /* pointer to object */
|
||||
union
|
||||
{
|
||||
PVOID pi;
|
||||
PTHREADINFO pti; // pointer to Win32ThreadInfo
|
||||
PPROCESSINFO ppi; // pointer to W32ProcessInfo
|
||||
};
|
||||
unsigned char type; /* object type (0 if free) */
|
||||
unsigned char flags;
|
||||
unsigned short generation; /* generation counter */
|
||||
} USER_HANDLE_ENTRY, * PUSER_HANDLE_ENTRY;
|
||||
|
||||
|
||||
|
||||
typedef struct _USER_HANDLE_TABLE
|
||||
{
|
||||
PUSER_HANDLE_ENTRY handles;
|
||||
PUSER_HANDLE_ENTRY freelist;
|
||||
int nb_handles;
|
||||
int allocated_handles;
|
||||
} USER_HANDLE_TABLE, * PUSER_HANDLE_TABLE;
|
||||
|
||||
|
||||
|
||||
typedef enum _USER_OBJECT_TYPE
|
||||
{
|
||||
otFree = 0,
|
||||
otWindow,
|
||||
otMenu,
|
||||
otCursorIcon,
|
||||
otSMWP,
|
||||
otHook,
|
||||
otClipBoardData,
|
||||
otCallProc,
|
||||
otAccel,
|
||||
otDDEaccess,
|
||||
otDDEconv,
|
||||
otDDExact,
|
||||
otMonitor,
|
||||
otKBDlayout,
|
||||
otKBDfile,
|
||||
otEvent,
|
||||
otTimer,
|
||||
otInputContext,
|
||||
otHidData,
|
||||
otDeviceInfo,
|
||||
otTouchInput,
|
||||
otGestureInfo
|
||||
} USER_OBJECT_TYPE;
|
||||
|
||||
typedef struct _USER_REFERENCE_ENTRY
|
||||
{
|
||||
SINGLE_LIST_ENTRY Entry;
|
||||
|
|
|
@ -1,8 +1,5 @@
|
|||
#pragma once
|
||||
|
||||
#include "gdiobj.h"
|
||||
#include "brush.h"
|
||||
|
||||
/* Internal interface */
|
||||
|
||||
#define PEN_AllocPen() ((HPEN)GDIOBJ_AllocObj(GDIObjType_BRUSH_TYPE))
|
||||
|
|
|
@ -1,7 +1,5 @@
|
|||
#pragma once
|
||||
|
||||
#include "gdiobj.h"
|
||||
|
||||
/* Type definitions ***********************************************************/
|
||||
|
||||
/* Internal region data.
|
||||
|
|
|
@ -23,74 +23,79 @@
|
|||
#define DBG_ENABLE_EVENT_LOGGING 0
|
||||
#define DBG_ENABLE_SERVICE_HOOKS 0
|
||||
|
||||
/* Internal Win32k Headers */
|
||||
/* misc headers */
|
||||
#include <include/mmcopy.h>
|
||||
#include <include/tags.h>
|
||||
#include <include/win32kdebug.h>
|
||||
#include <include/accelerator.h>
|
||||
#include <include/clipboard.h>
|
||||
#include <include/cliprgn.h>
|
||||
#include <include/bitmaps.h>
|
||||
#include <include/brush.h>
|
||||
#include <include/callback.h>
|
||||
#include <include/caret.h>
|
||||
#include <include/class.h>
|
||||
#include <include/cleanup.h>
|
||||
|
||||
/* Internal NtGdi Headers */
|
||||
#include <include/gdiobj.h>
|
||||
#include <include/surface.h>
|
||||
#include <include/brush.h>
|
||||
#include <include/color.h>
|
||||
#include <include/coord.h>
|
||||
#include <include/csr.h>
|
||||
#include <include/dc.h>
|
||||
#include <include/dce.h>
|
||||
#include <include/dib.h>
|
||||
#include <include/driver.h>
|
||||
#include <include/driverobj.h>
|
||||
#include <include/floatobj.h>
|
||||
#include <include/gdiobj.h>
|
||||
#include <include/palette.h>
|
||||
#include <include/pdevobj.h>
|
||||
#include <include/rect.h>
|
||||
#include <include/xformobj.h>
|
||||
#include <include/xlateobj.h>
|
||||
#include <include/cliprgn.h>
|
||||
#include <include/region.h>
|
||||
#include <include/eng.h>
|
||||
#include <include/inteng.h>
|
||||
#include <include/intgdi.h>
|
||||
#include <include/intddraw.h>
|
||||
#include <include/paint.h>
|
||||
#include <include/path.h>
|
||||
#include <include/bitmaps.h>
|
||||
#include <include/text.h>
|
||||
#include <include/misc.h>
|
||||
#include <include/engobjects.h>
|
||||
#include <include/engevent.h>
|
||||
#include <include/ldevobj.h>
|
||||
#include <include/device.h>
|
||||
#include <include/pen.h>
|
||||
#include <include/cliprgn.h>
|
||||
#include <include/coord.h>
|
||||
#include <include/gdifloat.h>
|
||||
#include <dib/dib.h>
|
||||
#include <include/gdidebug.h>
|
||||
|
||||
/* Internal NtUser Headers */
|
||||
#include <include/ntuser.h>
|
||||
#include <include/accelerator.h>
|
||||
#include <include/clipboard.h>
|
||||
#include <include/caret.h>
|
||||
#include <include/class.h>
|
||||
#include <include/dce.h>
|
||||
#include <include/sysparams.h>
|
||||
#include <include/win32.h>
|
||||
#include <include/window.h>
|
||||
#include <include/winsta.h>
|
||||
#include <include/xformobj.h>
|
||||
#include <include/xlateobj.h>
|
||||
|
||||
#include <include/region.h>
|
||||
#include <include/ntuser.h>
|
||||
#include <include/cursoricon.h>
|
||||
#include <include/desktop.h>
|
||||
#include <include/eng.h>
|
||||
#include <include/focus.h>
|
||||
#include <include/guicheck.h>
|
||||
#include <include/hook.h>
|
||||
#include <include/hotkey.h>
|
||||
#include <include/input.h>
|
||||
#include <include/inteng.h>
|
||||
#include <include/intgdi.h>
|
||||
#include <include/intddraw.h>
|
||||
#include <include/menu.h>
|
||||
#include <include/monitor.h>
|
||||
#include <include/mouse.h>
|
||||
#include <include/msgqueue.h>
|
||||
#include <include/object.h>
|
||||
#include <include/paint.h>
|
||||
#include <include/painting.h>
|
||||
#include <include/path.h>
|
||||
#include <include/prop.h>
|
||||
#include <include/scroll.h>
|
||||
#include <include/surface.h>
|
||||
#include <include/tags.h>
|
||||
#include <include/text.h>
|
||||
#include <include/timer.h>
|
||||
#include <include/useratom.h>
|
||||
#include <include/vis.h>
|
||||
#include <include/userfuncs.h>
|
||||
#include <include/winpos.h>
|
||||
#include <include/mmcopy.h>
|
||||
#include <include/misc.h>
|
||||
#include <include/gdifloat.h>
|
||||
#include <include/engobjects.h>
|
||||
#include <include/engevent.h>
|
||||
#include <include/ldevobj.h>
|
||||
#include <include/device.h>
|
||||
#include <dib/dib.h>
|
||||
#include <include/gdidebug.h>
|
||||
#include <include/scroll.h>
|
||||
#include <include/csr.h>
|
||||
#include <include/callback.h>
|
||||
|
|
|
@ -461,37 +461,6 @@ IntSafeCopyUnicodeStringTerminateNULL(PUNICODE_STRING Dest,
|
|||
return STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
NTSTATUS FASTCALL
|
||||
IntUnicodeStringToNULLTerminated(PWSTR *Dest, PUNICODE_STRING Src)
|
||||
{
|
||||
if (Src->Length + sizeof(WCHAR) <= Src->MaximumLength
|
||||
&& L'\0' == Src->Buffer[Src->Length / sizeof(WCHAR)])
|
||||
{
|
||||
/* The unicode_string is already nul terminated. Just reuse it. */
|
||||
*Dest = Src->Buffer;
|
||||
return STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
*Dest = ExAllocatePoolWithTag(PagedPool, Src->Length + sizeof(WCHAR), TAG_STRING);
|
||||
if (NULL == *Dest)
|
||||
{
|
||||
return STATUS_NO_MEMORY;
|
||||
}
|
||||
RtlCopyMemory(*Dest, Src->Buffer, Src->Length);
|
||||
(*Dest)[Src->Length / 2] = L'\0';
|
||||
|
||||
return STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
void FASTCALL
|
||||
IntFreeNULLTerminatedFromUnicodeString(PWSTR NullTerminated, PUNICODE_STRING UnicodeString)
|
||||
{
|
||||
if (NullTerminated != UnicodeString->Buffer)
|
||||
{
|
||||
ExFreePool(NullTerminated);
|
||||
}
|
||||
}
|
||||
|
||||
PPROCESSINFO
|
||||
GetW32ProcessInfo(VOID)
|
||||
{
|
||||
|
|
|
@ -467,7 +467,7 @@ NtUserCallTwoParam(
|
|||
case TWOPARAM_ROUTINE_SETCARETPOS:
|
||||
RETURN( (DWORD_PTR)co_IntSetCaretPos((int)Param1, (int)Param2));
|
||||
|
||||
case TWOPARAM_ROUTINE_REGISTERLOGONPROC:
|
||||
case TWOPARAM_ROUTINE_REGISTERLOGONPROCESS:
|
||||
RETURN( (DWORD_PTR)co_IntRegisterLogonProcess((HANDLE)Param1, (BOOL)Param2));
|
||||
|
||||
case TWOPARAM_ROUTINE_SETCURSORPOS:
|
||||
|
|
|
@ -62,7 +62,6 @@ static const COLORREF SysColors[] =
|
|||
RGB(49, 106, 197), /* COLOR_MENUHILIGHT */
|
||||
RGB(236, 233, 216) /* COLOR_MENUBAR */
|
||||
};
|
||||
#define NUM_SYSCOLORS (sizeof(SysColors) / sizeof(SysColors[0]))
|
||||
|
||||
// System Bitmap DC
|
||||
HDC hSystemBM;
|
||||
|
|
|
@ -70,6 +70,7 @@ typedef struct _SECURITY_ATTRIBUTES SECURITY_ATTRIBUTES, *LPSECURITY_ATTRIBUTES;
|
|||
#include <win32k/ntuser.h>
|
||||
#include <win32k/ntgdityp.h>
|
||||
#include <win32k/ntgdibad.h>
|
||||
#include <win32k/ntgdihdl.h>
|
||||
#include <ntgdi.h>
|
||||
|
||||
/* Undocumented user definitions */
|
||||
|
|
Loading…
Reference in a new issue