my 1st
Added: branches/hardons1stbranch/win32k/
Modified: branches/hardons1stbranch/win32k/eng/window.c
Modified: branches/hardons1stbranch/win32k/include/caret.h
Modified: branches/hardons1stbranch/win32k/include/class.h
Modified: branches/hardons1stbranch/win32k/include/cursoricon.h
Modified: branches/hardons1stbranch/win32k/include/dce.h
Modified: branches/hardons1stbranch/win32k/include/desktop.h
Modified: branches/hardons1stbranch/win32k/include/focus.h
Modified: branches/hardons1stbranch/win32k/include/guicheck.h
Modified: branches/hardons1stbranch/win32k/include/hook.h
Modified: branches/hardons1stbranch/win32k/include/intgdi.h
Added: branches/hardons1stbranch/win32k/include/keyboard.h
Modified: branches/hardons1stbranch/win32k/include/menu.h
Modified: branches/hardons1stbranch/win32k/include/msgqueue.h
Added: branches/hardons1stbranch/win32k/include/ntuser.h
Modified: branches/hardons1stbranch/win32k/include/object.h
Modified: branches/hardons1stbranch/win32k/include/painting.h
Modified: branches/hardons1stbranch/win32k/include/timer.h
Modified: branches/hardons1stbranch/win32k/include/win32k.h
Modified: branches/hardons1stbranch/win32k/include/window.h
Modified: branches/hardons1stbranch/win32k/include/winpos.h
Modified: branches/hardons1stbranch/win32k/include/winsta.h
Modified: branches/hardons1stbranch/win32k/main/dllmain.c
Deleted: branches/hardons1stbranch/win32k/misc/object.c
Modified: branches/hardons1stbranch/win32k/ntuser/accelerator.c
Modified: branches/hardons1stbranch/win32k/ntuser/callback.c
Modified: branches/hardons1stbranch/win32k/ntuser/caret.c
Modified: branches/hardons1stbranch/win32k/ntuser/class.c
Modified: branches/hardons1stbranch/win32k/ntuser/clipboard.c
Modified: branches/hardons1stbranch/win32k/ntuser/csr.c
Modified: branches/hardons1stbranch/win32k/ntuser/cursoricon.c
Modified: branches/hardons1stbranch/win32k/ntuser/desktop.c
Modified: branches/hardons1stbranch/win32k/ntuser/focus.c
Modified: branches/hardons1stbranch/win32k/ntuser/guicheck.c
Added: branches/hardons1stbranch/win32k/ntuser/handle.c
Modified: branches/hardons1stbranch/win32k/ntuser/hook.c
Modified: branches/hardons1stbranch/win32k/ntuser/hotkey.c
Modified: branches/hardons1stbranch/win32k/ntuser/input.c
Modified: branches/hardons1stbranch/win32k/ntuser/keyboard.c
Modified: branches/hardons1stbranch/win32k/ntuser/menu.c
Modified: branches/hardons1stbranch/win32k/ntuser/message.c
Modified: branches/hardons1stbranch/win32k/ntuser/metric.c
Modified: branches/hardons1stbranch/win32k/ntuser/misc.c
Modified: branches/hardons1stbranch/win32k/ntuser/monitor.c
Modified: branches/hardons1stbranch/win32k/ntuser/msgqueue.c
Added: branches/hardons1stbranch/win32k/ntuser/ntuser.c
Modified: branches/hardons1stbranch/win32k/ntuser/painting.c
Modified: branches/hardons1stbranch/win32k/ntuser/prop.c
Modified: branches/hardons1stbranch/win32k/ntuser/scrollbar.c
Modified: branches/hardons1stbranch/win32k/ntuser/timer.c
Modified: branches/hardons1stbranch/win32k/ntuser/vis.c
Modified: branches/hardons1stbranch/win32k/ntuser/windc.c
Modified: branches/hardons1stbranch/win32k/ntuser/window.c
Modified: branches/hardons1stbranch/win32k/ntuser/winpos.c
Modified: branches/hardons1stbranch/win32k/ntuser/winsta.c
Modified: branches/hardons1stbranch/win32k/objects/color.c
Modified: branches/hardons1stbranch/win32k/objects/dc.c
Modified: branches/hardons1stbranch/win32k/win32k.xml

Copied: branches/hardons1stbranch/win32k (from rev 16681, trunk/reactos/subsys/win32k)

Modified: branches/hardons1stbranch/win32k/eng/window.c
--- trunk/reactos/subsys/win32k/eng/window.c	2005-07-21 16:28:20 UTC (rev 16681)
+++ branches/hardons1stbranch/win32k/eng/window.c	2005-07-27 11:08:35 UTC (rev 16794)
@@ -155,7 +155,6 @@
 
   ASSERT_IRQL(PASSIVE_LEVEL);
 
-  ExAcquireFastMutex(&Window->WndObjListLock);
   CurrentEntry = Window->WndObjListHead.Flink;
   while (CurrentEntry != &Window->WndObjListHead)
     {
@@ -189,7 +188,6 @@
         }
     }
 
-  ExReleaseFastMutex(&Window->WndObjListLock);
 }
 
 /*
@@ -222,7 +220,6 @@
   WndObjInt = EngAllocMem(0, sizeof (WNDGDI), TAG_WNDOBJ);
   if (WndObjInt == NULL)
     {
-      IntReleaseWindowObject(Window);
       DPRINT1("Failed to allocate memory for a WND structure!\n");
       return NULL;
     }
@@ -231,7 +228,6 @@
   WndObjInt->ClientClipObj = NULL;
   if (!IntEngWndUpdateClipObj(WndObjInt, Window))
     {
-      IntReleaseWindowObject(Window);
       EngFreeMem(WndObjInt);
       return NULL;
     }
@@ -248,13 +244,8 @@
   WndObjInt->PixelFormat = iPixelFormat;
 
   /* associate object with window */
