Moved private USER definitions to a new user_private.h header, and
removed the global user.h.

diff --git a/dlls/user/button.c b/dlls/user/button.c
index 50bd16e..676e67d 100644
--- a/dlls/user/button.c
+++ b/dlls/user/button.c
@@ -73,7 +73,7 @@
 #include "wingdi.h"
 #include "wine/winuser16.h"
 #include "controls.h"
-#include "user.h"
+#include "user_private.h"
 
 /* GetWindowLong offsets for window extra information */
 #define STATE_GWL_OFFSET  0
diff --git a/dlls/user/combo.c b/dlls/user/combo.c
index c70a494..e7c5348 100644
--- a/dlls/user/combo.c
+++ b/dlls/user/combo.c
@@ -45,7 +45,6 @@
 #include "wine/winuser16.h"
 #include "wine/unicode.h"
 #include "message.h"
-#include "user.h"
 #include "win.h"
 #include "controls.h"
 #include "winreg.h"
diff --git a/dlls/user/comm16.c b/dlls/user/comm16.c
index 35ee2f8..c7303d4 100644
--- a/dlls/user/comm16.c
+++ b/dlls/user/comm16.c
@@ -68,6 +68,7 @@
 #include "winuser.h"
 #include "wine/winuser16.h"
 #include "win.h"
+#include "user_private.h"
 #include "winerror.h"
 
 #include "wine/debug.h"
diff --git a/dlls/user/controls.h b/dlls/user/controls.h
index e21e72d..a2ac8b6 100644
--- a/dlls/user/controls.h
+++ b/dlls/user/controls.h
@@ -46,6 +46,9 @@
 };
 
 
+/* defwnd proc */
+extern HBRUSH DEFWND_ControlColor( HDC hDC, UINT ctlType );
+
 /* desktop */
 extern BOOL DESKTOP_SetPattern( LPCWSTR pattern );
 
@@ -58,6 +61,7 @@
 extern HMENU MENU_GetSysMenu(HWND hWndOwner, HMENU hSysPopup);
 extern UINT MENU_GetMenuBarHeight( HWND hwnd, UINT menubarWidth,
                                      INT orgX, INT orgY );
