diff -r 8f7523d95904 lib-src/make-mswin-unicode.pl
--- a/lib-src/make-mswin-unicode.pl	Fri Feb 27 17:48:44 2015 +0000
+++ b/lib-src/make-mswin-unicode.pl	Wed Apr 01 10:26:30 2015 -0700
@@ -182,8 +182,10 @@
 my $argmatch_re = "(?:($typetoken_re+)(${tok_ch}+)?(?: OPTIONAL)?)";
 # regexp matching a parenthesized argument list in a prototype
 my $args_re = "\\(((?:${ws_re}${arg_re}${ws_re},)*${ws_re}${arg_re}${ws_re})\\)";
-# regexp matching a return type in a protype
-my $rettype_re = "(SHSTDAPI_\\([${tok_ch} *]+\\)|${tok_ch}" . "[A-Za-z_0-9 \t\n\r\f]*?${tok_ch})";
+# regexp matching a return type in a protype -- this one from Vin
+my $rettype_re = "(SHSTDAPI_\\(${tok_ch}+${ws_re}\\*?\\)|${tok_ch}" .
+"[A-Za-z_0-9 \t\n\r\f]*?${tok_ch})";
+# HST "(SHSTDAPI_\\([${tok_ch} *]+\\)|${tok_ch}" . "[A-Za-z_0-9 \t\n\r\f]*?${tok_ch})";
 # regexp matching a function name
 my $funname_re = "(${tok_ch}+)";
 # Regexp matching a function prototype, $1 = rettype, $2 = name, $3 = args
diff -r 8f7523d95904 nt/xemacs.mak
--- a/nt/xemacs.mak	Fri Feb 27 17:48:44 2015 +0000
+++ b/nt/xemacs.mak	Wed Apr 01 10:26:30 2015 -0700
@@ -793,7 +793,7 @@
 INCLUDES=-I$(NT)\inc -I$(SRC) $(OPT_INCLUDES)
 
 DEFINES=$(OPT_DEFINES) \
-	-DWIN32_LEAN_AND_MEAN -DWIN32_NATIVE -Demacs \
+	-DWIN32_LEAN_AND_MEAN -DWIN32_NATIVE -Demacs -DNTDDI_VERSION=NTDDI_WIN2K -D_WIN32_WINNT=_WIN32_WINNT_WIN2K \
 	-DHAVE_CONFIG_H $(PROGRAM_DEFINES) $(PATH_DEFINES)
 
 CFLAGS_NO_OPT=-nologo -W3 -DSTRICT $(DEBUG_FLAGS_COMPILE)
diff -r 8f7523d95904 src/intl-auto-encap-win32.c
--- a/src/intl-auto-encap-win32.c	Fri Feb 27 17:48:44 2015 +0000
+++ b/src/intl-auto-encap-win32.c	Wed Apr 01 10:26:30 2015 -0700
@@ -2413,9 +2385,9 @@
 qxeReadConsole (HANDLE hConsoleInput, LPVOID lpBuffer, DWORD nNumberOfCharsToRead, LPDWORD lpNumberOfCharsRead, LPVOID lpReserved)
 {
   if (XEUNICODE_P)
-    return ReadConsoleW (hConsoleInput, lpBuffer, nNumberOfCharsToRead, lpNumberOfCharsRead, lpReserved);
-  else
-    return ReadConsoleA (hConsoleInput, lpBuffer, nNumberOfCharsToRead, lpNumberOfCharsRead, lpReserved);
+    return ReadConsoleW (hConsoleInput, lpBuffer, nNumberOfCharsToRead, lpNumberOfCharsRead, (PCONSOLE_READCONSOLE_CONTROL)lpReserved);
+  else
+    return ReadConsoleA (hConsoleInput, lpBuffer, nNumberOfCharsToRead, lpNumberOfCharsRead, (PCONSOLE_READCONSOLE_CONTROL)lpReserved);
 }
 
 WINBOOL
diff -r 8f7523d95904 src/intl-encap-win32.c
--- a/src/intl-encap-win32.c	Fri Feb 27 17:48:44 2015 +0000
+++ b/src/intl-encap-win32.c	Wed Apr 01 10:26:30 2015 -0700
@@ -225,7 +225,7 @@
 yes GetComputerName
 yes SetComputerName
 yes GetUserName
