diff --git a/dlls/user/misc.c b/dlls/user/misc.c
index 16e72f646f1fde2c2a0432c60db06c5810ef393c..443874bdea1d5cbf721c16da4cb0ad16aac53dfb 100644
--- a/dlls/user/misc.c
+++ b/dlls/user/misc.c
@@ -51,10 +51,10 @@ void WINAPI SetLastErrorEx(
  *    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 c9ef0a2bc312ed6cb24e925c75c603cf743b6ae5..7de33ea31309e3038148220cf0801f64dea1fb4a 100644
--- a/include/windef.h
+++ b/include/windef.h
@@ -67,7 +67,6 @@ DECLARE_OLD_HANDLE(HBRUSH);
 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(HTASK);
 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 1718aa427d30cfd2a9bbffc43a2d5284a20ccb8f..75c8feabf845c3b991d3ac0c686bc407cc7073cf 100644
--- a/include/winuser.h
+++ b/include/winuser.h
@@ -63,6 +63,9 @@ DECL_WINELIB_TYPE_AW(PROPENUMPROCEX)
 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 @@ HACCEL      WINAPI CreateAcceleratorTableW(LPACCEL,INT);
 #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 EnumPropsA(HWND,PROPENUMPROCA);
 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 @@ LONG        WINAPI GetWindowLongW(HWND,INT);
 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 OemToCharBuffW(LPCSTR,LPWSTR,DWORD);
 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 9f603a6e62d404733e3fb95c0cff9e899331f358..edfa779848bedc0c0334b043aed6e99e654adcb3 100644
--- a/windows/user.c
+++ b/windows/user.c
@@ -537,7 +537,7 @@ HWINSTA WINAPI CreateWindowStationW(
 	FIXME_(win32)("(%s,0x%08lx,0x%08lx,%p),stub!\n",debugstr_w(winstation),
 		res1,desiredaccess,lpsa
 	);
-	return 0xdeadcafe;
+	return (HWINSTA)0xdeadcafe;
 }
 
 /***********************************************************************