+extern BOOL MENU_SetMenu(HWND, HMENU);
 extern void MENU_TrackMouseMenuBar( HWND hwnd, INT ht, POINT pt );
 extern void MENU_TrackKbdMenuBar( HWND hwnd, UINT wParam, WCHAR wChar );
 extern UINT MENU_DrawMenuBar( HDC hDC, LPRECT lprect,
diff --git a/dlls/user/desktop.c b/dlls/user/desktop.c
index 9d07dc6..81e6ff6 100644
--- a/dlls/user/desktop.c
+++ b/dlls/user/desktop.c
@@ -30,7 +30,6 @@
 #include "windef.h"
 #include "winbase.h"
 #include "wingdi.h"
-#include "user.h"
 #include "controls.h"
 #include "wine/winuser16.h"
 
diff --git a/dlls/user/dialog16.c b/dlls/user/dialog16.c
index e01ed47..669f14f 100644
--- a/dlls/user/dialog16.c
+++ b/dlls/user/dialog16.c
@@ -29,7 +29,7 @@
 #include "wine/winuser16.h"
 #include "controls.h"
 #include "win.h"
-#include "user.h"
+#include "user_private.h"
 #include "wine/debug.h"
 
 WINE_DEFAULT_DEBUG_CHANNEL(dialog);
diff --git a/dlls/user/display.c b/dlls/user/display.c
index 76353e2..f4146cb 100644
--- a/dlls/user/display.c
+++ b/dlls/user/display.c
@@ -23,7 +23,7 @@
 #include "wine/debug.h"
 #include "windef.h"
 #include "winbase.h"
-#include "user.h"
+#include "user_private.h"
 #include "wine/winuser16.h"
 
 WINE_DEFAULT_DEBUG_CHANNEL(cursor);
diff --git a/dlls/user/edit.c b/dlls/user/edit.c
index a9785d5..4d7871b 100644
--- a/dlls/user/edit.c
+++ b/dlls/user/edit.c
@@ -71,7 +71,7 @@
 #include "controls.h"
 #include "local.h"
 #include "message.h"
-#include "user.h"
+#include "user_private.h"
 #include "wine/debug.h"
 
 WINE_DEFAULT_DEBUG_CHANNEL(edit);
diff --git a/dlls/user/focus.c b/dlls/user/focus.c
index 3126379..212eaaf 100644
--- a/dlls/user/focus.c
+++ b/dlls/user/focus.c
@@ -31,7 +31,7 @@
 #include "winerror.h"
 #include "win.h"
 #include "message.h"
-#include "user.h"
+#include "user_private.h"
 #include "wine/server.h"
 #include "wine/debug.h"
 
diff --git a/dlls/user/hook.c b/dlls/user/hook.c
index 4ac3504..13491d5 100644
--- a/dlls/user/hook.c
+++ b/dlls/user/hook.c
@@ -73,6 +73,7 @@
 #include "heap.h"
 #include "message.h"
 #include "win.h"
+#include "user_private.h"
 #include "wine/server.h"
 #include "wine/unicode.h"
 #include "wine/debug.h"
diff --git a/dlls/user/hook16.c b/dlls/user/hook16.c
index 8bcef5c..073d91df 100644
--- a/dlls/user/hook16.c
+++ b/dlls/user/hook16.c
@@ -30,6 +30,7 @@
 #include "wine/winuser16.h"
 #include "message.h"
 #include "win.h"
+#include "user_private.h"
 #include "winproc.h"
 #include "wine/debug.h"
 
diff --git a/dlls/user/listbox.c b/dlls/user/listbox.c
index 84b2e05..57abfc4 100644
--- a/dlls/user/listbox.c
+++ b/dlls/user/listbox.c
@@ -48,7 +48,6 @@
 #include "winuser.h"
 #include "winerror.h"
 #include "message.h"
-#include "user.h"
 #include "controls.h"
 #include "wine/debug.h"
 #include "win.h"
diff --git a/dlls/user/menu.c b/dlls/user/menu.c
index bf84233..385b01d 100644
--- a/dlls/user/menu.c
+++ b/dlls/user/menu.c
@@ -44,7 +44,7 @@
 #include "win.h"
 #include "controls.h"
 #include "nonclient.h"
-#include "user.h"
+#include "user_private.h"
 #include "wine/debug.h"
 
 WINE_DEFAULT_DEBUG_CHANNEL(menu);
diff --git a/dlls/user/message.c b/dlls/user/message.c
index 32d17b2..8632a68 100644
--- a/dlls/user/message.c
+++ b/dlls/user/message.c
@@ -35,7 +35,7 @@
 #include "wine/unicode.h"
 #include "wine/server.h"
 #include "message.h"
-#include "user.h"
+#include "user_private.h"
 #include "win.h"
 #include "winproc.h"
 #include "wine/debug.h"
diff --git a/dlls/user/message.h b/dlls/user/message.h
index 6098388..fb98a18 100644
--- a/dlls/user/message.h
+++ b/dlls/user/message.h
@@ -88,4 +88,10 @@
                              LRESULT lReturn, WPARAM wParam, LPARAM lParam );
 extern int SPY_Init(void);
 
+/* check if hwnd is a broadcast magic handle */
+inline static BOOL is_broadcast( HWND hwnd )
+{
+    return (hwnd == HWND_BROADCAST || hwnd == HWND_TOPMOST);
+}
+
 #endif  /* __WINE_MESSAGE_H */
diff --git a/dlls/user/msg16.c b/dlls/user/msg16.c
index 70ade57..9bec8ae 100644
--- a/dlls/user/msg16.c
+++ b/dlls/user/msg16.c
@@ -23,6 +23,7 @@
 #include "winerror.h"
 #include "message.h"
 #include "win.h"
+#include "user_private.h"
 #include "winproc.h"
 #include "wine/debug.h"
 
diff --git a/dlls/user/resource.c b/dlls/user/resource.c
index bde2d29..817309e 100644
--- a/dlls/user/resource.c
+++ b/dlls/user/resource.c
@@ -28,7 +28,6 @@
 #include "wine/winbase16.h"
 #include "wine/winuser16.h"
 #include "wownt32.h"
-#include "user.h"
 #include "wine/debug.h"
 
 WINE_DEFAULT_DEBUG_CHANNEL(resource);
diff --git a/dlls/user/scroll.c b/dlls/user/scroll.c
index 0f37617..1bc3a19 100644
--- a/dlls/user/scroll.c
+++ b/dlls/user/scroll.c
@@ -42,7 +42,7 @@
 #include "controls.h"
 #include "win.h"
 #include "wine/debug.h"