-  ExAcquireFastMutex(&Window->WndObjListLock);
   InsertTailList(&Window->WndObjListHead, &WndObjInt->ListEntry);
-  ExReleaseFastMutex(&Window->WndObjListLock);
 
-  /* release resources */
-  IntReleaseWindowObject(Window);
-
   DPRINT("EngCreateWnd: SUCCESS!\n");
   
   return WndObjUser;
@@ -284,10 +275,7 @@
   else
     {
       /* Remove object from window */
-      ExAcquireFastMutex(&Window->WndObjListLock);
       RemoveEntryList(&WndObjInt->ListEntry);
-      ExReleaseFastMutex(&Window->WndObjListLock);
-      IntReleaseWindowObject(Window);
     }
 
   /* Free resources */

Modified: branches/hardons1stbranch/win32k/include/caret.h
--- trunk/reactos/subsys/win32k/include/caret.h	2005-07-21 16:28:20 UTC (rev 16681)
+++ branches/hardons1stbranch/win32k/include/caret.h	2005-07-27 11:08:35 UTC (rev 16794)
@@ -4,19 +4,16 @@
 #define IDCARETTIMER (0xffff)
 
 BOOL FASTCALL
-IntDestroyCaret(PW32THREAD Win32Thread);
+UserDestroyCaret(PW32THREAD Win32Thread);
 
 BOOL FASTCALL
-IntSetCaretBlinkTime(UINT uMSeconds);
+UserSetCaretBlinkTime(UINT uMSeconds);
 
 BOOL FASTCALL
-IntSetCaretPos(int X, int Y);
+UserSwitchCaretShowing(PVOID Info);
 
-BOOL FASTCALL
-IntSwitchCaretShowing(PVOID Info);
-
 VOID FASTCALL
-IntDrawCaret(HWND hWnd);
+UserDrawCaret(HWND hWnd);
 
 #endif /* _WIN32K_CARET_H */
 

Modified: branches/hardons1stbranch/win32k/include/class.h
--- trunk/reactos/subsys/win32k/include/class.h	2005-07-21 16:28:20 UTC (rev 16681)
+++ branches/hardons1stbranch/win32k/include/class.h	2005-07-27 11:08:35 UTC (rev 16794)
@@ -24,7 +24,6 @@
   LIST_ENTRY ListEntry;
   PCHAR   ExtraData;
   /* list of windows */
-  FAST_MUTEX ClassWindowsListLock;
   LIST_ENTRY ClassWindowsListHead;
 } WNDCLASS_OBJECT, *PWNDCLASS_OBJECT;
 
@@ -34,18 +33,6 @@
 NTSTATUS FASTCALL
 CleanupClassImpl(VOID);
 
-#define IntLockProcessClasses(W32Process) \
-  ExAcquireFastMutex(&(W32Process)->ClassListLock)
-
-#define IntUnLockProcessClasses(W32Process) \
-  ExReleaseFastMutex(&(W32Process)->ClassListLock)
-
-#define IntLockClassWindows(ClassObj) \
-  ExAcquireFastMutex(&(ClassObj)->ClassWindowsListLock)
-
-#define IntUnLockClassWindows(ClassObj) \
-  ExReleaseFastMutex(&(ClassObj)->ClassWindowsListLock)
-
 #define ClassDereferenceObject(ClassObj) \
   ObmDereferenceObject(ClassObj)
 
@@ -67,9 +54,9 @@
    LPCWSTR ClassNameOrAtom,
    HINSTANCE hInstance);
 
-struct _WINDOW_OBJECT;
+//PWINDOW_OBJECT;
 ULONG FASTCALL
-IntGetClassLong(struct _WINDOW_OBJECT *WindowObject, ULONG Offset, BOOL Ansi);
+UserGetClassLong(PWINDOW_OBJECT WindowObject, ULONG Offset, BOOL Ansi);
 
 #endif /* _WIN32K_CLASS_H */
 

Modified: branches/hardons1stbranch/win32k/include/cursoricon.h
--- trunk/reactos/subsys/win32k/include/cursoricon.h	2005-07-21 16:28:20 UTC (rev 16681)
+++ branches/hardons1stbranch/win32k/include/cursoricon.h	2005-07-27 11:08:35 UTC (rev 16794)
@@ -13,7 +13,6 @@
 {
   LIST_ENTRY ListEntry;
   HANDLE Self;
-  FAST_MUTEX Lock;
   LIST_ENTRY ProcessList;
   HMODULE hModule;
   HRSRC hRsrc;
@@ -37,7 +36,6 @@
   BOOL Enabled;
   BOOL SwapButtons;
   UINT ButtonsDown;
-  FAST_MUTEX CursorMutex;
   CURSORCLIP_INFO CursorClipInfo;
   PCURICON_OBJECT CurrentCursorObject;
   BYTE ShowingCursor;
@@ -50,26 +48,17 @@
   HANDLE LastClkWnd;
 } SYSTEM_CURSORINFO, *PSYSTEM_CURSORINFO;
 
-HCURSOR FASTCALL IntSetCursor(PWINSTATION_OBJECT WinStaObject, PCURICON_OBJECT NewCursor, BOOL ForceChange);
-BOOL FASTCALL IntSetupCurIconHandles(PWINSTATION_OBJECT WinStaObject);
-PCURICON_OBJECT FASTCALL IntGetCurIconObject(PWINSTATION_OBJECT WinStaObject, HANDLE Handle);
-PCURICON_OBJECT FASTCALL IntCreateCurIconHandle(PWINSTATION_OBJECT WinStaObject);
-VOID FASTCALL IntCleanupCurIcons(struct _EPROCESS *Process, PW32PROCESS Win32Process);
+HCURSOR FASTCALL UserSetCursor(PCURICON_OBJECT NewCursor, BOOL ForceChange);
+BOOL FASTCALL UserSetupCurIconHandles(PWINSTATION_OBJECT WinStaObject);
+PCURICON_OBJECT FASTCALL UserCreateCurIconHandle(PWINSTATION_OBJECT WinStaObject);
+VOID FASTCALL UserCleanupCurIcons(struct _EPROCESS *Process, PW32PROCESS Win32Process);
 
