Move HDWP to winuser.h.
Convert HWINSTA to STRICT.

diff --git a/dlls/user/misc.c b/dlls/user/misc.c
index 16e72f6..443874b 100644
--- a/dlls/user/misc.c
+++ b/dlls/user/misc.c
@@ -51,10 +51,10 @@
  *    Success: Handle to window station associated with calling process
  *    Failure: NULL
  */
-DWORD WINAPI GetProcessWindowStation(void)
+HWINSTA WINAPI GetProcessWindowStation(void)
 {
     FIXME("(void): stub\n");
-    return 1;
+    return (HWINSTA)1;
 }
 
 
diff --git a/include/windef.h b/include/windef.h
index c9ef0a2..7de33ea 100644
--- a/include/windef.h
+++ b/include/windef.h
@@ -67,7 +67,6 @@
 DECLARE_HANDLE(HCOLORSPACE);
 DECLARE_OLD_HANDLE(HDC);
 DECLARE_OLD_HANDLE(HDRVR);
-DECLARE_OLD_HANDLE(HDWP);
 DECLARE_OLD_HANDLE(HENHMETAFILE);
 typedef int HFILE;
 DECLARE_OLD_HANDLE(HFONT);
@@ -91,7 +90,7 @@
 DECLARE_OLD_HANDLE(HWAVE);
 DECLARE_OLD_HANDLE(HWAVEIN);
 DECLARE_OLD_HANDLE(HWAVEOUT);
-DECLARE_OLD_HANDLE(HWINSTA);
+DECLARE_HANDLE(HWINSTA);
 DECLARE_HANDLE(HDESK);
 DECLARE_OLD_HANDLE(HWND);
 DECLARE_OLD_HANDLE(HKL);
diff --git a/include/winuser.h b/include/winuser.h
index 1718aa4..75c8fea 100644
--- a/include/winuser.h
+++ b/include/winuser.h
@@ -63,6 +63,9 @@
 DECL_WINELIB_TYPE_AW(WINSTAENUMPROC)
 
 
+typedef HANDLE HDWP;
+
+
 /* flags for HIGHCONTRAST dwFlags field */
 #define HCF_HIGHCONTRASTON  0x00000001
 #define HCF_AVAILABLE       0x00000002
@@ -3133,6 +3136,9 @@
 #define     CreateAcceleratorTable WINELIB_NAME_AW(CreateAcceleratorTable)
 HICON     WINAPI CreateIconIndirect(PICONINFO);
 BOOL      WINAPI DestroyAcceleratorTable(HACCEL);
+BOOL        WINAPI EnumDesktopsA(HWINSTA,DESKTOPENUMPROCA,LPARAM);
+BOOL        WINAPI EnumDesktopsW(HWINSTA,DESKTOPENUMPROCW,LPARAM);
+#define     EnumDesktops WINELIB_NAME_AW(EnumDesktops)
 BOOL      WINAPI EnumDisplayMonitors(HDC,LPRECT,MONITORENUMPROC,LPARAM);
 BOOL        WINAPI EnumDisplayDevicesA(LPVOID,DWORD,LPDISPLAY_DEVICEA,DWORD);
 BOOL        WINAPI EnumDisplayDevicesW(LPVOID,DWORD,LPDISPLAY_DEVICEW,DWORD);
@@ -3441,6 +3447,9 @@
 INT       WINAPI EnumPropsW(HWND,PROPENUMPROCW);
 #define     EnumProps WINELIB_NAME_AW(EnumProps)
 BOOL      WINAPI EnumWindows(WNDENUMPROC,LPARAM);
+BOOL        WINAPI EnumWindowStationsA(WINSTAENUMPROCA,LPARAM);
+BOOL        WINAPI EnumWindowStationsW(WINSTAENUMPROCW,LPARAM);
+#define     EnumWindowStations WINELIB_NAME_AW(EnumWindowStations)
 BOOL      WINAPI EqualRect(const RECT*,const RECT*);
 BOOL      WINAPI EscapeCommFunction(HANDLE,UINT);
 INT       WINAPI ExcludeUpdateRgn(HDC,HWND);
@@ -3556,6 +3565,7 @@
 BOOL      WINAPI GetWindowPlacement(HWND,LPWINDOWPLACEMENT);
 BOOL      WINAPI GetWindowRect(HWND,LPRECT);
 INT       WINAPI GetWindowRgn(HWND,HRGN);
+HWINSTA     WINAPI GetProcessWindowStation(void);
 #define     GetWindowTask(hwnd) ((HTASK)GetWindowThreadProcessId(hwnd,NULL))
 INT       WINAPI GetWindowTextA(HWND,LPSTR,INT);
 INT       WINAPI GetWindowTextW(HWND,LPWSTR,INT);
@@ -3668,6 +3678,9 @@
 BOOL      WINAPI OffsetRect(LPRECT,INT,INT);
 BOOL      WINAPI OpenClipboard(HWND);
 BOOL      WINAPI OpenIcon(HWND);
+HWINSTA     WINAPI OpenWindowStationA(LPSTR,BOOL,ACCESS_MASK);
+HWINSTA     WINAPI OpenWindowStationW(LPWSTR,BOOL,ACCESS_MASK);
+#define     OpenWindowStation WINELIB_NAME_AW(OpenWindowStation)
 BOOL      WINAPI PeekMessageA(LPMSG,HWND,UINT,UINT,UINT);
 BOOL      WINAPI PeekMessageW(LPMSG,HWND,UINT,UINT,UINT);
 #define     PeekMessage WINELIB_NAME_AW(PeekMessage)
diff --git a/windows/user.c b/windows/user.c
index 9f603a6..edfa779 100644
--- a/windows/user.c
+++ b/windows/user.c
@@ -537,7 +537,7 @@
 	FIXME_(win32)("(%s,0x%08lx,0x%08lx,%p),stub!\n",debugstr_w(winstation),
 		res1,desiredaccess,lpsa
 	);
-	return 0xdeadcafe;
+	return (HWINSTA)0xdeadcafe;
 }
 
 /***********************************************************************