-#include "user.h"
+#include "user_private.h"
 #include "message.h"
 
 WINE_DEFAULT_DEBUG_CHANNEL(scroll);
diff --git a/dlls/user/static.c b/dlls/user/static.c
index 9c62d91..2a2aae7 100644
--- a/dlls/user/static.c
+++ b/dlls/user/static.c
@@ -56,7 +56,7 @@
 #include "wownt32.h"
 #include "cursoricon.h"
 #include "controls.h"
-#include "user.h"
+#include "user_private.h"
 #include "wine/debug.h"
 
 WINE_DEFAULT_DEBUG_CHANNEL(static);
diff --git a/dlls/user/text.c b/dlls/user/text.c
index 5fc7bc6..5c6921a 100644
--- a/dlls/user/text.c
+++ b/dlls/user/text.c
@@ -39,7 +39,6 @@
 #include "winerror.h"
 #include "winnls.h"
 #include "wownt32.h"
-#include "user.h"
 #include "controls.h"
 #include "wine/debug.h"
 
diff --git a/dlls/user/uitools.c b/dlls/user/uitools.c
index 4c1b566..243a863 100644
--- a/dlls/user/uitools.c
+++ b/dlls/user/uitools.c
@@ -26,7 +26,7 @@
 #include "wingdi.h"
 #include "wine/winuser16.h"
 #include "winuser.h"
-#include "user.h"
+#include "user_private.h"
 #include "wine/unicode.h"
 #include "wine/debug.h"
 
diff --git a/dlls/user/user16.c b/dlls/user/user16.c
index a20f78b..87db925 100644
--- a/dlls/user/user16.c
+++ b/dlls/user/user16.c
@@ -24,7 +24,7 @@
 #include "windef.h"
 #include "winbase.h"
 #include "wownt32.h"
-#include "user.h"
+#include "user_private.h"
 #include "win.h"
 #include "winproc.h"
 #include "cursoricon.h"
diff --git a/dlls/user/user_main.c b/dlls/user/user_main.c
index 70d2a03..2a9d095 100644
--- a/dlls/user/user_main.c
+++ b/dlls/user/user_main.c
@@ -31,7 +31,7 @@
 #include "controls.h"
 #include "cursoricon.h"
 #include "message.h"
-#include "user.h"
+#include "user_private.h"
 #include "win.h"
 #include "wine/debug.h"
 
diff --git a/include/user.h b/dlls/user/user_private.h
similarity index 84%
rename from include/user.h
rename to dlls/user/user_private.h
index 3047d72..e3e3833 100644
--- a/include/user.h
+++ b/dlls/user/user_private.h
@@ -1,5 +1,5 @@
 /*
- * USER definitions
+ * USER private definitions
  *
  * Copyright 1993 Alexandre Julliard
  *
@@ -18,16 +18,15 @@
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  */
 
-#ifndef __WINE_USER_H
-#define __WINE_USER_H
+#ifndef __WINE_USER_PRIVATE_H
+#define __WINE_USER_PRIVATE_H
 
 #include <stdarg.h>
-#include <windef.h>
-#include <winbase.h>
-#include <wingdi.h>
-#include <winuser.h>
-
-#include <local.h>
+#include "windef.h"
+#include "winbase.h"
+#include "wingdi.h"
+#include "winuser.h"
+#include "local.h"
 
 extern WORD USER_HeapSel;
 
@@ -43,14 +42,6 @@
 #define GET_WORD(ptr)  (*(const WORD *)(ptr))
 #define GET_DWORD(ptr) (*(const DWORD *)(ptr))
 
-#define USUD_LOCALALLOC        0x0001
-#define USUD_LOCALFREE         0x0002
-#define USUD_LOCALCOMPACT      0x0003
-#define USUD_LOCALHEAP         0x0004
-#define USUD_FIRSTCLASS        0x0005
-
-struct tagCURSORICONINFO;
-
 /* internal messages codes */
 enum wine_internal_message
 {
@@ -65,9 +56,7 @@
     WM_WINE_MOUSE_LL_HOOK
 };
 