-BOOL FASTCALL IntGetCursorLocation(PWINSTATION_OBJECT WinStaObject, POINT *loc);
+BOOL FASTCALL 
+UserGetCursorLocation(PWINSTATION_OBJECT WinStaObject, POINT *loc);
 
-#define IntGetSysCursorInfo(WinStaObj) \
+#define UserGetSysCursorInfo(WinStaObj) \
   (PSYSTEM_CURSORINFO)((WinStaObj)->SystemCursor)
 
-#define IntReleaseCurIconObject(CurIconObj) \
-  ObmDereferenceObject(CurIconObj)
-
-#define IntLockProcessCursorIcons(W32Process) \
-  ExAcquireFastMutex(&W32Process->CursorIconListLock)
-
-#define IntUnLockProcessCursorIcons(W32Process) \
-  ExReleaseFastMutex(&W32Process->CursorIconListLock)
-
 #endif /* _WIN32K_CURSORICON_H */
 
 /* EOF */

Modified: branches/hardons1stbranch/win32k/include/dce.h
--- trunk/reactos/subsys/win32k/include/dce.h	2005-07-21 16:28:20 UTC (rev 16681)
+++ branches/hardons1stbranch/win32k/include/dce.h	2005-07-27 11:08:35 UTC (rev 16794)
@@ -50,7 +50,7 @@
 #define  DCEOBJ_UnlockDCE(pDCE) GDIOBJ_UnlockObjByPtr(pDCE)
 BOOL INTERNAL_CALL DCE_Cleanup(PVOID ObjectBody);
 
-PDCE FASTCALL DceAllocDCE(HWND hWnd, DCE_TYPE Type);
+PDCE FASTCALL UserDceAllocDCE(HWND hWnd, DCE_TYPE Type);
 PDCE FASTCALL DCE_FreeDCE(PDCE dce);
 VOID FASTCALL DCE_FreeWindowDCE(HWND);
 HRGN STDCALL  DceGetVisRgn(HWND hWnd, ULONG Flags, HWND hWndChild, ULONG CFlags);

Modified: branches/hardons1stbranch/win32k/include/desktop.h
--- trunk/reactos/subsys/win32k/include/desktop.h	2005-07-21 16:28:20 UTC (rev 16681)
+++ branches/hardons1stbranch/win32k/include/desktop.h	2005-07-27 11:08:35 UTC (rev 16794)
@@ -64,23 +64,23 @@
 HDC FASTCALL
 IntGetScreenDC(VOID);
 
-HWND FASTCALL
-IntGetDesktopWindow (VOID);
+PWINDOW_OBJECT FASTCALL
+UserGetDesktopWindow (VOID);
 
 HWND FASTCALL
 IntGetCurrentThreadDesktopWindow(VOID);
 
 PUSER_MESSAGE_QUEUE FASTCALL
-IntGetFocusMessageQueue(VOID);
+UserGetFocusMessageQueue(VOID);
 
 VOID FASTCALL
 IntSetFocusMessageQueue(PUSER_MESSAGE_QUEUE NewQueue);
 
 PDESKTOP_OBJECT FASTCALL
-IntGetActiveDesktop(VOID);
+UserGetActiveDesktop(VOID);
 
 NTSTATUS FASTCALL
-IntShowDesktop(PDESKTOP_OBJECT Desktop, ULONG Width, ULONG Height);
+UserShowDesktop(PDESKTOP_OBJECT Desktop, ULONG Width, ULONG Height);
 
 NTSTATUS FASTCALL
 IntHideDesktop(PDESKTOP_OBJECT Desktop);

Modified: branches/hardons1stbranch/win32k/include/focus.h
--- trunk/reactos/subsys/win32k/include/focus.h	2005-07-21 16:28:20 UTC (rev 16681)
+++ branches/hardons1stbranch/win32k/include/focus.h	2005-07-27 11:08:35 UTC (rev 16794)
@@ -4,22 +4,25 @@
 /*
  * These functions take the window handles from current message queue.
  */
-HWND FASTCALL
-IntGetCaptureWindow();
-HWND FASTCALL
-IntGetFocusWindow();
+PWINDOW_OBJECT FASTCALL
+UserGetCaptureWindow();
+PWINDOW_OBJECT FASTCALL
+UserGetFocusWindow();
 
+PWINDOW_OBJECT FASTCALL
+IntGetForegroundWindow(VOID);
+
 /*
  * These functions take the window handles from current thread queue.
  */
-HWND FASTCALL
-IntGetThreadFocusWindow();
+PWINDOW_OBJECT FASTCALL
+UserGetThreadFocusWindow();
 
 BOOL FASTCALL
 IntMouseActivateWindow(PWINDOW_OBJECT Window);
 BOOL FASTCALL
 IntSetForegroundWindow(PWINDOW_OBJECT Window);
-HWND FASTCALL
+PWINDOW_OBJECT FASTCALL
 IntSetActiveWindow(PWINDOW_OBJECT Window);
 
 #endif /* _WIN32K_FOCUS_H */