-yes LogonUser
+skip LogonUser HST_LPC...pblm_unused
 no GetCurrentHwProfile split-sized LPHW_PROFILE_INFO; NT 4.0+ only
 no GetVersionEx split-sized LPOSVERSIONINFO
 no CreateJobObject NT 5.0+ only
@@ -298,10 +298,10 @@
 yes LoadKeyboardLayout
 yes GetKeyboardLayoutName
 no CreateDesktop split-sized LPDEVMODE
-yes OpenDesktop
+skip OpenDesktop HST_LPC...pblm_unused
 split EnumDesktops DESKTOPENUMPROC // callback fun differs only in string pointer type
 override HWINSTA CreateWindowStationW(LPWSTR,DWORD,DWORD,LPSECURITY_ATTRIBUTES); error arg 1, VS6 prototype, missing const
-yes OpenWindowStation
+skip OpenWindowStation HST_LPC...pblm_unused
 split EnumWindowStations WINSTAENUMPROC // callback fun differs only in string pointer type
 yes GetUserObjectInformation
 yes SetUserObjectInformation
@@ -381,8 +381,8 @@
 yes DrawTextEx NT 4.0+ only
 yes GrayString
 yes DrawState NT 4.0+ only
-yes TabbedTextOut
-yes GetTabbedTextExtent
+skip TabbedTextOut HST_LPC...pblm_unused
+skip GetTabbedTextExtent HST_LPC...pblm_unused
 yes SetProp
 yes GetProp
 yes RemoveProp
@@ -1299,7 +1299,7 @@
 
 split CreateProcessAsUser LPSTARTUPINFO
 split GetStartupInfo LPSTARTUPINFO
-review CreateProcess HST: new? -- needs review
+split CreateProcess LPSTARTUPINFO
 
 file SECURITYBASEAPI.H
 
diff -r 8f7523d95904 src/syswindows.h
--- a/src/syswindows.h	Fri Feb 27 17:48:44 2015 +0000
+++ b/src/syswindows.h	Wed Apr 01 10:26:30 2015 -0700
@@ -603,6 +603,49 @@
    intl-auto-encap-win32.[ch]. */
 typedef LPCVOID PCVOID;
 
+/* from Vin */
+
+typedef int WINBOOL;
+/*typedef intptr_t LONG_PTR;
+typedef uintptr_t ULONG_PTR;
+typedef uintptr_t DWORD_PTR;*/
+
+typedef ITEMIDLIST ITEMIDLIST_ABSOLUTE;
+
+typedef ITEMIDLIST_ABSOLUTE *PIDLIST_ABSOLUTE;
+typedef const ITEMIDLIST_ABSOLUTE *PCIDLIST_ABSOLUTE;
+
+/* Defined in w32api/winuser.h */
+#define GCLP_MENUNAME (-8)
+#define GCLP_HBRBACKGROUND (-10)
+#define GCLP_HCURSOR (-12)
+#define GCLP_HICON (-14)
+#define GCLP_HMODULE (-16)
+#define GCLP_WNDPROC (-24)
+#define GCLP_HICONSM (-34)
+#define GWLP_USERDATA (-21)
+#define GWLP_WNDPROC (-4)
+#define GWLP_HINSTANCE (-6)
+#define GWLP_HWNDPARENT (-8)
+#define GWLP_USERDATA (-21)
+#define GWLP_ID (-12)
+
+#define DWL_MSGRESULT 0
+#define DWL_DLGPROC 4
+#define DWL_USER 8
+
+#ifdef _WIN64
+
+#undef DWL_MSGRESULT
+#undef DWL_DLGPROC
+#undef DWL_USER
+#endif
+
+#define DWLP_MSGRESULT 0
+#define DWLP_DLGPROC DWLP_MSGRESULT + sizeof(LRESULT)
+#define DWLP_USER DWLP_DLGPROC + sizeof(DLGPROC)
+
+
 #endif /* CYGWIN_HEADERS */
 
 /* Not in VC 6 */