-/* internal SendInput codes (FIXME) */
-#define WINE_INTERNAL_INPUT_MOUSE    (16+INPUT_MOUSE)
-#define WINE_INTERNAL_INPUT_KEYBOARD (16+INPUT_KEYBOARD)
+struct tagCURSORICONINFO;
 
 typedef struct tagUSER_DRIVER {
     /* keyboard functions */
@@ -128,37 +117,19 @@
 extern USER_DRIVER USER_Driver;
 
 extern HMODULE user32_module;
-
-/* user lock */
-extern void USER_Lock(void);
-extern void USER_Unlock(void);
-extern void USER_CheckNotLock(void);
-
-extern BOOL USER_IsExitingThread( DWORD tid );
-
-/* hook.c */
-extern LRESULT HOOK_CallHooks( INT id, INT code, WPARAM wparam, LPARAM lparam, BOOL unicode );
-extern BOOL HOOK_IsHooked( INT id );
-
-/* input.c */
 extern BYTE InputKeyStateTable[256];
 extern BYTE AsyncKeyStateTable[256];
-
-/* syscolor.c */
-extern void SYSCOLOR_Init(void);
-extern HPEN SYSCOLOR_GetPen( INT index );
-
-/* sysmetrics.c */
-extern void SYSMETRICS_Init(void);
-extern INT SYSMETRICS_Set( INT index, INT value );
-
-/* sysparams.c */
-extern void SYSPARAMS_GetDoubleClickSize( INT *width, INT *height );
-extern INT SYSPARAMS_GetMouseButtonSwap( void );
+extern DWORD USER16_AlertableWait;
 
 extern BOOL CLIPBOARD_ReleaseOwner(void);
-
-extern DWORD USER16_AlertableWait;
+extern BOOL FOCUS_MouseActivate( HWND hwnd );
+extern BOOL HOOK_IsHooked( INT id );
+extern void SYSCOLOR_Init(void);
+extern HPEN SYSCOLOR_GetPen( INT index );
+extern void SYSMETRICS_Init(void);
+extern INT SYSMETRICS_Set( INT index, INT value );
+extern void USER_CheckNotLock(void);
+extern BOOL USER_IsExitingThread( DWORD tid );
 
 /* HANDLE16 <-> HANDLE conversions */
 #define HCURSOR_16(h32)    (LOWORD(h32))
@@ -170,4 +141,4 @@
 #define HINSTANCE_32(h16)  ((HINSTANCE)(ULONG_PTR)(h16))
 #define HMODULE_32(h16)    ((HMODULE)(ULONG_PTR)(h16))
 
-#endif  /* __WINE_USER_H */
+#endif /* __WINE_USER_PRIVATE_H */
diff --git a/dlls/user/wnd16.c b/dlls/user/wnd16.c
index 3f73e69..170f67b 100644
--- a/dlls/user/wnd16.c
+++ b/dlls/user/wnd16.c
@@ -20,7 +20,7 @@
 
 #include "wine/winuser16.h"
 #include "wownt32.h"
-#include "user.h"
+#include "user_private.h"
 #include "win.h"
 #include "winproc.h"
 #include "stackframe.h"
diff --git a/dlls/x11drv/x11drv.h b/dlls/x11drv/x11drv.h
index 8ae74f2..7d15953 100644
--- a/dlls/x11drv/x11drv.h
+++ b/dlls/x11drv/x11drv.h
@@ -40,7 +40,6 @@
 
 #include "windef.h"
 #include "winbase.h"
-#include "user.h"
 #include "win.h"
 #include "ddrawi.h"
 #include "thread.h"
diff --git a/dlls/x11drv/x11drv_main.c b/dlls/x11drv/x11drv_main.c
index 07dfdd1..aa1c784 100644
--- a/dlls/x11drv/x11drv_main.c
+++ b/dlls/x11drv/x11drv_main.c
@@ -59,7 +59,6 @@
 #include "wine/winbase16.h"
 #include "winreg.h"
 
-#include "user.h"
 #include "win.h"
 #include "x11drv.h"
 #include "xvidmode.h"
diff --git a/include/win.h b/include/win.h
index f3ed656..167f8b6 100644
--- a/include/win.h
+++ b/include/win.h
@@ -28,8 +28,6 @@
 #include <winuser.h>
 #include <wine/windef16.h>
 
-#include <user.h>
-
 #define WND_MAGIC     0x444e4957  /* 'WIND' */
 
 struct tagCLASS;
@@ -68,14 +66,6 @@
     DWORD          wExtra[1];     /* Window extra bytes */
 } WND;
 