Modified: branches/hardons1stbranch/win32k/include/guicheck.h
--- trunk/reactos/subsys/win32k/include/guicheck.h	2005-07-21 16:28:20 UTC (rev 16681)
+++ branches/hardons1stbranch/win32k/include/guicheck.h	2005-07-27 11:08:35 UTC (rev 16794)
@@ -1,12 +1,14 @@
 #ifndef _WIN32K_GUICHECK_H
 #define _WIN32K_GUICHECK_H
 
-BOOL FASTCALL IntGraphicsCheck(BOOL Create);
 BOOL FASTCALL IntCreatePrimarySurface();
 VOID FASTCALL IntDestroyPrimarySurface();
 
 NTSTATUS FASTCALL InitGuiCheckImpl (VOID);
 
+BOOL FASTCALL
+UserGraphicsCheck(BOOL Create);
+
 #endif /* _WIN32K_GUICHECK_H */
 
 /* EOF */

Modified: branches/hardons1stbranch/win32k/include/hook.h
--- trunk/reactos/subsys/win32k/include/hook.h	2005-07-21 16:28:20 UTC (rev 16681)
+++ branches/hardons1stbranch/win32k/include/hook.h	2005-07-27 11:08:35 UTC (rev 16794)
@@ -19,7 +19,6 @@
 
 typedef struct tagHOOKTABLE
 {
-  FAST_MUTEX Lock;
   LIST_ENTRY Hooks[NB_HOOKS];  /* array of hook chains */
   UINT       Counts[NB_HOOKS]; /* use counts for each hook chain */
 } HOOKTABLE, *PHOOKTABLE;
@@ -27,12 +26,6 @@
 LRESULT FASTCALL HOOK_CallHooks(INT HookId, INT Code, WPARAM wParam, LPARAM lParam);
 VOID FASTCALL HOOK_DestroyThreadHooks(PETHREAD Thread);
 
-#define IntLockHookTable(HookTable) \
-  ExAcquireFastMutex(&HookTable->Lock)
-
-#define IntUnLockHookTable(HookTable) \
-  ExReleaseFastMutex(&HookTable->Lock)
-
 #endif /* _WIN32K_HOOK_H */
 
 /* EOF */

Modified: branches/hardons1stbranch/win32k/include/intgdi.h
--- trunk/reactos/subsys/win32k/include/intgdi.h	2005-07-21 16:28:20 UTC (rev 16681)
+++ branches/hardons1stbranch/win32k/include/intgdi.h	2005-07-27 11:08:35 UTC (rev 16794)
@@ -144,7 +144,8 @@
                PUNICODE_STRING Device,
                PUNICODE_STRING Output,
                CONST PDEVMODEW InitData,
-               BOOL CreateAsIC);
+               BOOL CreateAsIC,
+               BOOL CalledFromUser);
 
 COLORREF FASTCALL
 IntGetDCColor(HDC hDC, ULONG Object);
@@ -206,17 +207,19 @@
              LPCSTR InData,
              LPVOID OutData);
 
+//FIXME: move to user hdrs
 BOOL
 FASTCALL
-IntEnumDisplaySettings(
+UserEnumDisplaySettings(
   IN PUNICODE_STRING pDeviceName  OPTIONAL,
   IN DWORD iModeNum,
   IN OUT LPDEVMODEW pDevMode,
   IN DWORD dwFlags);
 
+//FIXME: move to user hdrs
 LONG
 FASTCALL
-IntChangeDisplaySettings(
+UserChangeDisplaySettings(
   IN PUNICODE_STRING pDeviceName  OPTIONAL,
   IN LPDEVMODEW pDevMode,
   IN DWORD dwflags,

Added: branches/hardons1stbranch/win32k/include/keyboard.h
--- trunk/reactos/subsys/win32k/include/keyboard.h	2005-07-21 16:28:20 UTC (rev 16681)
+++ branches/hardons1stbranch/win32k/include/keyboard.h	2005-07-27 11:08:35 UTC (rev 16794)
@@ -0,0 +1,226 @@
+#ifndef _WIN32K_KEYBOARD_H
+#define _WIN32K_KEYBOARD_H
+
+DWORD FASTCALL 
+UserGetKeyState(DWORD key);
+
+/* handle.h */
+
+VOID UserInitHandleTable(PUSER_HANDLE_TABLE ht, PVOID mem, ULONG bytes);
+HANDLE UserAllocHandle(PUSER_HANDLE_TABLE ht, PVOID object, USER_OBJECT_TYPE type );
+PVOID UserGetObject(PUSER_HANDLE_TABLE ht, HANDLE handle, USER_OBJECT_TYPE type );
+PVOID UserFreeHandle(PUSER_HANDLE_TABLE ht, HANDLE handle );
+PVOID UserGetNextHandle(PUSER_HANDLE_TABLE ht, HANDLE* handle, USER_OBJECT_TYPE type );
+
+
+/************* DESKTOP.C *****************/
+
+inline PDESKTOP_OBJECT FASTCALL UserGetCurrentDesktop();
+
+
+
+
+/* accelerator.c */
+
+PACCELERATOR_TABLE UserGetAcceleratorTable(HACCEL hAccel);
+PACCELERATOR_TABLE UserAllocAcceleratorTable(HACCEL* h);
+
+PACCELERATOR_TABLE UserCreateAcceleratorTableObject(HACCEL* h);
+
+
+/* metric.c */
+ULONG FASTCALL 
+UserGetSystemMetrics(ULONG Index);
+
+/* input.h */
+NTSTATUS FASTCALL 
+UserAcquireOrReleaseInputOwnership(BOOLEAN Release);
+
+/* focus.c */
+PWINDOW_OBJECT FASTCALL
+UserSetFocus(PWINDOW_OBJECT Wnd OPTIONAL);
+
+
+/* painting.c */
+DWORD FASTCALL 
+UserInvalidateRect(PWINDOW_OBJECT Wnd, CONST RECT *Rect, BOOL Erase);
+
+DWORD FASTCALL
+UserScrollDC(HDC hDC, INT dx, INT dy, const RECT *lprcScroll,
+   const RECT *lprcClip, HRGN hrgnUpdate, LPRECT lprcUpdate);
+
+INT FASTCALL
+UserGetUpdateRgn(PWINDOW_OBJECT Window, HRGN hRgn, BOOL bErase);
+
+/* message.c */
+BOOL FASTCALL 
+UserPostMessage(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam);
+
+/* window.c */
+PWINDOW_OBJECT FASTCALL IntGetWindowObject(HWND hWnd);
+
+PWINDOW_OBJECT FASTCALL UserCreateWindowObject(HWND* h, ULONG bytes);
+
+PWINDOW_OBJECT FASTCALL 
+UserGetWindow(PWINDOW_OBJECT Wnd, UINT Relationship);
+
+LONG FASTCALL 
+UserGetWindowLong(PWINDOW_OBJECT Wnd, DWORD Index, BOOL Ansi);
+
+LONG FASTCALL
+UserSetWindowLong(PWINDOW_OBJECT Wnd, DWORD Index, LONG NewValue, BOOL Ansi);
+
+BOOLEAN FASTCALL
+UserDestroyWindow(PWINDOW_OBJECT Wnd);
+
+HWND FASTCALL
+GetHwnd(PWINDOW_OBJECT Wnd);
+
+/************************* WINSTA.C ****************************/
+
+inline PWINSTATION_OBJECT FASTCALL UserGetCurrentWinSta();
+
+/************************* MENU.C ****************************/
+
+inline PMENU_OBJECT FASTCALL UserGetMenuObject(HMENU hMenu);
+
+HMENU FASTCALL
+UserCreateMenu(BOOL PopupMenu);
+
+PMENU_OBJECT FASTCALL 
+UserCreateMenuObject(HANDLE* h);
+
+
+/* caret.c */
+BOOL FASTCALL
+UserShowCaret(PWINDOW_OBJECT Wnd);
+
+BOOL FASTCALL
+UserSetCaretPos(int X, int Y);
+
+BOOL FASTCALL
+UserHideCaret(PWINDOW_OBJECT Wnd);
+
+/* winpos.c */
+
+BOOL FASTCALL
+UserGetClientOrigin(PWINDOW_OBJECT hWnd, LPPOINT Point);
+
+/* scrollbar.c */
+DWORD FASTCALL
+UserShowScrollBar(PWINDOW_OBJECT Wnd, int wBar, DWORD bShow);
+
+/* timer.c */
+
+inline VOID FASTCALL 
+UserFreeTimer(PTIMER_ENTRY Timer);
+
+VOID FASTCALL
+UserRemoveTimersWindow(PWINDOW_OBJECT Wnd);
+
+VOID FASTCALL
+UserInsertTimer(PTIMER_ENTRY NewTimer);
+
+VOID FASTCALL 
+UserSetNextPendingTimer();
+
+VOID FASTCALL
+UserRemoveTimersQueue(PUSER_MESSAGE_QUEUE Queue);
+
+/* hook.c*/
+PHOOK FASTCALL
+HookCreate(HHOOK* hHook);
+
+PHOOK FASTCALL HookGet(HHOOK hHook);
+
+/* class.c */
+
+VOID FASTCALL
+ClassReferenceClass(PWNDCLASS_OBJECT Class);
+
+VOID FASTCALL
+ClassDereferenceClass(PWNDCLASS_OBJECT Class);
+
+PWNDCLASS_OBJECT FASTCALL 
+ClassCreateClass(DWORD bytes);
+
+
+/********************* CURSORI(ICON).C *****************/
+
+inline PCURICON_OBJECT FASTCALL 
+UserGetCursorObject(HCURSOR hCursor);
+
+VOID FASTCALL
+CurIconReferenceCurIcon(PCURICON_OBJECT CurIcon);
+
+PCURICON_OBJECT UserAllocCursorIcon(HCURSOR* h);
+PCURICON_OBJECT UserGetCursorIcon(HCURSOR hCursor);
+
+VOID FASTCALL
+UserDereferenceCurIcon(PCURICON_OBJECT CurIcon);
+
+VOID FASTCALL 
+CursorDereference(PCURICON_OBJECT Cursor);
+
+PCURICON_OBJECT FASTCALL 
+UserCreateCursorObject(HCURSOR* hCursor, ULONG extraBytes);
+
+PCURICON_OBJECT FASTCALL 
+CursorGet(HCURSOR hCursor);
+
+inline PCURICON_OBJECT FASTCALL 
+UserGetCursorIconObject(HCURSOR hCursor);
+
+/* monitor.c */
+
+PMONITOR_OBJECT FASTCALL UserCreateMonitorObject(HANDLE* h);
+
+PMONITOR_OBJECT UserGetMonitorObject(HANDLE hCursor);
+
+
+/* msgqueue.c */
+
+VOID FASTCALL 
+MsqRemoveWindowMessagesFromQueue(PWINDOW_OBJECT pWindow);
+
+inline BOOL FASTCALL
+UserMessageFilter(UINT Message, UINT FilterMin, UINT FilterMax);
+
+VOID FASTCALL
+MsqRemoveTimersWindow(PUSER_MESSAGE_QUEUE MessageQueue, PWINDOW_OBJECT Wnd);
+
+VOID FASTCALL
+MsqInsertExpiredTimer(PTIMER_ENTRY Timer);
+
+PTIMER_ENTRY FASTCALL
+UserFindExpiredTimer(   
+   PUSER_MESSAGE_QUEUE Queue,
+   PWINDOW_OBJECT Wnd OPTIONAL, 
+   UINT MsgFilterMin, 
+   UINT MsgFilterMax,
+   BOOL Remove
+   );
+
+PTIMER_ENTRY FASTCALL
+MsqRemoveTimer(
+   PWINDOW_OBJECT Wnd, 
+   UINT_PTR IDEvent, 
+   UINT Message
+   );
+
+/* windc.c */
+
+HDC FASTCALL
+UserGetDCEx(PWINDOW_OBJECT Window OPTIONAL, HANDLE ClipRegion, ULONG Flags);
+
+INT FASTCALL
+UserReleaseDC(PWINDOW_OBJECT Wnd, HDC hDc);
+
+DWORD FASTCALL
+UserGetWindowDC(PWINDOW_OBJECT Wnd);
+
+/* div */
+#define UserGetCurrentQueue() \
+((PUSER_MESSAGE_QUEUE)PsGetWin32Thread()->MessageQueue)
+
+#endif /* _WIN32K_KEYBOARD_H */

Modified: branches/hardons1stbranch/win32k/include/menu.h
--- trunk/reactos/subsys/win32k/include/menu.h	2005-07-21 16:28:20 UTC (rev 16681)
+++ branches/hardons1stbranch/win32k/include/menu.h	2005-07-27 11:08:35 UTC (rev 16794)
@@ -33,7 +33,6 @@
 {
   PEPROCESS Process;
   LIST_ENTRY ListEntry;
-  FAST_MUTEX MenuItemsLock;
   PMENU_ITEM MenuItemList;
   ROSMENUINFO MenuInfo;
   BOOL RtoL;
@@ -42,21 +41,6 @@
 PMENU_OBJECT FASTCALL
 IntGetMenuObject(HMENU hMenu);
 
-#define IntLockMenuItems(MenuObj) \
-  ExAcquireFastMutex(&(MenuObj)->MenuItemsLock)
-
-#define IntUnLockMenuItems(MenuObj) \
-  ExReleaseFastMutex(&(MenuObj)->MenuItemsLock)
-
-#define IntLockProcessMenus(W32Process) \
-  ExAcquireFastMutex(&(W32Process)->MenuListLock)
-
-#define IntUnLockProcessMenus(W32Process) \
-  ExReleaseFastMutex(&(W32Process)->MenuListLock)
-
-#define IntReleaseMenuObject(MenuObj) \
-  ObmDereferenceObject(MenuObj)
-
 BOOL FASTCALL
 IntFreeMenuItem(PMENU_OBJECT MenuObject, PMENU_ITEM MenuItem,
     BOOL RemoveFromList, BOOL bRecurse);
@@ -78,22 +62,31 @@
 IntCloneMenu(PMENU_OBJECT Source);
 
 BOOL FASTCALL
-IntSetMenuFlagRtoL(PMENU_OBJECT MenuObject);
+UserSetMenuFlagRtoL(PMENU_OBJECT MenuObject);
 
 BOOL FASTCALL
 IntSetMenuContextHelpId(PMENU_OBJECT MenuObject, DWORD dwContextHelpId);
 
 BOOL FASTCALL
-IntGetMenuInfo(PMENU_OBJECT MenuObject, PROSMENUINFO lpmi);
+UserGetMenuInfo(PMENU_OBJECT MenuObject, PROSMENUINFO lpmi);
 
 BOOL FASTCALL
 IntIsMenu(HMENU hMenu);
 
 BOOL FASTCALL
-IntSetMenuInfo(PMENU_OBJECT MenuObject, PROSMENUINFO lpmi);
+UserSetMenuInfo(PMENU_OBJECT MenuObject, PROSMENUINFO lpmi);
 
+BOOL FASTCALL
+UserMenuItemInfo(
+   PMENU_OBJECT Menu,
+   UINT Item,
+   BOOL ByPosition,
+   PROSMENUITEMINFO ItemInfo,
+   BOOL Set
+   );
+
 int FASTCALL
-IntGetMenuItemByFlag(PMENU_OBJECT MenuObject, UINT uSearchBy, UINT fFlag,
+UserGetMenuItemByFlag(PMENU_OBJECT MenuObject, UINT uSearchBy, UINT fFlag,
                       PMENU_ITEM *MenuItem, PMENU_ITEM *PrevMenuItem);
 
 UINT FASTCALL

Modified: branches/hardons1stbranch/win32k/include/msgqueue.h
--- trunk/reactos/subsys/win32k/include/msgqueue.h	2005-07-21 16:28:20 UTC (rev 16681)
+++ branches/hardons1stbranch/win32k/include/msgqueue.h	2005-07-27 11:08:35 UTC (rev 16794)
@@ -39,16 +39,8 @@
   LIST_ENTRY ListEntry;
 } USER_SENT_MESSAGE_NOTIFY, *PUSER_SENT_MESSAGE_NOTIFY;
 
-typedef struct _TIMER_ENTRY{
-   LIST_ENTRY     ListEntry;
-   LARGE_INTEGER  ExpiryTime;
-   HWND           Wnd;
-   UINT_PTR       IDEvent;
-   UINT           Period;
-   TIMERPROC      TimerFunc;
-   UINT           Msg;
-} TIMER_ENTRY, *PTIMER_ENTRY;
 
+
 typedef struct _USER_MESSAGE_QUEUE
 {
   /* Reference counter, only access this variable with interlocked functions! */
@@ -64,12 +56,11 @@
   LIST_ENTRY NotifyMessagesListHead;
   /* Queue for hardware messages for the queue. */
   LIST_ENTRY HardwareMessagesListHead;
-  /* List of timers, sorted on expiry time (earliest first) */
-  LIST_ENTRY TimerListHead;
+  /* List of expired timers */
+  //LIST_ENTRY ExpiredTimersList;
+  ULONG TimerCount;
   /* Lock for the hardware message list. */
   KMUTEX HardwareLock;
-  /* Lock for the queue. */
-  FAST_MUTEX Lock;
   /* Pointer to the current WM_MOUSEMOVE message */
   PUSER_MESSAGE MouseMoveMsg;
   /* True if a WM_QUIT message is pending. */
@@ -87,7 +78,7 @@
   /* True if a window needs painting. */
   BOOLEAN PaintPosted;
   /* Count of paints pending. */
-  ULONG PaintCount;
+  LONG PaintCount;
   /* Current active window for this queue. */
   HWND ActiveWindow;
   /* Current capture window for this queue. */
@@ -106,8 +97,10 @@
 
   /* queue state tracking */
   WORD WakeMask;
-  WORD QueueBits;
+  WORD WakeBits;
+//  WORD QueueBits;
   WORD ChangedBits;
+  WORD ChangedMask;
 
   /* extra message information */
   LPARAM ExtraInfo;
@@ -169,6 +162,11 @@
 MsqIncPaintCountQueue(PUSER_MESSAGE_QUEUE Queue);
 VOID FASTCALL
 MsqDecPaintCountQueue(PUSER_MESSAGE_QUEUE Queue);
+
+void cp(char* f, int l);
+//#define IntSendMessage(a,b,c,d) (cp(__FILE__,__LINE__), IIntSendMessage(a,b,c,d)) 
+
+
 LRESULT FASTCALL
 IntSendMessage(HWND hWnd,
 		UINT Msg,
@@ -215,14 +213,7 @@
 
 LPARAM FASTCALL MsqSetMessageExtraInfo(LPARAM lParam);
 LPARAM FASTCALL MsqGetMessageExtraInfo(VOID);
-VOID STDCALL MsqRemoveWindowMessagesFromQueue(PVOID pWindow); /* F*(&$ headers, will be gone in the rewrite! */
 
-#define IntLockMessageQueue(MsgQueue) \
-  ExAcquireFastMutex(&(MsgQueue)->Lock)
-
-#define IntUnLockMessageQueue(MsgQueue) \
-  ExReleaseFastMutex(&(MsgQueue)->Lock)
-
 #define IntLockHardwareMessageQueue(MsgQueue) \
   KeWaitForMutexObject(&(MsgQueue)->HardwareLock, UserRequest, KernelMode, FALSE, NULL)
 
@@ -232,19 +223,10 @@
 #define IntReferenceMessageQueue(MsgQueue) \
   InterlockedIncrement(&(MsgQueue)->References)
 
-#define IntDereferenceMessageQueue(MsgQueue) \
-  do { \
-    if(InterlockedDecrement(&(MsgQueue)->References) == 0) \
-    { \
-      DPRINT("Free message queue 0x%x\n", (MsgQueue)); \
-      if ((MsgQueue)->NewMessages != NULL) \
-        ObDereferenceObject((MsgQueue)->NewMessages); \
-      if ((MsgQueue)->NewMessagesHandle != NULL) \
-        ZwClose((MsgQueue)->NewMessagesHandle); \
-      ExFreePool((MsgQueue)); \
-    } \
-  } while(0)
+VOID FASTCALL
+IntDereferenceMessageQueue(PUSER_MESSAGE_QUEUE MsgQueue);
 
+
 #define IS_BTN_MESSAGE(message,code) \
   ((message) == WM_LBUTTON##code || \
    (message) == WM_MBUTTON##code || \
@@ -276,8 +258,6 @@
 MsqGetFirstTimerExpiry(PUSER_MESSAGE_QUEUE MessageQueue,
                        HWND WndFilter, UINT MsgFilterMin, UINT MsgFilterMax,
                        PLARGE_INTEGER FirstTimerExpiry);
-VOID FASTCALL
-MsqRemoveTimersWindow(PUSER_MESSAGE_QUEUE MessageQueue, HWND Wnd);
 
 #endif /* _WIN32K_MSGQUEUE_H */
 

Added: branches/hardons1stbranch/win32k/include/ntuser.h
--- trunk/reactos/subsys/win32k/include/ntuser.h	2005-07-21 16:28:20 UTC (rev 16681)
+++ branches/hardons1stbranch/win32k/include/ntuser.h	2005-07-27 11:08:35 UTC (rev 16794)
@@ -0,0 +1,147 @@
+#ifndef _WIN32K_NTUSER_H
+#define _WIN32K_NTUSER_H
+
+extern char* _file;
+extern DWORD _line;
+extern DWORD _locked;
+
+extern FAST_MUTEX UserLock;
+
+#define DECLARE_RETURN(type) type _ret_
+#define RETURN(value) { _ret_ = value; goto _cleanup_; }
+#define CLEANUP /*unreachable*/ ASSERT(FALSE); _cleanup_
+#define END_CLEANUP return _ret_;
+
+#if 0
+
+#define UserEnterShared() { \
+ UUserEnterShared(); ASSERT(InterlockedIncrement(&_locked) > 0); \
+ }
+ #define UserEnterExclusive() {\
+  UUserEnterExclusive(); ASSERT(InterlockedIncrement(&_locked) > 0); \
+  }
+
+#define UserLeave() { ASSERT(InterlockedDecrement(&_locked) >= 0);  \
+ UUserLeave(); }
+
+#endif
+
+
+VOID FASTCALL UserStackTrace();
+
+#define UserEnterShared() \
+{ \
+   DPRINT1("try lock, %s, %i (%i)\n",__FILE__,__LINE__, _locked); \
+   ASSERT(UserLock.Owner != KeGetCurrentThread()); \
+   UUserEnterShared(); \
+   ASSERT(InterlockedIncrement(&_locked) == 1 /*> 0*/); \
+   DPRINT("got lock, %s, %i (%i)\n",__FILE__,__LINE__, _locked); \
+}
+
+#define UserEnterExclusive() \
+{ \
+  /* DPRINT1("try lock, %s, %i (%i)\n",__FILE__,__LINE__, _locked);*/ \
+   ASSERT(UserLock.Owner != KeGetCurrentThread()); \
+   UUserEnterExclusive(); \
+   ASSERT(InterlockedIncrement(&_locked) == 1 /*> 0*/); \
+  /* DPRINT("got lock, %s, %i (%i)\n",__FILE__,__LINE__, _locked);*/ \
+}
+
+#define UserLeave() \
+{ \
+   ASSERT(InterlockedDecrement(&_locked) == 0/*>= 0*/); \
+   /*DPRINT("unlock, %s, %i (%i)\n",__FILE__,__LINE__, _locked);*/ \
+   ASSERT(UserLock.Owner == KeGetCurrentThread()); \
+   UUserLeave(); \
+}
+ 
+
+
+
+
+#define GetWnd(hwnd) IntGetWindowObject(hwnd)
+
+
+
+
+#if 0
+#define IntLockUserShared() {if(_locked){ DPRINT1("last %s, %i\n",_file,_line);} \
+ IIntLockUserShared(); \
+  _locked++; _file = __FILE__; _line = __LINE__; \
+  }
+  
+ #define IntUserEnterExclusive() {if(_locked){ DPRINT1("last %s, %i\n",_file,_line);} \
+  IIntUserEnterExclusive(); \
+  _locked++; _file = __FILE__; _line = __LINE__; \
+  }
+
+
+#define IntUserLeave() { if(!_locked){ DPRINT1("not locked %s, %i\n",__FILE__,__LINE__);} \
+ _locked--; IIntUserLeave(); }
+#endif
+
+NTSTATUS FASTCALL InitUserImpl(VOID);
+VOID FASTCALL UninitUser(VOID);
+VOID FASTCALL UUserEnterShared(VOID);
+VOID FASTCALL UUserEnterExclusive(VOID);
+VOID FASTCALL UUserLeave(VOID);
+BOOL FASTCALL UserIsEntered();
+
+
+
+
+#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 */
+
+
+typedef struct _USER_HANDLE_ENTRY
+{
+    void          *ptr;          /* pointer to object */
+    unsigned short type;         /* object type (0 if free) */
+    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 {
+  otUnknown = 0,
+  otClass,
+  otWindow,
+  otMenu,
+  otAcceleratorTable,
+  otCursorIcon,
+  otHookProc,
+  otMonitor
+} USER_OBJECT_TYPE;
+*/
+
+typedef enum _USER_OBJECT_TYPE
+{
+  /* 0 = free */
+  USER_CLASS = 1,
+  USER_WINDOW,
+  USER_MENU,
+  USER_ACCELERATOR_TABLE,
+  USER_CURSOR_ICON,
+  USER_HOOK_PROC,
+  USER_MONITOR
+} USER_OBJECT_TYPE;
+
+
+
+
+
+
+
+#endif /* _WIN32K_NTUSER_H */
+
+/* EOF */

Modified: branches/hardons1stbranch/win32k/include/object.h
--- trunk/reactos/subsys/win32k/include/object.h	2005-07-21 16:28:20 UTC (rev 16681)
+++ branches/hardons1stbranch/win32k/include/object.h	2005-07-27 11:08:35 UTC (rev 16794)
@@ -5,120 +5,16 @@
 #include <win32k/bitmaps.h>
 #include <win32k/pen.h>
 
-typedef enum {
-  otUnknown = 0,
-  otClass,
-  otWindow,
-  otMenu,
-  otAcceleratorTable,
-  otCursorIcon,
-  otHookProc,
-  otMonitor
-} USER_OBJECT_TYPE;
 
-typedef struct _USER_OBJECT_HEADER
-/*
- * Header for user object
- */
-{
-  USER_OBJECT_TYPE Type;
-  LONG HandleCount;
-  LONG RefCount;
-  CSHORT Size;
-} USER_OBJECT_HEADER, *PUSER_OBJECT_HEADER;
 
-typedef struct _USER_HANDLE
-{
-  PVOID ObjectBody;
-} USER_HANDLE, *PUSER_HANDLE;
-
-#define HANDLE_BLOCK_ENTRIES ((PAGE_SIZE-sizeof(LIST_ENTRY))/sizeof(USER_HANDLE))
-
-typedef struct _USER_HANDLE_BLOCK
-{
-  LIST_ENTRY ListEntry;
-  USER_HANDLE Handles[HANDLE_BLOCK_ENTRIES];
-} USER_HANDLE_BLOCK, *PUSER_HANDLE_BLOCK;
-
-typedef struct _USER_HANDLE_TABLE
-{
-   LIST_ENTRY ListHead;
-   FAST_MUTEX ListLock;
-} USER_HANDLE_TABLE, *PUSER_HANDLE_TABLE;
-
-
-#define ObmpLockHandleTable(HandleTable) \
-  ExAcquireFastMutex(&HandleTable->ListLock)
-
-#define ObmpUnlockHandleTable(HandleTable) \
-  ExReleaseFastMutex(&HandleTable->ListLock)
-
-ULONG FASTCALL
-ObmGetReferenceCount(
-  PVOID ObjectBody);
-
-ULONG FASTCALL
-ObmGetHandleCount(
-  PVOID ObjectBody);
-
-VOID FASTCALL
-ObmReferenceObject(
-  PVOID ObjectBody);
-
-VOID FASTCALL
-ObmDereferenceObject(
-  PVOID ObjectBody);
-
-NTSTATUS FASTCALL
-ObmReferenceObjectByPointer(
-  PVOID ObjectBody,
-  USER_OBJECT_TYPE ObjectType);
-
-PVOID FASTCALL
[truncated at 1000 lines; 28242 more skipped]