-typedef struct
-{
-    RECT16	   rectNormal;
-    POINT16	   ptIconPos;
-    POINT16	   ptMaxPos;
-    HWND           hwndIconTitle;
-} INTERNALPOS, *LPINTERNALPOS;
-
   /* WND flags values */
 #define WIN_RESTORE_MAX           0x0001 /* Maximize when restoring */
 #define WIN_NEED_SIZE             0x0002 /* Internal WM_SIZE is needed */
@@ -110,18 +100,20 @@
 extern BOOL WIN_InternalShowOwnedPopups( HWND owner, BOOL fShow, BOOL unmanagedOnly );
 extern void MDI_CalcDefaultChildPos( HWND hwndClient, INT total, LPPOINT lpPos, INT delta );
 
+/* internal SendInput codes (FIXME) */
+#define WINE_INTERNAL_INPUT_MOUSE    (16+INPUT_MOUSE)
+#define WINE_INTERNAL_INPUT_KEYBOARD (16+INPUT_KEYBOARD)
+
+/* user lock */
+extern void USER_Lock(void);
+extern void USER_Unlock(void);
+
 inline static HWND WIN_GetFullHandle( HWND hwnd )
 {
     if (!HIWORD(hwnd) && hwnd) hwnd = WIN_Handle32( LOWORD(hwnd) );
     return hwnd;
 }
 
-inline static WND *WIN_FindWndPtr16( HWND16 hwnd )
-{
-    /* don't bother with full conversion */
-    return WIN_FindWndPtr( (HWND)(ULONG_PTR)hwnd );
-}
-
 /* to release pointers retrieved by WIN_GetPtr; do not confuse with WIN_ReleaseWndPtr!! */
 inline static void WIN_ReleasePtr( WND *ptr )
 {
@@ -130,16 +122,6 @@
 
 #define WND_OTHER_PROCESS ((WND *)1)  /* returned by WIN_GetPtr on unknown window handles */
 
-extern HBRUSH DEFWND_ControlColor( HDC hDC, UINT ctlType );  /* windows/defwnd.c */
-
-extern BOOL FOCUS_MouseActivate( HWND hwnd );
-
-extern BOOL MENU_SetMenu(HWND, HMENU);
-
-/* check if hwnd is a broadcast magic handle */
-inline static BOOL is_broadcast( HWND hwnd )
-{
-    return (hwnd == HWND_BROADCAST || hwnd == HWND_TOPMOST);
-}
+extern LRESULT HOOK_CallHooks( INT id, INT code, WPARAM wparam, LPARAM lparam, BOOL unicode );
 
 #endif  /* __WINE_WIN_H */
diff --git a/windows/class.c b/windows/class.c
index f6dd46e..b2cfe21 100644
--- a/windows/class.c
+++ b/windows/class.c
@@ -34,7 +34,7 @@
 #include "wine/winuser16.h"
 #include "wine/unicode.h"
 #include "win.h"
-#include "user.h"
+#include "user_private.h"
 #include "controls.h"
 #include "dce.h"
 #include "winproc.h"
diff --git a/windows/clipboard.c b/windows/clipboard.c
index 53cbaa8..dd06c9d 100644
--- a/windows/clipboard.c
+++ b/windows/clipboard.c
@@ -49,7 +49,7 @@
 #include "wine/winuser16.h"
 #include "wine/winbase16.h"
 #include "heap.h"
-#include "user.h"
+#include "user_private.h"
 #include "win.h"
 
 #include "wine/debug.h"
diff --git a/windows/cursoricon.c b/windows/cursoricon.c
index 46b047f..9f94307 100644
--- a/windows/cursoricon.c
+++ b/windows/cursoricon.c
@@ -63,7 +63,7 @@
 #include "cursoricon.h"
 #include "module.h"
 #include "wine/debug.h"
-#include "user.h"
+#include "user_private.h"
 #include "message.h"
 
 WINE_DEFAULT_DEBUG_CHANNEL(cursor);
diff --git a/windows/dce.c b/windows/dce.c
index 4ac21fe..79f46d8 100644
--- a/windows/dce.c
+++ b/windows/dce.c
@@ -34,7 +34,7 @@
 #include <assert.h>
 #include "dce.h"
 #include "win.h"
-#include "user.h"
+#include "user_private.h"
 #include "wine/debug.h"
 #include "windef.h"
 #include "wingdi.h"
diff --git a/windows/defwnd.c b/windows/defwnd.c
index e70efc1..9ffc5ba 100644
--- a/windows/defwnd.c
+++ b/windows/defwnd.c
@@ -31,7 +31,7 @@
 #include "winnls.h"
 #include "imm.h"
 #include "win.h"
-#include "user.h"
+#include "user_private.h"
 #include "controls.h"
 #include "nonclient.h"
 #include "winpos.h"
diff --git a/windows/dialog.c b/windows/dialog.c
index 82ad6fe..be2ed62 100644
--- a/windows/dialog.c
+++ b/windows/dialog.c
@@ -39,7 +39,7 @@
 #include "controls.h"
 #include "win.h"
 #include "winpos.h"
-#include "user.h"
+#include "user_private.h"
 #include "wine/debug.h"
 
 WINE_DEFAULT_DEBUG_CHANNEL(dialog);
diff --git a/windows/input.c b/windows/input.c
index d6ef3db..483cfbb 100644
--- a/windows/input.c
+++ b/windows/input.c
@@ -42,6 +42,7 @@
 #include "wine/server.h"
 #include "win.h"
 #include "message.h"
+#include "user_private.h"
 #include "winternl.h"
 #include "wine/debug.h"
 #include "winerror.h"
diff --git a/windows/mdi.c b/windows/mdi.c
index 8275a67..def0eac 100644
--- a/windows/mdi.c
+++ b/windows/mdi.c
@@ -97,7 +97,7 @@
 #include "nonclient.h"
 #include "controls.h"
 #include "message.h"
-#include "user.h"
+#include "user_private.h"
 #include "wine/debug.h"
 #include "dlgs.h"
 
diff --git a/windows/message.c b/windows/message.c
index b0701a5..03f792e 100644
--- a/windows/message.c
+++ b/windows/message.c
@@ -41,7 +41,7 @@
 #include "controls.h"
 #include "dde.h"
 #include "message.h"
-#include "user.h"
+#include "user_private.h"
 #include "win.h"
 #include "winpos.h"
 #include "winproc.h"
diff --git a/windows/msgbox.c b/windows/msgbox.c
index a88b003..fddbf4c 100644
--- a/windows/msgbox.c
+++ b/windows/msgbox.c
@@ -30,7 +30,7 @@
 #include "winreg.h"
 #include "winternl.h"
 #include "dlgs.h"
-#include "user.h"
+#include "user_private.h"
 #include "wine/debug.h"
 
 WINE_DEFAULT_DEBUG_CHANNEL(dialog);
diff --git a/windows/nonclient.c b/windows/nonclient.c
index d479c5a..71d8807 100644
--- a/windows/nonclient.c
+++ b/windows/nonclient.c
@@ -28,7 +28,7 @@
 #include "wine/winuser16.h"
 #include "wownt32.h"
 #include "win.h"
-#include "user.h"
+#include "user_private.h"
 #include "dce.h"
 #include "controls.h"
 #include "cursoricon.h"
diff --git a/windows/queue.c b/windows/queue.c
index 6ac649e..aa70373 100644
--- a/windows/queue.c
+++ b/windows/queue.c
@@ -33,7 +33,7 @@
 #include "wine/winuser16.h"
 #include "message.h"
 #include "win.h"
-#include "user.h"
+#include "user_private.h"
 #include "thread.h"
 #include "wine/debug.h"
 #include "wine/server.h"
diff --git a/windows/scroll.c b/windows/scroll.c
index 266f87d..e5ab672 100644
--- a/windows/scroll.c
+++ b/windows/scroll.c
@@ -27,7 +27,7 @@
 #include "wingdi.h"
 #include "wine/winuser16.h"
 #include "winuser.h"
-#include "user.h"
+#include "user_private.h"
 #include "win.h"
 #include "wine/debug.h"
 
diff --git a/windows/spy.c b/windows/spy.c
index d765ef5..b83d060 100644
--- a/windows/spy.c
+++ b/windows/spy.c
@@ -30,6 +30,7 @@
 #include "wownt32.h"
 #include "wine/unicode.h"
 #include "win.h"
+#include "user_private.h"
 #include "wine/debug.h"
 #include "message.h"
 #include "winnls.h"
diff --git a/windows/syscolor.c b/windows/syscolor.c
index 1433110..df98d5a 100644
--- a/windows/syscolor.c
+++ b/windows/syscolor.c
@@ -33,7 +33,6 @@
 #include "wownt32.h"
 #include "winreg.h"
 #include "local.h"
-#include "user.h"
 #include "gdi.h" /* sic */
 #include "wine/debug.h"
 
@@ -157,7 +156,7 @@
       if (!bNoReg)
       {
 	DWORD dwDataSize = sizeof(buffer);
-	if (!(RegQueryValueExA(hKey,(LPSTR)DefSysColors[i*2], 0, 0, buffer, &dwDataSize)))
+	if (!(RegQueryValueExA(hKey,DefSysColors[i*2], 0, 0, buffer, &dwDataSize)))
 	  if (sscanf( buffer, "%d %d %d", &r, &g, &b ) == 3)
 	    bOk = TRUE;
       }
diff --git a/windows/sysmetrics.c b/windows/sysmetrics.c
index 78ee0e5..890db03 100644
--- a/windows/sysmetrics.c
+++ b/windows/sysmetrics.c
@@ -29,7 +29,7 @@
 #include "wingdi.h"
 #include "winuser.h"
 #include "winerror.h"
-#include "user.h"
+#include "user_private.h"
 
 static int sysMetrics[SM_CMETRICS+1];
 static HDC display_dc;
diff --git a/windows/sysparams.c b/windows/sysparams.c
index 03b003f..eee883a 100644
--- a/windows/sysparams.c
+++ b/windows/sysparams.c
@@ -33,7 +33,7 @@
 #include "winerror.h"
 
 #include "controls.h"
-#include "user.h"
+#include "user_private.h"
 #include "wine/unicode.h"
 #include "wine/debug.h"
 
diff --git a/windows/user.c b/windows/user.c
index e9fdd2b..abbbfa0 100644
--- a/windows/user.c
+++ b/windows/user.c
@@ -31,7 +31,7 @@
 #include "winreg.h"
 #include "winternl.h"
 #include "tlhelp32.h"
-#include "user.h"
+#include "user_private.h"
 #include "win.h"
 #include "controls.h"
 #include "cursoricon.h"
@@ -71,6 +71,12 @@
 #define USIG_PROCESS_RUNNING      0x0500
 #define USIG_PROCESS_LOADED       0x0600
 
+/* UserSeeUserDo parameters */
+#define USUD_LOCALALLOC        0x0001
+#define USUD_LOCALFREE         0x0002
+#define USUD_LOCALCOMPACT      0x0003
+#define USUD_LOCALHEAP         0x0004
+#define USUD_FIRSTCLASS        0x0005
 
 /***********************************************************************
  *		GetFreeSystemResources (USER.284)
diff --git a/windows/win.c b/windows/win.c
index cb85c22..91dd168 100644
--- a/windows/win.c
+++ b/windows/win.c
@@ -33,7 +33,7 @@
 #include "wine/server.h"
 #include "wine/unicode.h"
 #include "win.h"
-#include "user.h"
+#include "user_private.h"
 #include "dce.h"
 #include "controls.h"
 #include "cursoricon.h"
diff --git a/windows/winpos.c b/windows/winpos.c
index 510d5c0..6f71337 100644
--- a/windows/winpos.c
+++ b/windows/winpos.c
@@ -33,7 +33,7 @@
 #include "wine/winuser16.h"
 #include "wine/server.h"
 #include "controls.h"
-#include "user.h"
+#include "user_private.h"
 #include "win.h"
 #include "message.h"
 #include "winpos.h"
@@ -69,6 +69,14 @@
     WINDOWPOS winPos[1];
 } DWP;
 
+typedef struct
+{
+    RECT16   rectNormal;
+    POINT16  ptIconPos;
+    POINT16  ptMaxPos;
+    HWND     hwndIconTitle;
+} INTERNALPOS, *LPINTERNALPOS;
+
 /* ----- internal variables ----- */
 
 static LPCSTR atomInternalPos;
diff --git a/windows/winproc.c b/windows/winproc.c
index 1897707..bab7033 100644
--- a/windows/winproc.c
+++ b/windows/winproc.c
@@ -37,6 +37,7 @@
 #include "win.h"
 #include "winproc.h"
 #include "message.h"
+#include "user_private.h"
 #include "thread.h"
 #include "dde.h"
 #include "winternl.h"