diff src/intl-auto-encap-win32.c @ 5920:0f2338afbabf cygwin

Minimum necessary to get started: sufficient to compile OK, run -nw, but not with window
author Henry Thompson <ht@markup.co.uk>
date Mon, 21 Apr 2014 11:42:50 +0100
parents 7eec2a1f3412
children 68639fb08af8
line wrap: on
line diff
--- a/src/intl-auto-encap-win32.c	Thu Dec 16 11:20:17 2021 +0000
+++ b/src/intl-auto-encap-win32.c	Mon Apr 21 11:42:50 2014 +0100
@@ -13,139 +13,51 @@
 
 
 /*----------------------------------------------------------------------*/
-/*                       Processing file WINCON.H                       */
-/*----------------------------------------------------------------------*/
-
-/* Error if FillConsoleOutputCharacter used: split CHAR */
-
-DWORD
-qxeGetConsoleTitle (Extbyte * arg1, DWORD arg2)
-{
-  if (XEUNICODE_P)
-    return GetConsoleTitleW ((LPWSTR) arg1, arg2);
-  else
-    return GetConsoleTitleA ((LPSTR) arg1, arg2);
-}
-
-BOOL
-qxePeekConsoleInput (HANDLE arg1, PINPUT_RECORD arg2, DWORD arg3, PDWORD arg4)
-{
-  if (XEUNICODE_P)
-    return PeekConsoleInputW (arg1, arg2, arg3, arg4);
-  else
-    return PeekConsoleInputA (arg1, arg2, arg3, arg4);
-}
-
-BOOL
-qxeReadConsole (HANDLE arg1, PVOID arg2, DWORD arg3, PDWORD arg4, PVOID arg5)
-{
-  if (XEUNICODE_P)
-    return ReadConsoleW (arg1, arg2, arg3, arg4, arg5);
-  else
-    return ReadConsoleA (arg1, arg2, arg3, arg4, arg5);
-}
-
-BOOL
-qxeReadConsoleInput (HANDLE arg1, PINPUT_RECORD arg2, DWORD arg3, PDWORD arg4)
-{
-  if (XEUNICODE_P)
-    return ReadConsoleInputW (arg1, arg2, arg3, arg4);
-  else
-    return ReadConsoleInputA (arg1, arg2, arg3, arg4);
-}
-
-BOOL
-qxeReadConsoleOutputCharacter (HANDLE arg1, Extbyte * arg2, DWORD arg3, COORD arg4, PDWORD arg5)
-{
-  if (XEUNICODE_P)
-    return ReadConsoleOutputCharacterW (arg1, (LPWSTR) arg2, arg3, arg4, arg5);
-  else
-    return ReadConsoleOutputCharacterA (arg1, (LPSTR) arg2, arg3, arg4, arg5);
-}
-
-BOOL
-qxeReadConsoleOutput (HANDLE arg1, PCHAR_INFO arg2, COORD arg3, COORD arg4, PSMALL_RECT arg5)
-{
-  if (XEUNICODE_P)
-    return ReadConsoleOutputW (arg1, arg2, arg3, arg4, arg5);
-  else
-    return ReadConsoleOutputA (arg1, arg2, arg3, arg4, arg5);
-}
-
-BOOL
-qxeScrollConsoleScreenBuffer (HANDLE arg1, const SMALL_RECT* arg2, const SMALL_RECT* arg3, COORD arg4, const CHAR_INFO* arg5)
-{
-  if (XEUNICODE_P)
-    return ScrollConsoleScreenBufferW (arg1, arg2, arg3, arg4, arg5);
-  else
-    return ScrollConsoleScreenBufferA (arg1, arg2, arg3, arg4, arg5);
-}
-
-BOOL
-qxeSetConsoleTitle (const Extbyte * arg1)
-{
-  if (XEUNICODE_P)
-    return SetConsoleTitleW ((LPCWSTR) arg1);
-  else
-    return SetConsoleTitleA ((LPCSTR) arg1);
-}
-
-BOOL
-qxeWriteConsole (HANDLE arg1, PCVOID arg2, DWORD arg3, PDWORD arg4, PVOID arg5)
-{
-  if (XEUNICODE_P)
-    return WriteConsoleW (arg1, arg2, arg3, arg4, arg5);
-  else
-    return WriteConsoleA (arg1, arg2, arg3, arg4, arg5);
-}
-
-BOOL
-qxeWriteConsoleInput (HANDLE arg1, const INPUT_RECORD* arg2, DWORD arg3, PDWORD arg4)
-{
-  if (XEUNICODE_P)
-    return WriteConsoleInputW (arg1, arg2, arg3, arg4);
-  else
-    return WriteConsoleInputA (arg1, arg2, arg3, arg4);
-}
-
-BOOL
-qxeWriteConsoleOutput (HANDLE arg1, const CHAR_INFO* arg2, COORD arg3, COORD arg4, PSMALL_RECT arg5)
-{
-  if (XEUNICODE_P)
-    return WriteConsoleOutputW (arg1, arg2, arg3, arg4, arg5);
-  else
-    return WriteConsoleOutputA (arg1, arg2, arg3, arg4, arg5);
-}
-
-BOOL
-qxeWriteConsoleOutputCharacter (HANDLE arg1, const Extbyte * arg2, DWORD arg3, COORD arg4, PDWORD arg5)
-{
-  if (XEUNICODE_P)
-    return WriteConsoleOutputCharacterW (arg1, (LPCWSTR) arg2, arg3, arg4, arg5);
-  else
-    return WriteConsoleOutputCharacterA (arg1, (LPCSTR) arg2, arg3, arg4, arg5);
-}
-
-
-/*----------------------------------------------------------------------*/
 /*                      Processing file SHELLAPI.H                      */
 /*----------------------------------------------------------------------*/
 
+UINT
+qxeDragQueryFile (HDROP hDrop, UINT iFile, Extbyte * lpszFile, UINT cch)
+{
+  if (XEUNICODE_P)
+    return DragQueryFileW (hDrop, iFile, (LPWSTR) lpszFile, cch);
+  else
+    return DragQueryFileA (hDrop, iFile, (LPSTR) lpszFile, cch);
+}
+
+HINSTANCE
+qxeShellExecute (HWND hwnd, const Extbyte * lpOperation, const Extbyte * lpFile, const Extbyte * lpParameters, const Extbyte * lpDirectory, INT nShowCmd)
+{
+  if (XEUNICODE_P)
+    return ShellExecuteW (hwnd, (LPCWSTR) lpOperation, (LPCWSTR) lpFile, (LPCWSTR) lpParameters, (LPCWSTR) lpDirectory, nShowCmd);
+  else
+    return ShellExecuteA (hwnd, (LPCSTR) lpOperation, (LPCSTR) lpFile, (LPCSTR) lpParameters, (LPCSTR) lpDirectory, nShowCmd);
+}
+
+HINSTANCE
+qxeFindExecutable (const Extbyte * lpFile, const Extbyte * lpDirectory, Extbyte * lpResult)
+{
+  if (XEUNICODE_P)
+    return FindExecutableW ((LPCWSTR) lpFile, (LPCWSTR) lpDirectory, (LPWSTR) lpResult);
+  else
+    return FindExecutableA ((LPCSTR) lpFile, (LPCSTR) lpDirectory, (LPSTR) lpResult);
+}
+
 /* Error if CommandLineToArgv used: Unicode-only */
 
-UINT
-qxeDragQueryFile (HDROP arg1, UINT arg2, Extbyte * arg3, UINT arg4)
-{
-  if (XEUNICODE_P)
-    return DragQueryFileW (arg1, arg2, (LPWSTR) arg3, arg4);
-  else
-    return DragQueryFileA (arg1, arg2, (LPSTR) arg3, arg4);
+INT
+qxeShellAbout (HWND hWnd, const Extbyte * szApp, const Extbyte * szOtherStuff, HICON hIcon)
+{
+  if (XEUNICODE_P)
+    return ShellAboutW (hWnd, (LPCWSTR) szApp, (LPCWSTR) szOtherStuff, hIcon);
+  else
+    return ShellAboutA (hWnd, (LPCSTR) szApp, (LPCSTR) szOtherStuff, hIcon);
 }
 
 /* NOTE: error arg2, Cygwin prototype, extra const.
    NOTE: Prototype manually overridden.
          Header file claims:
-           HICON WINAPI ExtractAssociatedIcon(HINSTANCE,LPCWSTR,PWORD)
+           SHSTDAPI_(HICON) ExtractAssociatedIcon(HINSTANCE hInst, LPWSTR pszIconPath, WORD *piIcon)
          Overridden with:
            HICON ExtractAssociatedIcon(HINSTANCE, LPWSTR, LPWORD)
          Differences in return-type qualifiers, e.g. WINAPI, are not important.
@@ -159,86 +71,73 @@
     return ExtractAssociatedIconA (arg1, (LPSTR) arg2, arg3);
 }
 
+/* Error if ExtractAssociatedIconEx used: HST: new? -- needs review */
+
 HICON
-qxeExtractIcon (HINSTANCE arg1, const Extbyte * arg2, UINT arg3)
-{
-  if (XEUNICODE_P)
-    return ExtractIconW (arg1, (LPCWSTR) arg2, arg3);
-  else
-    return ExtractIconA (arg1, (LPCSTR) arg2, arg3);
-}
+qxeExtractIcon (HINSTANCE hInst, const Extbyte * pszExeFileName, UINT nIconIndex)
+{
+  if (XEUNICODE_P)
+    return ExtractIconW (hInst, (LPCWSTR) pszExeFileName, nIconIndex);
+  else
+    return ExtractIconA (hInst, (LPCSTR) pszExeFileName, nIconIndex);
+}
+
+#if !defined (CYGWIN_HEADERS)
+
+/* NOTE: NT 4.0+ only */
+DWORD
+qxeDoEnvironmentSubst (Extbyte * pszSrc, UINT cchSrc)
+{
+  if (XEUNICODE_P)
+    return DoEnvironmentSubstW ((LPWSTR) pszSrc, cchSrc);
+  else
+    return DoEnvironmentSubstA ((LPSTR) pszSrc, cchSrc);
+}
+
+#endif /* !defined (CYGWIN_HEADERS) */
 
 /* NOTE: NT 4.0+ only, former error in Cygwin prototype but no more (Cygwin 1.7, 1-30-10) */
 UINT
-qxeExtractIconEx (const Extbyte * arg1, int arg2, HICON* arg3, HICON* arg4, UINT arg5)
-{
-  if (XEUNICODE_P)
-    return ExtractIconExW ((LPCWSTR) arg1, arg2, arg3, arg4, arg5);
-  else
-    return ExtractIconExA ((LPCSTR) arg1, arg2, arg3, arg4, arg5);
-}
-
-HINSTANCE
-qxeFindExecutable (const Extbyte * arg1, const Extbyte * arg2, Extbyte * arg3)
-{
-  if (XEUNICODE_P)
-    return FindExecutableW ((LPCWSTR) arg1, (LPCWSTR) arg2, (LPWSTR) arg3);
-  else
-    return FindExecutableA ((LPCSTR) arg1, (LPCSTR) arg2, (LPSTR) arg3);
-}
-
-/* Error if Shell_NotifyIcon used: split-sized NOTIFYICONDATA, NT 4.0+ only */
-
-int
-qxeShellAbout (HWND arg1, const Extbyte * arg2, const Extbyte * arg3, HICON arg4)
-{
-  if (XEUNICODE_P)
-    return ShellAboutW (arg1, (LPCWSTR) arg2, (LPCWSTR) arg3, arg4);
-  else
-    return ShellAboutA (arg1, (LPCSTR) arg2, (LPCSTR) arg3, arg4);
-}
-
-HINSTANCE
-qxeShellExecute (HWND arg1, const Extbyte * arg2, const Extbyte * arg3, const Extbyte * arg4, const Extbyte * arg5, INT arg6)
-{
-  if (XEUNICODE_P)
-    return ShellExecuteW (arg1, (LPCWSTR) arg2, (LPCWSTR) arg3, (LPCWSTR) arg4, (LPCWSTR) arg5, arg6);
-  else
-    return ShellExecuteA (arg1, (LPCSTR) arg2, (LPCSTR) arg3, (LPCSTR) arg4, (LPCSTR) arg5, arg6);
-}
-
-/* NOTE: NT 4.0+ only */
-BOOL
-qxeShellExecuteEx (LPSHELLEXECUTEINFOW arg1)
-{
-  if (XEUNICODE_P)
-    return ShellExecuteExW (arg1);
-  else
-    return ShellExecuteExA ((LPSHELLEXECUTEINFOA) arg1);
+qxeExtractIconEx (const Extbyte * lpszFile, int nIconIndex, HICON * phiconLarge, HICON * phiconSmall, UINT nIcons)
+{
+  if (XEUNICODE_P)
+    return ExtractIconExW ((LPCWSTR) lpszFile, nIconIndex, phiconLarge, phiconSmall, nIcons);
+  else
+    return ExtractIconExA ((LPCSTR) lpszFile, nIconIndex, phiconLarge, phiconSmall, nIcons);
 }
 
 /* NOTE: NT 4.0+ only */
 int
-qxeSHFileOperation (LPSHFILEOPSTRUCTW arg1)
-{
-  if (XEUNICODE_P)
-    return SHFileOperationW (arg1);
-  else
-    return SHFileOperationA ((LPSHFILEOPSTRUCTA) arg1);
-}
-
-/* Skipping SHGetFileInfo because split-sized SHFILEINFO, NT 4.0+ only */
+qxeSHFileOperation (LPSHFILEOPSTRUCTW lpFileOp)
+{
+  if (XEUNICODE_P)
+    return SHFileOperationW (lpFileOp);
+  else
+    return SHFileOperationA ((LPSHFILEOPSTRUCTA) lpFileOp);
+}
+
+/* NOTE: NT 4.0+ only */
+WINBOOL
+qxeShellExecuteEx (SHELLEXECUTEINFOW * pExecInfo)
+{
+  if (XEUNICODE_P)
+    return ShellExecuteExW (pExecInfo);
+  else
+    return ShellExecuteExA (pExecInfo);
+}
+
+/* Error if SHCreateProcessAsUser used: HST: new? -- needs review */
 
 #if !defined (CYGWIN_HEADERS)
 
 /* NOTE: NT 4.0+ only */
 HRESULT
-qxeSHQueryRecycleBin (const Extbyte * arg1, LPSHQUERYRBINFO arg2)
-{
-  if (XEUNICODE_P)
-    return SHQueryRecycleBinW ((LPCWSTR) arg1, arg2);
-  else
-    return SHQueryRecycleBinA ((LPCSTR) arg1, arg2);
+qxeSHQueryRecycleBin (const Extbyte * pszRootPath, LPSHQUERYRBINFO pSHQueryRBInfo)
+{
+  if (XEUNICODE_P)
+    return SHQueryRecycleBinW ((LPCWSTR) pszRootPath, pSHQueryRBInfo);
+  else
+    return SHQueryRecycleBinA ((LPCSTR) pszRootPath, pSHQueryRBInfo);
 }
 
 #endif /* !defined (CYGWIN_HEADERS) */
@@ -247,16 +146,58 @@
 
 /* NOTE: NT 4.0+ only */
 HRESULT
-qxeSHEmptyRecycleBin (HWND arg1, const Extbyte * arg2, DWORD arg3)
-{
-  if (XEUNICODE_P)
-    return SHEmptyRecycleBinW (arg1, (LPCWSTR) arg2, arg3);
-  else
-    return SHEmptyRecycleBinA (arg1, (LPCSTR) arg2, arg3);
+qxeSHEmptyRecycleBin (HWND hwnd, const Extbyte * pszRootPath, DWORD dwFlags)
+{
+  if (XEUNICODE_P)
+    return SHEmptyRecycleBinW (hwnd, (LPCWSTR) pszRootPath, dwFlags);
+  else
+    return SHEmptyRecycleBinA (hwnd, (LPCSTR) pszRootPath, dwFlags);
 }
 
 #endif /* !defined (CYGWIN_HEADERS) */
 
+/* Error if Shell_NotifyIcon used: split-sized NOTIFYICONDATA, NT 4.0+ only */
+
+/* Skipping SHGetFileInfo because split-sized SHFILEINFO, NT 4.0+ only */
+
+/* Error if SHGetDiskFreeSpaceEx used: HST: new? -- needs review */
+
+#if !defined (CYGWIN_HEADERS)
+
+/* NOTE: NT 4.0+ only */
+WINBOOL
+qxeSHGetNewLinkInfo (const Extbyte * pszLinkTo, const Extbyte * pszDir, Extbyte * pszName, WINBOOL * pfMustCopy, UINT uFlags)
+{
+  if (XEUNICODE_P)
+    return SHGetNewLinkInfoW ((LPCWSTR) pszLinkTo, (LPCWSTR) pszDir, (LPWSTR) pszName, pfMustCopy, uFlags);
+  else
+    return SHGetNewLinkInfoA ((LPCSTR) pszLinkTo, (LPCSTR) pszDir, (LPSTR) pszName, pfMustCopy, uFlags);
+}
+
+#endif /* !defined (CYGWIN_HEADERS) */
+
+#if !defined (CYGWIN_HEADERS)
+
+/* NOTE: NT 4.0+ only */
+WINBOOL
+qxeSHInvokePrinterCommand (HWND hwnd, UINT uAction, const Extbyte * lpBuf1, const Extbyte * lpBuf2, WINBOOL fModal)
+{
+  if (XEUNICODE_P)
+    return SHInvokePrinterCommandW (hwnd, uAction, (LPCWSTR) lpBuf1, (LPCWSTR) lpBuf2, fModal);
+  else
+    return SHInvokePrinterCommandA (hwnd, uAction, (LPCSTR) lpBuf1, (LPCSTR) lpBuf2, fModal);
+}
+
+#endif /* !defined (CYGWIN_HEADERS) */
+
+/* Error if IsLFNDrive used: HST: new? -- needs review */
+
+/* Error if SHEnumerateUnreadMailAccounts used: HST: new? -- needs review */
+
+/* Error if SHGetUnreadMailCount used: HST: new? -- needs review */
+
+/* Error if SHSetUnreadMailCount used: HST: new? -- needs review */
+
 
 /*----------------------------------------------------------------------*/
 /*                      Processing file WINSPOOL.H                      */
@@ -264,25 +205,45 @@
 
 #if defined (HAVE_MS_WINDOWS)
 
-/* Error if AddForm used: not used, complicated interface with split structures */
+/* NOTE: #### problems with DEVMODE pointer in PRINTER_INFO_2 */
+WINBOOL
+qxeEnumPrinters (DWORD Flags, Extbyte * Name, DWORD Level, LPBYTE pPrinterEnum, DWORD cbBuf, LPDWORD pcbNeeded, LPDWORD pcReturned)
+{
+  if (XEUNICODE_P)
+    return EnumPrintersW (Flags, (LPWSTR) Name, Level, pPrinterEnum, cbBuf, pcbNeeded, pcReturned);
+  else
+    return EnumPrintersA (Flags, (LPSTR) Name, Level, pPrinterEnum, cbBuf, pcbNeeded, pcReturned);
+}
+
+#endif /* defined (HAVE_MS_WINDOWS) */
+
+#if defined (HAVE_MS_WINDOWS)
+
+/* Skipping OpenPrinter because split-sized DEVMODE pointer in split PRINTER_DEFAULTS */
 
 #endif /* defined (HAVE_MS_WINDOWS) */
 
 #if defined (HAVE_MS_WINDOWS)
 
-/* Error if AddJob used: not used, complicated interface with split structures */
+/* Error if ResetPrinter used: split-sized DEVMODE pointer in split PRINTER_DEFAULTS */
 
 #endif /* defined (HAVE_MS_WINDOWS) */
 
 #if defined (HAVE_MS_WINDOWS)
 
-/* Error if AddMonitor used: not used, complicated interface with split structures */
+/* Error if SetJob used: split-sized DEVMODE pointer in split JOB_INFO_2 */
 
 #endif /* defined (HAVE_MS_WINDOWS) */
 
 #if defined (HAVE_MS_WINDOWS)
 
-/* Error if AddPort used: not used, complicated interface with split structures */
+/* Error if GetJob used: split-sized DEVMODE pointer in split JOB_INFO_2 */
+
+#endif /* defined (HAVE_MS_WINDOWS) */
+
+#if defined (HAVE_MS_WINDOWS)
+
+/* Error if EnumJobs used: split-sized DEVMODE pointer in split JOB_INFO_2 */
 
 #endif /* defined (HAVE_MS_WINDOWS) */
 
@@ -294,7 +255,13 @@
 
 #if defined (HAVE_MS_WINDOWS)
 
-/* Error if AddPrinterConnection used: not used, complicated interface with split structures */
+/* Error if SetPrinter used: split-sized DEVMODE pointer in split PRINTER_INFO_2 */
+
+#endif /* defined (HAVE_MS_WINDOWS) */
+
+#if defined (HAVE_MS_WINDOWS)
+
+/* Error if GetPrinter used: split-sized DEVMODE pointer in split PRINTER_INFO_2 */
 
 #endif /* defined (HAVE_MS_WINDOWS) */
 
@@ -306,109 +273,7 @@
 
 #if defined (HAVE_MS_WINDOWS)
 
-/* Error if AddPrintProcessor used: not used, complicated interface with split structures */
-
-#endif /* defined (HAVE_MS_WINDOWS) */
-
-#if defined (HAVE_MS_WINDOWS)
-
-/* Error if AddPrintProvidor used: not used, complicated interface with split structures */
-
-#endif /* defined (HAVE_MS_WINDOWS) */
-
-#if defined (HAVE_MS_WINDOWS)
-
-/* Error if AdvancedDocumentProperties used: not used, complicated interface with split structures */
-
-#endif /* defined (HAVE_MS_WINDOWS) */
-
-#if defined (HAVE_MS_WINDOWS)
-
-/* Error if ConfigurePort used: not used, complicated interface with split structures */
-
-#endif /* defined (HAVE_MS_WINDOWS) */
-
-#if defined (HAVE_MS_WINDOWS)
-
-/* Error if DeleteForm used: not used, complicated interface with split structures */
-
-#endif /* defined (HAVE_MS_WINDOWS) */
-
-#if defined (HAVE_MS_WINDOWS)
-
-/* Error if DeleteMonitor used: not used, complicated interface with split structures */
-
-#endif /* defined (HAVE_MS_WINDOWS) */
-
-#if defined (HAVE_MS_WINDOWS)
-
-/* Error if DeletePort used: not used, complicated interface with split structures */
-
-#endif /* defined (HAVE_MS_WINDOWS) */
-
-#if defined (HAVE_MS_WINDOWS)
-
-/* Error if DeletePrinterConnection used: not used, complicated interface with split structures */
-
-#endif /* defined (HAVE_MS_WINDOWS) */
-
-#if defined (HAVE_MS_WINDOWS)
-
-/* Error if DeletePrinterData used: not used, complicated interface with split structures */
-
-#endif /* defined (HAVE_MS_WINDOWS) */
-
-#if defined (HAVE_MS_WINDOWS)
-
-/* Error if DeletePrinterDriver used: not used, complicated interface with split structures */
-
-#endif /* defined (HAVE_MS_WINDOWS) */
-
-#if defined (HAVE_MS_WINDOWS)
-
-/* Error if DeletePrintProcessor used: not used, complicated interface with split structures */
-
-#endif /* defined (HAVE_MS_WINDOWS) */
-
-#if defined (HAVE_MS_WINDOWS)
-
-/* Error if DeletePrintProvidor used: not used, complicated interface with split structures */
-
-#endif /* defined (HAVE_MS_WINDOWS) */
-
-#if defined (HAVE_MS_WINDOWS)
-
-/* Skipping DocumentProperties because split-sized DEVMODE, error in Cygwin prototype */
-
-#endif /* defined (HAVE_MS_WINDOWS) */
-
-#if defined (HAVE_MS_WINDOWS)
-
-/* Error if EnumForms used: not used, complicated interface with split structures */
-
-#endif /* defined (HAVE_MS_WINDOWS) */
-
-#if defined (HAVE_MS_WINDOWS)
-
-/* Error if EnumJobs used: split-sized DEVMODE pointer in split JOB_INFO_2 */
-
-#endif /* defined (HAVE_MS_WINDOWS) */
-
-#if defined (HAVE_MS_WINDOWS)
-
-/* Error if EnumMonitors used: not used, complicated interface with split structures */
-
-#endif /* defined (HAVE_MS_WINDOWS) */
-
-#if defined (HAVE_MS_WINDOWS)
-
-/* Error if EnumPorts used: not used, complicated interface with split structures */
-
-#endif /* defined (HAVE_MS_WINDOWS) */
-
-#if defined (HAVE_MS_WINDOWS)
-
-/* Error if EnumPrinterData used: not used, complicated interface with split structures */
+/* Error if AddPrinterDriverEx used: not used, complicated interface with split structures */
 
 #endif /* defined (HAVE_MS_WINDOWS) */
 
@@ -420,62 +285,6 @@
 
 #if defined (HAVE_MS_WINDOWS)
 
-/* NOTE: #### problems with DEVMODE pointer in PRINTER_INFO_2 */
-BOOL
-qxeEnumPrinters (DWORD arg1, Extbyte * arg2, DWORD arg3, PBYTE arg4, DWORD arg5, PDWORD arg6, PDWORD arg7)
-{
-  if (XEUNICODE_P)
-    return EnumPrintersW (arg1, (LPWSTR) arg2, arg3, arg4, arg5, arg6, arg7);
-  else
-    return EnumPrintersA (arg1, (LPSTR) arg2, arg3, arg4, arg5, arg6, arg7);
-}
-
-#endif /* defined (HAVE_MS_WINDOWS) */
-
-#if defined (HAVE_MS_WINDOWS)
-
-/* Error if EnumPrintProcessorDatatypes used: not used, complicated interface with split structures */
-
-#endif /* defined (HAVE_MS_WINDOWS) */
-
-#if defined (HAVE_MS_WINDOWS)
-
-/* Error if EnumPrintProcessors used: not used, complicated interface with split structures */
-
-#endif /* defined (HAVE_MS_WINDOWS) */
-
-#if defined (HAVE_MS_WINDOWS)
-
-/* Error if GetDefaultPrinter used: Function needs review to determine how to handle it */
-
-#endif /* defined (HAVE_MS_WINDOWS) */
-
-#if defined (HAVE_MS_WINDOWS)
-
-/* Error if GetForm used: not used, complicated interface with split structures */
-
-#endif /* defined (HAVE_MS_WINDOWS) */
-
-#if defined (HAVE_MS_WINDOWS)
-
-/* Error if GetJob used: split-sized DEVMODE pointer in split JOB_INFO_2 */
-
-#endif /* defined (HAVE_MS_WINDOWS) */
-
-#if defined (HAVE_MS_WINDOWS)
-
-/* Error if GetPrinter used: split-sized DEVMODE pointer in split PRINTER_INFO_2 */
-
-#endif /* defined (HAVE_MS_WINDOWS) */
-
-#if defined (HAVE_MS_WINDOWS)
-
-/* Error if GetPrinterData used: not used, complicated interface with split structures */
-
-#endif /* defined (HAVE_MS_WINDOWS) */
-
-#if defined (HAVE_MS_WINDOWS)
-
 /* Error if GetPrinterDriver used: not used, complicated interface with split structures */
 
 #endif /* defined (HAVE_MS_WINDOWS) */
@@ -488,43 +297,97 @@
 
 #if defined (HAVE_MS_WINDOWS)
 
+/* Error if DeletePrinterDriver used: not used, complicated interface with split structures */
+
+#endif /* defined (HAVE_MS_WINDOWS) */
+
+#if defined (HAVE_MS_WINDOWS)
+
+/* Error if DeletePrinterDriverEx used: not used, complicated interface with split structures */
+
+#endif /* defined (HAVE_MS_WINDOWS) */
+
+#if defined (HAVE_MS_WINDOWS)
+
+/* Error if AddPrintProcessor used: not used, complicated interface with split structures */
+
+#endif /* defined (HAVE_MS_WINDOWS) */
+
+#if defined (HAVE_MS_WINDOWS)
+
+/* Error if EnumPrintProcessors used: not used, complicated interface with split structures */
+
+#endif /* defined (HAVE_MS_WINDOWS) */
+
+#if defined (HAVE_MS_WINDOWS)
+
 /* Error if GetPrintProcessorDirectory used: not used, complicated interface with split structures */
 
 #endif /* defined (HAVE_MS_WINDOWS) */
 
 #if defined (HAVE_MS_WINDOWS)
 
-/* Skipping OpenPrinter because split-sized DEVMODE pointer in split PRINTER_DEFAULTS */
+/* Error if EnumPrintProcessorDatatypes used: not used, complicated interface with split structures */
+
+#endif /* defined (HAVE_MS_WINDOWS) */
+
+#if defined (HAVE_MS_WINDOWS)
+
+/* Error if DeletePrintProcessor used: not used, complicated interface with split structures */
 
 #endif /* defined (HAVE_MS_WINDOWS) */
 
 #if defined (HAVE_MS_WINDOWS)
 
-/* Error if PrinterMessageBox used: not used, complicated interface with split structures */
+/* Error if StartDocPrinter used: not used, complicated interface with split structures */
+
+#endif /* defined (HAVE_MS_WINDOWS) */
+
+#if defined (HAVE_MS_WINDOWS)
+
+/* Error if AddJob used: not used, complicated interface with split structures */
+
+#endif /* defined (HAVE_MS_WINDOWS) */
+
+#if defined (HAVE_MS_WINDOWS)
+
+/* Skipping DocumentProperties because split-sized DEVMODE, error in Cygwin prototype */
 
 #endif /* defined (HAVE_MS_WINDOWS) */
 
 #if defined (HAVE_MS_WINDOWS)
 
-/* Error if ResetPrinter used: split-sized DEVMODE pointer in split PRINTER_DEFAULTS */
+/* Error if AdvancedDocumentProperties used: not used, complicated interface with split structures */
+
+#endif /* defined (HAVE_MS_WINDOWS) */
+
+#if defined (HAVE_MS_WINDOWS)
+
+/* Error if GetPrinterData used: not used, complicated interface with split structures */
 
 #endif /* defined (HAVE_MS_WINDOWS) */
 
 #if defined (HAVE_MS_WINDOWS)
 
-/* Error if SetForm used: not used, complicated interface with split structures */
+/* Error if GetPrinterDataEx used: not used, complicated interface with split structures */
 
 #endif /* defined (HAVE_MS_WINDOWS) */
 
 #if defined (HAVE_MS_WINDOWS)
 
-/* Error if SetJob used: split-sized DEVMODE pointer in split JOB_INFO_2 */
+/* Error if EnumPrinterData used: not used, complicated interface with split structures */
 
 #endif /* defined (HAVE_MS_WINDOWS) */
 
 #if defined (HAVE_MS_WINDOWS)
 
-/* Error if SetPrinter used: split-sized DEVMODE pointer in split PRINTER_INFO_2 */
+/* Error if EnumPrinterDataEx used: not used, complicated interface with split structures */
+
+#endif /* defined (HAVE_MS_WINDOWS) */
+
+#if defined (HAVE_MS_WINDOWS)
+
+/* Error if EnumPrinterKey used: not used, complicated interface with split structures */
 
 #endif /* defined (HAVE_MS_WINDOWS) */
 
@@ -536,252 +399,205 @@
 
 #if defined (HAVE_MS_WINDOWS)
 
-/* Error if StartDocPrinter used: not used, complicated interface with split structures */
+/* Error if SetPrinterDataEx used: not used, complicated interface with split structures */
 
 #endif /* defined (HAVE_MS_WINDOWS) */
 
-
-/*----------------------------------------------------------------------*/
-/*                      Processing file WINNETWK.H                      */
-/*----------------------------------------------------------------------*/
-
 #if defined (HAVE_MS_WINDOWS)
 
-DWORD 
-qxeWNetAddConnection (const Extbyte * arg1, const Extbyte * arg2, const Extbyte * arg3)
-{
-  if (XEUNICODE_P)
-    return WNetAddConnectionW ((LPCWSTR) arg1, (LPCWSTR) arg2, (LPCWSTR) arg3);
-  else
-    return WNetAddConnectionA ((LPCSTR) arg1, (LPCSTR) arg2, (LPCSTR) arg3);
-}
+/* Error if DeletePrinterData used: not used, complicated interface with split structures */
+
+#endif /* defined (HAVE_MS_WINDOWS) */
+
+#if defined (HAVE_MS_WINDOWS)
+
+/* Error if DeletePrinterDataEx used: not used, complicated interface with split structures */
 
 #endif /* defined (HAVE_MS_WINDOWS) */
 
 #if defined (HAVE_MS_WINDOWS)
 
-DWORD 
-qxeWNetAddConnection2 (LPNETRESOURCEW arg1, const Extbyte * arg2, const Extbyte * arg3, DWORD arg4)
-{
-  if (XEUNICODE_P)
-    return WNetAddConnection2W (arg1, (LPCWSTR) arg2, (LPCWSTR) arg3, arg4);
-  else
-    return WNetAddConnection2A ((LPNETRESOURCEA) arg1, (LPCSTR) arg2, (LPCSTR) arg3, arg4);
-}
+/* Error if DeletePrinterKey used: not used, complicated interface with split structures */
 
 #endif /* defined (HAVE_MS_WINDOWS) */
 
 #if defined (HAVE_MS_WINDOWS)
 
-DWORD 
-qxeWNetAddConnection3 (HWND arg1, LPNETRESOURCEW arg2, const Extbyte * arg3, const Extbyte * arg4, DWORD arg5)
-{
-  if (XEUNICODE_P)
-    return WNetAddConnection3W (arg1, arg2, (LPCWSTR) arg3, (LPCWSTR) arg4, arg5);
-  else
-    return WNetAddConnection3A (arg1, (LPNETRESOURCEA) arg2, (LPCSTR) arg3, (LPCSTR) arg4, arg5);
-}
+/* Error if PrinterMessageBox used: not used, complicated interface with split structures */
+
+#endif /* defined (HAVE_MS_WINDOWS) */
+
+#if defined (HAVE_MS_WINDOWS)
+
+/* Error if AddForm used: not used, complicated interface with split structures */
+
+#endif /* defined (HAVE_MS_WINDOWS) */
+
+#if defined (HAVE_MS_WINDOWS)
+
+/* Error if DeleteForm used: not used, complicated interface with split structures */
 
 #endif /* defined (HAVE_MS_WINDOWS) */
 
 #if defined (HAVE_MS_WINDOWS)
 
-DWORD 
-qxeWNetCancelConnection (const Extbyte * arg1, BOOL arg2)
-{
-  if (XEUNICODE_P)
-    return WNetCancelConnectionW ((LPCWSTR) arg1, arg2);
-  else
-    return WNetCancelConnectionA ((LPCSTR) arg1, arg2);
-}
+/* Error if GetForm used: not used, complicated interface with split structures */
 
 #endif /* defined (HAVE_MS_WINDOWS) */
 
 #if defined (HAVE_MS_WINDOWS)
 
-DWORD 
-qxeWNetCancelConnection2 (const Extbyte * arg1, DWORD arg2, BOOL arg3)
-{
-  if (XEUNICODE_P)
-    return WNetCancelConnection2W ((LPCWSTR) arg1, arg2, arg3);
-  else
-    return WNetCancelConnection2A ((LPCSTR) arg1, arg2, arg3);
-}
+/* Error if SetForm used: not used, complicated interface with split structures */
+
+#endif /* defined (HAVE_MS_WINDOWS) */
+
+#if defined (HAVE_MS_WINDOWS)
+
+/* Error if EnumForms used: not used, complicated interface with split structures */
+
+#endif /* defined (HAVE_MS_WINDOWS) */
+
+#if defined (HAVE_MS_WINDOWS)
+
+/* Error if EnumMonitors used: not used, complicated interface with split structures */
 
 #endif /* defined (HAVE_MS_WINDOWS) */
 
 #if defined (HAVE_MS_WINDOWS)
 
-DWORD 
-qxeWNetGetConnection (const Extbyte * arg1, Extbyte * arg2, PDWORD arg3)
-{
-  if (XEUNICODE_P)
-    return WNetGetConnectionW ((LPCWSTR) arg1, (LPWSTR) arg2, arg3);
-  else
-    return WNetGetConnectionA ((LPCSTR) arg1, (LPSTR) arg2, arg3);
-}
+/* Error if AddMonitor used: not used, complicated interface with split structures */
+
+#endif /* defined (HAVE_MS_WINDOWS) */
+
+#if defined (HAVE_MS_WINDOWS)
+
+/* Error if DeleteMonitor used: not used, complicated interface with split structures */
 
 #endif /* defined (HAVE_MS_WINDOWS) */
 
 #if defined (HAVE_MS_WINDOWS)
 
-DWORD 
-qxeWNetUseConnection (HWND arg1, LPNETRESOURCEW arg2, const Extbyte * arg3, const Extbyte * arg4, DWORD arg5, Extbyte * arg6, PDWORD arg7, PDWORD arg8)
-{
-  if (XEUNICODE_P)
-    return WNetUseConnectionW (arg1, arg2, (LPCWSTR) arg3, (LPCWSTR) arg4, arg5, (LPWSTR) arg6, arg7, arg8);
-  else
-    return WNetUseConnectionA (arg1, (LPNETRESOURCEA) arg2, (LPCSTR) arg3, (LPCSTR) arg4, arg5, (LPSTR) arg6, arg7, arg8);
-}
+/* Error if EnumPorts used: not used, complicated interface with split structures */
 
 #endif /* defined (HAVE_MS_WINDOWS) */
 
 #if defined (HAVE_MS_WINDOWS)
 
-/* Error if WNetSetConnection used: Function needs review to determine how to handle it */
+/* Error if AddPort used: not used, complicated interface with split structures */
 
 #endif /* defined (HAVE_MS_WINDOWS) */
 
 #if defined (HAVE_MS_WINDOWS)
 
-/* NOTE: contains split-simple LPNETRESOURCE */
-DWORD 
-qxeWNetConnectionDialog1 (LPCONNECTDLGSTRUCTW arg1)
-{
-  if (XEUNICODE_P)
-    return WNetConnectionDialog1W (arg1);
-  else
-    return WNetConnectionDialog1A ((LPCONNECTDLGSTRUCTA) arg1);
-}
+/* Error if ConfigurePort used: not used, complicated interface with split structures */
 
 #endif /* defined (HAVE_MS_WINDOWS) */
 
 #if defined (HAVE_MS_WINDOWS)
 
-DWORD 
-qxeWNetDisconnectDialog1 (LPDISCDLGSTRUCTW arg1)
-{
-  if (XEUNICODE_P)
-    return WNetDisconnectDialog1W (arg1);
-  else
-    return WNetDisconnectDialog1A ((LPDISCDLGSTRUCTA) arg1);
-}
+/* Error if DeletePort used: not used, complicated interface with split structures */
+
+#endif /* defined (HAVE_MS_WINDOWS) */
+
+#if defined (HAVE_MS_WINDOWS)
+
+/* Error if XcvData used: not used, complicated interface with split structures */
+
+#endif /* defined (HAVE_MS_WINDOWS) */
+
+#if defined (HAVE_MS_WINDOWS)
+
+/* Error if GetDefaultPrinter used: Function needs review to determine how to handle it */
 
 #endif /* defined (HAVE_MS_WINDOWS) */
 
 #if defined (HAVE_MS_WINDOWS)
 
-DWORD 
-qxeWNetOpenEnum (DWORD arg1, DWORD arg2, DWORD arg3, LPNETRESOURCEW arg4, LPHANDLE arg5)
-{
-  if (XEUNICODE_P)
-    return WNetOpenEnumW (arg1, arg2, arg3, arg4, arg5);
-  else
-    return WNetOpenEnumA (arg1, arg2, arg3, (LPNETRESOURCEA) arg4, arg5);
-}
+/* Error if SetDefaultPrinter used: HST: new? -- needs review */
+
+#endif /* defined (HAVE_MS_WINDOWS) */
+
+#if defined (HAVE_MS_WINDOWS)
+
+/* Error if SetPort used: not used, complicated interface with split structures */
 
 #endif /* defined (HAVE_MS_WINDOWS) */
 
 #if defined (HAVE_MS_WINDOWS)
 
-DWORD 
-qxeWNetEnumResource (HANDLE arg1, PDWORD arg2, PVOID arg3, PDWORD arg4)
-{
-  if (XEUNICODE_P)
-    return WNetEnumResourceW (arg1, arg2, arg3, arg4);
-  else
-    return WNetEnumResourceA (arg1, arg2, arg3, arg4);
-}
+/* Error if AddPrinterConnection used: not used, complicated interface with split structures */
 
 #endif /* defined (HAVE_MS_WINDOWS) */
 
 #if defined (HAVE_MS_WINDOWS)
 
-DWORD 
-qxeWNetGetUniversalName (const Extbyte * arg1, DWORD arg2, PVOID arg3, PDWORD arg4)
-{
-  if (XEUNICODE_P)
-    return WNetGetUniversalNameW ((LPCWSTR) arg1, arg2, arg3, arg4);
-  else
-    return WNetGetUniversalNameA ((LPCSTR) arg1, arg2, arg3, arg4);
-}
+/* Error if DeletePrinterConnection used: not used, complicated interface with split structures */
+
+#endif /* defined (HAVE_MS_WINDOWS) */
+
+#if defined (HAVE_MS_WINDOWS)
+
+/* Error if AddPrintProvidor used: not used, complicated interface with split structures */
 
 #endif /* defined (HAVE_MS_WINDOWS) */
 
 #if defined (HAVE_MS_WINDOWS)
 
-DWORD 
-qxeWNetGetUser (const Extbyte * arg1, Extbyte * arg2, PDWORD arg3)
-{
-  if (XEUNICODE_P)
-    return WNetGetUserW ((LPCWSTR) arg1, (LPWSTR) arg2, arg3);
-  else
-    return WNetGetUserA ((LPCSTR) arg1, (LPSTR) arg2, arg3);
-}
+/* Error if DeletePrintProvidor used: not used, complicated interface with split structures */
 
 #endif /* defined (HAVE_MS_WINDOWS) */
 
 #if defined (HAVE_MS_WINDOWS)
 
-DWORD 
-qxeWNetGetProviderName (DWORD arg1, Extbyte * arg2, PDWORD arg3)
-{
-  if (XEUNICODE_P)
-    return WNetGetProviderNameW (arg1, (LPWSTR) arg2, arg3);
-  else
-    return WNetGetProviderNameA (arg1, (LPSTR) arg2, arg3);
-}
+/* Error if AddPrinterConnection2 used: HST: new? -- needs review */
+
+#endif /* defined (HAVE_MS_WINDOWS) */
+
+#if defined (HAVE_MS_WINDOWS)
+
+/* Error if DeletePrinterDriverPackage used: HST: new? -- needs review */
+
+#endif /* defined (HAVE_MS_WINDOWS) */
+
+#if defined (HAVE_MS_WINDOWS)
+
+/* Error if DocumentEvent used: HST: new? -- needs review */
 
 #endif /* defined (HAVE_MS_WINDOWS) */
 
 #if defined (HAVE_MS_WINDOWS)
 
-DWORD 
-qxeWNetGetNetworkInformation (const Extbyte * arg1, LPNETINFOSTRUCT arg2)
-{
-  if (XEUNICODE_P)
-    return WNetGetNetworkInformationW ((LPCWSTR) arg1, arg2);
-  else
-    return WNetGetNetworkInformationA ((LPCSTR) arg1, arg2);
-}
+/* Error if GetCorePrinterDrivers used: HST: new? -- needs review */
 
 #endif /* defined (HAVE_MS_WINDOWS) */
 
 #if defined (HAVE_MS_WINDOWS)
 
-/* Error if WNetGetResourceInformation used: Function needs review to determine how to handle it */
+/* Error if GetPrinterDriver2 used: HST: new? -- needs review */
 
 #endif /* defined (HAVE_MS_WINDOWS) */
 
 #if defined (HAVE_MS_WINDOWS)
 
-/* Error if WNetGetResourceParent used: Function needs review to determine how to handle it */
+/* Error if GetPrinterDriverPackagePath used: HST: new? -- needs review */
 
 #endif /* defined (HAVE_MS_WINDOWS) */
 
 #if defined (HAVE_MS_WINDOWS)
 
-DWORD 
-qxeWNetGetLastError (PDWORD arg1, Extbyte * arg2, DWORD arg3, Extbyte * arg4, DWORD arg5)
-{
-  if (XEUNICODE_P)
-    return WNetGetLastErrorW (arg1, (LPWSTR) arg2, arg3, (LPWSTR) arg4, arg5);
-  else
-    return WNetGetLastErrorA (arg1, (LPSTR) arg2, arg3, (LPSTR) arg4, arg5);
-}
+/* Error if GetSpoolFileHandle used: HST: new? -- needs review */
 
 #endif /* defined (HAVE_MS_WINDOWS) */
 
 #if defined (HAVE_MS_WINDOWS)
 
-DWORD 
-qxeMultinetGetConnectionPerformance (LPNETRESOURCEW arg1, LPNETCONNECTINFOSTRUCT arg2)
-{
-  if (XEUNICODE_P)
-    return MultinetGetConnectionPerformanceW (arg1, arg2);
-  else
-    return MultinetGetConnectionPerformanceA ((LPNETRESOURCEA) arg1, arg2);
-}
+/* Error if OpenPrinter2 used: HST: new? -- needs review */
+
+#endif /* defined (HAVE_MS_WINDOWS) */
+
+#if defined (HAVE_MS_WINDOWS)
+
+/* Error if UploadPrinterDriverPackage used: HST: new? -- needs review */
 
 #endif /* defined (HAVE_MS_WINDOWS) */
 
@@ -790,188 +606,58 @@
 /*                      Processing file WINUSER.H                       */
 /*----------------------------------------------------------------------*/
 
-BOOL
-qxeAppendMenu (HMENU arg1, UINT arg2, UINT_PTR arg3, const Extbyte * arg4)
-{
-  if (XEUNICODE_P)
-    return AppendMenuW (arg1, arg2, arg3, (LPCWSTR) arg4);
-  else
-    return AppendMenuA (arg1, arg2, arg3, (LPCSTR) arg4);
-}
-
-/* Error if BroadcastSystemMessage used: win95 version not split; NT 4.0+ only */
-
-/* Error if BroadcastSystemMessageEx used: Function needs review to determine how to handle it */
-
-#if !defined (CYGWIN_HEADERS)
-
-BOOL
-qxeCallMsgFilter (LPMSG arg1, INT arg2)
-{
-  if (XEUNICODE_P)
-    return CallMsgFilterW (arg1, arg2);
-  else
-    return CallMsgFilterA (arg1, arg2);
-}
-
-#endif /* !defined (CYGWIN_HEADERS) */
-
-/* Error if CallWindowProc used: two versions, STRICT and non-STRICT */
-
-/* Error if ChangeDisplaySettings used: split-sized LPDEVMODE */
-
-/* Error if ChangeDisplaySettingsEx used: split-sized LPDEVMODE; NT 5.0/Win98+ only */
-
-BOOL
-qxeChangeMenu (HMENU arg1, UINT arg2, const Extbyte * arg3, UINT arg4, UINT arg5)
-{
-  if (XEUNICODE_P)
-    return ChangeMenuW (arg1, arg2, (LPCWSTR) arg3, arg4, arg5);
-  else
-    return ChangeMenuA (arg1, arg2, (LPCSTR) arg3, arg4, arg5);
-}
-
-Extbyte *
-qxeCharLower (Extbyte * arg1)
-{
-  if (XEUNICODE_P)
-    return (Extbyte *) CharLowerW ((LPWSTR) arg1);
-  else
-    return (Extbyte *) CharLowerA ((LPSTR) arg1);
-}
-
-DWORD
-qxeCharLowerBuff (Extbyte * arg1, DWORD arg2)
-{
-  if (XEUNICODE_P)
-    return CharLowerBuffW ((LPWSTR) arg1, arg2);
-  else
-    return CharLowerBuffA ((LPSTR) arg1, arg2);
-}
-
-Extbyte *
-qxeCharNext (const Extbyte * arg1)
-{
-  if (XEUNICODE_P)
-    return (Extbyte *) CharNextW ((LPCWSTR) arg1);
-  else
-    return (Extbyte *) CharNextA ((LPCSTR) arg1);
-}
-
-Extbyte *
-qxeCharPrev (const Extbyte * arg1, const Extbyte * arg2)
-{
-  if (XEUNICODE_P)
-    return (Extbyte *) CharPrevW ((LPCWSTR) arg1, (LPCWSTR) arg2);
-  else
-    return (Extbyte *) CharPrevA ((LPCSTR) arg1, (LPCSTR) arg2);
-}
-
-BOOL
-qxeCharToOem (const Extbyte * arg1, LPSTR arg2)
-{
-  if (XEUNICODE_P)
-    return CharToOemW ((LPCWSTR) arg1, arg2);
-  else
-    return CharToOemA ((LPCSTR) arg1, arg2);
-}
-
-BOOL
-qxeCharToOemBuff (const Extbyte * arg1, LPSTR arg2, DWORD arg3)
-{
-  if (XEUNICODE_P)
-    return CharToOemBuffW ((LPCWSTR) arg1, arg2, arg3);
-  else
-    return CharToOemBuffA ((LPCSTR) arg1, arg2, arg3);
-}
-
-Extbyte *
-qxeCharUpper (Extbyte * arg1)
-{
-  if (XEUNICODE_P)
-    return (Extbyte *) CharUpperW ((LPWSTR) arg1);
-  else
-    return (Extbyte *) CharUpperA ((LPSTR) arg1);
-}
-
-DWORD
-qxeCharUpperBuff (Extbyte * arg1, DWORD arg2)
-{
-  if (XEUNICODE_P)
-    return CharUpperBuffW ((LPWSTR) arg1, arg2);
-  else
-    return CharUpperBuffA ((LPSTR) arg1, arg2);
-}
-
 int
-qxeCopyAcceleratorTable (HACCEL arg1, LPACCEL arg2, int arg3)
-{
-  if (XEUNICODE_P)
-    return CopyAcceleratorTableW (arg1, arg2, arg3);
-  else
-    return CopyAcceleratorTableA (arg1, arg2, arg3);
-}
-
-HACCEL
-qxeCreateAcceleratorTable (LPACCEL arg1, int arg2)
-{
-  if (XEUNICODE_P)
-    return CreateAcceleratorTableW (arg1, arg2);
-  else
-    return CreateAcceleratorTableA (arg1, arg2);
+qxewvsprintf (Extbyte * arg1, const Extbyte * arg2, va_list arglist)
+{
+  if (XEUNICODE_P)
+    return wvsprintfW ((LPWSTR) arg1, (LPCWSTR) arg2, arglist);
+  else
+    return wvsprintfA ((LPSTR) arg1, (LPCSTR) arg2, arglist);
+}
+
+HKL
+qxeLoadKeyboardLayout (const Extbyte * pwszKLID, UINT Flags)
+{
+  if (XEUNICODE_P)
+    return LoadKeyboardLayoutW ((LPCWSTR) pwszKLID, Flags);
+  else
+    return LoadKeyboardLayoutA ((LPCSTR) pwszKLID, Flags);
+}
+
+WINBOOL
+qxeGetKeyboardLayoutName (Extbyte * pwszKLID)
+{
+  if (XEUNICODE_P)
+    return GetKeyboardLayoutNameW ((LPWSTR) pwszKLID);
+  else
+    return GetKeyboardLayoutNameA ((LPSTR) pwszKLID);
 }
 
 /* Error if CreateDesktop used: split-sized LPDEVMODE */
 
-/* NOTE: error in Cygwin prototype (no split) but fixable with typedef */
-HWND
-qxeCreateDialogIndirectParam (HINSTANCE arg1, LPCDLGTEMPLATE arg2, HWND arg3, DLGPROC arg4, LPARAM arg5)
-{
-  if (XEUNICODE_P)
-    return CreateDialogIndirectParamW (arg1, arg2, arg3, arg4, arg5);
-  else
-    return CreateDialogIndirectParamA (arg1, arg2, arg3, arg4, arg5);
-}
-
-HWND
-qxeCreateDialogParam (HINSTANCE arg1, const Extbyte * arg2, HWND arg3, DLGPROC arg4, LPARAM arg5)
-{
-  if (XEUNICODE_P)
-    return CreateDialogParamW (arg1, (LPCWSTR) arg2, arg3, arg4, arg5);
-  else
-    return CreateDialogParamA (arg1, (LPCSTR) arg2, arg3, arg4, arg5);
+HDESK
+qxeOpenDesktop (const Extbyte * lpszDesktop, DWORD dwFlags, WINBOOL fInherit, ACCESS_MASK dwDesiredAccess)
+{
+  if (XEUNICODE_P)
+    return OpenDesktopW ((LPCWSTR) lpszDesktop, dwFlags, fInherit, dwDesiredAccess);
+  else
+    return OpenDesktopA ((LPCSTR) lpszDesktop, dwFlags, fInherit, dwDesiredAccess);
+}
+
+/* NOTE: // callback fun differs only in string pointer type */
+WINBOOL
+qxeEnumDesktops (HWINSTA hwinsta, DESKTOPENUMPROCW lpEnumFunc, LPARAM lParam)
+{
+  if (XEUNICODE_P)
+    return EnumDesktopsW (hwinsta, lpEnumFunc, lParam);
+  else
+    return EnumDesktopsA (hwinsta, (DESKTOPENUMPROCA) lpEnumFunc, lParam);
 }
 
 /* NOTE: error arg 1, VS6 prototype, missing const.
    NOTE: Prototype manually overridden.
          Header file claims:
-           WINUSERAPI HWND WINAPI CreateMDIWindow(LPCWSTR,LPCWSTR,DWORD,int,int,int,int,HWND,HINSTANCE,LPARAM)
-         Overridden with:
-           HWND CreateMDIWindow(LPWSTR,LPWSTR,DWORD,int,int,int,int,HWND,HINSTANCE,LPARAM)
-         Differences in return-type qualifiers, e.g. WINAPI, are not important.
- */
-HWND
-qxeCreateMDIWindow (Extbyte * arg1, Extbyte * arg2, DWORD arg3, int arg4, int arg5, int arg6, int arg7, HWND arg8, HINSTANCE arg9, LPARAM arg10)
-{
-  if (XEUNICODE_P)
-    return CreateMDIWindowW ((LPWSTR) arg1, (LPWSTR) arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10);
-  else
-    return CreateMDIWindowA ((LPSTR) arg1, (LPSTR) arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10);
-}
-
-HWND
-qxeCreateWindowEx (DWORD arg1, const Extbyte * arg2, const Extbyte * arg3, DWORD arg4, int arg5, int arg6, int arg7, int arg8, HWND arg9, HMENU arg10, HINSTANCE arg11, LPVOID arg12)
-{
-  if (XEUNICODE_P)
-    return CreateWindowExW (arg1, (LPCWSTR) arg2, (LPCWSTR) arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12);
-  else
-    return CreateWindowExA (arg1, (LPCSTR) arg2, (LPCSTR) arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12);
-}
-
-/* NOTE: error arg 1, VS6 prototype, missing const.
-   NOTE: Prototype manually overridden.
-         Header file claims:
-           WINUSERAPI HWINSTA WINAPI CreateWindowStation(LPCWSTR,DWORD,DWORD,LPSECURITY_ATTRIBUTES)
+           WINUSERAPI HWINSTA WINAPI CreateWindowStation(LPCWSTR lpwinsta,DWORD dwFlags,ACCESS_MASK dwDesiredAccess,LPSECURITY_ATTRIBUTES lpsa)
          Overridden with:
            HWINSTA CreateWindowStation(LPWSTR,DWORD,DWORD,LPSECURITY_ATTRIBUTES)
          Differences in return-type qualifiers, e.g. WINAPI, are not important.
@@ -985,123 +671,907 @@
     return CreateWindowStationA ((LPSTR) arg1, arg2, arg3, arg4);
 }
 
-/* Error if DefDlgProc used: return value is conditionalized on _MAC, messes up parser */
+HWINSTA
+qxeOpenWindowStation (const Extbyte * lpszWinSta, WINBOOL fInherit, ACCESS_MASK dwDesiredAccess)
+{
+  if (XEUNICODE_P)
+    return OpenWindowStationW ((LPCWSTR) lpszWinSta, fInherit, dwDesiredAccess);
+  else
+    return OpenWindowStationA ((LPCSTR) lpszWinSta, fInherit, dwDesiredAccess);
+}
+
+/* NOTE: // callback fun differs only in string pointer type */
+WINBOOL
+qxeEnumWindowStations (WINSTAENUMPROCW lpEnumFunc, LPARAM lParam)
+{
+  if (XEUNICODE_P)
+    return EnumWindowStationsW (lpEnumFunc, lParam);
+  else
+    return EnumWindowStationsA ((WINSTAENUMPROCA) lpEnumFunc, lParam);
+}
+
+WINBOOL
+qxeGetUserObjectInformation (HANDLE hObj, int nIndex, PVOID pvInfo, DWORD nLength, LPDWORD lpnLengthNeeded)
+{
+  if (XEUNICODE_P)
+    return GetUserObjectInformationW (hObj, nIndex, pvInfo, nLength, lpnLengthNeeded);
+  else
+    return GetUserObjectInformationA (hObj, nIndex, pvInfo, nLength, lpnLengthNeeded);
+}
+
+WINBOOL
+qxeSetUserObjectInformation (HANDLE hObj, int nIndex, PVOID pvInfo, DWORD nLength)
+{
+  if (XEUNICODE_P)
+    return SetUserObjectInformationW (hObj, nIndex, pvInfo, nLength);
+  else
+    return SetUserObjectInformationA (hObj, nIndex, pvInfo, nLength);
+}
+
+UINT
+qxeRegisterWindowMessage (const Extbyte * lpString)
+{
+  if (XEUNICODE_P)
+    return RegisterWindowMessageW ((LPCWSTR) lpString);
+  else
+    return RegisterWindowMessageA ((LPCSTR) lpString);
+}
+
+WINBOOL
+qxeGetMessage (LPMSG lpMsg, HWND hWnd, UINT wMsgFilterMin, UINT wMsgFilterMax)
+{
+  if (XEUNICODE_P)
+    return GetMessageW (lpMsg, hWnd, wMsgFilterMin, wMsgFilterMax);
+  else
+    return GetMessageA (lpMsg, hWnd, wMsgFilterMin, wMsgFilterMax);
+}
 
 LRESULT
-qxeDefFrameProc (HWND arg1, HWND arg2, UINT arg3, WPARAM arg4, LPARAM arg5)
-{
-  if (XEUNICODE_P)
-    return DefFrameProcW (arg1, arg2, arg3, arg4, arg5);
-  else
-    return DefFrameProcA (arg1, arg2, arg3, arg4, arg5);
-}
-
-/* Error if DefMDIChildProc used: return value is conditionalized on _MAC, messes up parser */
+qxeDispatchMessage (CONST MSG * lpMsg)
+{
+  if (XEUNICODE_P)
+    return DispatchMessageW (lpMsg);
+  else
+    return DispatchMessageA (lpMsg);
+}
+
+WINBOOL
+qxePeekMessage (LPMSG lpMsg, HWND hWnd, UINT wMsgFilterMin, UINT wMsgFilterMax, UINT wRemoveMsg)
+{
+  if (XEUNICODE_P)
+    return PeekMessageW (lpMsg, hWnd, wMsgFilterMin, wMsgFilterMax, wRemoveMsg);
+  else
+    return PeekMessageA (lpMsg, hWnd, wMsgFilterMin, wMsgFilterMax, wRemoveMsg);
+}
+
+/* Skipping SendMessage because split messages and structures */
+
+/* Error if SendMessageTimeout used: VS6 has erroneous seventh parameter DWORD_PTR instead of PDWORD_PTR */
+
+WINBOOL
+qxeSendNotifyMessage (HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam)
+{
+  if (XEUNICODE_P)
+    return SendNotifyMessageW (hWnd, Msg, wParam, lParam);
+  else
+    return SendNotifyMessageA (hWnd, Msg, wParam, lParam);
+}
+
+WINBOOL
+qxeSendMessageCallback (HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam, SENDASYNCPROC lpResultCallBack, ULONG_PTR dwData)
+{
+  if (XEUNICODE_P)
+    return SendMessageCallbackW (hWnd, Msg, wParam, lParam, lpResultCallBack, dwData);
+  else
+    return SendMessageCallbackA (hWnd, Msg, wParam, lParam, lpResultCallBack, dwData);
+}
+
+/* Error if BroadcastSystemMessageEx used: Function needs review to determine how to handle it */
+
+/* Error if BroadcastSystemMessage used: win95 version not split; NT 4.0+ only */
+
+/* Error if RegisterDeviceNotification used: NT 5.0+ only */
+
+WINBOOL
+qxePostMessage (HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam)
+{
+  if (XEUNICODE_P)
+    return PostMessageW (hWnd, Msg, wParam, lParam);
+  else
+    return PostMessageA (hWnd, Msg, wParam, lParam);
+}
+
+WINBOOL
+qxePostThreadMessage (DWORD idThread, UINT Msg, WPARAM wParam, LPARAM lParam)
+{
+  if (XEUNICODE_P)
+    return PostThreadMessageW (idThread, Msg, wParam, lParam);
+  else
+    return PostThreadMessageA (idThread, Msg, wParam, lParam);
+}
 
 /* Skipping DefWindowProc because return value is conditionalized on _MAC, messes up parser */
 
+/* Error if CallWindowProc used: two versions, STRICT and non-STRICT */
+
+/* Skipping RegisterClass because need to intercept so we can provide our own window procedure and handle split notify messages; split-simple WNDCLASS */
+
+/* Skipping UnregisterClass because need to intercept for reasons related to RegisterClass */
+
+WINBOOL
+qxeGetClassInfo (HINSTANCE hInstance, const Extbyte * lpClassName, LPWNDCLASSW lpWndClass)
+{
+  if (XEUNICODE_P)
+    return GetClassInfoW (hInstance, (LPCWSTR) lpClassName, lpWndClass);
+  else
+    return GetClassInfoA (hInstance, (LPCSTR) lpClassName, (LPWNDCLASSA) lpWndClass);
+}
+
+/* Skipping RegisterClassEx because need to intercept so we can provide our own window procedure and handle split notify messages; split-simple WNDCLASSEX; NT 4.0+ only */
+
+/* NOTE: NT 4.0+ only */
+WINBOOL
+qxeGetClassInfoEx (HINSTANCE hInstance, const Extbyte * lpszClass, LPWNDCLASSEXW lpwcx)
+{
+  if (XEUNICODE_P)
+    return GetClassInfoExW (hInstance, (LPCWSTR) lpszClass, lpwcx);
+  else
+    return GetClassInfoExA (hInstance, (LPCSTR) lpszClass, (LPWNDCLASSEXA) lpwcx);
+}
+
+HWND
+qxeCreateWindowEx (DWORD dwExStyle, const Extbyte * lpClassName, const Extbyte * lpWindowName, DWORD dwStyle, int X, int Y, int nWidth, int nHeight, HWND hWndParent, HMENU hMenu, HINSTANCE hInstance, LPVOID lpParam)
+{
+  if (XEUNICODE_P)
+    return CreateWindowExW (dwExStyle, (LPCWSTR) lpClassName, (LPCWSTR) lpWindowName, dwStyle, X, Y, nWidth, nHeight, hWndParent, hMenu, hInstance, lpParam);
+  else
+    return CreateWindowExA (dwExStyle, (LPCSTR) lpClassName, (LPCSTR) lpWindowName, dwStyle, X, Y, nWidth, nHeight, hWndParent, hMenu, hInstance, lpParam);
+}
+
+HWND
+qxeCreateDialogParam (HINSTANCE hInstance, const Extbyte * lpTemplateName, HWND hWndParent, DLGPROC lpDialogFunc, LPARAM dwInitParam)
+{
+  if (XEUNICODE_P)
+    return CreateDialogParamW (hInstance, (LPCWSTR) lpTemplateName, hWndParent, lpDialogFunc, dwInitParam);
+  else
+    return CreateDialogParamA (hInstance, (LPCSTR) lpTemplateName, hWndParent, lpDialogFunc, dwInitParam);
+}
+
 /* NOTE: error in Cygwin prototype (no split) but fixable with typedef */
-int
-qxeDialogBoxIndirectParam (HINSTANCE arg1, LPCDLGTEMPLATE arg2, HWND arg3, DLGPROC arg4, LPARAM arg5)
-{
-  if (XEUNICODE_P)
-    return DialogBoxIndirectParamW (arg1, arg2, arg3, arg4, arg5);
-  else
-    return DialogBoxIndirectParamA (arg1, arg2, arg3, arg4, arg5);
-}
-
-int
-qxeDialogBoxParam (HINSTANCE arg1, const Extbyte * arg2, HWND arg3, DLGPROC arg4, LPARAM arg5)
-{
-  if (XEUNICODE_P)
-    return DialogBoxParamW (arg1, (LPCWSTR) arg2, arg3, arg4, arg5);
-  else
-    return DialogBoxParamA (arg1, (LPCSTR) arg2, arg3, arg4, arg5);
-}
-
-LONG
-qxeDispatchMessage (const MSG* arg1)
-{
-  if (XEUNICODE_P)
-    return DispatchMessageW (arg1);
-  else
-    return DispatchMessageA (arg1);
+HWND
+qxeCreateDialogIndirectParam (HINSTANCE hInstance, LPCDLGTEMPLATEW lpTemplate, HWND hWndParent, DLGPROC lpDialogFunc, LPARAM dwInitParam)
+{
+  if (XEUNICODE_P)
+    return CreateDialogIndirectParamW (hInstance, lpTemplate, hWndParent, lpDialogFunc, dwInitParam);
+  else
+    return CreateDialogIndirectParamA (hInstance, (LPCDLGTEMPLATEA) lpTemplate, hWndParent, lpDialogFunc, dwInitParam);
+}
+
+INT_PTR
+qxeDialogBoxParam (HINSTANCE hInstance, const Extbyte * lpTemplateName, HWND hWndParent, DLGPROC lpDialogFunc, LPARAM dwInitParam)
+{
+  if (XEUNICODE_P)
+    return DialogBoxParamW (hInstance, (LPCWSTR) lpTemplateName, hWndParent, lpDialogFunc, dwInitParam);
+  else
+    return DialogBoxParamA (hInstance, (LPCSTR) lpTemplateName, hWndParent, lpDialogFunc, dwInitParam);
+}
+
+/* NOTE: error in Cygwin prototype (no split) but fixable with typedef */
+INT_PTR
+qxeDialogBoxIndirectParam (HINSTANCE hInstance, LPCDLGTEMPLATEW hDialogTemplate, HWND hWndParent, DLGPROC lpDialogFunc, LPARAM dwInitParam)
+{
+  if (XEUNICODE_P)
+    return DialogBoxIndirectParamW (hInstance, hDialogTemplate, hWndParent, lpDialogFunc, dwInitParam);
+  else
+    return DialogBoxIndirectParamA (hInstance, (LPCDLGTEMPLATEA) hDialogTemplate, hWndParent, lpDialogFunc, dwInitParam);
+}
+
+WINBOOL
+qxeSetDlgItemText (HWND hDlg, int nIDDlgItem, const Extbyte * lpString)
+{
+  if (XEUNICODE_P)
+    return SetDlgItemTextW (hDlg, nIDDlgItem, (LPCWSTR) lpString);
+  else
+    return SetDlgItemTextA (hDlg, nIDDlgItem, (LPCSTR) lpString);
+}
+
+UINT
+qxeGetDlgItemText (HWND hDlg, int nIDDlgItem, Extbyte * lpString, int cchMax)
+{
+  if (XEUNICODE_P)
+    return GetDlgItemTextW (hDlg, nIDDlgItem, (LPWSTR) lpString, cchMax);
+  else
+    return GetDlgItemTextA (hDlg, nIDDlgItem, (LPSTR) lpString, cchMax);
+}
+
+LRESULT
+qxeSendDlgItemMessage (HWND hDlg, int nIDDlgItem, UINT Msg, WPARAM wParam, LPARAM lParam)
+{
+  if (XEUNICODE_P)
+    return SendDlgItemMessageW (hDlg, nIDDlgItem, Msg, wParam, lParam);
+  else
+    return SendDlgItemMessageA (hDlg, nIDDlgItem, Msg, wParam, lParam);
+}
+
+/* Error if DefDlgProc used: return value is conditionalized on _MAC, messes up parser */
+
+#if !defined (CYGWIN_HEADERS)
+
+WINBOOL
+qxeCallMsgFilter (LPMSG lpMsg, int nCode)
+{
+  if (XEUNICODE_P)
+    return CallMsgFilterW (lpMsg, nCode);
+  else
+    return CallMsgFilterA (lpMsg, nCode);
+}
+
+#endif /* !defined (CYGWIN_HEADERS) */
+
+UINT
+qxeRegisterClipboardFormat (const Extbyte * lpszFormat)
+{
+  if (XEUNICODE_P)
+    return RegisterClipboardFormatW ((LPCWSTR) lpszFormat);
+  else
+    return RegisterClipboardFormatA ((LPCSTR) lpszFormat);
 }
 
 int
-qxeDlgDirList (HWND arg1, Extbyte * arg2, int arg3, int arg4, UINT arg5)
-{
-  if (XEUNICODE_P)
-    return DlgDirListW (arg1, (LPWSTR) arg2, arg3, arg4, arg5);
-  else
-    return DlgDirListA (arg1, (LPSTR) arg2, arg3, arg4, arg5);
+qxeGetClipboardFormatName (UINT format, Extbyte * lpszFormatName, int cchMaxCount)
+{
+  if (XEUNICODE_P)
+    return GetClipboardFormatNameW (format, (LPWSTR) lpszFormatName, cchMaxCount);
+  else
+    return GetClipboardFormatNameA (format, (LPSTR) lpszFormatName, cchMaxCount);
+}
+
+WINBOOL
+qxeCharToOem (const Extbyte * lpszSrc, LPSTR lpszDst)
+{
+  if (XEUNICODE_P)
+    return CharToOemW ((LPCWSTR) lpszSrc, lpszDst);
+  else
+    return CharToOemA ((LPCSTR) lpszSrc, lpszDst);
+}
+
+WINBOOL
+qxeOemToChar (LPCSTR lpszSrc, Extbyte * lpszDst)
+{
+  if (XEUNICODE_P)
+    return OemToCharW (lpszSrc, (LPWSTR) lpszDst);
+  else
+    return OemToCharA (lpszSrc, (LPSTR) lpszDst);
+}
+
+WINBOOL
+qxeCharToOemBuff (const Extbyte * lpszSrc, LPSTR lpszDst, DWORD cchDstLength)
+{
+  if (XEUNICODE_P)
+    return CharToOemBuffW ((LPCWSTR) lpszSrc, lpszDst, cchDstLength);
+  else
+    return CharToOemBuffA ((LPCSTR) lpszSrc, lpszDst, cchDstLength);
+}
+
+WINBOOL
+qxeOemToCharBuff (LPCSTR lpszSrc, Extbyte * lpszDst, DWORD cchDstLength)
+{
+  if (XEUNICODE_P)
+    return OemToCharBuffW (lpszSrc, (LPWSTR) lpszDst, cchDstLength);
+  else
+    return OemToCharBuffA (lpszSrc, (LPSTR) lpszDst, cchDstLength);
+}
+
+Extbyte *
+qxeCharUpper (Extbyte * lpsz)
+{
+  if (XEUNICODE_P)
+    return (Extbyte *) CharUpperW ((LPWSTR) lpsz);
+  else
+    return (Extbyte *) CharUpperA ((LPSTR) lpsz);
+}
+
+DWORD
+qxeCharUpperBuff (Extbyte * lpsz, DWORD cchLength)
+{
+  if (XEUNICODE_P)
+    return CharUpperBuffW ((LPWSTR) lpsz, cchLength);
+  else
+    return CharUpperBuffA ((LPSTR) lpsz, cchLength);
+}
+
+Extbyte *
+qxeCharLower (Extbyte * lpsz)
+{
+  if (XEUNICODE_P)
+    return (Extbyte *) CharLowerW ((LPWSTR) lpsz);
+  else
+    return (Extbyte *) CharLowerA ((LPSTR) lpsz);
+}
+
+DWORD
+qxeCharLowerBuff (Extbyte * lpsz, DWORD cchLength)
+{
+  if (XEUNICODE_P)
+    return CharLowerBuffW ((LPWSTR) lpsz, cchLength);
+  else
+    return CharLowerBuffA ((LPSTR) lpsz, cchLength);
+}
+
+Extbyte *
+qxeCharNext (const Extbyte * lpsz)
+{
+  if (XEUNICODE_P)
+    return (Extbyte *) CharNextW ((LPCWSTR) lpsz);
+  else
+    return (Extbyte *) CharNextA ((LPCSTR) lpsz);
+}
+
+Extbyte *
+qxeCharPrev (const Extbyte * lpszStart, const Extbyte * lpszCurrent)
+{
+  if (XEUNICODE_P)
+    return (Extbyte *) CharPrevW ((LPCWSTR) lpszStart, (LPCWSTR) lpszCurrent);
+  else
+    return (Extbyte *) CharPrevA ((LPCSTR) lpszStart, (LPCSTR) lpszCurrent);
+}
+
+/* Error if IsCharAlpha used: split CHAR */
+
+/* Error if IsCharAlphaNumeric used: split CHAR */
+
+/* Error if IsCharUpper used: split CHAR */
+
+/* Error if IsCharLower used: split CHAR */
+
+int
+qxeGetKeyNameText (LONG lParam, Extbyte * lpString, int cchSize)
+{
+  if (XEUNICODE_P)
+    return GetKeyNameTextW (lParam, (LPWSTR) lpString, cchSize);
+  else
+    return GetKeyNameTextA (lParam, (LPSTR) lpString, cchSize);
+}
+
+/* Skipping VkKeyScan because split CHAR */
+
+/* Error if VkKeyScanEx used: split CHAR; NT 4.0+ only */
+
+UINT
+qxeMapVirtualKey (UINT uCode, UINT uMapType)
+{
+  if (XEUNICODE_P)
+    return MapVirtualKeyW (uCode, uMapType);
+  else
+    return MapVirtualKeyA (uCode, uMapType);
+}
+
+/* NOTE: NT 4.0+ only */
+UINT
+qxeMapVirtualKeyEx (UINT uCode, UINT uMapType, HKL dwhkl)
+{
+  if (XEUNICODE_P)
+    return MapVirtualKeyExW (uCode, uMapType, dwhkl);
+  else
+    return MapVirtualKeyExA (uCode, uMapType, dwhkl);
+}
+
+HACCEL
+qxeLoadAccelerators (HINSTANCE hInstance, const Extbyte * lpTableName)
+{
+  if (XEUNICODE_P)
+    return LoadAcceleratorsW (hInstance, (LPCWSTR) lpTableName);
+  else
+    return LoadAcceleratorsA (hInstance, (LPCSTR) lpTableName);
+}
+
+HACCEL
+qxeCreateAcceleratorTable (LPACCEL paccel, int cAccel)
+{
+  if (XEUNICODE_P)
+    return CreateAcceleratorTableW (paccel, cAccel);
+  else
+    return CreateAcceleratorTableA (paccel, cAccel);
 }
 
 int
-qxeDlgDirListComboBox (HWND arg1, Extbyte * arg2, int arg3, int arg4, UINT arg5)
-{
-  if (XEUNICODE_P)
-    return DlgDirListComboBoxW (arg1, (LPWSTR) arg2, arg3, arg4, arg5);
-  else
-    return DlgDirListComboBoxA (arg1, (LPSTR) arg2, arg3, arg4, arg5);
-}
-
-BOOL
-qxeDlgDirSelectComboBoxEx (HWND arg1, Extbyte * arg2, int arg3, int arg4)
-{
-  if (XEUNICODE_P)
-    return DlgDirSelectComboBoxExW (arg1, (LPWSTR) arg2, arg3, arg4);
-  else
-    return DlgDirSelectComboBoxExA (arg1, (LPSTR) arg2, arg3, arg4);
-}
-
-BOOL
-qxeDlgDirSelectEx (HWND arg1, Extbyte * arg2, int arg3, int arg4)
-{
-  if (XEUNICODE_P)
-    return DlgDirSelectExW (arg1, (LPWSTR) arg2, arg3, arg4);
-  else
-    return DlgDirSelectExA (arg1, (LPSTR) arg2, arg3, arg4);
+qxeCopyAcceleratorTable (HACCEL hAccelSrc, LPACCEL lpAccelDst, int cAccelEntries)
+{
+  if (XEUNICODE_P)
+    return CopyAcceleratorTableW (hAccelSrc, lpAccelDst, cAccelEntries);
+  else
+    return CopyAcceleratorTableA (hAccelSrc, lpAccelDst, cAccelEntries);
+}
+
+int
+qxeTranslateAccelerator (HWND hWnd, HACCEL hAccTable, LPMSG lpMsg)
+{
+  if (XEUNICODE_P)
+    return TranslateAcceleratorW (hWnd, hAccTable, lpMsg);
+  else
+    return TranslateAcceleratorA (hWnd, hAccTable, lpMsg);
+}
+
+HMENU
+qxeLoadMenu (HINSTANCE hInstance, const Extbyte * lpMenuName)
+{
+  if (XEUNICODE_P)
+    return LoadMenuW (hInstance, (LPCWSTR) lpMenuName);
+  else
+    return LoadMenuA (hInstance, (LPCSTR) lpMenuName);
+}
+
+HMENU
+qxeLoadMenuIndirect (CONST MENUTEMPLATEW * lpMenuTemplate)
+{
+  if (XEUNICODE_P)
+    return LoadMenuIndirectW (lpMenuTemplate);
+  else
+    return LoadMenuIndirectA ((CONST MENUTEMPLATEA *) lpMenuTemplate);
+}
+
+WINBOOL
+qxeChangeMenu (HMENU hMenu, UINT cmd, const Extbyte * lpszNewItem, UINT cmdInsert, UINT flags)
+{
+  if (XEUNICODE_P)
+    return ChangeMenuW (hMenu, cmd, (LPCWSTR) lpszNewItem, cmdInsert, flags);
+  else
+    return ChangeMenuA (hMenu, cmd, (LPCSTR) lpszNewItem, cmdInsert, flags);
+}
+
+int
+qxeGetMenuString (HMENU hMenu, UINT uIDItem, Extbyte * lpString, int cchMax, UINT flags)
+{
+  if (XEUNICODE_P)
+    return GetMenuStringW (hMenu, uIDItem, (LPWSTR) lpString, cchMax, flags);
+  else
+    return GetMenuStringA (hMenu, uIDItem, (LPSTR) lpString, cchMax, flags);
+}
+
+WINBOOL
+qxeInsertMenu (HMENU hMenu, UINT uPosition, UINT uFlags, UINT_PTR uIDNewItem, const Extbyte * lpNewItem)
+{
+  if (XEUNICODE_P)
+    return InsertMenuW (hMenu, uPosition, uFlags, uIDNewItem, (LPCWSTR) lpNewItem);
+  else
+    return InsertMenuA (hMenu, uPosition, uFlags, uIDNewItem, (LPCSTR) lpNewItem);
+}
+
+WINBOOL
+qxeAppendMenu (HMENU hMenu, UINT uFlags, UINT_PTR uIDNewItem, const Extbyte * lpNewItem)
+{
+  if (XEUNICODE_P)
+    return AppendMenuW (hMenu, uFlags, uIDNewItem, (LPCWSTR) lpNewItem);
+  else
+    return AppendMenuA (hMenu, uFlags, uIDNewItem, (LPCSTR) lpNewItem);
+}
+
+WINBOOL
+qxeModifyMenu (HMENU hMnu, UINT uPosition, UINT uFlags, UINT_PTR uIDNewItem, const Extbyte * lpNewItem)
+{
+  if (XEUNICODE_P)
+    return ModifyMenuW (hMnu, uPosition, uFlags, uIDNewItem, (LPCWSTR) lpNewItem);
+  else
+    return ModifyMenuA (hMnu, uPosition, uFlags, uIDNewItem, (LPCSTR) lpNewItem);
 }
 
 /* NOTE: NT 4.0+ only */
-BOOL
-qxeDrawState (HDC arg1, HBRUSH arg2, DRAWSTATEPROC arg3, LPARAM arg4, WPARAM arg5, int arg6, int arg7, int arg8, int arg9, UINT arg10)
-{
-  if (XEUNICODE_P)
-    return DrawStateW (arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10);
-  else
-    return DrawStateA (arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10);
+WINBOOL
+qxeInsertMenuItem (HMENU hmenu, UINT item, WINBOOL fByPosition, LPCMENUITEMINFOW lpmi)
+{
+  if (XEUNICODE_P)
+    return InsertMenuItemW (hmenu, item, fByPosition, lpmi);
+  else
+    return InsertMenuItemA (hmenu, item, fByPosition, (LPCMENUITEMINFOA) lpmi);
+}
+
+/* NOTE: NT 4.0+ only */
+WINBOOL
+qxeGetMenuItemInfo (HMENU hmenu, UINT item, WINBOOL fByPosition, LPMENUITEMINFOW lpmii)
+{
+  if (XEUNICODE_P)
+    return GetMenuItemInfoW (hmenu, item, fByPosition, lpmii);
+  else
+    return GetMenuItemInfoA (hmenu, item, fByPosition, (LPMENUITEMINFOA) lpmii);
+}
+
+/* NOTE: NT 4.0+ only */
+WINBOOL
+qxeSetMenuItemInfo (HMENU hmenu, UINT item, WINBOOL fByPositon, LPCMENUITEMINFOW lpmii)
+{
+  if (XEUNICODE_P)
+    return SetMenuItemInfoW (hmenu, item, fByPositon, lpmii);
+  else
+    return SetMenuItemInfoA (hmenu, item, fByPositon, (LPCMENUITEMINFOA) lpmii);
 }
 
 int
-qxeDrawText (HDC arg1, const Extbyte * arg2, int arg3, LPRECT arg4, UINT arg5)
-{
-  if (XEUNICODE_P)
-    return DrawTextW (arg1, (LPCWSTR) arg2, arg3, arg4, arg5);
-  else
-    return DrawTextA (arg1, (LPCSTR) arg2, arg3, arg4, arg5);
+qxeDrawText (HDC hdc, const Extbyte * lpchText, int cchText, LPRECT lprc, UINT format)
+{
+  if (XEUNICODE_P)
+    return DrawTextW (hdc, (LPCWSTR) lpchText, cchText, lprc, format);
+  else
+    return DrawTextA (hdc, (LPCSTR) lpchText, cchText, lprc, format);
 }
 
 /* NOTE: NT 4.0+ only */
 int
-qxeDrawTextEx (HDC arg1, Extbyte * arg2, int arg3, LPRECT arg4, UINT arg5, LPDRAWTEXTPARAMS arg6)
-{
-  if (XEUNICODE_P)
-    return DrawTextExW (arg1, (LPWSTR) arg2, arg3, arg4, arg5, arg6);
-  else
-    return DrawTextExA (arg1, (LPSTR) arg2, arg3, arg4, arg5, arg6);
+qxeDrawTextEx (HDC hdc, Extbyte * lpchText, int cchText, LPRECT lprc, UINT format, LPDRAWTEXTPARAMS lpdtp)
+{
+  if (XEUNICODE_P)
+    return DrawTextExW (hdc, (LPWSTR) lpchText, cchText, lprc, format, lpdtp);
+  else
+    return DrawTextExA (hdc, (LPSTR) lpchText, cchText, lprc, format, lpdtp);
+}
+
+WINBOOL
+qxeGrayString (HDC hDC, HBRUSH hBrush, GRAYSTRINGPROC lpOutputFunc, LPARAM lpData, int nCount, int X, int Y, int nWidth, int nHeight)
+{
+  if (XEUNICODE_P)
+    return GrayStringW (hDC, hBrush, lpOutputFunc, lpData, nCount, X, Y, nWidth, nHeight);
+  else
+    return GrayStringA (hDC, hBrush, lpOutputFunc, lpData, nCount, X, Y, nWidth, nHeight);
+}
+
+/* NOTE: NT 4.0+ only */
+WINBOOL
+qxeDrawState (HDC hdc, HBRUSH hbrFore, DRAWSTATEPROC qfnCallBack, LPARAM lData, WPARAM wData, int x, int y, int cx, int cy, UINT uFlags)
+{
+  if (XEUNICODE_P)
+    return DrawStateW (hdc, hbrFore, qfnCallBack, lData, wData, x, y, cx, cy, uFlags);
+  else
+    return DrawStateA (hdc, hbrFore, qfnCallBack, lData, wData, x, y, cx, cy, uFlags);
+}
+
+LONG
+qxeTabbedTextOut (HDC hdc, int x, int y, const Extbyte * lpString, int chCount, int nTabPositions, CONST INT * lpnTabStopPositions, int nTabOrigin)
+{
+  if (XEUNICODE_P)
+    return TabbedTextOutW (hdc, x, y, (LPCWSTR) lpString, chCount, nTabPositions, lpnTabStopPositions, nTabOrigin);
+  else
+    return TabbedTextOutA (hdc, x, y, (LPCSTR) lpString, chCount, nTabPositions, lpnTabStopPositions, nTabOrigin);
+}
+
+DWORD
+qxeGetTabbedTextExtent (HDC hdc, const Extbyte * lpString, int chCount, int nTabPositions, CONST INT * lpnTabStopPositions)
+{
+  if (XEUNICODE_P)
+    return GetTabbedTextExtentW (hdc, (LPCWSTR) lpString, chCount, nTabPositions, lpnTabStopPositions);
+  else
+    return GetTabbedTextExtentA (hdc, (LPCSTR) lpString, chCount, nTabPositions, lpnTabStopPositions);
+}
+
+WINBOOL
+qxeSetProp (HWND hWnd, const Extbyte * lpString, HANDLE hData)
+{
+  if (XEUNICODE_P)
+    return SetPropW (hWnd, (LPCWSTR) lpString, hData);
+  else
+    return SetPropA (hWnd, (LPCSTR) lpString, hData);
+}
+
+HANDLE
+qxeGetProp (HWND hWnd, const Extbyte * lpString)
+{
+  if (XEUNICODE_P)
+    return GetPropW (hWnd, (LPCWSTR) lpString);
+  else
+    return GetPropA (hWnd, (LPCSTR) lpString);
+}
+
+HANDLE
+qxeRemoveProp (HWND hWnd, const Extbyte * lpString)
+{
+  if (XEUNICODE_P)
+    return RemovePropW (hWnd, (LPCWSTR) lpString);
+  else
+    return RemovePropA (hWnd, (LPCSTR) lpString);
+}
+
+/* NOTE: // callback fun differs only in string pointer type */
+int
+qxeEnumPropsEx (HWND hWnd, PROPENUMPROCEXW lpEnumFunc, LPARAM lParam)
+{
+  if (XEUNICODE_P)
+    return EnumPropsExW (hWnd, lpEnumFunc, lParam);
+  else
+    return EnumPropsExA (hWnd, (PROPENUMPROCEXA) lpEnumFunc, lParam);
 }
 
 /* NOTE: // callback fun differs only in string pointer type */
-BOOL
-qxeEnumDesktops (HWINSTA arg1, DESKTOPENUMPROCW arg2, LPARAM arg3)
-{
-  if (XEUNICODE_P)
-    return EnumDesktopsW (arg1, arg2, arg3);
-  else
-    return EnumDesktopsA (arg1, (DESKTOPENUMPROCA) arg2, arg3);
-}
+int
+qxeEnumProps (HWND hWnd, PROPENUMPROCW lpEnumFunc)
+{
+  if (XEUNICODE_P)
+    return EnumPropsW (hWnd, lpEnumFunc);
+  else
+    return EnumPropsA (hWnd, (PROPENUMPROCA) lpEnumFunc);
+}
+
+WINBOOL
+qxeSetWindowText (HWND hWnd, const Extbyte * lpString)
+{
+  if (XEUNICODE_P)
+    return SetWindowTextW (hWnd, (LPCWSTR) lpString);
+  else
+    return SetWindowTextA (hWnd, (LPCSTR) lpString);
+}
+
+int
+qxeGetWindowText (HWND hWnd, Extbyte * lpString, int nMaxCount)
+{
+  if (XEUNICODE_P)
+    return GetWindowTextW (hWnd, (LPWSTR) lpString, nMaxCount);
+  else
+    return GetWindowTextA (hWnd, (LPSTR) lpString, nMaxCount);
+}
+
+int
+qxeGetWindowTextLength (HWND hWnd)
+{
+  if (XEUNICODE_P)
+    return GetWindowTextLengthW (hWnd);
+  else
+    return GetWindowTextLengthA (hWnd);
+}
+
+int
+qxeMessageBox (HWND hWnd, const Extbyte * lpText, const Extbyte * lpCaption, UINT uType)
+{
+  if (XEUNICODE_P)
+    return MessageBoxW (hWnd, (LPCWSTR) lpText, (LPCWSTR) lpCaption, uType);
+  else
+    return MessageBoxA (hWnd, (LPCSTR) lpText, (LPCSTR) lpCaption, uType);
+}
+
+int
+qxeMessageBoxEx (HWND hWnd, const Extbyte * lpText, const Extbyte * lpCaption, UINT uType, WORD wLanguageId)
+{
+  if (XEUNICODE_P)
+    return MessageBoxExW (hWnd, (LPCWSTR) lpText, (LPCWSTR) lpCaption, uType, wLanguageId);
+  else
+    return MessageBoxExA (hWnd, (LPCSTR) lpText, (LPCSTR) lpCaption, uType, wLanguageId);
+}
+
+/* Error if MessageBoxIndirect used: Cygwin has split MSGBOXPARAMS* instead of LPMSGBOXPARAMS */
+
+LONG
+qxeGetWindowLong (HWND hWnd, int nIndex)
+{
+  if (XEUNICODE_P)
+    return GetWindowLongW (hWnd, nIndex);
+  else
+    return GetWindowLongA (hWnd, nIndex);
+}
+
+LONG
+qxeSetWindowLong (HWND hWnd, int nIndex, LONG dwNewLong)
+{
+  if (XEUNICODE_P)
+    return SetWindowLongW (hWnd, nIndex, dwNewLong);
+  else
+    return SetWindowLongA (hWnd, nIndex, dwNewLong);
+}
+
+LONG_PTR
+qxeGetWindowLongPtr (HWND hWnd, int nIndex)
+{
+  if (XEUNICODE_P)
+    return GetWindowLongPtrW (hWnd, nIndex);
+  else
+    return GetWindowLongPtrA (hWnd, nIndex);
+}
+
+LONG_PTR
+qxeSetWindowLongPtr (HWND hWnd, int nIndex, LONG_PTR dwNewLong)
+{
+  if (XEUNICODE_P)
+    return SetWindowLongPtrW (hWnd, nIndex, dwNewLong);
+  else
+    return SetWindowLongPtrA (hWnd, nIndex, dwNewLong);
+}
+
+DWORD
+qxeGetClassLong (HWND hWnd, int nIndex)
+{
+  if (XEUNICODE_P)
+    return GetClassLongW (hWnd, nIndex);
+  else
+    return GetClassLongA (hWnd, nIndex);
+}
+
+DWORD
+qxeSetClassLong (HWND hWnd, int nIndex, LONG dwNewLong)
+{
+  if (XEUNICODE_P)
+    return SetClassLongW (hWnd, nIndex, dwNewLong);
+  else
+    return SetClassLongA (hWnd, nIndex, dwNewLong);
+}
+
+/* Error if GetClassLongPtr used: Function needs review to determine how to handle it */
+
+ULONG_PTR
+qxeSetClassLongPtr (HWND hWnd, int nIndex, LONG_PTR dwNewLong)
+{
+  if (XEUNICODE_P)
+    return SetClassLongPtrW (hWnd, nIndex, dwNewLong);
+  else
+    return SetClassLongPtrA (hWnd, nIndex, dwNewLong);
+}
+
+HWND
+qxeFindWindow (const Extbyte * lpClassName, const Extbyte * lpWindowName)
+{
+  if (XEUNICODE_P)
+    return FindWindowW ((LPCWSTR) lpClassName, (LPCWSTR) lpWindowName);
+  else
+    return FindWindowA ((LPCSTR) lpClassName, (LPCSTR) lpWindowName);
+}
+
+/* NOTE: NT 4.0+ only */
+HWND
+qxeFindWindowEx (HWND hWndParent, HWND hWndChildAfter, const Extbyte * lpszClass, const Extbyte * lpszWindow)
+{
+  if (XEUNICODE_P)
+    return FindWindowExW (hWndParent, hWndChildAfter, (LPCWSTR) lpszClass, (LPCWSTR) lpszWindow);
+  else
+    return FindWindowExA (hWndParent, hWndChildAfter, (LPCSTR) lpszClass, (LPCSTR) lpszWindow);
+}
+
+int
+qxeGetClassName (HWND hWnd, Extbyte * lpClassName, int nMaxCount)
+{
+  if (XEUNICODE_P)
+    return GetClassNameW (hWnd, (LPWSTR) lpClassName, nMaxCount);
+  else
+    return GetClassNameA (hWnd, (LPSTR) lpClassName, nMaxCount);
+}
+
+/* Error if SetWindowsHook used: obsolete; two versions, STRICT and non-STRICT */
+
+HHOOK
+qxeSetWindowsHookEx (int idHook, HOOKPROC lpfn, HINSTANCE hmod, DWORD dwThreadId)
+{
+  if (XEUNICODE_P)
+    return SetWindowsHookExW (idHook, lpfn, hmod, dwThreadId);
+  else
+    return SetWindowsHookExA (idHook, lpfn, hmod, dwThreadId);
+}
+
+HBITMAP
+qxeLoadBitmap (HINSTANCE hInstance, const Extbyte * lpBitmapName)
+{
+  if (XEUNICODE_P)
+    return LoadBitmapW (hInstance, (LPCWSTR) lpBitmapName);
+  else
+    return LoadBitmapA (hInstance, (LPCSTR) lpBitmapName);
+}
+
+HCURSOR
+qxeLoadCursor (HINSTANCE hInstance, const Extbyte * lpCursorName)
+{
+  if (XEUNICODE_P)
+    return LoadCursorW (hInstance, (LPCWSTR) lpCursorName);
+  else
+    return LoadCursorA (hInstance, (LPCSTR) lpCursorName);
+}
+
+HCURSOR
+qxeLoadCursorFromFile (const Extbyte * lpFileName)
+{
+  if (XEUNICODE_P)
+    return LoadCursorFromFileW ((LPCWSTR) lpFileName);
+  else
+    return LoadCursorFromFileA ((LPCSTR) lpFileName);
+}
+
+HICON
+qxeLoadIcon (HINSTANCE hInstance, const Extbyte * lpIconName)
+{
+  if (XEUNICODE_P)
+    return LoadIconW (hInstance, (LPCWSTR) lpIconName);
+  else
+    return LoadIconA (hInstance, (LPCSTR) lpIconName);
+}
+
+/* Error if PrivateExtractIcons used: HST: new? -- needs review */
+
+/* NOTE: NT 4.0+ only */
+HANDLE
+qxeLoadImage (HINSTANCE hInst, const Extbyte * name, UINT type, int cx, int cy, UINT fuLoad)
+{
+  if (XEUNICODE_P)
+    return LoadImageW (hInst, (LPCWSTR) name, type, cx, cy, fuLoad);
+  else
+    return LoadImageA (hInst, (LPCSTR) name, type, cx, cy, fuLoad);
+}
+
+WINBOOL
+qxeIsDialogMessage (HWND hDlg, LPMSG lpMsg)
+{
+  if (XEUNICODE_P)
+    return IsDialogMessageW (hDlg, lpMsg);
+  else
+    return IsDialogMessageA (hDlg, lpMsg);
+}
+
+int
+qxeDlgDirList (HWND hDlg, Extbyte * lpPathSpec, int nIDListBox, int nIDStaticPath, UINT uFileType)
+{
+  if (XEUNICODE_P)
+    return DlgDirListW (hDlg, (LPWSTR) lpPathSpec, nIDListBox, nIDStaticPath, uFileType);
+  else
+    return DlgDirListA (hDlg, (LPSTR) lpPathSpec, nIDListBox, nIDStaticPath, uFileType);
+}
+
+WINBOOL
+qxeDlgDirSelectEx (HWND hwndDlg, Extbyte * lpString, int chCount, int idListBox)
+{
+  if (XEUNICODE_P)
+    return DlgDirSelectExW (hwndDlg, (LPWSTR) lpString, chCount, idListBox);
+  else
+    return DlgDirSelectExA (hwndDlg, (LPSTR) lpString, chCount, idListBox);
+}
+
+int
+qxeDlgDirListComboBox (HWND hDlg, Extbyte * lpPathSpec, int nIDComboBox, int nIDStaticPath, UINT uFiletype)
+{
+  if (XEUNICODE_P)
+    return DlgDirListComboBoxW (hDlg, (LPWSTR) lpPathSpec, nIDComboBox, nIDStaticPath, uFiletype);
+  else
+    return DlgDirListComboBoxA (hDlg, (LPSTR) lpPathSpec, nIDComboBox, nIDStaticPath, uFiletype);
+}
+
+WINBOOL
+qxeDlgDirSelectComboBoxEx (HWND hwndDlg, Extbyte * lpString, int cchOut, int idComboBox)
+{
+  if (XEUNICODE_P)
+    return DlgDirSelectComboBoxExW (hwndDlg, (LPWSTR) lpString, cchOut, idComboBox);
+  else
+    return DlgDirSelectComboBoxExA (hwndDlg, (LPSTR) lpString, cchOut, idComboBox);
+}
+
+LRESULT
+qxeDefFrameProc (HWND hWnd, HWND hWndMDIClient, UINT uMsg, WPARAM wParam, LPARAM lParam)
+{
+  if (XEUNICODE_P)
+    return DefFrameProcW (hWnd, hWndMDIClient, uMsg, wParam, lParam);
+  else
+    return DefFrameProcA (hWnd, hWndMDIClient, uMsg, wParam, lParam);
+}
+
+/* Error if DefMDIChildProc used: return value is conditionalized on _MAC, messes up parser */
+
+/* NOTE: error arg 1, VS6 prototype, missing const.
+   NOTE: Prototype manually overridden.
+         Header file claims:
+           WINUSERAPI HWND WINAPI CreateMDIWindow(LPCWSTR lpClassName,LPCWSTR lpWindowName,DWORD dwStyle,int X,int Y,int nWidth,int nHeight,HWND hWndParent,HINSTANCE hInstance,LPARAM lParam)
+         Overridden with:
+           HWND CreateMDIWindow(LPWSTR,LPWSTR,DWORD,int,int,int,int,HWND,HINSTANCE,LPARAM)
+         Differences in return-type qualifiers, e.g. WINAPI, are not important.
+ */
+HWND
+qxeCreateMDIWindow (Extbyte * arg1, Extbyte * arg2, DWORD arg3, int arg4, int arg5, int arg6, int arg7, HWND arg8, HINSTANCE arg9, LPARAM arg10)
+{
+  if (XEUNICODE_P)
+    return CreateMDIWindowW ((LPWSTR) arg1, (LPWSTR) arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10);
+  else
+    return CreateMDIWindowA ((LPSTR) arg1, (LPSTR) arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10);
+}
+
+WINBOOL
+qxeWinHelp (HWND hWndMain, const Extbyte * lpszHelp, UINT uCommand, ULONG_PTR dwData)
+{
+  if (XEUNICODE_P)
+    return WinHelpW (hWndMain, (LPCWSTR) lpszHelp, uCommand, dwData);
+  else
+    return WinHelpA (hWndMain, (LPCSTR) lpszHelp, uCommand, dwData);
+}
+
+/* Error if ChangeDisplaySettings used: split-sized LPDEVMODE */
+
+/* Error if ChangeDisplaySettingsEx used: split-sized LPDEVMODE; NT 5.0/Win98+ only */
 
 /* Error if EnumDisplaySettings used: split-sized LPDEVMODE */
 
@@ -1109,990 +1579,1180 @@
 
 /* Error if EnumDisplayDevices used: split-sized PDISPLAY_DEVICE; NT 5.0+ only, no Win98 */
 
-/* NOTE: // callback fun differs only in string pointer type */
-int
-qxeEnumProps (HWND arg1, PROPENUMPROCW arg2)
-{
-  if (XEUNICODE_P)
-    return EnumPropsW (arg1, arg2);
-  else
-    return EnumPropsA (arg1, (PROPENUMPROCA) arg2);
-}
-
-/* NOTE: // callback fun differs only in string pointer type */
-int
-qxeEnumPropsEx (HWND arg1, PROPENUMPROCEXW arg2, LPARAM arg3)
-{
-  if (XEUNICODE_P)
-    return EnumPropsExW (arg1, arg2, arg3);
-  else
-    return EnumPropsExA (arg1, (PROPENUMPROCEXA) arg2, arg3);
-}
-
-/* NOTE: // callback fun differs only in string pointer type */
-BOOL
-qxeEnumWindowStations (WINSTAENUMPROCW arg1, LPARAM arg2)
-{
-  if (XEUNICODE_P)
-    return EnumWindowStationsW (arg1, arg2);
-  else
-    return EnumWindowStationsA ((WINSTAENUMPROCA) arg1, arg2);
-}
-
-/* NOTE: NT 4.0+ only */
-HWND
-qxeFindWindowEx (HWND arg1, HWND arg2, const Extbyte * arg3, const Extbyte * arg4)
-{
-  if (XEUNICODE_P)
-    return FindWindowExW (arg1, arg2, (LPCWSTR) arg3, (LPCWSTR) arg4);
-  else
-    return FindWindowExA (arg1, arg2, (LPCSTR) arg3, (LPCSTR) arg4);
-}
-
-HWND
-qxeFindWindow (const Extbyte * arg1, const Extbyte * arg2)
-{
-  if (XEUNICODE_P)
-    return FindWindowW ((LPCWSTR) arg1, (LPCWSTR) arg2);
-  else
-    return FindWindowA ((LPCSTR) arg1, (LPCSTR) arg2);
-}
-
-BOOL
-qxeGetClassInfo (HINSTANCE arg1, const Extbyte * arg2, LPWNDCLASSW arg3)
-{
-  if (XEUNICODE_P)
-    return GetClassInfoW (arg1, (LPCWSTR) arg2, arg3);
-  else
-    return GetClassInfoA (arg1, (LPCSTR) arg2, (LPWNDCLASSA) arg3);
-}
-
-/* NOTE: NT 4.0+ only */
-BOOL
-qxeGetClassInfoEx (HINSTANCE arg1, const Extbyte * arg2, LPWNDCLASSEXW arg3)
-{
-  if (XEUNICODE_P)
-    return GetClassInfoExW (arg1, (LPCWSTR) arg2, arg3);
-  else
-    return GetClassInfoExA (arg1, (LPCSTR) arg2, (LPWNDCLASSEXA) arg3);
-}
-
-DWORD
-qxeGetClassLong (HWND arg1, int arg2)
-{
-  if (XEUNICODE_P)
-    return GetClassLongW (arg1, arg2);
-  else
-    return GetClassLongA (arg1, arg2);
-}
-
-/* Error if GetClassLongPtr used: Function needs review to determine how to handle it */
-
-int
-qxeGetClassName (HWND arg1, Extbyte * arg2, int arg3)
-{
-  if (XEUNICODE_P)
-    return GetClassNameW (arg1, (LPWSTR) arg2, arg3);
-  else
-    return GetClassNameA (arg1, (LPSTR) arg2, arg3);
-}
-
-int
-qxeGetClipboardFormatName (UINT arg1, Extbyte * arg2, int arg3)
-{
-  if (XEUNICODE_P)
-    return GetClipboardFormatNameW (arg1, (LPWSTR) arg2, arg3);
-  else
-    return GetClipboardFormatNameA (arg1, (LPSTR) arg2, arg3);
-}
-
-UINT
-qxeGetDlgItemText (HWND arg1, int arg2, Extbyte * arg3, int arg4)
-{
-  if (XEUNICODE_P)
-    return GetDlgItemTextW (arg1, arg2, (LPWSTR) arg3, arg4);
-  else
-    return GetDlgItemTextA (arg1, arg2, (LPSTR) arg3, arg4);
-}
-
-BOOL
-qxeGetKeyboardLayoutName (Extbyte * arg1)
-{
-  if (XEUNICODE_P)
-    return GetKeyboardLayoutNameW ((LPWSTR) arg1);
-  else
-    return GetKeyboardLayoutNameA ((LPSTR) arg1);
-}
-
-int
-qxeGetKeyNameText (LONG arg1, Extbyte * arg2, int arg3)
-{
-  if (XEUNICODE_P)
-    return GetKeyNameTextW (arg1, (LPWSTR) arg2, arg3);
-  else
-    return GetKeyNameTextA (arg1, (LPSTR) arg2, arg3);
-}
-
-/* NOTE: NT 4.0+ only */
-BOOL
-qxeGetMenuItemInfo (HMENU arg1, UINT arg2, BOOL arg3, LPMENUITEMINFOW arg4)
-{
-  if (XEUNICODE_P)
-    return GetMenuItemInfoW (arg1, arg2, arg3, arg4);
-  else
-    return GetMenuItemInfoA (arg1, arg2, arg3, (LPMENUITEMINFOA) arg4);
-}
-
-int
-qxeGetMenuString (HMENU arg1, UINT arg2, Extbyte * arg3, int arg4, UINT arg5)
-{
-  if (XEUNICODE_P)
-    return GetMenuStringW (arg1, arg2, (LPWSTR) arg3, arg4, arg5);
-  else
-    return GetMenuStringA (arg1, arg2, (LPSTR) arg3, arg4, arg5);
-}
-
-BOOL
-qxeGetMessage (LPMSG arg1, HWND arg2, UINT arg3, UINT arg4)
-{
-  if (XEUNICODE_P)
-    return GetMessageW (arg1, arg2, arg3, arg4);
-  else
-    return GetMessageA (arg1, arg2, arg3, arg4);
-}
-
-HANDLE
-qxeGetProp (HWND arg1, const Extbyte * arg2)
-{
-  if (XEUNICODE_P)
-    return GetPropW (arg1, (LPCWSTR) arg2);
-  else
-    return GetPropA (arg1, (LPCSTR) arg2);
-}
-
-/* Error if GetRawInputDeviceInfo used: Function needs review to determine how to handle it */
-
-DWORD
-qxeGetTabbedTextExtent (HDC arg1, const Extbyte * arg2, int arg3, int arg4, LPINT arg5)
-{
-  if (XEUNICODE_P)
-    return GetTabbedTextExtentW (arg1, (LPCWSTR) arg2, arg3, arg4, arg5);
-  else
-    return GetTabbedTextExtentA (arg1, (LPCSTR) arg2, arg3, arg4, arg5);
-}
-
-LONG
-qxeGetWindowLong (HWND arg1, int arg2)
-{
-  if (XEUNICODE_P)
-    return GetWindowLongW (arg1, arg2);
-  else
-    return GetWindowLongA (arg1, arg2);
-}
-
-/* Error if GetWindowLongPtr used: Function needs review to determine how to handle it */
-
-BOOL
-qxeGetUserObjectInformation (HANDLE arg1, int arg2, PVOID arg3, DWORD arg4, PDWORD arg5)
-{
-  if (XEUNICODE_P)
-    return GetUserObjectInformationW (arg1, arg2, arg3, arg4, arg5);
-  else
-    return GetUserObjectInformationA (arg1, arg2, arg3, arg4, arg5);
-}
-
-int
-qxeGetWindowTextLength (HWND arg1)
-{
-  if (XEUNICODE_P)
-    return GetWindowTextLengthW (arg1);
-  else
-    return GetWindowTextLengthA (arg1);
-}
-
-int
-qxeGetWindowText (HWND arg1, Extbyte * arg2, int arg3)
-{
-  if (XEUNICODE_P)
-    return GetWindowTextW (arg1, (LPWSTR) arg2, arg3);
-  else
-    return GetWindowTextA (arg1, (LPSTR) arg2, arg3);
-}
-
-/* Error if GetAltTabInfo used: NT 5.0+ only */
+/* NOTE: probs w/ICONMETRICS, NONCLIENTMETRICS */
+WINBOOL
+qxeSystemParametersInfo (UINT uiAction, UINT uiParam, PVOID pvParam, UINT fWinIni)
+{
+  if (XEUNICODE_P)
+    return SystemParametersInfoW (uiAction, uiParam, pvParam, fWinIni);
+  else
+    return SystemParametersInfoA (uiAction, uiParam, pvParam, fWinIni);
+}
 
 /* Error if GetMonitorInfo used: NT 5.0/Win98+ only */
 
 /* Error if GetWindowModuleFileName used: NT 5.0+ only */
 
-BOOL
-qxeGrayString (HDC arg1, HBRUSH arg2, GRAYSTRINGPROC arg3, LPARAM arg4, int arg5, int arg6, int arg7, int arg8, int arg9)
-{
-  if (XEUNICODE_P)
-    return GrayStringW (arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9);
-  else
-    return GrayStringA (arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9);
-}
-
-BOOL
-qxeInsertMenu (HMENU arg1, UINT arg2, UINT arg3, UINT arg4, const Extbyte * arg5)
-{
-  if (XEUNICODE_P)
-    return InsertMenuW (arg1, arg2, arg3, arg4, (LPCWSTR) arg5);
-  else
-    return InsertMenuA (arg1, arg2, arg3, arg4, (LPCSTR) arg5);
-}
-
-/* NOTE: NT 4.0+ only */
-BOOL
-qxeInsertMenuItem (HMENU arg1, UINT arg2, BOOL arg3, LPCMENUITEMINFOW arg4)
-{
-  if (XEUNICODE_P)
-    return InsertMenuItemW (arg1, arg2, arg3, arg4);
-  else
-    return InsertMenuItemA (arg1, arg2, arg3, (LPCMENUITEMINFOA) arg4);
-}
-
-/* Error if IsCharAlphaNumeric used: split CHAR */
-
-/* Error if IsCharAlpha used: split CHAR */
-
-/* Error if IsCharLower used: split CHAR */
-
-/* Error if IsCharUpper used: split CHAR */
-
-BOOL
-qxeIsDialogMessage (HWND arg1, LPMSG arg2)
-{
-  if (XEUNICODE_P)
-    return IsDialogMessageW (arg1, arg2);
-  else
-    return IsDialogMessageA (arg1, arg2);
-}
-
-HACCEL
-qxeLoadAccelerators (HINSTANCE arg1, const Extbyte * arg2)
-{
-  if (XEUNICODE_P)
-    return LoadAcceleratorsW (arg1, (LPCWSTR) arg2);
-  else
-    return LoadAcceleratorsA (arg1, (LPCSTR) arg2);
-}
-
-HBITMAP
-qxeLoadBitmap (HINSTANCE arg1, const Extbyte * arg2)
-{
-  if (XEUNICODE_P)
-    return LoadBitmapW (arg1, (LPCWSTR) arg2);
-  else
-    return LoadBitmapA (arg1, (LPCSTR) arg2);
-}
-
-HCURSOR
-qxeLoadCursorFromFile (const Extbyte * arg1)
-{
-  if (XEUNICODE_P)
-    return LoadCursorFromFileW ((LPCWSTR) arg1);
-  else
-    return LoadCursorFromFileA ((LPCSTR) arg1);
-}
-
-HCURSOR
-qxeLoadCursor (HINSTANCE arg1, const Extbyte * arg2)
-{
-  if (XEUNICODE_P)
-    return LoadCursorW (arg1, (LPCWSTR) arg2);
-  else
-    return LoadCursorA (arg1, (LPCSTR) arg2);
-}
-
-HICON
-qxeLoadIcon (HINSTANCE arg1, const Extbyte * arg2)
-{
-  if (XEUNICODE_P)
-    return LoadIconW (arg1, (LPCWSTR) arg2);
-  else
-    return LoadIconA (arg1, (LPCSTR) arg2);
-}
-
-/* NOTE: NT 4.0+ only */
+/* Error if RealGetWindowClass used: NT 5.0+ only */
+
+/* Error if GetAltTabInfo used: NT 5.0+ only */
+
+/* Error if GetRawInputDeviceInfo used: HST: new? -- needs review */
+
+/* Error if CreateDesktopEx used: HST: new? -- needs review */
+
+
+/*----------------------------------------------------------------------*/
+/*                      Processing file SYNCHAPI.H                      */
+/*----------------------------------------------------------------------*/
+
+HANDLE
+qxeOpenMutex (DWORD dwDesiredAccess, WINBOOL bInheritHandle, const Extbyte * lpName)
+{
+  if (XEUNICODE_P)
+    return OpenMutexW (dwDesiredAccess, bInheritHandle, (LPCWSTR) lpName);
+  else
+    return OpenMutexA (dwDesiredAccess, bInheritHandle, (LPCSTR) lpName);
+}
+
+HANDLE
+qxeOpenEvent (DWORD dwDesiredAccess, WINBOOL bInheritHandle, const Extbyte * lpName)
+{
+  if (XEUNICODE_P)
+    return OpenEventW (dwDesiredAccess, bInheritHandle, (LPCWSTR) lpName);
+  else
+    return OpenEventA (dwDesiredAccess, bInheritHandle, (LPCSTR) lpName);
+}
+
+HANDLE
+qxeOpenSemaphore (DWORD dwDesiredAccess, WINBOOL bInheritHandle, const Extbyte * lpName)
+{
+  if (XEUNICODE_P)
+    return OpenSemaphoreW (dwDesiredAccess, bInheritHandle, (LPCWSTR) lpName);
+  else
+    return OpenSemaphoreA (dwDesiredAccess, bInheritHandle, (LPCSTR) lpName);
+}
+
+/* Error if SleepConditionVariableSR used: HST: new? -- needs review */
+
+/* Error if CreateMutexEx used: HST: new? -- needs review */
+
+/* Error if CreateEventEx used: HST: new? -- needs review */
+
+/* Error if CreateSemaphoreEx used: HST: new? -- needs review */
+
+HANDLE
+qxeCreateMutex (LPSECURITY_ATTRIBUTES lpMutexAttributes, WINBOOL bInitialOwner, const Extbyte * lpName)
+{
+  if (XEUNICODE_P)
+    return CreateMutexW (lpMutexAttributes, bInitialOwner, (LPCWSTR) lpName);
+  else
+    return CreateMutexA (lpMutexAttributes, bInitialOwner, (LPCSTR) lpName);
+}
+
+HANDLE
+qxeCreateEvent (LPSECURITY_ATTRIBUTES lpEventAttributes, WINBOOL bManualReset, WINBOOL bInitialState, const Extbyte * lpName)
+{
+  if (XEUNICODE_P)
+    return CreateEventW (lpEventAttributes, bManualReset, bInitialState, (LPCWSTR) lpName);
+  else
+    return CreateEventA (lpEventAttributes, bManualReset, bInitialState, (LPCSTR) lpName);
+}
+
 HANDLE
-qxeLoadImage (HINSTANCE arg1, const Extbyte * arg2, UINT arg3, int arg4, int arg5, UINT arg6)
-{
-  if (XEUNICODE_P)
-    return LoadImageW (arg1, (LPCWSTR) arg2, arg3, arg4, arg5, arg6);
-  else
-    return LoadImageA (arg1, (LPCSTR) arg2, arg3, arg4, arg5, arg6);
-}
-
-HKL
-qxeLoadKeyboardLayout (const Extbyte * arg1, UINT arg2)
-{
-  if (XEUNICODE_P)
-    return LoadKeyboardLayoutW ((LPCWSTR) arg1, arg2);
-  else
-    return LoadKeyboardLayoutA ((LPCSTR) arg1, arg2);
-}
-
-HMENU
-qxeLoadMenuIndirect (const MENUTEMPLATE* arg1)
-{
-  if (XEUNICODE_P)
-    return LoadMenuIndirectW (arg1);
-  else
-    return LoadMenuIndirectA (arg1);
-}
-
-HMENU
-qxeLoadMenu (HINSTANCE arg1, const Extbyte * arg2)
-{
-  if (XEUNICODE_P)
-    return LoadMenuW (arg1, (LPCWSTR) arg2);
-  else
-    return LoadMenuA (arg1, (LPCSTR) arg2);
-}
-
-int
-qxeLoadString (HINSTANCE arg1, UINT arg2, Extbyte * arg3, int arg4)
-{
-  if (XEUNICODE_P)
-    return LoadStringW (arg1, arg2, (LPWSTR) arg3, arg4);
-  else
-    return LoadStringA (arg1, arg2, (LPSTR) arg3, arg4);
-}
-
-/* NOTE: NT 4.0+ only */
-UINT
-qxeMapVirtualKeyEx (UINT arg1, UINT arg2, HKL arg3)
-{
-  if (XEUNICODE_P)
-    return MapVirtualKeyExW (arg1, arg2, arg3);
-  else
-    return MapVirtualKeyExA (arg1, arg2, arg3);
-}
-
-UINT
-qxeMapVirtualKey (UINT arg1, UINT arg2)
-{
-  if (XEUNICODE_P)
-    return MapVirtualKeyW (arg1, arg2);
-  else
-    return MapVirtualKeyA (arg1, arg2);
-}
-
-int
-qxeMessageBox (HWND arg1, const Extbyte * arg2, const Extbyte * arg3, UINT arg4)
-{
-  if (XEUNICODE_P)
-    return MessageBoxW (arg1, (LPCWSTR) arg2, (LPCWSTR) arg3, arg4);
-  else
-    return MessageBoxA (arg1, (LPCSTR) arg2, (LPCSTR) arg3, arg4);
+qxeOpenWaitableTimer (DWORD dwDesiredAccess, WINBOOL bInheritHandle, const Extbyte * lpTimerName)
+{
+  if (XEUNICODE_P)
+    return OpenWaitableTimerW (dwDesiredAccess, bInheritHandle, (LPCWSTR) lpTimerName);
+  else
+    return OpenWaitableTimerA (dwDesiredAccess, bInheritHandle, (LPCSTR) lpTimerName);
+}
+
+/* Error if CreateWaitableTimerEx used: HST: new? -- needs review */
+
+
+/*----------------------------------------------------------------------*/
+/*                  Processing file SECURITYBASEAPI.H                   */
+/*----------------------------------------------------------------------*/
+
+WINBOOL
+qxeAccessCheckAndAuditAlarm (const Extbyte * SubsystemName, LPVOID HandleId, Extbyte * ObjectTypeName, Extbyte * ObjectName, PSECURITY_DESCRIPTOR SecurityDescriptor, DWORD DesiredAccess, PGENERIC_MAPPING GenericMapping, WINBOOL ObjectCreation, LPDWORD GrantedAccess, LPBOOL AccessStatus, LPBOOL pfGenerateOnClose)
+{
+  if (XEUNICODE_P)
+    return AccessCheckAndAuditAlarmW ((LPCWSTR) SubsystemName, HandleId, (LPWSTR) ObjectTypeName, (LPWSTR) ObjectName, SecurityDescriptor, DesiredAccess, GenericMapping, ObjectCreation, GrantedAccess, AccessStatus, pfGenerateOnClose);
+  else
+    return AccessCheckAndAuditAlarmA ((LPCSTR) SubsystemName, HandleId, (LPSTR) ObjectTypeName, (LPSTR) ObjectName, SecurityDescriptor, DesiredAccess, GenericMapping, ObjectCreation, GrantedAccess, AccessStatus, pfGenerateOnClose);
+}
+
+/* Error if AccessCheckByTypeAndAuditAlarm used: HST: new? -- needs review */
+
+/* Error if AccessCheckByTypeResultListAndAuditAlarm used: HST: new? -- needs review */
+
+/* Error if AccessCheckByTypeResultListAndAuditAlarmByHandle used: HST: new? -- needs review */
+
+WINBOOL
+qxeGetFileSecurity (const Extbyte * lpFileName, SECURITY_INFORMATION RequestedInformation, PSECURITY_DESCRIPTOR pSecurityDescriptor, DWORD nLength, LPDWORD lpnLengthNeeded)
+{
+  if (XEUNICODE_P)
+    return GetFileSecurityW ((LPCWSTR) lpFileName, RequestedInformation, pSecurityDescriptor, nLength, lpnLengthNeeded);
+  else
+    return GetFileSecurityA ((LPCSTR) lpFileName, RequestedInformation, pSecurityDescriptor, nLength, lpnLengthNeeded);
+}
+
+WINBOOL
+qxeObjectCloseAuditAlarm (const Extbyte * SubsystemName, LPVOID HandleId, WINBOOL GenerateOnClose)
+{
+  if (XEUNICODE_P)
+    return ObjectCloseAuditAlarmW ((LPCWSTR) SubsystemName, HandleId, GenerateOnClose);
+  else
+    return ObjectCloseAuditAlarmA ((LPCSTR) SubsystemName, HandleId, GenerateOnClose);
+}
+
+WINBOOL
+qxeObjectDeleteAuditAlarm (const Extbyte * SubsystemName, LPVOID HandleId, WINBOOL GenerateOnClose)
+{
+  if (XEUNICODE_P)
+    return ObjectDeleteAuditAlarmW ((LPCWSTR) SubsystemName, HandleId, GenerateOnClose);
+  else
+    return ObjectDeleteAuditAlarmA ((LPCSTR) SubsystemName, HandleId, GenerateOnClose);
+}
+
+WINBOOL
+qxeObjectOpenAuditAlarm (const Extbyte * SubsystemName, LPVOID HandleId, Extbyte * ObjectTypeName, Extbyte * ObjectName, PSECURITY_DESCRIPTOR pSecurityDescriptor, HANDLE ClientToken, DWORD DesiredAccess, DWORD GrantedAccess, PPRIVILEGE_SET Privileges, WINBOOL ObjectCreation, WINBOOL AccessGranted, LPBOOL GenerateOnClose)
+{
+  if (XEUNICODE_P)
+    return ObjectOpenAuditAlarmW ((LPCWSTR) SubsystemName, HandleId, (LPWSTR) ObjectTypeName, (LPWSTR) ObjectName, pSecurityDescriptor, ClientToken, DesiredAccess, GrantedAccess, Privileges, ObjectCreation, AccessGranted, GenerateOnClose);
+  else
+    return ObjectOpenAuditAlarmA ((LPCSTR) SubsystemName, HandleId, (LPSTR) ObjectTypeName, (LPSTR) ObjectName, pSecurityDescriptor, ClientToken, DesiredAccess, GrantedAccess, Privileges, ObjectCreation, AccessGranted, GenerateOnClose);
+}
+
+WINBOOL
+qxeObjectPrivilegeAuditAlarm (const Extbyte * SubsystemName, LPVOID HandleId, HANDLE ClientToken, DWORD DesiredAccess, PPRIVILEGE_SET Privileges, WINBOOL AccessGranted)
+{
+  if (XEUNICODE_P)
+    return ObjectPrivilegeAuditAlarmW ((LPCWSTR) SubsystemName, HandleId, ClientToken, DesiredAccess, Privileges, AccessGranted);
+  else
+    return ObjectPrivilegeAuditAlarmA ((LPCSTR) SubsystemName, HandleId, ClientToken, DesiredAccess, Privileges, AccessGranted);
+}
+
+WINBOOL
+qxePrivilegedServiceAuditAlarm (const Extbyte * SubsystemName, const Extbyte * ServiceName, HANDLE ClientToken, PPRIVILEGE_SET Privileges, WINBOOL AccessGranted)
+{
+  if (XEUNICODE_P)
+    return PrivilegedServiceAuditAlarmW ((LPCWSTR) SubsystemName, (LPCWSTR) ServiceName, ClientToken, Privileges, AccessGranted);
+  else
+    return PrivilegedServiceAuditAlarmA ((LPCSTR) SubsystemName, (LPCSTR) ServiceName, ClientToken, Privileges, AccessGranted);
+}
+
+WINBOOL
+qxeSetFileSecurity (const Extbyte * lpFileName, SECURITY_INFORMATION SecurityInformation, PSECURITY_DESCRIPTOR pSecurityDescriptor)
+{
+  if (XEUNICODE_P)
+    return SetFileSecurityW ((LPCWSTR) lpFileName, SecurityInformation, pSecurityDescriptor);
+  else
+    return SetFileSecurityA ((LPCSTR) lpFileName, SecurityInformation, pSecurityDescriptor);
+}
+
+
+/*----------------------------------------------------------------------*/
+/*                     Processing file PROCESSENV.H                     */
+/*----------------------------------------------------------------------*/
+
+/* Error if GetEnvironmentStrings used: HST: new? -- needs review */
+
+/* Error if SetEnvironmentStrings used: HST: new? -- needs review */
+
+WINBOOL
+qxeFreeEnvironmentStrings (LPWCH penv)
+{
+  if (XEUNICODE_P)
+    return FreeEnvironmentStringsW (penv);
+  else
+    return FreeEnvironmentStringsA (penv);
+}
+
+Extbyte *
+qxeGetCommandLine (void)
+{
+  if (XEUNICODE_P)
+    return (Extbyte *) GetCommandLineW ();
+  else
+    return (Extbyte *) GetCommandLineA ();
+}
+
+DWORD
+qxeGetEnvironmentVariable (const Extbyte * lpName, Extbyte * lpBuffer, DWORD nSize)
+{
+  if (XEUNICODE_P)
+    return GetEnvironmentVariableW ((LPCWSTR) lpName, (LPWSTR) lpBuffer, nSize);
+  else
+    return GetEnvironmentVariableA ((LPCSTR) lpName, (LPSTR) lpBuffer, nSize);
+}
+
+WINBOOL
+qxeSetEnvironmentVariable (const Extbyte * lpName, const Extbyte * lpValue)
+{
+  if (XEUNICODE_P)
+    return SetEnvironmentVariableW ((LPCWSTR) lpName, (LPCWSTR) lpValue);
+  else
+    return SetEnvironmentVariableA ((LPCSTR) lpName, (LPCSTR) lpValue);
+}
+
+DWORD
+qxeExpandEnvironmentStrings (const Extbyte * lpSrc, Extbyte * lpDst, DWORD nSize)
+{
+  if (XEUNICODE_P)
+    return ExpandEnvironmentStringsW ((LPCWSTR) lpSrc, (LPWSTR) lpDst, nSize);
+  else
+    return ExpandEnvironmentStringsA ((LPCSTR) lpSrc, (LPSTR) lpDst, nSize);
+}
+
+WINBOOL
+qxeSetCurrentDirectory (const Extbyte * lpPathName)
+{
+  if (XEUNICODE_P)
+    return SetCurrentDirectoryW ((LPCWSTR) lpPathName);
+  else
+    return SetCurrentDirectoryA ((LPCSTR) lpPathName);
+}
+
+DWORD
+qxeGetCurrentDirectory (DWORD nBufferLength, Extbyte * lpBuffer)
+{
+  if (XEUNICODE_P)
+    return GetCurrentDirectoryW (nBufferLength, (LPWSTR) lpBuffer);
+  else
+    return GetCurrentDirectoryA (nBufferLength, (LPSTR) lpBuffer);
+}
+
+DWORD
+qxeSearchPath (const Extbyte * lpPath, const Extbyte * lpFileName, const Extbyte * lpExtension, DWORD nBufferLength, Extbyte * lpBuffer, Extbyte * * lpFilePart)
+{
+  if (XEUNICODE_P)
+    return SearchPathW ((LPCWSTR) lpPath, (LPCWSTR) lpFileName, (LPCWSTR) lpExtension, nBufferLength, (LPWSTR) lpBuffer, (LPWSTR *) lpFilePart);
+  else
+    return SearchPathA ((LPCSTR) lpPath, (LPCSTR) lpFileName, (LPCSTR) lpExtension, nBufferLength, (LPSTR) lpBuffer, (LPSTR *) lpFilePart);
+}
+
+/* Error if NeedCurrentDirectoryForExePath used: HST: new? -- needs review */
+
+
+/*----------------------------------------------------------------------*/
+/*                       Processing file DBGENG.H                       */
+/*----------------------------------------------------------------------*/
+
+
+/*----------------------------------------------------------------------*/
+/*                    Processing file LIBLOADERAPI.H                    */
+/*----------------------------------------------------------------------*/
+
+HRSRC
+qxeFindResourceEx (HMODULE hModule, const Extbyte * lpType, const Extbyte * lpName, WORD wLanguage)
+{
+  if (XEUNICODE_P)
+    return FindResourceExW (hModule, (LPCWSTR) lpType, (LPCWSTR) lpName, wLanguage);
+  else
+    return FindResourceExA (hModule, (LPCSTR) lpType, (LPCSTR) lpName, wLanguage);
+}
+
+DWORD
+qxeGetModuleFileName (HMODULE hModule, Extbyte * lpFilename, DWORD nSize)
+{
+  if (XEUNICODE_P)
+    return GetModuleFileNameW (hModule, (LPWSTR) lpFilename, nSize);
+  else
+    return GetModuleFileNameA (hModule, (LPSTR) lpFilename, nSize);
+}
+
+HMODULE
+qxeGetModuleHandle (const Extbyte * lpModuleName)
+{
+  if (XEUNICODE_P)
+    return GetModuleHandleW ((LPCWSTR) lpModuleName);
+  else
+    return GetModuleHandleA ((LPCSTR) lpModuleName);
+}
+
+HMODULE
+qxeLoadLibraryEx (const Extbyte * lpLibFileName, HANDLE hFile, DWORD dwFlags)
+{
+  if (XEUNICODE_P)
+    return LoadLibraryExW ((LPCWSTR) lpLibFileName, hFile, dwFlags);
+  else
+    return LoadLibraryExA ((LPCSTR) lpLibFileName, hFile, dwFlags);
 }
 
 int
-qxeMessageBoxEx (HWND arg1, const Extbyte * arg2, const Extbyte * arg3, UINT arg4, WORD arg5)
-{
-  if (XEUNICODE_P)
-    return MessageBoxExW (arg1, (LPCWSTR) arg2, (LPCWSTR) arg3, arg4, arg5);
-  else
-    return MessageBoxExA (arg1, (LPCSTR) arg2, (LPCSTR) arg3, arg4, arg5);
-}
-
-/* Error if MessageBoxIndirect used: Cygwin has split MSGBOXPARAMS* instead of LPMSGBOXPARAMS */
-
-BOOL
-qxeModifyMenu (HMENU arg1, UINT arg2, UINT arg3, UINT arg4, const Extbyte * arg5)
-{
-  if (XEUNICODE_P)
-    return ModifyMenuW (arg1, arg2, arg3, arg4, (LPCWSTR) arg5);
-  else
-    return ModifyMenuA (arg1, arg2, arg3, arg4, (LPCSTR) arg5);
-}
-
-BOOL
-qxeOemToCharBuff (LPCSTR arg1, Extbyte * arg2, DWORD arg3)
-{
-  if (XEUNICODE_P)
-    return OemToCharBuffW (arg1, (LPWSTR) arg2, arg3);
-  else
-    return OemToCharBuffA (arg1, (LPSTR) arg2, arg3);
-}
-
-BOOL
-qxeOemToChar (LPCSTR arg1, Extbyte * arg2)
-{
-  if (XEUNICODE_P)
-    return OemToCharW (arg1, (LPWSTR) arg2);
-  else
-    return OemToCharA (arg1, (LPSTR) arg2);
-}
-
-HDESK
-qxeOpenDesktop (Extbyte * arg1, DWORD arg2, BOOL arg3, DWORD arg4)
-{
-  if (XEUNICODE_P)
-    return OpenDesktopW ((LPWSTR) arg1, arg2, arg3, arg4);
-  else
-    return OpenDesktopA ((LPSTR) arg1, arg2, arg3, arg4);
-}
-
-HWINSTA
-qxeOpenWindowStation (Extbyte * arg1, BOOL arg2, DWORD arg3)
-{
-  if (XEUNICODE_P)
-    return OpenWindowStationW ((LPWSTR) arg1, arg2, arg3);
-  else
-    return OpenWindowStationA ((LPSTR) arg1, arg2, arg3);
-}
-
-BOOL
-qxePeekMessage (LPMSG arg1, HWND arg2, UINT arg3, UINT arg4, UINT arg5)
-{
-  if (XEUNICODE_P)
-    return PeekMessageW (arg1, arg2, arg3, arg4, arg5);
-  else
-    return PeekMessageA (arg1, arg2, arg3, arg4, arg5);
-}
-
-BOOL
-qxePostMessage (HWND arg1, UINT arg2, WPARAM arg3, LPARAM arg4)
-{
-  if (XEUNICODE_P)
-    return PostMessageW (arg1, arg2, arg3, arg4);
-  else
-    return PostMessageA (arg1, arg2, arg3, arg4);
-}
-
-BOOL
-qxePostThreadMessage (DWORD arg1, UINT arg2, WPARAM arg3, LPARAM arg4)
-{
-  if (XEUNICODE_P)
-    return PostThreadMessageW (arg1, arg2, arg3, arg4);
-  else
-    return PostThreadMessageA (arg1, arg2, arg3, arg4);
-}
-
-/* Error if RealGetWindowClass used: NT 5.0+ only */
-
-/* Skipping RegisterClass because need to intercept so we can provide our own window procedure and handle split notify messages; split-simple WNDCLASS */
-
-/* Skipping RegisterClassEx because need to intercept so we can provide our own window procedure and handle split notify messages; split-simple WNDCLASSEX; NT 4.0+ only */
+qxeLoadString (HINSTANCE hInstance, UINT uID, Extbyte * lpBuffer, int cchBufferMax)
+{
+  if (XEUNICODE_P)
+    return LoadStringW (hInstance, uID, (LPWSTR) lpBuffer, cchBufferMax);
+  else
+    return LoadStringA (hInstance, uID, (LPSTR) lpBuffer, cchBufferMax);
+}
+
+/* Error if GetModuleHandleEx used: HST: new? -- needs review */
+
+/* Error if EnumResourceLanguages used: HST: new? -- needs review */
+
+/* Error if EnumResourceLanguagesEx used: HST: new? -- needs review */
+
+/* Error if EnumResourceNamesEx used: HST: new? -- needs review */
+
+/* Error if EnumResourceTypesEx used: HST: new? -- needs review */
+
+
+/*----------------------------------------------------------------------*/
+/*                        Processing file IMM.H                         */
+/*----------------------------------------------------------------------*/
+
+#if defined (HAVE_MS_WINDOWS)
+
+HKL
+qxeImmInstallIME (const Extbyte * lpszIMEFileName, const Extbyte * lpszLayoutText)
+{
+  if (XEUNICODE_P)
+    return ImmInstallIMEW ((LPCWSTR) lpszIMEFileName, (LPCWSTR) lpszLayoutText);
+  else
+    return ImmInstallIMEA ((LPCSTR) lpszIMEFileName, (LPCSTR) lpszLayoutText);
+}
+
+#endif /* defined (HAVE_MS_WINDOWS) */
+
+#if defined (HAVE_MS_WINDOWS)
+
+UINT
+qxeImmGetDescription (HKL arg1, Extbyte * arg2, UINT uBufLen)
+{
+  if (XEUNICODE_P)
+    return ImmGetDescriptionW (arg1, (LPWSTR) arg2, uBufLen);
+  else
+    return ImmGetDescriptionA (arg1, (LPSTR) arg2, uBufLen);
+}
+
+#endif /* defined (HAVE_MS_WINDOWS) */
+
+#if defined (HAVE_MS_WINDOWS)
 
 UINT
-qxeRegisterClipboardFormat (const Extbyte * arg1)
-{
-  if (XEUNICODE_P)
-    return RegisterClipboardFormatW ((LPCWSTR) arg1);
-  else
-    return RegisterClipboardFormatA ((LPCSTR) arg1);
-}
-
-/* Error if RegisterDeviceNotification used: NT 5.0+ only */
+qxeImmGetIMEFileName (HKL arg1, Extbyte * arg2, UINT uBufLen)
+{
+  if (XEUNICODE_P)
+    return ImmGetIMEFileNameW (arg1, (LPWSTR) arg2, uBufLen);
+  else
+    return ImmGetIMEFileNameA (arg1, (LPSTR) arg2, uBufLen);
+}
+
+#endif /* defined (HAVE_MS_WINDOWS) */
+
+#if defined (HAVE_MS_WINDOWS)
+
+LONG
+qxeImmGetCompositionString (HIMC arg1, DWORD arg2, LPVOID arg3, DWORD arg4)
+{
+  if (XEUNICODE_P)
+    return ImmGetCompositionStringW (arg1, arg2, arg3, arg4);
+  else
+    return ImmGetCompositionStringA (arg1, arg2, arg3, arg4);
+}
+
+#endif /* defined (HAVE_MS_WINDOWS) */
+
+#if defined (HAVE_MS_WINDOWS)
+
+/* Skipping ImmSetCompositionString because different prototypes in VC6 and VC7 */
+
+#endif /* defined (HAVE_MS_WINDOWS) */
+
+#if defined (HAVE_MS_WINDOWS)
+
+DWORD
+qxeImmGetCandidateListCount (HIMC arg1, LPDWORD lpdwListCount)
+{
+  if (XEUNICODE_P)
+    return ImmGetCandidateListCountW (arg1, lpdwListCount);
+  else
+    return ImmGetCandidateListCountA (arg1, lpdwListCount);
+}
+
+#endif /* defined (HAVE_MS_WINDOWS) */
+
+#if defined (HAVE_MS_WINDOWS)
+
+DWORD
+qxeImmGetCandidateList (HIMC arg1, DWORD deIndex, LPCANDIDATELIST arg3, DWORD dwBufLen)
+{
+  if (XEUNICODE_P)
+    return ImmGetCandidateListW (arg1, deIndex, arg3, dwBufLen);
+  else
+    return ImmGetCandidateListA (arg1, deIndex, arg3, dwBufLen);
+}
+
+#endif /* defined (HAVE_MS_WINDOWS) */
+
+#if defined (HAVE_MS_WINDOWS)
+
+DWORD
+qxeImmGetGuideLine (HIMC arg1, DWORD dwIndex, Extbyte * arg3, DWORD dwBufLen)
+{
+  if (XEUNICODE_P)
+    return ImmGetGuideLineW (arg1, dwIndex, (LPWSTR) arg3, dwBufLen);
+  else
+    return ImmGetGuideLineA (arg1, dwIndex, (LPSTR) arg3, dwBufLen);
+}
+
+#endif /* defined (HAVE_MS_WINDOWS) */
+
+#if defined (HAVE_MS_WINDOWS)
+
+/* Skipping ImmGetCompositionFont because split-sized LOGFONT */
+
+#endif /* defined (HAVE_MS_WINDOWS) */
+
+#if defined (HAVE_MS_WINDOWS)
+
+/* Skipping ImmSetCompositionFont because split-sized LOGFONT */
+
+#endif /* defined (HAVE_MS_WINDOWS) */
+
+#if defined (HAVE_MS_WINDOWS)
+
+/* NOTE: // split-simple REGISTERWORD */
+WINBOOL
+qxeImmConfigureIME (HKL arg1, HWND arg2, DWORD arg3, LPVOID arg4)
+{
+  if (XEUNICODE_P)
+    return ImmConfigureIMEW (arg1, arg2, arg3, arg4);
+  else
+    return ImmConfigureIMEA (arg1, arg2, arg3, arg4);
+}
+
+#endif /* defined (HAVE_MS_WINDOWS) */
+
+#if defined (HAVE_MS_WINDOWS)
+
+/* NOTE: // strings of various sorts */
+LRESULT
+qxeImmEscape (HKL arg1, HIMC arg2, UINT arg3, LPVOID arg4)
+{
+  if (XEUNICODE_P)
+    return ImmEscapeW (arg1, arg2, arg3, arg4);
+  else
+    return ImmEscapeA (arg1, arg2, arg3, arg4);
+}
+
+#endif /* defined (HAVE_MS_WINDOWS) */
+
+#if defined (HAVE_MS_WINDOWS)
+
+DWORD
+qxeImmGetConversionList (HKL arg1, HIMC arg2, const Extbyte * arg3, LPCANDIDATELIST arg4, DWORD dwBufLen, UINT uFlag)
+{
+  if (XEUNICODE_P)
+    return ImmGetConversionListW (arg1, arg2, (LPCWSTR) arg3, arg4, dwBufLen, uFlag);
+  else
+    return ImmGetConversionListA (arg1, arg2, (LPCSTR) arg3, arg4, dwBufLen, uFlag);
+}
+
+#endif /* defined (HAVE_MS_WINDOWS) */
+
+#if defined (HAVE_MS_WINDOWS)
+
+WINBOOL
+qxeImmIsUIMessage (HWND arg1, UINT arg2, WPARAM arg3, LPARAM arg4)
+{
+  if (XEUNICODE_P)
+    return ImmIsUIMessageW (arg1, arg2, arg3, arg4);
+  else
+    return ImmIsUIMessageA (arg1, arg2, arg3, arg4);
+}
+
+#endif /* defined (HAVE_MS_WINDOWS) */
+
+#if defined (HAVE_MS_WINDOWS)
+
+WINBOOL
+qxeImmRegisterWord (HKL arg1, const Extbyte * lpszReading, DWORD arg3, const Extbyte * lpszRegister)
+{
+  if (XEUNICODE_P)
+    return ImmRegisterWordW (arg1, (LPCWSTR) lpszReading, arg3, (LPCWSTR) lpszRegister);
+  else
+    return ImmRegisterWordA (arg1, (LPCSTR) lpszReading, arg3, (LPCSTR) lpszRegister);
+}
+
+#endif /* defined (HAVE_MS_WINDOWS) */
+
+#if defined (HAVE_MS_WINDOWS)
+
+WINBOOL
+qxeImmUnregisterWord (HKL arg1, const Extbyte * lpszReading, DWORD arg3, const Extbyte * lpszUnregister)
+{
+  if (XEUNICODE_P)
+    return ImmUnregisterWordW (arg1, (LPCWSTR) lpszReading, arg3, (LPCWSTR) lpszUnregister);
+  else
+    return ImmUnregisterWordA (arg1, (LPCSTR) lpszReading, arg3, (LPCSTR) lpszUnregister);
+}
+
+#endif /* defined (HAVE_MS_WINDOWS) */
+
+#if defined (HAVE_MS_WINDOWS)
+
+/* Error if ImmGetRegisterWordStyle used: split-sized STYLEBUF */
+
+#endif /* defined (HAVE_MS_WINDOWS) */
+
+#if defined (HAVE_MS_WINDOWS)
 
 UINT
-qxeRegisterWindowMessage (const Extbyte * arg1)
-{
-  if (XEUNICODE_P)
-    return RegisterWindowMessageW ((LPCWSTR) arg1);
-  else
-    return RegisterWindowMessageA ((LPCSTR) arg1);
+qxeImmEnumRegisterWord (HKL arg1, REGISTERWORDENUMPROCW arg2, const Extbyte * lpszReading, DWORD arg4, const Extbyte * lpszRegister, LPVOID arg6)
+{
+  if (XEUNICODE_P)
+    return ImmEnumRegisterWordW (arg1, arg2, (LPCWSTR) lpszReading, arg4, (LPCWSTR) lpszRegister, arg6);
+  else
+    return ImmEnumRegisterWordA (arg1, (REGISTERWORDENUMPROCA) arg2, (LPCSTR) lpszReading, arg4, (LPCSTR) lpszRegister, arg6);
+}
+
+#endif /* defined (HAVE_MS_WINDOWS) */
+
+#if defined (HAVE_MS_WINDOWS)
+
+/* Error if ImmGetImeMenuItems used: split-sized IMEMENUITEMINFO */
+
+#endif /* defined (HAVE_MS_WINDOWS) */
+
+
+/*----------------------------------------------------------------------*/
+/*                    Processing file NAMEDPIPEAPI.H                    */
+/*----------------------------------------------------------------------*/
+
+HANDLE
+qxeCreateNamedPipe (const Extbyte * lpName, DWORD dwOpenMode, DWORD dwPipeMode, DWORD nMaxInstances, DWORD nOutBufferSize, DWORD nInBufferSize, DWORD nDefaultTimeOut, LPSECURITY_ATTRIBUTES lpSecurityAttributes)
+{
+  if (XEUNICODE_P)
+    return CreateNamedPipeW ((LPCWSTR) lpName, dwOpenMode, dwPipeMode, nMaxInstances, nOutBufferSize, nInBufferSize, nDefaultTimeOut, lpSecurityAttributes);
+  else
+    return CreateNamedPipeA ((LPCSTR) lpName, dwOpenMode, dwPipeMode, nMaxInstances, nOutBufferSize, nInBufferSize, nDefaultTimeOut, lpSecurityAttributes);
+}
+
+WINBOOL
+qxeWaitNamedPipe (const Extbyte * lpNamedPipeName, DWORD nTimeOut)
+{
+  if (XEUNICODE_P)
+    return WaitNamedPipeW ((LPCWSTR) lpNamedPipeName, nTimeOut);
+  else
+    return WaitNamedPipeA ((LPCSTR) lpNamedPipeName, nTimeOut);
+}
+
+/* Error if GetNamedPipeClientComputerName used: HST: new? -- needs review */
+
+
+/*----------------------------------------------------------------------*/
+/*                     Processing file MEMORYAPI.H                      */
+/*----------------------------------------------------------------------*/
+
+HANDLE
+qxeCreateFileMapping (HANDLE hFile, LPSECURITY_ATTRIBUTES lpFileMappingAttributes, DWORD flProtect, DWORD dwMaximumSizeHigh, DWORD dwMaximumSizeLow, const Extbyte * lpName)
+{
+  if (XEUNICODE_P)
+    return CreateFileMappingW (hFile, lpFileMappingAttributes, flProtect, dwMaximumSizeHigh, dwMaximumSizeLow, (LPCWSTR) lpName);
+  else
+    return CreateFileMappingA (hFile, lpFileMappingAttributes, flProtect, dwMaximumSizeHigh, dwMaximumSizeLow, (LPCSTR) lpName);
 }
 
 HANDLE
-qxeRemoveProp (HWND arg1, const Extbyte * arg2)
-{
-  if (XEUNICODE_P)
-    return RemovePropW (arg1, (LPCWSTR) arg2);
-  else
-    return RemovePropA (arg1, (LPCSTR) arg2);
-}
-
-LONG
-qxeSendDlgItemMessage (HWND arg1, int arg2, UINT arg3, WPARAM arg4, LPARAM arg5)
-{
-  if (XEUNICODE_P)
-    return SendDlgItemMessageW (arg1, arg2, arg3, arg4, arg5);
-  else
-    return SendDlgItemMessageA (arg1, arg2, arg3, arg4, arg5);
-}
-
-BOOL
-qxeSendMessageCallback (HWND arg1, UINT arg2, WPARAM arg3, LPARAM arg4, SENDASYNCPROC arg5, DWORD arg6)
-{
-  if (XEUNICODE_P)
-    return SendMessageCallbackW (arg1, arg2, arg3, arg4, arg5, arg6);
-  else
-    return SendMessageCallbackA (arg1, arg2, arg3, arg4, arg5, arg6);
-}
-
-/* Error if SendMessageTimeout used: VS6 has erroneous seventh parameter DWORD_PTR instead of PDWORD_PTR */
-
-/* Skipping SendMessage because split messages and structures */
-
-BOOL
-qxeSendNotifyMessage (HWND arg1, UINT arg2, WPARAM arg3, LPARAM arg4)
-{
-  if (XEUNICODE_P)
-    return SendNotifyMessageW (arg1, arg2, arg3, arg4);
-  else
-    return SendNotifyMessageA (arg1, arg2, arg3, arg4);
+qxeOpenFileMapping (DWORD dwDesiredAccess, WINBOOL bInheritHandle, const Extbyte * lpName)
+{
+  if (XEUNICODE_P)
+    return OpenFileMappingW (dwDesiredAccess, bInheritHandle, (LPCWSTR) lpName);
+  else
+    return OpenFileMappingA (dwDesiredAccess, bInheritHandle, (LPCSTR) lpName);
+}
+
+/* Error if CreateFileMappingNuma used: HST: new? -- needs review */
+
+
+/*----------------------------------------------------------------------*/
+/*                      Processing file MMSYSTEM.H                      */
+/*----------------------------------------------------------------------*/
+
+WINBOOL
+qxesndPlaySound (const Extbyte * pszSound, UINT fuSound)
+{
+  if (XEUNICODE_P)
+    return sndPlaySoundW ((LPCWSTR) pszSound, fuSound);
+  else
+    return sndPlaySoundA ((LPCSTR) pszSound, fuSound);
+}
+
+WINBOOL
+qxePlaySound (const Extbyte * pszSound, HMODULE hmod, DWORD fdwSound)
+{
+  if (XEUNICODE_P)
+    return PlaySoundW ((LPCWSTR) pszSound, hmod, fdwSound);
+  else
+    return PlaySoundA ((LPCSTR) pszSound, hmod, fdwSound);
+}
+
+/* Error if waveOutGetDevCaps used: split-sized LPWAVEOUTCAPS */
+
+MMRESULT
+qxewaveOutGetErrorText (MMRESULT mmrError, Extbyte * pszText, UINT cchText)
+{
+  if (XEUNICODE_P)
+    return waveOutGetErrorTextW (mmrError, (LPWSTR) pszText, cchText);
+  else
+    return waveOutGetErrorTextA (mmrError, (LPSTR) pszText, cchText);
+}
+
+/* Error if waveInGetDevCaps used: split-sized LPWAVEINCAPS */
+
+MMRESULT
+qxewaveInGetErrorText (MMRESULT mmrError, Extbyte * pszText, UINT cchText)
+{
+  if (XEUNICODE_P)
+    return waveInGetErrorTextW (mmrError, (LPWSTR) pszText, cchText);
+  else
+    return waveInGetErrorTextA (mmrError, (LPSTR) pszText, cchText);
+}
+
+/* Error if midiOutGetDevCaps used: split-sized LPMIDIOUTCAPS */
+
+MMRESULT
+qxemidiOutGetErrorText (MMRESULT mmrError, Extbyte * pszText, UINT cchText)
+{
+  if (XEUNICODE_P)
+    return midiOutGetErrorTextW (mmrError, (LPWSTR) pszText, cchText);
+  else
+    return midiOutGetErrorTextA (mmrError, (LPSTR) pszText, cchText);
+}
+
+/* Error if midiInGetDevCaps used: split-sized LPMIDIOUTCAPS */
+
+MMRESULT
+qxemidiInGetErrorText (MMRESULT mmrError, Extbyte * pszText, UINT cchText)
+{
+  if (XEUNICODE_P)
+    return midiInGetErrorTextW (mmrError, (LPWSTR) pszText, cchText);
+  else
+    return midiInGetErrorTextA (mmrError, (LPSTR) pszText, cchText);
+}
+
+/* Error if auxGetDevCaps used: split-sized LPAUXCAPS */
+
+/* Error if mixerGetDevCaps used: split-sized LPMIXERCAPS */
+
+/* Error if mixerGetLineInfo used: split-sized LPMIXERLINE */
+
+/* Error if mixerGetLineControls used: split-sized LPMIXERCONTROL */
+
+/* Error if mixerGetControlDetails used: split-sized LPMIXERCONTROL in LPMIXERLINECONTROLS in LPMIXERCONTROLDETAILS */
+
+/* Error if joyGetDevCaps used: split-sized LPJOYCAPS */
+
+FOURCC
+qxemmioStringToFOURCC (const Extbyte * sz, UINT uFlags)
+{
+  if (XEUNICODE_P)
+    return mmioStringToFOURCCW ((LPCWSTR) sz, uFlags);
+  else
+    return mmioStringToFOURCCA ((LPCSTR) sz, uFlags);
+}
+
+LPMMIOPROC
+qxemmioInstallIOProc (FOURCC fccIOProc, LPMMIOPROC pIOProc, DWORD dwFlags)
+{
+  if (XEUNICODE_P)
+    return mmioInstallIOProcW (fccIOProc, pIOProc, dwFlags);
+  else
+    return mmioInstallIOProcA (fccIOProc, pIOProc, dwFlags);
+}
+
+HMMIO
+qxemmioOpen (Extbyte * pszFileName, LPMMIOINFO pmmioinfo, DWORD fdwOpen)
+{
+  if (XEUNICODE_P)
+    return mmioOpenW ((LPWSTR) pszFileName, pmmioinfo, fdwOpen);
+  else
+    return mmioOpenA ((LPSTR) pszFileName, pmmioinfo, fdwOpen);
+}
+
+MMRESULT
+qxemmioRename (const Extbyte * pszFileName, const Extbyte * pszNewFileName, LPCMMIOINFO pmmioinfo, DWORD fdwRename)
+{
+  if (XEUNICODE_P)
+    return mmioRenameW ((LPCWSTR) pszFileName, (LPCWSTR) pszNewFileName, pmmioinfo, fdwRename);
+  else
+    return mmioRenameA ((LPCSTR) pszFileName, (LPCSTR) pszNewFileName, pmmioinfo, fdwRename);
+}
+
+MCIERROR
+qxemciSendCommand (MCIDEVICEID mciId, UINT uMsg, DWORD_PTR dwParam1, DWORD_PTR dwParam2)
+{
+  if (XEUNICODE_P)
+    return mciSendCommandW (mciId, uMsg, dwParam1, dwParam2);
+  else
+    return mciSendCommandA (mciId, uMsg, dwParam1, dwParam2);
+}
+
+MCIERROR
+qxemciSendString (const Extbyte * lpstrCommand, Extbyte * lpstrReturnString, UINT uReturnLength, HWND hwndCallback)
+{
+  if (XEUNICODE_P)
+    return mciSendStringW ((LPCWSTR) lpstrCommand, (LPWSTR) lpstrReturnString, uReturnLength, hwndCallback);
+  else
+    return mciSendStringA ((LPCSTR) lpstrCommand, (LPSTR) lpstrReturnString, uReturnLength, hwndCallback);
+}
+
+MCIDEVICEID
+qxemciGetDeviceID (const Extbyte * pszDevice)
+{
+  if (XEUNICODE_P)
+    return mciGetDeviceIDW ((LPCWSTR) pszDevice);
+  else
+    return mciGetDeviceIDA ((LPCSTR) pszDevice);
+}
+
+#if !defined (MINGW)
+
+/* Error if mciGetDeviceIDFromElementID used: missing from Win98se version of ADVAPI32.dll */
+
+#endif /* !defined (MINGW) */
+
+WINBOOL
+qxemciGetErrorString (MCIERROR mcierr, Extbyte * pszText, UINT cchText)
+{
+  if (XEUNICODE_P)
+    return mciGetErrorStringW (mcierr, (LPWSTR) pszText, cchText);
+  else
+    return mciGetErrorStringA (mcierr, (LPSTR) pszText, cchText);
+}
+
+
+/*----------------------------------------------------------------------*/
+/*                       Processing file WINCON.H                       */
+/*----------------------------------------------------------------------*/
+
+WINBOOL
+qxePeekConsoleInput (HANDLE hConsoleInput, PINPUT_RECORD lpBuffer, DWORD nLength, LPDWORD lpNumberOfEventsRead)
+{
+  if (XEUNICODE_P)
+    return PeekConsoleInputW (hConsoleInput, lpBuffer, nLength, lpNumberOfEventsRead);
+  else
+    return PeekConsoleInputA (hConsoleInput, lpBuffer, nLength, lpNumberOfEventsRead);
+}
+
+WINBOOL
+qxeReadConsoleInput (HANDLE hConsoleInput, PINPUT_RECORD lpBuffer, DWORD nLength, LPDWORD lpNumberOfEventsRead)
+{
+  if (XEUNICODE_P)
+    return ReadConsoleInputW (hConsoleInput, lpBuffer, nLength, lpNumberOfEventsRead);
+  else
+    return ReadConsoleInputA (hConsoleInput, lpBuffer, nLength, lpNumberOfEventsRead);
+}
+
+WINBOOL
+qxeWriteConsoleInput (HANDLE hConsoleInput, CONST INPUT_RECORD * lpBuffer, DWORD nLength, LPDWORD lpNumberOfEventsWritten)
+{
+  if (XEUNICODE_P)
+    return WriteConsoleInputW (hConsoleInput, lpBuffer, nLength, lpNumberOfEventsWritten);
+  else
+    return WriteConsoleInputA (hConsoleInput, lpBuffer, nLength, lpNumberOfEventsWritten);
+}
+
+WINBOOL
+qxeReadConsoleOutput (HANDLE hConsoleOutput, PCHAR_INFO lpBuffer, COORD dwBufferSize, COORD dwBufferCoord, PSMALL_RECT lpReadRegion)
+{
+  if (XEUNICODE_P)
+    return ReadConsoleOutputW (hConsoleOutput, lpBuffer, dwBufferSize, dwBufferCoord, lpReadRegion);
+  else
+    return ReadConsoleOutputA (hConsoleOutput, lpBuffer, dwBufferSize, dwBufferCoord, lpReadRegion);
+}
+
+WINBOOL
+qxeWriteConsoleOutput (HANDLE hConsoleOutput, CONST CHAR_INFO * lpBuffer, COORD dwBufferSize, COORD dwBufferCoord, PSMALL_RECT lpWriteRegion)
+{
+  if (XEUNICODE_P)
+    return WriteConsoleOutputW (hConsoleOutput, lpBuffer, dwBufferSize, dwBufferCoord, lpWriteRegion);
+  else
+    return WriteConsoleOutputA (hConsoleOutput, lpBuffer, dwBufferSize, dwBufferCoord, lpWriteRegion);
+}
+
+WINBOOL
+qxeReadConsoleOutputCharacter (HANDLE hConsoleOutput, Extbyte * lpCharacter, DWORD nLength, COORD dwReadCoord, LPDWORD lpNumberOfCharsRead)
+{
+  if (XEUNICODE_P)
+    return ReadConsoleOutputCharacterW (hConsoleOutput, (LPWSTR) lpCharacter, nLength, dwReadCoord, lpNumberOfCharsRead);
+  else
+    return ReadConsoleOutputCharacterA (hConsoleOutput, (LPSTR) lpCharacter, nLength, dwReadCoord, lpNumberOfCharsRead);
+}
+
+WINBOOL
+qxeWriteConsoleOutputCharacter (HANDLE hConsoleOutput, const Extbyte * lpCharacter, DWORD nLength, COORD dwWriteCoord, LPDWORD lpNumberOfCharsWritten)
+{
+  if (XEUNICODE_P)
+    return WriteConsoleOutputCharacterW (hConsoleOutput, (LPCWSTR) lpCharacter, nLength, dwWriteCoord, lpNumberOfCharsWritten);
+  else
+    return WriteConsoleOutputCharacterA (hConsoleOutput, (LPCSTR) lpCharacter, nLength, dwWriteCoord, lpNumberOfCharsWritten);
+}
+
+/* Error if FillConsoleOutputCharacter used: split CHAR */
+
+WINBOOL
+qxeScrollConsoleScreenBuffer (HANDLE hConsoleOutput, CONST SMALL_RECT * lpScrollRectangle, CONST SMALL_RECT * lpClipRectangle, COORD dwDestinationOrigin, CONST CHAR_INFO * lpFill)
+{
+  if (XEUNICODE_P)
+    return ScrollConsoleScreenBufferW (hConsoleOutput, lpScrollRectangle, lpClipRectangle, dwDestinationOrigin, lpFill);
+  else
+    return ScrollConsoleScreenBufferA (hConsoleOutput, lpScrollRectangle, lpClipRectangle, dwDestinationOrigin, lpFill);
 }
 
 DWORD
-qxeSetClassLong (HWND arg1, int arg2, LONG arg3)
-{
-  if (XEUNICODE_P)
-    return SetClassLongW (arg1, arg2, arg3);
-  else
-    return SetClassLongA (arg1, arg2, arg3);
-}
-
-/* Error if SetClassLongPtr used: Function needs review to determine how to handle it */
-
-BOOL
-qxeSetDlgItemText (HWND arg1, int arg2, const Extbyte * arg3)
-{
-  if (XEUNICODE_P)
-    return SetDlgItemTextW (arg1, arg2, (LPCWSTR) arg3);
-  else
-    return SetDlgItemTextA (arg1, arg2, (LPCSTR) arg3);
-}
-
-/* NOTE: NT 4.0+ only */
-BOOL
-qxeSetMenuItemInfo (HMENU arg1, UINT arg2, BOOL arg3, LPCMENUITEMINFOW arg4)
-{
-  if (XEUNICODE_P)
-    return SetMenuItemInfoW (arg1, arg2, arg3, arg4);
-  else
-    return SetMenuItemInfoA (arg1, arg2, arg3, (LPCMENUITEMINFOA) arg4);
-}
-
-BOOL
-qxeSetProp (HWND arg1, const Extbyte * arg2, HANDLE arg3)
-{
-  if (XEUNICODE_P)
-    return SetPropW (arg1, (LPCWSTR) arg2, arg3);
-  else
-    return SetPropA (arg1, (LPCSTR) arg2, arg3);
-}
-
-BOOL
-qxeSetUserObjectInformation (HANDLE arg1, int arg2, PVOID arg3, DWORD arg4)
-{
-  if (XEUNICODE_P)
-    return SetUserObjectInformationW (arg1, arg2, arg3, arg4);
-  else
-    return SetUserObjectInformationA (arg1, arg2, arg3, arg4);
-}
-
-LONG
-qxeSetWindowLong (HWND arg1, int arg2, LONG arg3)
-{
-  if (XEUNICODE_P)
-    return SetWindowLongW (arg1, arg2, arg3);
-  else
-    return SetWindowLongA (arg1, arg2, arg3);
-}
-
-/* Error if SetWindowLongPtr used: Function needs review to determine how to handle it */
-
-/* Error if SetWindowsHook used: obsolete; two versions, STRICT and non-STRICT */
-
-HHOOK
-qxeSetWindowsHookEx (int arg1, HOOKPROC arg2, HINSTANCE arg3, DWORD arg4)
-{
-  if (XEUNICODE_P)
-    return SetWindowsHookExW (arg1, arg2, arg3, arg4);
-  else
-    return SetWindowsHookExA (arg1, arg2, arg3, arg4);
-}
-
-BOOL
-qxeSetWindowText (HWND arg1, const Extbyte * arg2)
-{
-  if (XEUNICODE_P)
-    return SetWindowTextW (arg1, (LPCWSTR) arg2);
-  else
-    return SetWindowTextA (arg1, (LPCSTR) arg2);
-}
-
-/* NOTE: probs w/ICONMETRICS, NONCLIENTMETRICS */
-BOOL
-qxeSystemParametersInfo (UINT arg1, UINT arg2, PVOID arg3, UINT arg4)
-{
-  if (XEUNICODE_P)
-    return SystemParametersInfoW (arg1, arg2, arg3, arg4);
-  else
-    return SystemParametersInfoA (arg1, arg2, arg3, arg4);
-}
-
-LONG
-qxeTabbedTextOut (HDC arg1, int arg2, int arg3, const Extbyte * arg4, int arg5, int arg6, LPINT arg7, int arg8)
-{
-  if (XEUNICODE_P)
-    return TabbedTextOutW (arg1, arg2, arg3, (LPCWSTR) arg4, arg5, arg6, arg7, arg8);
-  else
-    return TabbedTextOutA (arg1, arg2, arg3, (LPCSTR) arg4, arg5, arg6, arg7, arg8);
-}
-
-int
-qxeTranslateAccelerator (HWND arg1, HACCEL arg2, LPMSG arg3)
-{
-  if (XEUNICODE_P)
-    return TranslateAcceleratorW (arg1, arg2, arg3);
-  else
-    return TranslateAcceleratorA (arg1, arg2, arg3);
-}
-
-/* Skipping UnregisterClass because need to intercept for reasons related to RegisterClass */
-
-/* Error if VkKeyScanEx used: split CHAR; NT 4.0+ only */
-
-/* Skipping VkKeyScan because split CHAR */
-
-BOOL
-qxeWinHelp (HWND arg1, const Extbyte * arg2, UINT arg3, DWORD arg4)
-{
-  if (XEUNICODE_P)
-    return WinHelpW (arg1, (LPCWSTR) arg2, arg3, arg4);
-  else
-    return WinHelpA (arg1, (LPCSTR) arg2, arg3, arg4);
-}
-
-int
-qxewvsprintf (Extbyte * arg1, const Extbyte * arg2, va_list arglist)
-{
-  if (XEUNICODE_P)
-    return wvsprintfW ((LPWSTR) arg1, (LPCWSTR) arg2, arglist);
-  else
-    return wvsprintfA ((LPSTR) arg1, (LPCSTR) arg2, arglist);
-}
+qxeGetConsoleTitle (Extbyte * lpConsoleTitle, DWORD nSize)
+{
+  if (XEUNICODE_P)
+    return GetConsoleTitleW ((LPWSTR) lpConsoleTitle, nSize);
+  else
+    return GetConsoleTitleA ((LPSTR) lpConsoleTitle, nSize);
+}
+
+WINBOOL
+qxeSetConsoleTitle (const Extbyte * lpConsoleTitle)
+{
+  if (XEUNICODE_P)
+    return SetConsoleTitleW ((LPCWSTR) lpConsoleTitle);
+  else
+    return SetConsoleTitleA ((LPCSTR) lpConsoleTitle);
+}
+
+WINBOOL
+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);
+}
+
+WINBOOL
+qxeWriteConsole (HANDLE hConsoleOutput, CONST VOID * lpBuffer, DWORD nNumberOfCharsToWrite, LPDWORD lpNumberOfCharsWritten, LPVOID lpReserved)
+{
+  if (XEUNICODE_P)
+    return WriteConsoleW (hConsoleOutput, lpBuffer, nNumberOfCharsToWrite, lpNumberOfCharsWritten, lpReserved);
+  else
+    return WriteConsoleA (hConsoleOutput, lpBuffer, nNumberOfCharsToWrite, lpNumberOfCharsWritten, lpReserved);
+}
+
+/* Error if AddConsoleAlias used: HST: new? -- needs review */
+
+/* Error if GetConsoleAlias used: HST: new? -- needs review */
+
+/* Error if GetConsoleAliasesLength used: HST: new? -- needs review */
+
+/* Error if GetConsoleAliasExesLength used: HST: new? -- needs review */
+
+/* Error if GetConsoleAliases used: HST: new? -- needs review */
+
+/* Error if GetConsoleAliasExes used: HST: new? -- needs review */
+
+/* Error if GetConsoleOriginalTitle used: HST: new? -- needs review */
+
+
+/*----------------------------------------------------------------------*/
+/*                      Processing file DEBUGAPI.H                      */
+/*----------------------------------------------------------------------*/
+
+VOID
+qxeOutputDebugString (const Extbyte * lpOutputString)
+{
+  if (XEUNICODE_P)
+    OutputDebugStringW ((LPCWSTR) lpOutputString);
+  else
+    OutputDebugStringA ((LPCSTR) lpOutputString);
+}
+
+
+/*----------------------------------------------------------------------*/
+/*                      Processing file WINNETWK.H                      */
+/*----------------------------------------------------------------------*/
+
+#if defined (HAVE_MS_WINDOWS)
+
+DWORD
+qxeWNetAddConnection (const Extbyte * lpRemoteName, const Extbyte * lpPassword, const Extbyte * lpLocalName)
+{
+  if (XEUNICODE_P)
+    return WNetAddConnectionW ((LPCWSTR) lpRemoteName, (LPCWSTR) lpPassword, (LPCWSTR) lpLocalName);
+  else
+    return WNetAddConnectionA ((LPCSTR) lpRemoteName, (LPCSTR) lpPassword, (LPCSTR) lpLocalName);
+}
+
+#endif /* defined (HAVE_MS_WINDOWS) */
+
+#if defined (HAVE_MS_WINDOWS)
+
+DWORD
+qxeWNetAddConnection2 (LPNETRESOURCEW lpNetResource, const Extbyte * lpPassword, const Extbyte * lpUserName, DWORD dwFlags)
+{
+  if (XEUNICODE_P)
+    return WNetAddConnection2W (lpNetResource, (LPCWSTR) lpPassword, (LPCWSTR) lpUserName, dwFlags);
+  else
+    return WNetAddConnection2A ((LPNETRESOURCEA) lpNetResource, (LPCSTR) lpPassword, (LPCSTR) lpUserName, dwFlags);
+}
+
+#endif /* defined (HAVE_MS_WINDOWS) */
+
+#if defined (HAVE_MS_WINDOWS)
+
+DWORD
+qxeWNetAddConnection3 (HWND hwndOwner, LPNETRESOURCEW lpNetResource, const Extbyte * lpPassword, const Extbyte * lpUserName, DWORD dwFlags)
+{
+  if (XEUNICODE_P)
+    return WNetAddConnection3W (hwndOwner, lpNetResource, (LPCWSTR) lpPassword, (LPCWSTR) lpUserName, dwFlags);
+  else
+    return WNetAddConnection3A (hwndOwner, (LPNETRESOURCEA) lpNetResource, (LPCSTR) lpPassword, (LPCSTR) lpUserName, dwFlags);
+}
+
+#endif /* defined (HAVE_MS_WINDOWS) */
+
+#if defined (HAVE_MS_WINDOWS)
+
+DWORD
+qxeWNetCancelConnection (const Extbyte * lpName, WINBOOL fForce)
+{
+  if (XEUNICODE_P)
+    return WNetCancelConnectionW ((LPCWSTR) lpName, fForce);
+  else
+    return WNetCancelConnectionA ((LPCSTR) lpName, fForce);
+}
+
+#endif /* defined (HAVE_MS_WINDOWS) */
+
+#if defined (HAVE_MS_WINDOWS)
+
+DWORD
+qxeWNetCancelConnection2 (const Extbyte * lpName, DWORD dwFlags, WINBOOL fForce)
+{
+  if (XEUNICODE_P)
+    return WNetCancelConnection2W ((LPCWSTR) lpName, dwFlags, fForce);
+  else
+    return WNetCancelConnection2A ((LPCSTR) lpName, dwFlags, fForce);
+}
+
+#endif /* defined (HAVE_MS_WINDOWS) */
+
+#if defined (HAVE_MS_WINDOWS)
+
+DWORD
+qxeWNetGetConnection (const Extbyte * lpLocalName, Extbyte * lpRemoteName, LPDWORD lpnLength)
+{
+  if (XEUNICODE_P)
+    return WNetGetConnectionW ((LPCWSTR) lpLocalName, (LPWSTR) lpRemoteName, lpnLength);
+  else
+    return WNetGetConnectionA ((LPCSTR) lpLocalName, (LPSTR) lpRemoteName, lpnLength);
+}
+
+#endif /* defined (HAVE_MS_WINDOWS) */
+
+#if defined (HAVE_MS_WINDOWS)
+
+DWORD
+qxeWNetUseConnection (HWND hwndOwner, LPNETRESOURCEW lpNetResource, const Extbyte * lpPassword, const Extbyte * lpUserID, DWORD dwFlags, Extbyte * lpAccessName, LPDWORD lpBufferSize, LPDWORD lpResult)
+{
+  if (XEUNICODE_P)
+    return WNetUseConnectionW (hwndOwner, lpNetResource, (LPCWSTR) lpPassword, (LPCWSTR) lpUserID, dwFlags, (LPWSTR) lpAccessName, lpBufferSize, lpResult);
+  else
+    return WNetUseConnectionA (hwndOwner, (LPNETRESOURCEA) lpNetResource, (LPCSTR) lpPassword, (LPCSTR) lpUserID, dwFlags, (LPSTR) lpAccessName, lpBufferSize, lpResult);
+}
+
+#endif /* defined (HAVE_MS_WINDOWS) */
+
+#if defined (HAVE_MS_WINDOWS)
+
+/* Error if WNetRestoreSingleConnection used: HST: new? -- needs review */
+
+#endif /* defined (HAVE_MS_WINDOWS) */
+
+#if defined (HAVE_MS_WINDOWS)
+
+/* Error if WNetRestoreConnection used: HST: new? -- needs review */
+
+#endif /* defined (HAVE_MS_WINDOWS) */
+
+#if defined (HAVE_MS_WINDOWS)
+
+/* NOTE: contains split-simple LPNETRESOURCE */
+DWORD
+qxeWNetConnectionDialog1 (LPCONNECTDLGSTRUCTW lpConnDlgStruct)
+{
+  if (XEUNICODE_P)
+    return WNetConnectionDialog1W (lpConnDlgStruct);
+  else
+    return WNetConnectionDialog1A ((LPCONNECTDLGSTRUCTA) lpConnDlgStruct);
+}
+
+#endif /* defined (HAVE_MS_WINDOWS) */
+
+#if defined (HAVE_MS_WINDOWS)
+
+DWORD
+qxeWNetDisconnectDialog1 (LPDISCDLGSTRUCTW lpConnDlgStruct)
+{
+  if (XEUNICODE_P)
+    return WNetDisconnectDialog1W (lpConnDlgStruct);
+  else
+    return WNetDisconnectDialog1A ((LPDISCDLGSTRUCTA) lpConnDlgStruct);
+}
+
+#endif /* defined (HAVE_MS_WINDOWS) */
+
+#if defined (HAVE_MS_WINDOWS)
+
+DWORD
+qxeWNetOpenEnum (DWORD dwScope, DWORD dwType, DWORD dwUsage, LPNETRESOURCEW lpNetResource, LPHANDLE lphEnum)
+{
+  if (XEUNICODE_P)
+    return WNetOpenEnumW (dwScope, dwType, dwUsage, lpNetResource, lphEnum);
+  else
+    return WNetOpenEnumA (dwScope, dwType, dwUsage, (LPNETRESOURCEA) lpNetResource, lphEnum);
+}
+
+#endif /* defined (HAVE_MS_WINDOWS) */
+
+#if defined (HAVE_MS_WINDOWS)
+
+DWORD
+qxeWNetEnumResource (HANDLE hEnum, LPDWORD lpcCount, LPVOID lpBuffer, LPDWORD lpBufferSize)
+{
+  if (XEUNICODE_P)
+    return WNetEnumResourceW (hEnum, lpcCount, lpBuffer, lpBufferSize);
+  else
+    return WNetEnumResourceA (hEnum, lpcCount, lpBuffer, lpBufferSize);
+}
+
+#endif /* defined (HAVE_MS_WINDOWS) */
+
+#if defined (HAVE_MS_WINDOWS)
+
+/* Error if WNetGetResourceParent used: Function needs review to determine how to handle it */
+
+#endif /* defined (HAVE_MS_WINDOWS) */
+
+#if defined (HAVE_MS_WINDOWS)
+
+/* Error if WNetGetResourceInformation used: Function needs review to determine how to handle it */
+
+#endif /* defined (HAVE_MS_WINDOWS) */
+
+#if defined (HAVE_MS_WINDOWS)
+
+DWORD
+qxeWNetGetUniversalName (const Extbyte * lpLocalPath, DWORD dwInfoLevel, LPVOID lpBuffer, LPDWORD lpBufferSize)
+{
+  if (XEUNICODE_P)
+    return WNetGetUniversalNameW ((LPCWSTR) lpLocalPath, dwInfoLevel, lpBuffer, lpBufferSize);
+  else
+    return WNetGetUniversalNameA ((LPCSTR) lpLocalPath, dwInfoLevel, lpBuffer, lpBufferSize);
+}
+
+#endif /* defined (HAVE_MS_WINDOWS) */
+
+#if defined (HAVE_MS_WINDOWS)
+
+DWORD
+qxeWNetGetUser (const Extbyte * lpName, Extbyte * lpUserName, LPDWORD lpnLength)
+{
+  if (XEUNICODE_P)
+    return WNetGetUserW ((LPCWSTR) lpName, (LPWSTR) lpUserName, lpnLength);
+  else
+    return WNetGetUserA ((LPCSTR) lpName, (LPSTR) lpUserName, lpnLength);
+}
+
+#endif /* defined (HAVE_MS_WINDOWS) */
+
+#if defined (HAVE_MS_WINDOWS)
+
+DWORD
+qxeWNetGetProviderName (DWORD dwNetType, Extbyte * lpProviderName, LPDWORD lpBufferSize)
+{
+  if (XEUNICODE_P)
+    return WNetGetProviderNameW (dwNetType, (LPWSTR) lpProviderName, lpBufferSize);
+  else
+    return WNetGetProviderNameA (dwNetType, (LPSTR) lpProviderName, lpBufferSize);
+}
+
+#endif /* defined (HAVE_MS_WINDOWS) */
+
+#if defined (HAVE_MS_WINDOWS)
+
+DWORD
+qxeWNetGetNetworkInformation (const Extbyte * lpProvider, LPNETINFOSTRUCT lpNetInfoStruct)
+{
+  if (XEUNICODE_P)
+    return WNetGetNetworkInformationW ((LPCWSTR) lpProvider, lpNetInfoStruct);
+  else
+    return WNetGetNetworkInformationA ((LPCSTR) lpProvider, lpNetInfoStruct);
+}
+
+#endif /* defined (HAVE_MS_WINDOWS) */
+
+#if defined (HAVE_MS_WINDOWS)
+
+DWORD
+qxeWNetGetLastError (LPDWORD lpError, Extbyte * lpErrorBuf, DWORD nErrorBufSize, Extbyte * lpNameBuf, DWORD nNameBufSize)
+{
+  if (XEUNICODE_P)
+    return WNetGetLastErrorW (lpError, (LPWSTR) lpErrorBuf, nErrorBufSize, (LPWSTR) lpNameBuf, nNameBufSize);
+  else
+    return WNetGetLastErrorA (lpError, (LPSTR) lpErrorBuf, nErrorBufSize, (LPSTR) lpNameBuf, nNameBufSize);
+}
+
+#endif /* defined (HAVE_MS_WINDOWS) */
+
+#if defined (HAVE_MS_WINDOWS)
+
+DWORD
+qxeMultinetGetConnectionPerformance (LPNETRESOURCEW lpNetResource, LPNETCONNECTINFOSTRUCT lpNetConnectInfoStruct)
+{
+  if (XEUNICODE_P)
+    return MultinetGetConnectionPerformanceW (lpNetResource, lpNetConnectInfoStruct);
+  else
+    return MultinetGetConnectionPerformanceA ((LPNETRESOURCEA) lpNetResource, lpNetConnectInfoStruct);
+}
+
+#endif /* defined (HAVE_MS_WINDOWS) */
 
 
 /*----------------------------------------------------------------------*/
 /*                       Processing file DDEML.H                        */
 /*----------------------------------------------------------------------*/
 
-/* NOTE: former error in Cygwin prototype, but no more (Cygwin 1.7, 1-30-10) */
-HSZ
-qxeDdeCreateStringHandle (DWORD arg1, const Extbyte * arg2, int arg3)
-{
-  if (XEUNICODE_P)
-    return DdeCreateStringHandleW (arg1, (LPCWSTR) arg2, arg3);
-  else
-    return DdeCreateStringHandleA (arg1, (LPCSTR) arg2, arg3);
-}
-
 UINT
-qxeDdeInitialize (PDWORD arg1, PFNCALLBACK arg2, DWORD arg3, DWORD arg4)
-{
-  if (XEUNICODE_P)
-    return DdeInitializeW (arg1, arg2, arg3, arg4);
-  else
-    return DdeInitializeA (arg1, arg2, arg3, arg4);
-}
-
-DWORD
-qxeDdeQueryString (DWORD arg1, HSZ arg2, Extbyte * arg3, DWORD arg4, int arg5)
-{
-  if (XEUNICODE_P)
-    return DdeQueryStringW (arg1, arg2, (LPWSTR) arg3, arg4, arg5);
-  else
-    return DdeQueryStringA (arg1, arg2, (LPSTR) arg3, arg4, arg5);
-}
-
-
-/*----------------------------------------------------------------------*/
-/*                       Processing file WINREG.H                       */
-/*----------------------------------------------------------------------*/
-
-/* NOTE: error arg 1, Cygwin prototype, extra const.
-   NOTE: Prototype manually overridden.
-         Header file claims:
-           WINADVAPI BOOL WINAPI AbortSystemShutdown(LPCWSTR)
-         Overridden with:
-           BOOL AbortSystemShutdown(LPWSTR)
-         Differences in return-type qualifiers, e.g. WINAPI, are not important.
- */
-BOOL
-qxeAbortSystemShutdown (Extbyte * arg1)
-{
-  if (XEUNICODE_P)
-    return AbortSystemShutdownW ((LPWSTR) arg1);
-  else
-    return AbortSystemShutdownA ((LPSTR) arg1);
-}
-
-BOOL
-qxeInitiateSystemShutdown (Extbyte * arg1, Extbyte * arg2, DWORD arg3, BOOL arg4, BOOL arg5)
-{
-  if (XEUNICODE_P)
-    return InitiateSystemShutdownW ((LPWSTR) arg1, (LPWSTR) arg2, arg3, arg4, arg5);
-  else
-    return InitiateSystemShutdownA ((LPSTR) arg1, (LPSTR) arg2, arg3, arg4, arg5);
+qxeDdeInitialize (LPDWORD pidInst, PFNCALLBACK pfnCallback, DWORD afCmd, DWORD ulRes)
+{
+  if (XEUNICODE_P)
+    return DdeInitializeW (pidInst, pfnCallback, afCmd, ulRes);
+  else
+    return DdeInitializeA (pidInst, pfnCallback, afCmd, ulRes);
 }
 
 /* NOTE: former error in Cygwin prototype, but no more (Cygwin 1.7, 1-30-10) */
-LONG
-qxeRegConnectRegistry (const Extbyte * arg1, HKEY arg2, PHKEY arg3)
-{
-  if (XEUNICODE_P)
-    return RegConnectRegistryW ((LPCWSTR) arg1, arg2, arg3);
-  else
-    return RegConnectRegistryA ((LPCSTR) arg1, arg2, arg3);
-}
-
-LONG
-qxeRegCreateKeyEx (HKEY arg1, const Extbyte * arg2, DWORD arg3, Extbyte * arg4, DWORD arg5, REGSAM arg6, LPSECURITY_ATTRIBUTES arg7, PHKEY arg8, PDWORD arg9)
-{
-  if (XEUNICODE_P)
-    return RegCreateKeyExW (arg1, (LPCWSTR) arg2, arg3, (LPWSTR) arg4, arg5, arg6, arg7, arg8, arg9);
-  else
-    return RegCreateKeyExA (arg1, (LPCSTR) arg2, arg3, (LPSTR) arg4, arg5, arg6, arg7, arg8, arg9);
-}
-
-LONG
-qxeRegCreateKey (HKEY arg1, const Extbyte * arg2, PHKEY arg3)
-{
-  if (XEUNICODE_P)
-    return RegCreateKeyW (arg1, (LPCWSTR) arg2, arg3);
-  else
-    return RegCreateKeyA (arg1, (LPCSTR) arg2, arg3);
-}
-
-LONG
-qxeRegDeleteKey (HKEY arg1, const Extbyte * arg2)
-{
-  if (XEUNICODE_P)
-    return RegDeleteKeyW (arg1, (LPCWSTR) arg2);
-  else
-    return RegDeleteKeyA (arg1, (LPCSTR) arg2);
-}
-
-/* Error if RegDeleteKeyEx used: Function needs review to determine how to handle it */
-
-LONG
-qxeRegDeleteValue (HKEY arg1, const Extbyte * arg2)
-{
-  if (XEUNICODE_P)
-    return RegDeleteValueW (arg1, (LPCWSTR) arg2);
-  else
-    return RegDeleteValueA (arg1, (LPCSTR) arg2);
-}
-
-LONG
-qxeRegEnumKey (HKEY arg1, DWORD arg2, Extbyte * arg3, DWORD arg4)
-{
-  if (XEUNICODE_P)
-    return RegEnumKeyW (arg1, arg2, (LPWSTR) arg3, arg4);
-  else
-    return RegEnumKeyA (arg1, arg2, (LPSTR) arg3, arg4);
-}
-
-LONG
-qxeRegEnumKeyEx (HKEY arg1, DWORD arg2, Extbyte * arg3, PDWORD arg4, PDWORD arg5, Extbyte * arg6, PDWORD arg7, PFILETIME arg8)
-{
-  if (XEUNICODE_P)
-    return RegEnumKeyExW (arg1, arg2, (LPWSTR) arg3, arg4, arg5, (LPWSTR) arg6, arg7, arg8);
-  else
-    return RegEnumKeyExA (arg1, arg2, (LPSTR) arg3, arg4, arg5, (LPSTR) arg6, arg7, arg8);
-}
-
-LONG
-qxeRegEnumValue (HKEY arg1, DWORD arg2, Extbyte * arg3, PDWORD arg4, PDWORD arg5, PDWORD arg6, LPBYTE arg7, PDWORD arg8)
-{
-  if (XEUNICODE_P)
-    return RegEnumValueW (arg1, arg2, (LPWSTR) arg3, arg4, arg5, arg6, arg7, arg8);
-  else
-    return RegEnumValueA (arg1, arg2, (LPSTR) arg3, arg4, arg5, arg6, arg7, arg8);
-}
-
-LONG
-qxeRegLoadKey (HKEY arg1, const Extbyte * arg2, const Extbyte * arg3)
-{
-  if (XEUNICODE_P)
-    return RegLoadKeyW (arg1, (LPCWSTR) arg2, (LPCWSTR) arg3);
-  else
-    return RegLoadKeyA (arg1, (LPCSTR) arg2, (LPCSTR) arg3);
-}
-
-LONG
-qxeRegOpenKeyEx (HKEY arg1, const Extbyte * arg2, DWORD arg3, REGSAM arg4, PHKEY arg5)
-{
-  if (XEUNICODE_P)
-    return RegOpenKeyExW (arg1, (LPCWSTR) arg2, arg3, arg4, arg5);
-  else
-    return RegOpenKeyExA (arg1, (LPCSTR) arg2, arg3, arg4, arg5);
-}
-
-LONG
-qxeRegOpenKey (HKEY arg1, const Extbyte * arg2, PHKEY arg3)
-{
-  if (XEUNICODE_P)
-    return RegOpenKeyW (arg1, (LPCWSTR) arg2, arg3);
-  else
-    return RegOpenKeyA (arg1, (LPCSTR) arg2, arg3);
-}
-
-LONG
-qxeRegQueryInfoKey (HKEY arg1, Extbyte * arg2, PDWORD arg3, PDWORD arg4, PDWORD arg5, PDWORD arg6, PDWORD arg7, PDWORD arg8, PDWORD arg9, PDWORD arg10, PDWORD arg11, PFILETIME arg12)
-{
-  if (XEUNICODE_P)
-    return RegQueryInfoKeyW (arg1, (LPWSTR) arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12);
-  else
-    return RegQueryInfoKeyA (arg1, (LPSTR) arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12);
-}
-
-LONG
-qxeRegQueryMultipleValues (HKEY arg1, PVALENTW arg2, DWORD arg3, Extbyte * arg4, LPDWORD arg5)
-{
-  if (XEUNICODE_P)
-    return RegQueryMultipleValuesW (arg1, arg2, arg3, (LPWSTR) arg4, arg5);
-  else
-    return RegQueryMultipleValuesA (arg1, (PVALENTA) arg2, arg3, (LPSTR) arg4, arg5);
-}
-
-LONG
-qxeRegQueryValueEx (HKEY arg1, const Extbyte * arg2, LPDWORD arg3, LPDWORD arg4, LPBYTE arg5, LPDWORD arg6)
-{
-  if (XEUNICODE_P)
-    return RegQueryValueExW (arg1, (LPCWSTR) arg2, arg3, arg4, arg5, arg6);
-  else
-    return RegQueryValueExA (arg1, (LPCSTR) arg2, arg3, arg4, arg5, arg6);
-}
-
-LONG
-qxeRegQueryValue (HKEY arg1, const Extbyte * arg2, Extbyte * arg3, PLONG arg4)
-{
-  if (XEUNICODE_P)
-    return RegQueryValueW (arg1, (LPCWSTR) arg2, (LPWSTR) arg3, arg4);
-  else
-    return RegQueryValueA (arg1, (LPCSTR) arg2, (LPSTR) arg3, arg4);
-}
-
-LONG
-qxeRegReplaceKey (HKEY arg1, const Extbyte * arg2, const Extbyte * arg3, const Extbyte * arg4)
-{
-  if (XEUNICODE_P)
-    return RegReplaceKeyW (arg1, (LPCWSTR) arg2, (LPCWSTR) arg3, (LPCWSTR) arg4);
-  else
-    return RegReplaceKeyA (arg1, (LPCSTR) arg2, (LPCSTR) arg3, (LPCSTR) arg4);
-}
-
-LONG
-qxeRegRestoreKey (HKEY arg1, const Extbyte * arg2, DWORD arg3)
-{
-  if (XEUNICODE_P)
-    return RegRestoreKeyW (arg1, (LPCWSTR) arg2, arg3);
-  else
-    return RegRestoreKeyA (arg1, (LPCSTR) arg2, arg3);
-}
-
-LONG
-qxeRegSaveKey (HKEY arg1, const Extbyte * arg2, LPSECURITY_ATTRIBUTES arg3)
-{
-  if (XEUNICODE_P)
-    return RegSaveKeyW (arg1, (LPCWSTR) arg2, arg3);
-  else
-    return RegSaveKeyA (arg1, (LPCSTR) arg2, arg3);
-}
-
-LONG
-qxeRegSetValueEx (HKEY arg1, const Extbyte * arg2, DWORD arg3, DWORD arg4, const BYTE* arg5, DWORD arg6)
-{
-  if (XEUNICODE_P)
-    return RegSetValueExW (arg1, (LPCWSTR) arg2, arg3, arg4, arg5, arg6);
-  else
-    return RegSetValueExA (arg1, (LPCSTR) arg2, arg3, arg4, arg5, arg6);
-}
-
-LONG
-qxeRegSetValue (HKEY arg1, const Extbyte * arg2, DWORD arg3, const Extbyte * arg4, DWORD arg5)
-{
-  if (XEUNICODE_P)
-    return RegSetValueW (arg1, (LPCWSTR) arg2, arg3, (LPCWSTR) arg4, arg5);
-  else
-    return RegSetValueA (arg1, (LPCSTR) arg2, arg3, (LPCSTR) arg4, arg5);
-}
-
-LONG
-qxeRegUnLoadKey (HKEY arg1, const Extbyte * arg2)
-{
-  if (XEUNICODE_P)
-    return RegUnLoadKeyW (arg1, (LPCWSTR) arg2);
-  else
-    return RegUnLoadKeyA (arg1, (LPCSTR) arg2);
-}
-
-
-/*----------------------------------------------------------------------*/
-/*                       Processing file WINNLS.H                       */
-/*----------------------------------------------------------------------*/
-
-/* Error if CompareString used: not used, not examined yet */
-
-/* Error if EnumCalendarInfo used: not used, not examined yet */
-
-/* Error if EnumDateFormats used: not used, not examined yet */
-
-/* Error if EnumSystemCodePages used: not used, not examined yet */
-
-/* Error if EnumSystemLocales used: not used, not examined yet */
-
-/* Error if EnumTimeFormats used: not used, not examined yet */
-
-/* Error if FoldString used: not used, not examined yet */
-
-/* Error if GetCalendarInfo used: Function needs review to determine how to handle it */
-
-/* Error if GetCPInfoEx used: not used, not examined yet */
-
-/* Error if GetCurrencyFormat used: not used, not examined yet */
-
-/* Error if GetDateFormat used: not used, not examined yet */
-
-/* Error if GetGeoInfo used: Function needs review to determine how to handle it */
-
-int
-qxeGetLocaleInfo (LCID arg1, LCTYPE arg2, Extbyte * arg3, int arg4)
-{
-  if (XEUNICODE_P)
-    return GetLocaleInfoW (arg1, arg2, (LPWSTR) arg3, arg4);
-  else
-    return GetLocaleInfoA (arg1, arg2, (LPSTR) arg3, arg4);
-}
-
-/* Error if GetNumberFormat used: not used, not examined yet */
-
-/* Error if GetStringType used: no such fun; A and W versions have different nos. of args */
-
-/* Error if GetStringTypeEx used: not used, not examined yet */
-
-/* Error if GetTimeFormat used: not used, not examined yet */
-
-/* Error if LCMapString used: not used, not examined yet */
-
-/* Error if SetCalendarInfo used: Function needs review to determine how to handle it */
-
-BOOL
-qxeSetLocaleInfo (LCID arg1, LCTYPE arg2, const Extbyte * arg3)
-{
-  if (XEUNICODE_P)
-    return SetLocaleInfoW (arg1, arg2, (LPCWSTR) arg3);
-  else
-    return SetLocaleInfoA (arg1, arg2, (LPCSTR) arg3);
-}
-
-/* Error if EnumCalendarInfoEx used: not used, not examined yet */
-
-/* Error if EnumDateFormatsEx used: not used, not examined yet */
-
-/* Error if EnumSystemLanguageGroups used: Function needs review to determine how to handle it */
-
-/* Error if EnumLanguageGroupLocales used: Function needs review to determine how to handle it */
-
-/* Error if EnumUILanguages used: Function needs review to determine how to handle it */
+HSZ
+qxeDdeCreateStringHandle (DWORD idInst, const Extbyte * psz, int iCodePage)
+{
+  if (XEUNICODE_P)
+    return DdeCreateStringHandleW (idInst, (LPCWSTR) psz, iCodePage);
+  else
+    return DdeCreateStringHandleA (idInst, (LPCSTR) psz, iCodePage);
+}
+
+DWORD
+qxeDdeQueryString (DWORD idInst, HSZ hsz, Extbyte * psz, DWORD cchMax, int iCodePage)
+{
+  if (XEUNICODE_P)
+    return DdeQueryStringW (idInst, hsz, (LPWSTR) psz, cchMax, iCodePage);
+  else
+    return DdeQueryStringA (idInst, hsz, (LPSTR) psz, cchMax, iCodePage);
+}
 
 
 /*----------------------------------------------------------------------*/
@@ -2114,25 +2774,6 @@
 
 #if defined (HAVE_MS_WINDOWS)
 
-/* Error if AddFontResourceEx used: NT 5.0+ only */
-
-#endif /* defined (HAVE_MS_WINDOWS) */
-
-#if defined (HAVE_MS_WINDOWS)
-
-HENHMETAFILE
-qxeCopyEnhMetaFile (HENHMETAFILE arg1, const Extbyte * arg2)
-{
-  if (XEUNICODE_P)
-    return CopyEnhMetaFileW (arg1, (LPCWSTR) arg2);
-  else
-    return CopyEnhMetaFileA (arg1, (LPCSTR) arg2);
-}
-
-#endif /* defined (HAVE_MS_WINDOWS) */
-
-#if defined (HAVE_MS_WINDOWS)
-
 HMETAFILE
 qxeCopyMetaFile (HMETAFILE arg1, const Extbyte * arg2)
 {
@@ -2146,45 +2787,26 @@
 
 #if defined (HAVE_MS_WINDOWS)
 
-/* Error if CreateColorSpace used: split-sized LPLOGCOLORSPACE; NT 4.0+ only */
-
-#endif /* defined (HAVE_MS_WINDOWS) */
-
-#if defined (HAVE_MS_WINDOWS)
-
 /* Skipping CreateDC because split-sized DEVMODE */
 
 #endif /* defined (HAVE_MS_WINDOWS) */
 
 #if defined (HAVE_MS_WINDOWS)
 
-HDC
-qxeCreateEnhMetaFile (HDC arg1, const Extbyte * arg2, LPCRECT arg3, const Extbyte * arg4)
-{
-  if (XEUNICODE_P)
-    return CreateEnhMetaFileW (arg1, (LPCWSTR) arg2, arg3, (LPCWSTR) arg4);
-  else
-    return CreateEnhMetaFileA (arg1, (LPCSTR) arg2, arg3, (LPCSTR) arg4);
-}
+/* Skipping CreateFontIndirect because split-sized LOGFONT */
 
 #endif /* defined (HAVE_MS_WINDOWS) */
 
 #if defined (HAVE_MS_WINDOWS)
 
 HFONT
-qxeCreateFont (int arg1, int arg2, int arg3, int arg4, int arg5, DWORD arg6, DWORD arg7, DWORD arg8, DWORD arg9, DWORD arg10, DWORD arg11, DWORD arg12, DWORD arg13, const Extbyte * arg14)
-{
-  if (XEUNICODE_P)
-    return CreateFontW (arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, (LPCWSTR) arg14);
-  else
-    return CreateFontA (arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, (LPCSTR) arg14);
-}
-
-#endif /* defined (HAVE_MS_WINDOWS) */
-
-#if defined (HAVE_MS_WINDOWS)
-
-/* Skipping CreateFontIndirect because split-sized LOGFONT */
+qxeCreateFont (int cHeight, int cWidth, int cEscapement, int cOrientation, int cWeight, DWORD bItalic, DWORD bUnderline, DWORD bStrikeOut, DWORD iCharSet, DWORD iOutPrecision, DWORD iClipPrecision, DWORD iQuality, DWORD iPitchAndFamily, const Extbyte * pszFaceName)
+{
+  if (XEUNICODE_P)
+    return CreateFontW (cHeight, cWidth, cEscapement, cOrientation, cWeight, bItalic, bUnderline, bStrikeOut, iCharSet, iOutPrecision, iClipPrecision, iQuality, iPitchAndFamily, (LPCWSTR) pszFaceName);
+  else
+    return CreateFontA (cHeight, cWidth, cEscapement, cOrientation, cWeight, bItalic, bUnderline, bStrikeOut, iCharSet, iOutPrecision, iClipPrecision, iQuality, iPitchAndFamily, (LPCSTR) pszFaceName);
+}
 
 #endif /* defined (HAVE_MS_WINDOWS) */
 
@@ -2197,25 +2819,25 @@
 #if defined (HAVE_MS_WINDOWS)
 
 HDC
-qxeCreateMetaFile (const Extbyte * arg1)
-{
-  if (XEUNICODE_P)
-    return CreateMetaFileW ((LPCWSTR) arg1);
-  else
-    return CreateMetaFileA ((LPCSTR) arg1);
+qxeCreateMetaFile (const Extbyte * pszFile)
+{
+  if (XEUNICODE_P)
+    return CreateMetaFileW ((LPCWSTR) pszFile);
+  else
+    return CreateMetaFileA ((LPCSTR) pszFile);
 }
 
 #endif /* defined (HAVE_MS_WINDOWS) */
 
 #if defined (HAVE_MS_WINDOWS)
 
-BOOL
-qxeCreateScalableFontResource (DWORD arg1, const Extbyte * arg2, const Extbyte * arg3, const Extbyte * arg4)
-{
-  if (XEUNICODE_P)
-    return CreateScalableFontResourceW (arg1, (LPCWSTR) arg2, (LPCWSTR) arg3, (LPCWSTR) arg4);
-  else
-    return CreateScalableFontResourceA (arg1, (LPCSTR) arg2, (LPCSTR) arg3, (LPCSTR) arg4);
+WINBOOL
+qxeCreateScalableFontResource (DWORD fdwHidden, const Extbyte * lpszFont, const Extbyte * lpszFile, const Extbyte * lpszPath)
+{
+  if (XEUNICODE_P)
+    return CreateScalableFontResourceW (fdwHidden, (LPCWSTR) lpszFont, (LPCWSTR) lpszFile, (LPCWSTR) lpszPath);
+  else
+    return CreateScalableFontResourceA (fdwHidden, (LPCSTR) lpszFont, (LPCSTR) lpszFile, (LPCSTR) lpszPath);
 }
 
 #endif /* defined (HAVE_MS_WINDOWS) */
@@ -2228,13 +2850,13 @@
 
 #if defined (HAVE_MS_WINDOWS)
 
-/* Error if EnumFontFamilies used: split-complex FONTENUMPROC */
+/* Skipping EnumFontFamiliesEx because split-complex FONTENUMPROC; NT 4.0+ only */
 
 #endif /* defined (HAVE_MS_WINDOWS) */
 
 #if defined (HAVE_MS_WINDOWS)
 
-/* Skipping EnumFontFamiliesEx because split-complex FONTENUMPROC; NT 4.0+ only */
+/* Error if EnumFontFamilies used: split-complex FONTENUMPROC */
 
 #endif /* defined (HAVE_MS_WINDOWS) */
 
@@ -2246,53 +2868,136 @@
 
 #if defined (HAVE_MS_WINDOWS)
 
-/* NOTE: NT 4.0+ only */
-int
-qxeEnumICMProfiles (HDC arg1, ICMENUMPROCW arg2, LPARAM arg3)
-{
-  if (XEUNICODE_P)
-    return EnumICMProfilesW (arg1, arg2, arg3);
-  else
-    return EnumICMProfilesA (arg1, (ICMENUMPROCA) arg2, arg3);
+WINBOOL
+qxeGetCharWidth (HDC hdc, UINT iFirst, UINT iLast, LPINT lpBuffer)
+{
+  if (XEUNICODE_P)
+    return GetCharWidthW (hdc, iFirst, iLast, lpBuffer);
+  else
+    return GetCharWidthA (hdc, iFirst, iLast, lpBuffer);
+}
+
+#endif /* defined (HAVE_MS_WINDOWS) */
+
+#if defined (HAVE_MS_WINDOWS)
+
+WINBOOL
+qxeGetCharWidth32 (HDC hdc, UINT iFirst, UINT iLast, LPINT lpBuffer)
+{
+  if (XEUNICODE_P)
+    return GetCharWidth32W (hdc, iFirst, iLast, lpBuffer);
+  else
+    return GetCharWidth32A (hdc, iFirst, iLast, lpBuffer);
+}
+
+#endif /* defined (HAVE_MS_WINDOWS) */
+
+#if defined (HAVE_MS_WINDOWS)
+
+WINBOOL
+qxeGetCharWidthFloat (HDC hdc, UINT iFirst, UINT iLast, PFLOAT lpBuffer)
+{
+  if (XEUNICODE_P)
+    return GetCharWidthFloatW (hdc, iFirst, iLast, lpBuffer);
+  else
+    return GetCharWidthFloatA (hdc, iFirst, iLast, lpBuffer);
+}
+
+#endif /* defined (HAVE_MS_WINDOWS) */
+
+#if defined (HAVE_MS_WINDOWS)
+
+WINBOOL
+qxeGetCharABCWidths (HDC hdc, UINT wFirst, UINT wLast, LPABC lpABC)
+{
+  if (XEUNICODE_P)
+    return GetCharABCWidthsW (hdc, wFirst, wLast, lpABC);
+  else
+    return GetCharABCWidthsA (hdc, wFirst, wLast, lpABC);
+}
+
+#endif /* defined (HAVE_MS_WINDOWS) */
+
+#if defined (HAVE_MS_WINDOWS)
+
+WINBOOL
+qxeGetCharABCWidthsFloat (HDC hdc, UINT iFirst, UINT iLast, LPABCFLOAT lpABC)
+{
+  if (XEUNICODE_P)
+    return GetCharABCWidthsFloatW (hdc, iFirst, iLast, lpABC);
+  else
+    return GetCharABCWidthsFloatA (hdc, iFirst, iLast, lpABC);
 }
 
 #endif /* defined (HAVE_MS_WINDOWS) */
 
 #if defined (HAVE_MS_WINDOWS)
 
-BOOL
-qxeExtTextOut (HDC arg1, int arg2, int arg3, UINT arg4, LPCRECT arg5, const Extbyte * arg6, UINT arg7, const INT* arg8)
-{
-  if (XEUNICODE_P)
-    return ExtTextOutW (arg1, arg2, arg3, arg4, arg5, (LPCWSTR) arg6, arg7, arg8);
-  else
-    return ExtTextOutA (arg1, arg2, arg3, arg4, arg5, (LPCSTR) arg6, arg7, arg8);
+DWORD
+qxeGetGlyphOutline (HDC hdc, UINT uChar, UINT fuFormat, LPGLYPHMETRICS lpgm, DWORD cjBuffer, LPVOID pvBuffer, CONST MAT2 * lpmat2)
+{
+  if (XEUNICODE_P)
+    return GetGlyphOutlineW (hdc, uChar, fuFormat, lpgm, cjBuffer, pvBuffer, lpmat2);
+  else
+    return GetGlyphOutlineA (hdc, uChar, fuFormat, lpgm, cjBuffer, pvBuffer, lpmat2);
+}
+
+#endif /* defined (HAVE_MS_WINDOWS) */
+
+#if defined (HAVE_MS_WINDOWS)
+
+HMETAFILE
+qxeGetMetaFile (const Extbyte * lpName)
+{
+  if (XEUNICODE_P)
+    return GetMetaFileW ((LPCWSTR) lpName);
+  else
+    return GetMetaFileA ((LPCSTR) lpName);
 }
 
 #endif /* defined (HAVE_MS_WINDOWS) */
 
 #if defined (HAVE_MS_WINDOWS)
 
-BOOL
-qxeGetCharABCWidths (HDC arg1, UINT arg2, UINT arg3, LPABC arg4)
-{
-  if (XEUNICODE_P)
-    return GetCharABCWidthsW (arg1, arg2, arg3, arg4);
-  else
-    return GetCharABCWidthsA (arg1, arg2, arg3, arg4);
+/* Error if GetOutlineTextMetrics used: split-sized LPOUTLINETEXTMETRIC */
+
+#endif /* defined (HAVE_MS_WINDOWS) */
+
+#if defined (HAVE_MS_WINDOWS)
+
+WINBOOL
+qxeGetTextExtentPoint (HDC hdc, const Extbyte * lpString, int c, LPSIZE lpsz)
+{
+  if (XEUNICODE_P)
+    return GetTextExtentPointW (hdc, (LPCWSTR) lpString, c, lpsz);
+  else
+    return GetTextExtentPointA (hdc, (LPCSTR) lpString, c, lpsz);
 }
 
 #endif /* defined (HAVE_MS_WINDOWS) */
 
 #if defined (HAVE_MS_WINDOWS)
 
-BOOL
-qxeGetCharABCWidthsFloat (HDC arg1, UINT arg2, UINT arg3, LPABCFLOAT arg4)
-{
-  if (XEUNICODE_P)
-    return GetCharABCWidthsFloatW (arg1, arg2, arg3, arg4);
-  else
-    return GetCharABCWidthsFloatA (arg1, arg2, arg3, arg4);
+WINBOOL
+qxeGetTextExtentPoint32 (HDC hdc, const Extbyte * lpString, int c, LPSIZE psizl)
+{
+  if (XEUNICODE_P)
+    return GetTextExtentPoint32W (hdc, (LPCWSTR) lpString, c, psizl);
+  else
+    return GetTextExtentPoint32A (hdc, (LPCSTR) lpString, c, psizl);
+}
+
+#endif /* defined (HAVE_MS_WINDOWS) */
+
+#if defined (HAVE_MS_WINDOWS)
+
+WINBOOL
+qxeGetTextExtentExPoint (HDC hdc, const Extbyte * lpszString, int cchString, int nMaxExtent, LPINT lpnFit, LPINT lpnDx, LPSIZE lpSize)
+{
+  if (XEUNICODE_P)
+    return GetTextExtentExPointW (hdc, (LPCWSTR) lpszString, cchString, nMaxExtent, lpnFit, lpnDx, lpSize);
+  else
+    return GetTextExtentExPointA (hdc, (LPCSTR) lpszString, cchString, nMaxExtent, lpnFit, lpnDx, lpSize);
 }
 
 #endif /* defined (HAVE_MS_WINDOWS) */
@@ -2301,51 +3006,81 @@
 
 /* NOTE: NT 4.0+ only */
 DWORD
-qxeGetCharacterPlacement (HDC arg1, const Extbyte * arg2, int arg3, int arg4, LPGCP_RESULTSW arg5, DWORD arg6)
-{
-  if (XEUNICODE_P)
-    return GetCharacterPlacementW (arg1, (LPCWSTR) arg2, arg3, arg4, arg5, arg6);
-  else
-    return GetCharacterPlacementA (arg1, (LPCSTR) arg2, arg3, arg4, (LPGCP_RESULTSA) arg5, arg6);
+qxeGetCharacterPlacement (HDC hdc, const Extbyte * lpString, int nCount, int nMexExtent, LPGCP_RESULTSW lpResults, DWORD dwFlags)
+{
+  if (XEUNICODE_P)
+    return GetCharacterPlacementW (hdc, (LPCWSTR) lpString, nCount, nMexExtent, lpResults, dwFlags);
+  else
+    return GetCharacterPlacementA (hdc, (LPCSTR) lpString, nCount, nMexExtent, (LPGCP_RESULTSA) lpResults, dwFlags);
 }
 
 #endif /* defined (HAVE_MS_WINDOWS) */
 
 #if defined (HAVE_MS_WINDOWS)
 
-BOOL
-qxeGetCharWidth32 (HDC arg1, UINT arg2, UINT arg3, LPINT arg4)
-{
-  if (XEUNICODE_P)
-    return GetCharWidth32W (arg1, arg2, arg3, arg4);
-  else
-    return GetCharWidth32A (arg1, arg2, arg3, arg4);
+/* Error if GetGlyphIndices used: NT 5.0+ only */
+
+#endif /* defined (HAVE_MS_WINDOWS) */
+
+#if defined (HAVE_MS_WINDOWS)
+
+/* Error if AddFontResourceEx used: NT 5.0+ only */
+
+#endif /* defined (HAVE_MS_WINDOWS) */
+
+#if defined (HAVE_MS_WINDOWS)
+
+/* Error if RemoveFontResourceEx used: NT 5.0+ only */
+
+#endif /* defined (HAVE_MS_WINDOWS) */
+
+#if defined (HAVE_MS_WINDOWS)
+
+/* Error if CreateFontIndirectEx used: split-sized ENUMLOGFONTEXDV; NT 5.0+ only */
+
+#endif /* defined (HAVE_MS_WINDOWS) */
+
+#if defined (HAVE_MS_WINDOWS)
+
+/* Skipping ResetDC because split-sized DEVMODE */
+
+#endif /* defined (HAVE_MS_WINDOWS) */
+
+#if defined (HAVE_MS_WINDOWS)
+
+WINBOOL
+qxeRemoveFontResource (const Extbyte * lpFileName)
+{
+  if (XEUNICODE_P)
+    return RemoveFontResourceW ((LPCWSTR) lpFileName);
+  else
+    return RemoveFontResourceA ((LPCSTR) lpFileName);
 }
 
 #endif /* defined (HAVE_MS_WINDOWS) */
 
 #if defined (HAVE_MS_WINDOWS)
 
-BOOL
-qxeGetCharWidth (HDC arg1, UINT arg2, UINT arg3, LPINT arg4)
-{
-  if (XEUNICODE_P)
-    return GetCharWidthW (arg1, arg2, arg3, arg4);
-  else
-    return GetCharWidthA (arg1, arg2, arg3, arg4);
+HENHMETAFILE
+qxeCopyEnhMetaFile (HENHMETAFILE hEnh, const Extbyte * lpFileName)
+{
+  if (XEUNICODE_P)
+    return CopyEnhMetaFileW (hEnh, (LPCWSTR) lpFileName);
+  else
+    return CopyEnhMetaFileA (hEnh, (LPCSTR) lpFileName);
 }
 
 #endif /* defined (HAVE_MS_WINDOWS) */
 
 #if defined (HAVE_MS_WINDOWS)
 
-BOOL
-qxeGetCharWidthFloat (HDC arg1, UINT arg2, UINT arg3, PFLOAT arg4)
-{
-  if (XEUNICODE_P)
-    return GetCharWidthFloatW (arg1, arg2, arg3, arg4);
-  else
-    return GetCharWidthFloatA (arg1, arg2, arg3, arg4);
+HDC
+qxeCreateEnhMetaFile (HDC hdc, const Extbyte * lpFilename, CONST RECT * lprc, const Extbyte * lpDesc)
+{
+  if (XEUNICODE_P)
+    return CreateEnhMetaFileW (hdc, (LPCWSTR) lpFilename, lprc, (LPCWSTR) lpDesc);
+  else
+    return CreateEnhMetaFileA (hdc, (LPCSTR) lpFilename, lprc, (LPCSTR) lpDesc);
 }
 
 #endif /* defined (HAVE_MS_WINDOWS) */
@@ -2353,12 +3088,12 @@
 #if defined (HAVE_MS_WINDOWS)
 
 HENHMETAFILE
-qxeGetEnhMetaFile (const Extbyte * arg1)
-{
-  if (XEUNICODE_P)
-    return GetEnhMetaFileW ((LPCWSTR) arg1);
-  else
-    return GetEnhMetaFileA ((LPCSTR) arg1);
+qxeGetEnhMetaFile (const Extbyte * lpName)
+{
+  if (XEUNICODE_P)
+    return GetEnhMetaFileW ((LPCWSTR) lpName);
+  else
+    return GetEnhMetaFileA ((LPCSTR) lpName);
 }
 
 #endif /* defined (HAVE_MS_WINDOWS) */
@@ -2366,12 +3101,89 @@
 #if defined (HAVE_MS_WINDOWS)
 
 UINT
-qxeGetEnhMetaFileDescription (HENHMETAFILE arg1, UINT arg2, Extbyte * arg3)
-{
-  if (XEUNICODE_P)
-    return GetEnhMetaFileDescriptionW (arg1, arg2, (LPWSTR) arg3);
-  else
-    return GetEnhMetaFileDescriptionA (arg1, arg2, (LPSTR) arg3);
+qxeGetEnhMetaFileDescription (HENHMETAFILE hemf, UINT cchBuffer, Extbyte * lpDescription)
+{
+  if (XEUNICODE_P)
+    return GetEnhMetaFileDescriptionW (hemf, cchBuffer, (LPWSTR) lpDescription);
+  else
+    return GetEnhMetaFileDescriptionA (hemf, cchBuffer, (LPSTR) lpDescription);
+}
+
+#endif /* defined (HAVE_MS_WINDOWS) */
+
+#if defined (HAVE_MS_WINDOWS)
+
+/* Skipping GetTextMetrics because split-sized LPTEXTMETRIC */
+
+#endif /* defined (HAVE_MS_WINDOWS) */
+
+#if defined (HAVE_MS_WINDOWS)
+
+int
+qxeStartDoc (HDC hdc, CONST DOCINFOW * lpdi)
+{
+  if (XEUNICODE_P)
+    return StartDocW (hdc, lpdi);
+  else
+    return StartDocA (hdc, (CONST DOCINFOA *) lpdi);
+}
+
+#endif /* defined (HAVE_MS_WINDOWS) */
+
+#if defined (HAVE_MS_WINDOWS)
+
+/* Skipping GetObject because split-sized LOGFONT */
+
+#endif /* defined (HAVE_MS_WINDOWS) */
+
+#if defined (HAVE_MS_WINDOWS)
+
+WINBOOL
+qxeTextOut (HDC hdc, int x, int y, const Extbyte * lpString, int c)
+{
+  if (XEUNICODE_P)
+    return TextOutW (hdc, x, y, (LPCWSTR) lpString, c);
+  else
+    return TextOutA (hdc, x, y, (LPCSTR) lpString, c);
+}
+
+#endif /* defined (HAVE_MS_WINDOWS) */
+
+#if defined (HAVE_MS_WINDOWS)
+
+WINBOOL
+qxeExtTextOut (HDC hdc, int x, int y, UINT options, CONST RECT * lprect, const Extbyte * lpString, UINT c, CONST INT * lpDx)
+{
+  if (XEUNICODE_P)
+    return ExtTextOutW (hdc, x, y, options, lprect, (LPCWSTR) lpString, c, lpDx);
+  else
+    return ExtTextOutA (hdc, x, y, options, lprect, (LPCSTR) lpString, c, lpDx);
+}
+
+#endif /* defined (HAVE_MS_WINDOWS) */
+
+#if defined (HAVE_MS_WINDOWS)
+
+WINBOOL
+qxePolyTextOut (HDC hdc, CONST POLYTEXTW * ppt, int nstrings)
+{
+  if (XEUNICODE_P)
+    return PolyTextOutW (hdc, ppt, nstrings);
+  else
+    return PolyTextOutA (hdc, (CONST POLYTEXTA *) ppt, nstrings);
+}
+
+#endif /* defined (HAVE_MS_WINDOWS) */
+
+#if defined (HAVE_MS_WINDOWS)
+
+int
+qxeGetTextFace (HDC hdc, int c, Extbyte * lpName)
+{
+  if (XEUNICODE_P)
+    return GetTextFaceW (hdc, c, (LPWSTR) lpName);
+  else
+    return GetTextFaceA (hdc, c, (LPSTR) lpName);
 }
 
 #endif /* defined (HAVE_MS_WINDOWS) */
@@ -2379,39 +3191,12 @@
 #if defined (HAVE_MS_WINDOWS)
 
 DWORD
-qxeGetGlyphOutline (HDC arg1, UINT arg2, UINT arg3, LPGLYPHMETRICS arg4, DWORD arg5, PVOID arg6, const MAT2* arg7)
-{
-  if (XEUNICODE_P)
-    return GetGlyphOutlineW (arg1, arg2, arg3, arg4, arg5, arg6, arg7);
-  else
-    return GetGlyphOutlineA (arg1, arg2, arg3, arg4, arg5, arg6, arg7);
-}
-
-#endif /* defined (HAVE_MS_WINDOWS) */
-
-#if defined (HAVE_MS_WINDOWS)
-
-/* NOTE: NT 4.0+ only, former error in Cygwin prototype but no more (Cygwin 1.7, 1-30-10) */
-BOOL
-qxeGetICMProfile (HDC arg1, LPDWORD arg2, Extbyte * arg3)
-{
-  if (XEUNICODE_P)
-    return GetICMProfileW (arg1, arg2, (LPWSTR) arg3);
-  else
-    return GetICMProfileA (arg1, arg2, (LPSTR) arg3);
-}
-
-#endif /* defined (HAVE_MS_WINDOWS) */
-
-#if defined (HAVE_MS_WINDOWS)
-
-DWORD
-qxeGetKerningPairs (HDC arg1, DWORD arg2, LPKERNINGPAIR arg3)
-{
-  if (XEUNICODE_P)
-    return GetKerningPairsW (arg1, arg2, arg3);
-  else
-    return GetKerningPairsA (arg1, arg2, arg3);
+qxeGetKerningPairs (HDC hdc, DWORD nPairs, LPKERNINGPAIR lpKernPair)
+{
+  if (XEUNICODE_P)
+    return GetKerningPairsW (hdc, nPairs, lpKernPair);
+  else
+    return GetKerningPairsA (hdc, nPairs, lpKernPair);
 }
 
 #endif /* defined (HAVE_MS_WINDOWS) */
@@ -2424,161 +3209,48 @@
 
 #if defined (HAVE_MS_WINDOWS)
 
-HMETAFILE
-qxeGetMetaFile (const Extbyte * arg1)
-{
-  if (XEUNICODE_P)
-    return GetMetaFileW ((LPCWSTR) arg1);
-  else
-    return GetMetaFileA ((LPCSTR) arg1);
-}
-
-#endif /* defined (HAVE_MS_WINDOWS) */
-
-#if defined (HAVE_MS_WINDOWS)
-
-/* Skipping GetObject because split-sized LOGFONT */
-
-#endif /* defined (HAVE_MS_WINDOWS) */
-
-#if defined (HAVE_MS_WINDOWS)
-
-/* Error if GetOutlineTextMetrics used: split-sized LPOUTLINETEXTMETRIC */
-
-#endif /* defined (HAVE_MS_WINDOWS) */
-
-#if defined (HAVE_MS_WINDOWS)
-
-BOOL
-qxeGetTextExtentExPoint (HDC arg1, const Extbyte * arg2, int arg3, int arg4, LPINT arg5, LPINT arg6, LPSIZE arg7)
-{
-  if (XEUNICODE_P)
-    return GetTextExtentExPointW (arg1, (LPCWSTR) arg2, arg3, arg4, arg5, arg6, arg7);
-  else
-    return GetTextExtentExPointA (arg1, (LPCSTR) arg2, arg3, arg4, arg5, arg6, arg7);
-}
-
-#endif /* defined (HAVE_MS_WINDOWS) */
-
-#if defined (HAVE_MS_WINDOWS)
-
-BOOL
-qxeGetTextExtentPoint (HDC arg1, const Extbyte * arg2, int arg3, LPSIZE arg4)
-{
-  if (XEUNICODE_P)
-    return GetTextExtentPointW (arg1, (LPCWSTR) arg2, arg3, arg4);
-  else
-    return GetTextExtentPointA (arg1, (LPCSTR) arg2, arg3, arg4);
-}
+/* Error if CreateColorSpace used: split-sized LPLOGCOLORSPACE; NT 4.0+ only */
 
 #endif /* defined (HAVE_MS_WINDOWS) */
 
 #if defined (HAVE_MS_WINDOWS)
 
-BOOL
-qxeGetTextExtentPoint32 (HDC arg1, const Extbyte * arg2, int arg3, LPSIZE arg4)
-{
-  if (XEUNICODE_P)
-    return GetTextExtentPoint32W (arg1, (LPCWSTR) arg2, arg3, arg4);
-  else
-    return GetTextExtentPoint32A (arg1, (LPCSTR) arg2, arg3, arg4);
-}
-
-#endif /* defined (HAVE_MS_WINDOWS) */
-
-#if defined (HAVE_MS_WINDOWS)
-
-int
-qxeGetTextFace (HDC arg1, int arg2, Extbyte * arg3)
-{
-  if (XEUNICODE_P)
-    return GetTextFaceW (arg1, arg2, (LPWSTR) arg3);
-  else
-    return GetTextFaceA (arg1, arg2, (LPSTR) arg3);
-}
-
-#endif /* defined (HAVE_MS_WINDOWS) */
-
-#if defined (HAVE_MS_WINDOWS)
-
-/* Skipping GetTextMetrics because split-sized LPTEXTMETRIC */
-
-#endif /* defined (HAVE_MS_WINDOWS) */
-
-#if defined (HAVE_MS_WINDOWS)
-
-BOOL
-qxePolyTextOut (HDC arg1, const POLYTEXTW* arg2, int arg3)
-{
-  if (XEUNICODE_P)
-    return PolyTextOutW (arg1, arg2, arg3);
-  else
-    return PolyTextOutA (arg1, (const POLYTEXTA*) arg2, arg3);
-}
-
-#endif /* defined (HAVE_MS_WINDOWS) */
-
-#if defined (HAVE_MS_WINDOWS)
-
-BOOL
-qxeRemoveFontResource (const Extbyte * arg1)
-{
-  if (XEUNICODE_P)
-    return RemoveFontResourceW ((LPCWSTR) arg1);
-  else
-    return RemoveFontResourceA ((LPCSTR) arg1);
-}
-
-#endif /* defined (HAVE_MS_WINDOWS) */
-
-#if defined (HAVE_MS_WINDOWS)
-
-/* Error if RemoveFontResourceEx used: NT 5.0+ only */
-
-#endif /* defined (HAVE_MS_WINDOWS) */
-
-#if defined (HAVE_MS_WINDOWS)
-
-/* Skipping ResetDC because split-sized DEVMODE */
+/* NOTE: NT 4.0+ only, former error in Cygwin prototype but no more (Cygwin 1.7, 1-30-10) */
+WINBOOL
+qxeGetICMProfile (HDC hdc, LPDWORD pBufSize, Extbyte * pszFilename)
+{
+  if (XEUNICODE_P)
+    return GetICMProfileW (hdc, pBufSize, (LPWSTR) pszFilename);
+  else
+    return GetICMProfileA (hdc, pBufSize, (LPSTR) pszFilename);
+}
 
 #endif /* defined (HAVE_MS_WINDOWS) */
 
 #if defined (HAVE_MS_WINDOWS)
 
 /* NOTE: NT 4.0+ only */
-BOOL
-qxeSetICMProfile (HDC arg1, Extbyte * arg2)
-{
-  if (XEUNICODE_P)
-    return SetICMProfileW (arg1, (LPWSTR) arg2);
-  else
-    return SetICMProfileA (arg1, (LPSTR) arg2);
+WINBOOL
+qxeSetICMProfile (HDC hdc, Extbyte * lpFileName)
+{
+  if (XEUNICODE_P)
+    return SetICMProfileW (hdc, (LPWSTR) lpFileName);
+  else
+    return SetICMProfileA (hdc, (LPSTR) lpFileName);
 }
 
 #endif /* defined (HAVE_MS_WINDOWS) */
 
 #if defined (HAVE_MS_WINDOWS)
 
+/* NOTE: NT 4.0+ only */
 int
-qxeStartDoc (HDC arg1, const DOCINFOW* arg2)
-{
-  if (XEUNICODE_P)
-    return StartDocW (arg1, arg2);
-  else
-    return StartDocA (arg1, (const DOCINFOA*) arg2);
-}
-
-#endif /* defined (HAVE_MS_WINDOWS) */
-
-#if defined (HAVE_MS_WINDOWS)
-
-BOOL
-qxeTextOut (HDC arg1, int arg2, int arg3, const Extbyte * arg4, int arg5)
-{
-  if (XEUNICODE_P)
-    return TextOutW (arg1, arg2, arg3, (LPCWSTR) arg4, arg5);
-  else
-    return TextOutA (arg1, arg2, arg3, (LPCSTR) arg4, arg5);
+qxeEnumICMProfiles (HDC hdc, ICMENUMPROCW lpProc, LPARAM lParam)
+{
+  if (XEUNICODE_P)
+    return EnumICMProfilesW (hdc, lpProc, lParam);
+  else
+    return EnumICMProfilesA (hdc, (ICMENUMPROCA) lpProc, lParam);
 }
 
 #endif /* defined (HAVE_MS_WINDOWS) */
@@ -2601,39 +3273,342 @@
 
 #endif /* defined (HAVE_MS_WINDOWS) */
 
-#if defined (HAVE_MS_WINDOWS)
-
-/* Error if GetGlyphIndices used: NT 5.0+ only */
-
-#endif /* defined (HAVE_MS_WINDOWS) */
+
+/*----------------------------------------------------------------------*/
+/*                       Processing file WINNLS.H                       */
+/*----------------------------------------------------------------------*/
+
+/* Error if LCMapString used: not used, not examined yet */
+
+int
+qxeGetLocaleInfo (LCID Locale, LCTYPE LCType, Extbyte * lpLCData, int cchData)
+{
+  if (XEUNICODE_P)
+    return GetLocaleInfoW (Locale, LCType, (LPWSTR) lpLCData, cchData);
+  else
+    return GetLocaleInfoA (Locale, LCType, (LPSTR) lpLCData, cchData);
+}
+
+/* Error if GetNumberFormat used: not used, not examined yet */
+
+/* Error if GetCurrencyFormat used: not used, not examined yet */
+
+/* Error if EnumCalendarInfo used: not used, not examined yet */
+
+/* Error if EnumCalendarInfoEx used: not used, not examined yet */
+
+/* Error if EnumTimeFormats used: not used, not examined yet */
+
+/* Error if EnumDateFormats used: not used, not examined yet */
+
+/* Error if EnumDateFormatsEx used: not used, not examined yet */
+
+WINBOOL
+qxeSetLocaleInfo (LCID Locale, LCTYPE LCType, const Extbyte * lpLCData)
+{
+  if (XEUNICODE_P)
+    return SetLocaleInfoW (Locale, LCType, (LPCWSTR) lpLCData);
+  else
+    return SetLocaleInfoA (Locale, LCType, (LPCSTR) lpLCData);
+}
+
+/* Error if GetCalendarInfo used: Function needs review to determine how to handle it */
+
+/* Error if SetCalendarInfo used: Function needs review to determine how to handle it */
+
+/* Error if GetGeoInfo used: Function needs review to determine how to handle it */
+
+/* Error if GetCPInfoEx used: not used, not examined yet */
+
+/* Error if EnumSystemLocales used: not used, not examined yet */
+
+/* Error if EnumSystemLanguageGroups used: Function needs review to determine how to handle it */
+
+/* Error if EnumLanguageGroupLocales used: Function needs review to determine how to handle it */
+
+/* Error if EnumUILanguages used: Function needs review to determine how to handle it */
+
+/* Error if EnumSystemCodePages used: not used, not examined yet */
 
 
 /*----------------------------------------------------------------------*/
-/*                       Processing file SHLOBJ.H                       */
+/*                       Processing file WINREG.H                       */
 /*----------------------------------------------------------------------*/
 
-/* Skipping SHBrowseForFolder because need to intercept callback for SendMessage */
-
-/* Skipping SHGetDataFromIDList because split-sized WIN32_FIND_DATA or split-simple NETRESOURCE, missing from Cygwin libraries */
-
+/* NOTE: former error in Cygwin prototype, but no more (Cygwin 1.7, 1-30-10) */
+LONG
+qxeRegConnectRegistry (const Extbyte * lpMachineName, HKEY hKey, PHKEY phkResult)
+{
+  if (XEUNICODE_P)
+    return RegConnectRegistryW ((LPCWSTR) lpMachineName, hKey, phkResult);
+  else
+    return RegConnectRegistryA ((LPCSTR) lpMachineName, hKey, phkResult);
+}
+
+/* Error if RegConnectRegistryEx used: HST: new? -- needs review */
+
+LONG
+qxeRegCreateKey (HKEY hKey, const Extbyte * lpSubKey, PHKEY phkResult)
+{
+  if (XEUNICODE_P)
+    return RegCreateKeyW (hKey, (LPCWSTR) lpSubKey, phkResult);
+  else
+    return RegCreateKeyA (hKey, (LPCSTR) lpSubKey, phkResult);
+}
+
+LONG
+qxeRegCreateKeyEx (HKEY hKey, const Extbyte * lpSubKey, DWORD Reserved, Extbyte * lpClass, DWORD dwOptions, REGSAM samDesired, LPSECURITY_ATTRIBUTES lpSecurityAttributes, PHKEY phkResult, LPDWORD lpdwDisposition)
+{
+  if (XEUNICODE_P)
+    return RegCreateKeyExW (hKey, (LPCWSTR) lpSubKey, Reserved, (LPWSTR) lpClass, dwOptions, samDesired, lpSecurityAttributes, phkResult, lpdwDisposition);
+  else
+    return RegCreateKeyExA (hKey, (LPCSTR) lpSubKey, Reserved, (LPSTR) lpClass, dwOptions, samDesired, lpSecurityAttributes, phkResult, lpdwDisposition);
+}
+
+LONG
+qxeRegDeleteKey (HKEY hKey, const Extbyte * lpSubKey)
+{
+  if (XEUNICODE_P)
+    return RegDeleteKeyW (hKey, (LPCWSTR) lpSubKey);
+  else
+    return RegDeleteKeyA (hKey, (LPCSTR) lpSubKey);
+}
+
+/* Error if RegDeleteKeyEx used: Function needs review to determine how to handle it */
+
+LONG
+qxeRegDeleteValue (HKEY hKey, const Extbyte * lpValueName)
+{
+  if (XEUNICODE_P)
+    return RegDeleteValueW (hKey, (LPCWSTR) lpValueName);
+  else
+    return RegDeleteValueA (hKey, (LPCSTR) lpValueName);
+}
+
+LONG
+qxeRegEnumKey (HKEY hKey, DWORD dwIndex, Extbyte * lpName, DWORD cchName)
+{
+  if (XEUNICODE_P)
+    return RegEnumKeyW (hKey, dwIndex, (LPWSTR) lpName, cchName);
+  else
+    return RegEnumKeyA (hKey, dwIndex, (LPSTR) lpName, cchName);
+}
+
+LONG
+qxeRegEnumKeyEx (HKEY hKey, DWORD dwIndex, Extbyte * lpName, LPDWORD lpcchName, LPDWORD lpReserved, Extbyte * lpClass, LPDWORD lpcchClass, PFILETIME lpftLastWriteTime)
+{
+  if (XEUNICODE_P)
+    return RegEnumKeyExW (hKey, dwIndex, (LPWSTR) lpName, lpcchName, lpReserved, (LPWSTR) lpClass, lpcchClass, lpftLastWriteTime);
+  else
+    return RegEnumKeyExA (hKey, dwIndex, (LPSTR) lpName, lpcchName, lpReserved, (LPSTR) lpClass, lpcchClass, lpftLastWriteTime);
+}
+
+LONG
+qxeRegEnumValue (HKEY hKey, DWORD dwIndex, Extbyte * lpValueName, LPDWORD lpcchValueName, LPDWORD lpReserved, LPDWORD lpType, LPBYTE lpData, LPDWORD lpcbData)
+{
+  if (XEUNICODE_P)
+    return RegEnumValueW (hKey, dwIndex, (LPWSTR) lpValueName, lpcchValueName, lpReserved, lpType, lpData, lpcbData);
+  else
+    return RegEnumValueA (hKey, dwIndex, (LPSTR) lpValueName, lpcchValueName, lpReserved, lpType, lpData, lpcbData);
+}
+
+LONG
+qxeRegLoadKey (HKEY hKey, const Extbyte * lpSubKey, const Extbyte * lpFile)
+{
+  if (XEUNICODE_P)
+    return RegLoadKeyW (hKey, (LPCWSTR) lpSubKey, (LPCWSTR) lpFile);
+  else
+    return RegLoadKeyA (hKey, (LPCSTR) lpSubKey, (LPCSTR) lpFile);
+}
+
+LONG
+qxeRegOpenKey (HKEY hKey, const Extbyte * lpSubKey, PHKEY phkResult)
+{
+  if (XEUNICODE_P)
+    return RegOpenKeyW (hKey, (LPCWSTR) lpSubKey, phkResult);
+  else
+    return RegOpenKeyA (hKey, (LPCSTR) lpSubKey, phkResult);
+}
+
+LONG
+qxeRegOpenKeyEx (HKEY hKey, const Extbyte * lpSubKey, DWORD ulOptions, REGSAM samDesired, PHKEY phkResult)
+{
+  if (XEUNICODE_P)
+    return RegOpenKeyExW (hKey, (LPCWSTR) lpSubKey, ulOptions, samDesired, phkResult);
+  else
+    return RegOpenKeyExA (hKey, (LPCSTR) lpSubKey, ulOptions, samDesired, phkResult);
+}
+
+LONG
+qxeRegQueryInfoKey (HKEY hKey, Extbyte * lpClass, LPDWORD lpcchClass, LPDWORD lpReserved, LPDWORD lpcSubKeys, LPDWORD lpcbMaxSubKeyLen, LPDWORD lpcbMaxClassLen, LPDWORD lpcValues, LPDWORD lpcbMaxValueNameLen, LPDWORD lpcbMaxValueLen, LPDWORD lpcbSecurityDescriptor, PFILETIME lpftLastWriteTime)
+{
+  if (XEUNICODE_P)
+    return RegQueryInfoKeyW (hKey, (LPWSTR) lpClass, lpcchClass, lpReserved, lpcSubKeys, lpcbMaxSubKeyLen, lpcbMaxClassLen, lpcValues, lpcbMaxValueNameLen, lpcbMaxValueLen, lpcbSecurityDescriptor, lpftLastWriteTime);
+  else
+    return RegQueryInfoKeyA (hKey, (LPSTR) lpClass, lpcchClass, lpReserved, lpcSubKeys, lpcbMaxSubKeyLen, lpcbMaxClassLen, lpcValues, lpcbMaxValueNameLen, lpcbMaxValueLen, lpcbSecurityDescriptor, lpftLastWriteTime);
+}
+
+LONG
+qxeRegQueryValue (HKEY hKey, const Extbyte * lpSubKey, Extbyte * lpData, PLONG lpcbData)
+{
+  if (XEUNICODE_P)
+    return RegQueryValueW (hKey, (LPCWSTR) lpSubKey, (LPWSTR) lpData, lpcbData);
+  else
+    return RegQueryValueA (hKey, (LPCSTR) lpSubKey, (LPSTR) lpData, lpcbData);
+}
+
+LONG
+qxeRegQueryMultipleValues (HKEY hKey, PVALENTW val_list, DWORD num_vals, Extbyte * lpValueBuf, LPDWORD ldwTotsize)
+{
+  if (XEUNICODE_P)
+    return RegQueryMultipleValuesW (hKey, val_list, num_vals, (LPWSTR) lpValueBuf, ldwTotsize);
+  else
+    return RegQueryMultipleValuesA (hKey, (PVALENTA) val_list, num_vals, (LPSTR) lpValueBuf, ldwTotsize);
+}
+
+LONG
+qxeRegQueryValueEx (HKEY hKey, const Extbyte * lpValueName, LPDWORD lpReserved, LPDWORD lpType, LPBYTE lpData, LPDWORD lpcbData)
+{
+  if (XEUNICODE_P)
+    return RegQueryValueExW (hKey, (LPCWSTR) lpValueName, lpReserved, lpType, lpData, lpcbData);
+  else
+    return RegQueryValueExA (hKey, (LPCSTR) lpValueName, lpReserved, lpType, lpData, lpcbData);
+}
+
+LONG
+qxeRegReplaceKey (HKEY hKey, const Extbyte * lpSubKey, const Extbyte * lpNewFile, const Extbyte * lpOldFile)
+{
+  if (XEUNICODE_P)
+    return RegReplaceKeyW (hKey, (LPCWSTR) lpSubKey, (LPCWSTR) lpNewFile, (LPCWSTR) lpOldFile);
+  else
+    return RegReplaceKeyA (hKey, (LPCSTR) lpSubKey, (LPCSTR) lpNewFile, (LPCSTR) lpOldFile);
+}
+
+LONG
+qxeRegRestoreKey (HKEY hKey, const Extbyte * lpFile, DWORD dwFlags)
+{
+  if (XEUNICODE_P)
+    return RegRestoreKeyW (hKey, (LPCWSTR) lpFile, dwFlags);
+  else
+    return RegRestoreKeyA (hKey, (LPCSTR) lpFile, dwFlags);
+}
+
+LONG
+qxeRegSaveKey (HKEY hKey, const Extbyte * lpFile, LPSECURITY_ATTRIBUTES lpSecurityAttributes)
+{
+  if (XEUNICODE_P)
+    return RegSaveKeyW (hKey, (LPCWSTR) lpFile, lpSecurityAttributes);
+  else
+    return RegSaveKeyA (hKey, (LPCSTR) lpFile, lpSecurityAttributes);
+}
+
+LONG
+qxeRegSetValue (HKEY hKey, const Extbyte * lpSubKey, DWORD dwType, const Extbyte * lpData, DWORD cbData)
+{
+  if (XEUNICODE_P)
+    return RegSetValueW (hKey, (LPCWSTR) lpSubKey, dwType, (LPCWSTR) lpData, cbData);
+  else
+    return RegSetValueA (hKey, (LPCSTR) lpSubKey, dwType, (LPCSTR) lpData, cbData);
+}
+
+LONG
+qxeRegSetValueEx (HKEY hKey, const Extbyte * lpValueName, DWORD Reserved, DWORD dwType, CONST BYTE * lpData, DWORD cbData)
+{
+  if (XEUNICODE_P)
+    return RegSetValueExW (hKey, (LPCWSTR) lpValueName, Reserved, dwType, lpData, cbData);
+  else
+    return RegSetValueExA (hKey, (LPCSTR) lpValueName, Reserved, dwType, lpData, cbData);
+}
+
+LONG
+qxeRegUnLoadKey (HKEY hKey, const Extbyte * lpSubKey)
+{
+  if (XEUNICODE_P)
+    return RegUnLoadKeyW (hKey, (LPCWSTR) lpSubKey);
+  else
+    return RegUnLoadKeyA (hKey, (LPCSTR) lpSubKey);
+}
+
+/* Error if RegGetValue used: HST: new? -- needs review */
+
+WINBOOL
+qxeInitiateSystemShutdown (Extbyte * lpMachineName, Extbyte * lpMessage, DWORD dwTimeout, WINBOOL bForceAppsClosed, WINBOOL bRebootAfterShutdown)
+{
+  if (XEUNICODE_P)
+    return InitiateSystemShutdownW ((LPWSTR) lpMachineName, (LPWSTR) lpMessage, dwTimeout, bForceAppsClosed, bRebootAfterShutdown);
+  else
+    return InitiateSystemShutdownA ((LPSTR) lpMachineName, (LPSTR) lpMessage, dwTimeout, bForceAppsClosed, bRebootAfterShutdown);
+}
+
+/* NOTE: error arg 1, Cygwin prototype, extra const.
+   NOTE: Prototype manually overridden.
+         Header file claims:
+           WINADVAPI WINBOOL WINAPI AbortSystemShutdown(LPWSTR lpMachineName)
+         Overridden with:
+           BOOL AbortSystemShutdown(LPWSTR)
+         Differences in return-type qualifiers, e.g. WINAPI, are not important.
+ */
 BOOL
-qxeSHGetPathFromIDList (LPCITEMIDLIST arg1, Extbyte * arg2)
-{
-  if (XEUNICODE_P)
-    return SHGetPathFromIDListW (arg1, (LPWSTR) arg2);
-  else
-    return SHGetPathFromIDListA (arg1, (LPSTR) arg2);
-}
-
-/* Skipping SHGetSpecialFolderPath because error in Cygwin prototype, missing from Cygwin libraries */
-
-/* Error if SHGetFolderPath used: Function needs review to determine how to handle it */
-
-/* Error if SHGetIconOverlayIndex used: Function needs review to determine how to handle it */
-
-/* Error if SHCreateDirectoryEx used: Function needs review to determine how to handle it */
-
-/* Error if SHGetFolderPathAndSubDir used: Function needs review to determine how to handle it */
+qxeAbortSystemShutdown (Extbyte * arg1)
+{
+  if (XEUNICODE_P)
+    return AbortSystemShutdownW ((LPWSTR) arg1);
+  else
+    return AbortSystemShutdownA ((LPSTR) arg1);
+}
+
+/* Error if InitiateSystemShutdownEx used: HST: new? -- needs review */
+
+/* Error if RegSaveKeyEx used: HST: new? -- needs review */
+
+/* Error if RegCopyTree used: HST: new? -- needs review */
+
+/* Error if RegCreateKeyTransacted used: HST: new? -- needs review */
+
+/* Error if RegDeleteKeyTransacted used: HST: new? -- needs review */
+
+/* Error if RegDeleteKeyValue used: HST: new? -- needs review */
+
+/* Error if RegDeleteTree used: HST: new? -- needs review */
+
+/* Error if RegLoadAppKey used: HST: new? -- needs review */
+
+/* Error if RegLoadMUIString used: HST: new? -- needs review */
+
+/* Error if RegOpenKeyTransacted used: HST: new? -- needs review */
+
+/* Error if RegSetKeyValue used: HST: new? -- needs review */
+
+
+/*----------------------------------------------------------------------*/
+/*                     Processing file SYSINFOAPI.H                     */
+/*----------------------------------------------------------------------*/
+
+UINT
+qxeGetSystemDirectory (Extbyte * lpBuffer, UINT uSize)
+{
+  if (XEUNICODE_P)
+    return GetSystemDirectoryW ((LPWSTR) lpBuffer, uSize);
+  else
+    return GetSystemDirectoryA ((LPSTR) lpBuffer, uSize);
+}
+
+UINT
+qxeGetWindowsDirectory (Extbyte * lpBuffer, UINT uSize)
+{
+  if (XEUNICODE_P)
+    return GetWindowsDirectoryW ((LPWSTR) lpBuffer, uSize);
+  else
+    return GetWindowsDirectoryA ((LPSTR) lpBuffer, uSize);
+}
+
+/* Error if GetSystemWindowsDirectory used: HST: new? -- needs review */
+
+/* Error if GetComputerNameEx used: HST: new? -- needs review */
+
+/* Error if SetComputerNameEx used: HST: new? -- needs review */
+
+/* Error if GetVersionEx used: HST: new? -- needs review */
 
 
 /*----------------------------------------------------------------------*/
@@ -2642,32 +3617,26 @@
 
 #if defined (HAVE_MS_WINDOWS)
 
-BOOL
-qxeChooseColor (LPCHOOSECOLORW arg1)
-{
-  if (XEUNICODE_P)
-    return ChooseColorW (arg1);
-  else
-    return ChooseColorA ((LPCHOOSECOLORA) arg1);
+WINBOOL
+qxeGetOpenFileName (LPOPENFILENAMEW arg1)
+{
+  if (XEUNICODE_P)
+    return GetOpenFileNameW (arg1);
+  else
+    return GetOpenFileNameA ((LPOPENFILENAMEA) arg1);
 }
 
 #endif /* defined (HAVE_MS_WINDOWS) */
 
 #if defined (HAVE_MS_WINDOWS)
 
-/* Error if ChooseFont used: split-sized LPLOGFONT in LPCHOOSEFONT */
-
-#endif /* defined (HAVE_MS_WINDOWS) */
-
-#if defined (HAVE_MS_WINDOWS)
-
-HWND
-qxeFindText (LPFINDREPLACEW arg1)
-{
-  if (XEUNICODE_P)
-    return FindTextW (arg1);
-  else
-    return FindTextA ((LPFINDREPLACEA) arg1);
+WINBOOL
+qxeGetSaveFileName (LPOPENFILENAMEW arg1)
+{
+  if (XEUNICODE_P)
+    return GetSaveFileNameW (arg1);
+  else
+    return GetSaveFileNameA ((LPOPENFILENAMEA) arg1);
 }
 
 #endif /* defined (HAVE_MS_WINDOWS) */
@@ -2687,39 +3656,27 @@
 
 #if defined (HAVE_MS_WINDOWS)
 
-BOOL
-qxeGetOpenFileName (LPOPENFILENAMEW arg1)
-{
-  if (XEUNICODE_P)
-    return GetOpenFileNameW (arg1);
-  else
-    return GetOpenFileNameA ((LPOPENFILENAMEA) arg1);
+WINBOOL
+qxeChooseColor (LPCHOOSECOLORW arg1)
+{
+  if (XEUNICODE_P)
+    return ChooseColorW (arg1);
+  else
+    return ChooseColorA ((LPCHOOSECOLORA) arg1);
 }
 
 #endif /* defined (HAVE_MS_WINDOWS) */
 
 #if defined (HAVE_MS_WINDOWS)
 
-BOOL
-qxeGetSaveFileName (LPOPENFILENAMEW arg1)
-{
-  if (XEUNICODE_P)
-    return GetSaveFileNameW (arg1);
-  else
-    return GetSaveFileNameA ((LPOPENFILENAMEA) arg1);
-}
-
-#endif /* defined (HAVE_MS_WINDOWS) */
-
-#if defined (HAVE_MS_WINDOWS)
-
-/* Skipping PageSetupDlg because LPPAGESETUPDLG with split-sized DEVMODE handle */
-
-#endif /* defined (HAVE_MS_WINDOWS) */
-
-#if defined (HAVE_MS_WINDOWS)
-
-/* Skipping PrintDlg because LPPRINTDLG with split-sized DEVMODE handle */
+HWND
+qxeFindText (LPFINDREPLACEW arg1)
+{
+  if (XEUNICODE_P)
+    return FindTextW (arg1);
+  else
+    return FindTextA ((LPFINDREPLACEA) arg1);
+}
 
 #endif /* defined (HAVE_MS_WINDOWS) */
 
@@ -2738,473 +3695,128 @@
 
 #if defined (HAVE_MS_WINDOWS)
 
+/* Error if ChooseFont used: split-sized LPLOGFONT in LPCHOOSEFONT */
+
+#endif /* defined (HAVE_MS_WINDOWS) */
+
+#if defined (HAVE_MS_WINDOWS)
+
+/* Skipping PrintDlg because LPPRINTDLG with split-sized DEVMODE handle */
+
+#endif /* defined (HAVE_MS_WINDOWS) */
+
+#if defined (HAVE_MS_WINDOWS)
+
 /* Error if PrintDlgEx used: Function needs review to determine how to handle it */
 
 #endif /* defined (HAVE_MS_WINDOWS) */
 
+#if defined (HAVE_MS_WINDOWS)
+
+/* Skipping PageSetupDlg because LPPAGESETUPDLG with split-sized DEVMODE handle */
+
+#endif /* defined (HAVE_MS_WINDOWS) */
+
 
 /*----------------------------------------------------------------------*/
-/*                        Processing file IMM.H                         */
+/*                       Processing file SHLOBJ.H                       */
 /*----------------------------------------------------------------------*/
 
-#if defined (HAVE_MS_WINDOWS)
-
-HKL
-qxeImmInstallIME (const Extbyte * arg1, const Extbyte * arg2)
-{
-  if (XEUNICODE_P)
-    return ImmInstallIMEW ((LPCWSTR) arg1, (LPCWSTR) arg2);
-  else
-    return ImmInstallIMEA ((LPCSTR) arg1, (LPCSTR) arg2);
-}
-
-#endif /* defined (HAVE_MS_WINDOWS) */
-
-#if defined (HAVE_MS_WINDOWS)
-
-UINT
-qxeImmGetDescription (HKL arg1, Extbyte * arg2, UINT arg3)
-{
-  if (XEUNICODE_P)
-    return ImmGetDescriptionW (arg1, (LPWSTR) arg2, arg3);
-  else
-    return ImmGetDescriptionA (arg1, (LPSTR) arg2, arg3);
-}
-
-#endif /* defined (HAVE_MS_WINDOWS) */
-
-#if defined (HAVE_MS_WINDOWS)
-
-UINT
-qxeImmGetIMEFileName (HKL arg1, Extbyte * arg2, UINT arg3)
-{
-  if (XEUNICODE_P)
-    return ImmGetIMEFileNameW (arg1, (LPWSTR) arg2, arg3);
-  else
-    return ImmGetIMEFileNameA (arg1, (LPSTR) arg2, arg3);
-}
-
-#endif /* defined (HAVE_MS_WINDOWS) */
-
-#if defined (HAVE_MS_WINDOWS)
-
-LONG
-qxeImmGetCompositionString (HIMC arg1, DWORD arg2, PVOID arg3, DWORD arg4)
-{
-  if (XEUNICODE_P)
-    return ImmGetCompositionStringW (arg1, arg2, arg3, arg4);
-  else
-    return ImmGetCompositionStringA (arg1, arg2, arg3, arg4);
-}
-
-#endif /* defined (HAVE_MS_WINDOWS) */
-
-#if defined (HAVE_MS_WINDOWS)
-
-/* Skipping ImmSetCompositionString because different prototypes in VC6 and VC7 */
-
-#endif /* defined (HAVE_MS_WINDOWS) */
-
-#if defined (HAVE_MS_WINDOWS)
-
-DWORD
-qxeImmGetCandidateListCount (HIMC arg1, PDWORD arg2)
-{
-  if (XEUNICODE_P)
-    return ImmGetCandidateListCountW (arg1, arg2);
-  else
-    return ImmGetCandidateListCountA (arg1, arg2);
-}
-
-#endif /* defined (HAVE_MS_WINDOWS) */
-
-#if defined (HAVE_MS_WINDOWS)
-
-DWORD
-qxeImmGetCandidateList (HIMC arg1, DWORD arg2, PCANDIDATELIST arg3, DWORD arg4)
-{
-  if (XEUNICODE_P)
-    return ImmGetCandidateListW (arg1, arg2, arg3, arg4);
-  else
-    return ImmGetCandidateListA (arg1, arg2, arg3, arg4);
-}
-
-#endif /* defined (HAVE_MS_WINDOWS) */
-
-#if defined (HAVE_MS_WINDOWS)
-
-DWORD
-qxeImmGetGuideLine (HIMC arg1, DWORD arg2, Extbyte * arg3, DWORD arg4)
-{
-  if (XEUNICODE_P)
-    return ImmGetGuideLineW (arg1, arg2, (LPWSTR) arg3, arg4);
-  else
-    return ImmGetGuideLineA (arg1, arg2, (LPSTR) arg3, arg4);
-}
-
-#endif /* defined (HAVE_MS_WINDOWS) */
-
-#if defined (HAVE_MS_WINDOWS)
-
-/* Skipping ImmGetCompositionFont because split-sized LOGFONT */
-
-#endif /* defined (HAVE_MS_WINDOWS) */
-
-#if defined (HAVE_MS_WINDOWS)
-
-/* Skipping ImmSetCompositionFont because split-sized LOGFONT */
-
-#endif /* defined (HAVE_MS_WINDOWS) */
-
-#if defined (HAVE_MS_WINDOWS)
-
-/* NOTE: // split-simple REGISTERWORD */
-BOOL
-qxeImmConfigureIME (HKL arg1, HWND arg2, DWORD arg3, PVOID arg4)
-{
-  if (XEUNICODE_P)
-    return ImmConfigureIMEW (arg1, arg2, arg3, arg4);
-  else
-    return ImmConfigureIMEA (arg1, arg2, arg3, arg4);
-}
-
-#endif /* defined (HAVE_MS_WINDOWS) */
-
-#if defined (HAVE_MS_WINDOWS)
-
-/* NOTE: // strings of various sorts */
-LRESULT
-qxeImmEscape (HKL arg1, HIMC arg2, UINT arg3, PVOID arg4)
-{
-  if (XEUNICODE_P)
-    return ImmEscapeW (arg1, arg2, arg3, arg4);
-  else
-    return ImmEscapeA (arg1, arg2, arg3, arg4);
-}
-
-#endif /* defined (HAVE_MS_WINDOWS) */
-
-#if defined (HAVE_MS_WINDOWS)
-
-DWORD
-qxeImmGetConversionList (HKL arg1, HIMC arg2, const Extbyte * arg3, PCANDIDATELIST arg4, DWORD arg5, UINT arg6)
-{
-  if (XEUNICODE_P)
-    return ImmGetConversionListW (arg1, arg2, (LPCWSTR) arg3, arg4, arg5, arg6);
-  else
-    return ImmGetConversionListA (arg1, arg2, (LPCSTR) arg3, arg4, arg5, arg6);
-}
-
-#endif /* defined (HAVE_MS_WINDOWS) */
-
-#if defined (HAVE_MS_WINDOWS)
-
-BOOL
-qxeImmIsUIMessage (HWND arg1, UINT arg2, WPARAM arg3, LPARAM arg4)
-{
-  if (XEUNICODE_P)
-    return ImmIsUIMessageW (arg1, arg2, arg3, arg4);
-  else
-    return ImmIsUIMessageA (arg1, arg2, arg3, arg4);
-}
-
-#endif /* defined (HAVE_MS_WINDOWS) */
-
-#if defined (HAVE_MS_WINDOWS)
-
-BOOL
-qxeImmRegisterWord (HKL arg1, const Extbyte * arg2, DWORD arg3, const Extbyte * arg4)
-{
-  if (XEUNICODE_P)
-    return ImmRegisterWordW (arg1, (LPCWSTR) arg2, arg3, (LPCWSTR) arg4);
-  else
-    return ImmRegisterWordA (arg1, (LPCSTR) arg2, arg3, (LPCSTR) arg4);
-}
-
-#endif /* defined (HAVE_MS_WINDOWS) */
-
-#if defined (HAVE_MS_WINDOWS)
-
-BOOL
-qxeImmUnregisterWord (HKL arg1, const Extbyte * arg2, DWORD arg3, const Extbyte * arg4)
-{
-  if (XEUNICODE_P)
-    return ImmUnregisterWordW (arg1, (LPCWSTR) arg2, arg3, (LPCWSTR) arg4);
-  else
-    return ImmUnregisterWordA (arg1, (LPCSTR) arg2, arg3, (LPCSTR) arg4);
-}
-
-#endif /* defined (HAVE_MS_WINDOWS) */
-
-#if defined (HAVE_MS_WINDOWS)
-
-/* Error if ImmGetRegisterWordStyle used: split-sized STYLEBUF */
-
-#endif /* defined (HAVE_MS_WINDOWS) */
-
-#if defined (HAVE_MS_WINDOWS)
-
-UINT
-qxeImmEnumRegisterWord (HKL arg1, REGISTERWORDENUMPROCW arg2, const Extbyte * arg3, DWORD arg4, const Extbyte * arg5, PVOID arg6)
-{
-  if (XEUNICODE_P)
-    return ImmEnumRegisterWordW (arg1, arg2, (LPCWSTR) arg3, arg4, (LPCWSTR) arg5, arg6);
-  else
-    return ImmEnumRegisterWordA (arg1, (REGISTERWORDENUMPROCA) arg2, (LPCSTR) arg3, arg4, (LPCSTR) arg5, arg6);
-}
-
-#endif /* defined (HAVE_MS_WINDOWS) */
-
-#if defined (HAVE_MS_WINDOWS)
-
-/* Error if ImmGetImeMenuItems used: split-sized IMEMENUITEMINFO */
-
-#endif /* defined (HAVE_MS_WINDOWS) */
+/* Error if SHGetIconOverlayIndex used: Function needs review to determine how to handle it */
+
+/* Error if ILCreateFromPath used: HST: new? -- needs review */
+
+WINBOOL
+qxeSHGetPathFromIDList (PCIDLIST_ABSOLUTE pidl, Extbyte * pszPath)
+{
+  if (XEUNICODE_P)
+    return SHGetPathFromIDListW (pidl, (LPWSTR) pszPath);
+  else
+    return SHGetPathFromIDListA (pidl, (LPSTR) pszPath);
+}
+
+/* Error if SHCreateDirectoryEx used: Function needs review to determine how to handle it */
+
+/* Skipping SHGetSpecialFolderPath because error in Cygwin prototype, missing from Cygwin libraries */
+
+/* Error if SHGetFolderPath used: Function needs review to determine how to handle it */
+
+/* Error if SHSetFolderPath used: HST: new? -- needs review */
+
+/* Error if SHGetFolderPathAndSubDir used: Function needs review to determine how to handle it */
+
+/* Skipping SHBrowseForFolder because need to intercept callback for SendMessage */
+
+/* Error if SHUpdateImage used: HST: new? -- needs review */
+
+/* Error if PathIsSlow used: HST: new? -- needs review */
+
+/* Error if SHStartNetConnectionDialog used: HST: new? -- needs review */
+
+/* Error if SHDefExtractIcon used: HST: new? -- needs review */
+
+/* Error if Shell_GetCachedImageIndex used: HST: new? -- needs review */
+
+
+/*----------------------------------------------------------------------*/
+/*                 Processing file PROCESSTHREADSAPI.H                  */
+/*----------------------------------------------------------------------*/
+
+VOID
+qxeGetStartupInfo (LPSTARTUPINFOW lpStartupInfo)
+{
+  if (XEUNICODE_P)
+    GetStartupInfoW (lpStartupInfo);
+  else
+    GetStartupInfoA ((LPSTARTUPINFOA) lpStartupInfo);
+}
+
+/* Error if CreateProcess used: HST: new? -- needs review */
+
+WINBOOL
+qxeCreateProcessAsUser (HANDLE hToken, const Extbyte * lpApplicationName, Extbyte * lpCommandLine, LPSECURITY_ATTRIBUTES lpProcessAttributes, LPSECURITY_ATTRIBUTES lpThreadAttributes, WINBOOL bInheritHandles, DWORD dwCreationFlags, LPVOID lpEnvironment, const Extbyte * lpCurrentDirectory, LPSTARTUPINFOW lpStartupInfo, LPPROCESS_INFORMATION lpProcessInformation)
+{
+  if (XEUNICODE_P)
+    return CreateProcessAsUserW (hToken, (LPCWSTR) lpApplicationName, (LPWSTR) lpCommandLine, lpProcessAttributes, lpThreadAttributes, bInheritHandles, dwCreationFlags, lpEnvironment, (LPCWSTR) lpCurrentDirectory, lpStartupInfo, lpProcessInformation);
+  else
+    return CreateProcessAsUserA (hToken, (LPCSTR) lpApplicationName, (LPSTR) lpCommandLine, lpProcessAttributes, lpThreadAttributes, bInheritHandles, dwCreationFlags, lpEnvironment, (LPCSTR) lpCurrentDirectory, (LPSTARTUPINFOA) lpStartupInfo, lpProcessInformation);
+}
 
 
 /*----------------------------------------------------------------------*/
 /*                      Processing file WINBASE.H                       */
 /*----------------------------------------------------------------------*/
 
-BOOL
-qxeAccessCheckAndAuditAlarm (const Extbyte * arg1, LPVOID arg2, Extbyte * arg3, Extbyte * arg4, PSECURITY_DESCRIPTOR arg5, DWORD arg6, PGENERIC_MAPPING arg7, BOOL arg8, PDWORD arg9, PBOOL arg10, PBOOL arg11)
-{
-  if (XEUNICODE_P)
-    return AccessCheckAndAuditAlarmW ((LPCWSTR) arg1, arg2, (LPWSTR) arg3, (LPWSTR) arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11);
-  else
-    return AccessCheckAndAuditAlarmA ((LPCSTR) arg1, arg2, (LPSTR) arg3, (LPSTR) arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11);
-}
-
-ATOM
-qxeAddAtom (const Extbyte * arg1)
-{
-  if (XEUNICODE_P)
-    return AddAtomW ((LPCWSTR) arg1);
-  else
-    return AddAtomA ((LPCSTR) arg1);
-}
-
-BOOL
-qxeBackupEventLog (HANDLE arg1, const Extbyte * arg2)
-{
-  if (XEUNICODE_P)
-    return BackupEventLogW (arg1, (LPCWSTR) arg2);
-  else
-    return BackupEventLogA (arg1, (LPCSTR) arg2);
+WINBOOL
+qxeGetBinaryType (const Extbyte * lpApplicationName, LPDWORD lpBinaryType)
+{
+  if (XEUNICODE_P)
+    return GetBinaryTypeW ((LPCWSTR) lpApplicationName, lpBinaryType);
+  else
+    return GetBinaryTypeA ((LPCSTR) lpApplicationName, lpBinaryType);
+}
+
+/* Error if GetLongPathNameTransacted used: HST: new? -- needs review */
+
+/* Error if SetFileShortName used: Function needs review to determine how to handle it */
+
+DWORD
+qxeFormatMessage (DWORD dwFlags, LPCVOID lpSource, DWORD dwMessageId, DWORD dwLanguageId, Extbyte * lpBuffer, DWORD nSize, va_list * Arguments)
+{
+  if (XEUNICODE_P)
+    return FormatMessageW (dwFlags, lpSource, dwMessageId, dwLanguageId, (LPWSTR) lpBuffer, nSize, Arguments);
+  else
+    return FormatMessageA (dwFlags, lpSource, dwMessageId, dwLanguageId, (LPSTR) lpBuffer, nSize, Arguments);
 }
 
 HANDLE
-qxeBeginUpdateResource (const Extbyte * arg1, BOOL arg2)
-{
-  if (XEUNICODE_P)
-    return BeginUpdateResourceW ((LPCWSTR) arg1, arg2);
-  else
-    return BeginUpdateResourceA ((LPCSTR) arg1, arg2);
-}
-
-BOOL
-qxeBuildCommDCB (const Extbyte * arg1, LPDCB arg2)
-{
-  if (XEUNICODE_P)
-    return BuildCommDCBW ((LPCWSTR) arg1, arg2);
-  else
-    return BuildCommDCBA ((LPCSTR) arg1, arg2);
-}
-
-BOOL
-qxeBuildCommDCBAndTimeouts (const Extbyte * arg1, LPDCB arg2, LPCOMMTIMEOUTS arg3)
-{
-  if (XEUNICODE_P)
-    return BuildCommDCBAndTimeoutsW ((LPCWSTR) arg1, arg2, arg3);
-  else
-    return BuildCommDCBAndTimeoutsA ((LPCSTR) arg1, arg2, arg3);
-}
-
-BOOL
-qxeCallNamedPipe (const Extbyte * arg1, PVOID arg2, DWORD arg3, PVOID arg4, DWORD arg5, PDWORD arg6, DWORD arg7)
-{
-  if (XEUNICODE_P)
-    return CallNamedPipeW ((LPCWSTR) arg1, arg2, arg3, arg4, arg5, arg6, arg7);
-  else
-    return CallNamedPipeA ((LPCSTR) arg1, arg2, arg3, arg4, arg5, arg6, arg7);
-}
-
-/* Error if CheckNameLegalDOS8Dot3 used: Function needs review to determine how to handle it */
-
-BOOL
-qxeClearEventLog (HANDLE arg1, const Extbyte * arg2)
-{
-  if (XEUNICODE_P)
-    return ClearEventLogW (arg1, (LPCWSTR) arg2);
-  else
-    return ClearEventLogA (arg1, (LPCSTR) arg2);
-}
-
-BOOL
-qxeCommConfigDialog (const Extbyte * arg1, HWND arg2, LPCOMMCONFIG arg3)
-{
-  if (XEUNICODE_P)
-    return CommConfigDialogW ((LPCWSTR) arg1, arg2, arg3);
-  else
-    return CommConfigDialogA ((LPCSTR) arg1, arg2, arg3);
-}
-
-BOOL
-qxeCopyFile (const Extbyte * arg1, const Extbyte * arg2, BOOL arg3)
-{
-  if (XEUNICODE_P)
-    return CopyFileW ((LPCWSTR) arg1, (LPCWSTR) arg2, arg3);
-  else
-    return CopyFileA ((LPCSTR) arg1, (LPCSTR) arg2, arg3);
-}
-
-/* NOTE: NT 4.0+ only */
-BOOL
-qxeCopyFileEx (const Extbyte * arg1, const Extbyte * arg2, LPPROGRESS_ROUTINE arg3, LPVOID arg4, LPBOOL arg5, DWORD arg6)
-{
-  if (XEUNICODE_P)
-    return CopyFileExW ((LPCWSTR) arg1, (LPCWSTR) arg2, arg3, arg4, arg5, arg6);
-  else
-    return CopyFileExA ((LPCSTR) arg1, (LPCSTR) arg2, arg3, arg4, arg5, arg6);
-}
-
-/* Error if CreateActCtx used: Function needs review to determine how to handle it */
-
-BOOL
-qxeCreateDirectory (const Extbyte * arg1, LPSECURITY_ATTRIBUTES arg2)
-{
-  if (XEUNICODE_P)
-    return CreateDirectoryW ((LPCWSTR) arg1, arg2);
-  else
-    return CreateDirectoryA ((LPCSTR) arg1, arg2);
-}
-
-BOOL
-qxeCreateDirectoryEx (const Extbyte * arg1, const Extbyte * arg2, LPSECURITY_ATTRIBUTES arg3)
-{
-  if (XEUNICODE_P)
-    return CreateDirectoryExW ((LPCWSTR) arg1, (LPCWSTR) arg2, arg3);
-  else
-    return CreateDirectoryExA ((LPCSTR) arg1, (LPCSTR) arg2, arg3);
-}
-
-HANDLE
-qxeCreateEvent (LPSECURITY_ATTRIBUTES arg1, BOOL arg2, BOOL arg3, const Extbyte * arg4)
-{
-  if (XEUNICODE_P)
-    return CreateEventW (arg1, arg2, arg3, (LPCWSTR) arg4);
-  else
-    return CreateEventA (arg1, arg2, arg3, (LPCSTR) arg4);
-}
-
-HANDLE
-qxeCreateFile (const Extbyte * arg1, DWORD arg2, DWORD arg3, LPSECURITY_ATTRIBUTES arg4, DWORD arg5, DWORD arg6, HANDLE arg7)
-{
-  if (XEUNICODE_P)
-    return CreateFileW ((LPCWSTR) arg1, arg2, arg3, arg4, arg5, arg6, arg7);
-  else
-    return CreateFileA ((LPCSTR) arg1, arg2, arg3, arg4, arg5, arg6, arg7);
-}
-
-HANDLE
-qxeCreateFileMapping (HANDLE arg1, LPSECURITY_ATTRIBUTES arg2, DWORD arg3, DWORD arg4, DWORD arg5, const Extbyte * arg6)
-{
-  if (XEUNICODE_P)
-    return CreateFileMappingW (arg1, arg2, arg3, arg4, arg5, (LPCWSTR) arg6);
-  else
-    return CreateFileMappingA (arg1, arg2, arg3, arg4, arg5, (LPCSTR) arg6);
-}
-
-/* Error if CreateHardLink used: NT 5.0+ only */
-
-/* Error if CreateJobObject used: NT 5.0+ only */
-
-HANDLE
-qxeCreateMailslot (const Extbyte * arg1, DWORD arg2, DWORD arg3, LPSECURITY_ATTRIBUTES arg4)
-{
-  if (XEUNICODE_P)
-    return CreateMailslotW ((LPCWSTR) arg1, arg2, arg3, arg4);
-  else
-    return CreateMailslotA ((LPCSTR) arg1, arg2, arg3, arg4);
-}
-
-HANDLE
-qxeCreateMutex (LPSECURITY_ATTRIBUTES arg1, BOOL arg2, const Extbyte * arg3)
-{
-  if (XEUNICODE_P)
-    return CreateMutexW (arg1, arg2, (LPCWSTR) arg3);
-  else
-    return CreateMutexA (arg1, arg2, (LPCSTR) arg3);
-}
-
-HANDLE
-qxeCreateNamedPipe (const Extbyte * arg1, DWORD arg2, DWORD arg3, DWORD arg4, DWORD arg5, DWORD arg6, DWORD arg7, LPSECURITY_ATTRIBUTES arg8)
-{
-  if (XEUNICODE_P)
-    return CreateNamedPipeW ((LPCWSTR) arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8);
-  else
-    return CreateNamedPipeA ((LPCSTR) arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8);
-}
-
-BOOL
-qxeCreateProcess (const Extbyte * arg1, Extbyte * arg2, LPSECURITY_ATTRIBUTES arg3, LPSECURITY_ATTRIBUTES arg4, BOOL arg5, DWORD arg6, PVOID arg7, const Extbyte * arg8, LPSTARTUPINFOW arg9, LPPROCESS_INFORMATION arg10)
-{
-  if (XEUNICODE_P)
-    return CreateProcessW ((LPCWSTR) arg1, (LPWSTR) arg2, arg3, arg4, arg5, arg6, arg7, (LPCWSTR) arg8, arg9, arg10);
-  else
-    return CreateProcessA ((LPCSTR) arg1, (LPSTR) arg2, arg3, arg4, arg5, arg6, arg7, (LPCSTR) arg8, (LPSTARTUPINFOA) arg9, arg10);
-}
-
-BOOL
-qxeCreateProcessAsUser (HANDLE arg1, const Extbyte * arg2, Extbyte * arg3, LPSECURITY_ATTRIBUTES arg4, LPSECURITY_ATTRIBUTES arg5, BOOL arg6, DWORD arg7, PVOID arg8, const Extbyte * arg9, LPSTARTUPINFOW arg10, LPPROCESS_INFORMATION arg11)
-{
-  if (XEUNICODE_P)
-    return CreateProcessAsUserW (arg1, (LPCWSTR) arg2, (LPWSTR) arg3, arg4, arg5, arg6, arg7, arg8, (LPCWSTR) arg9, arg10, arg11);
-  else
-    return CreateProcessAsUserA (arg1, (LPCSTR) arg2, (LPSTR) arg3, arg4, arg5, arg6, arg7, arg8, (LPCSTR) arg9, (LPSTARTUPINFOA) arg10, arg11);
-}
-
-/* Error if CreateProcessWithLogon used: Function needs review to determine how to handle it */
-
-HANDLE
-qxeCreateSemaphore (LPSECURITY_ATTRIBUTES arg1, LONG arg2, LONG arg3, const Extbyte * arg4)
-{
-  if (XEUNICODE_P)
-    return CreateSemaphoreW (arg1, arg2, arg3, (LPCWSTR) arg4);
-  else
-    return CreateSemaphoreA (arg1, arg2, arg3, (LPCSTR) arg4);
-}
-
-HANDLE
-qxeCreateWaitableTimer (LPSECURITY_ATTRIBUTES arg1, BOOL arg2, const Extbyte * arg3)
-{
-  if (XEUNICODE_P)
-    return CreateWaitableTimerW (arg1, arg2, (LPCWSTR) arg3);
-  else
-    return CreateWaitableTimerA (arg1, arg2, (LPCSTR) arg3);
-}
-
-BOOL
-qxeDefineDosDevice (DWORD arg1, const Extbyte * arg2, const Extbyte * arg3)
-{
-  if (XEUNICODE_P)
-    return DefineDosDeviceW (arg1, (LPCWSTR) arg2, (LPCWSTR) arg3);
-  else
-    return DefineDosDeviceA (arg1, (LPCSTR) arg2, (LPCSTR) arg3);
-}
-
-BOOL
-qxeDeleteFile (const Extbyte * arg1)
-{
-  if (XEUNICODE_P)
-    return DeleteFileW ((LPCWSTR) arg1);
-  else
-    return DeleteFileA ((LPCSTR) arg1);
-}
-
-/* Error if DeleteVolumeMountPoint used: Function needs review to determine how to handle it */
-
-/* Error if DnsHostnameToComputerName used: Function needs review to determine how to handle it */
+qxeCreateMailslot (const Extbyte * lpName, DWORD nMaxMessageSize, DWORD lReadTimeout, LPSECURITY_ATTRIBUTES lpSecurityAttributes)
+{
+  if (XEUNICODE_P)
+    return CreateMailslotW ((LPCWSTR) lpName, nMaxMessageSize, lReadTimeout, lpSecurityAttributes);
+  else
+    return CreateMailslotA ((LPCSTR) lpName, nMaxMessageSize, lReadTimeout, lpSecurityAttributes);
+}
 
 #if !defined (CYGWIN_HEADERS)
 
@@ -3212,943 +3824,897 @@
 
 #endif /* !defined (CYGWIN_HEADERS) */
 
-BOOL
-qxeEndUpdateResource (HANDLE arg1, BOOL arg2)
-{
-  if (XEUNICODE_P)
-    return EndUpdateResourceW (arg1, arg2);
-  else
-    return EndUpdateResourceA (arg1, arg2);
-}
-
-/* Skipping EnumResourceLanguages because different prototypes in VC6 and VC7 */
-
-/* Skipping EnumResourceNames because different prototypes in VC6 and VC7 */
-
-/* Skipping EnumResourceTypes because different prototypes in VC6 and VC7 */
-
-DWORD
-qxeExpandEnvironmentStrings (const Extbyte * arg1, Extbyte * arg2, DWORD arg3)
-{
-  if (XEUNICODE_P)
-    return ExpandEnvironmentStringsW ((LPCWSTR) arg1, (LPWSTR) arg2, arg3);
-  else
-    return ExpandEnvironmentStringsA ((LPCSTR) arg1, (LPSTR) arg2, arg3);
-}
-
-void
-qxeFatalAppExit (UINT arg1, const Extbyte * arg2)
-{
-  if (XEUNICODE_P)
-    FatalAppExitW (arg1, (LPCWSTR) arg2);
-  else
-    FatalAppExitA (arg1, (LPCSTR) arg2);
-}
+#if !defined (CYGWIN_HEADERS)
+
+/* Error if DecryptFile used: Win2K+ only */
+
+#endif /* !defined (CYGWIN_HEADERS) */
 
 /* Error if FileEncryptionStatus used: Function needs review to determine how to handle it */
 
-/* Error if FindActCtxSectionString used: Function needs review to determine how to handle it */
-
-ATOM
-qxeFindAtom (const Extbyte * arg1)
-{
-  if (XEUNICODE_P)
-    return FindAtomW ((LPCWSTR) arg1);
-  else
-    return FindAtomA ((LPCSTR) arg1);
+/* Error if OpenEncryptedFileRaw used: HST: new? -- needs review */
+
+int
+qxelstrcmp (const Extbyte * lpString1, const Extbyte * lpString2)
+{
+  if (XEUNICODE_P)
+    return lstrcmpW ((LPCWSTR) lpString1, (LPCWSTR) lpString2);
+  else
+    return lstrcmpA ((LPCSTR) lpString1, (LPCSTR) lpString2);
+}
+
+int
+qxelstrcmpi (const Extbyte * lpString1, const Extbyte * lpString2)
+{
+  if (XEUNICODE_P)
+    return lstrcmpiW ((LPCWSTR) lpString1, (LPCWSTR) lpString2);
+  else
+    return lstrcmpiA ((LPCSTR) lpString1, (LPCSTR) lpString2);
+}
+
+Extbyte *
+qxelstrcpyn (Extbyte * lpString1, const Extbyte * lpString2, int iMaxLength)
+{
+  if (XEUNICODE_P)
+    return (Extbyte *) lstrcpynW ((LPWSTR) lpString1, (LPCWSTR) lpString2, iMaxLength);
+  else
+    return (Extbyte *) lstrcpynA ((LPSTR) lpString1, (LPCSTR) lpString2, iMaxLength);
+}
+
+Extbyte *
+qxelstrcpy (Extbyte * lpString1, const Extbyte * lpString2)
+{
+  if (XEUNICODE_P)
+    return (Extbyte *) lstrcpyW ((LPWSTR) lpString1, (LPCWSTR) lpString2);
+  else
+    return (Extbyte *) lstrcpyA ((LPSTR) lpString1, (LPCSTR) lpString2);
+}
+
+Extbyte *
+qxelstrcat (Extbyte * lpString1, const Extbyte * lpString2)
+{
+  if (XEUNICODE_P)
+    return (Extbyte *) lstrcatW ((LPWSTR) lpString1, (LPCWSTR) lpString2);
+  else
+    return (Extbyte *) lstrcatA ((LPSTR) lpString1, (LPCSTR) lpString2);
+}
+
+int
+qxelstrlen (const Extbyte * lpString)
+{
+  if (XEUNICODE_P)
+    return lstrlenW ((LPCWSTR) lpString);
+  else
+    return lstrlenA ((LPCSTR) lpString);
 }
 
 HANDLE
-qxeFindFirstChangeNotification (const Extbyte * arg1, BOOL arg2, DWORD arg3)
-{
-  if (XEUNICODE_P)
-    return FindFirstChangeNotificationW ((LPCWSTR) arg1, arg2, arg3);
-  else
-    return FindFirstChangeNotificationA ((LPCSTR) arg1, arg2, arg3);
-}
-
-/* Skipping FindFirstFile because split-sized LPWIN32_FIND_DATA */
-
-/* Error if FindFirstFileEx used: split-sized LPWIN32_FIND_DATA; not used, NT 4.0+ only */
-
-/* Error if FindFirstVolume used: Function needs review to determine how to handle it */
-
-/* Error if FindFirstVolumeMountPoint used: Function needs review to determine how to handle it */
-
-/* Skipping FindNextFile because split-sized LPWIN32_FIND_DATA */
-
-/* Error if FindNextVolume used: Function needs review to determine how to handle it */
-
-/* Error if FindNextVolumeMountPoint used: Function needs review to determine how to handle it */
-
-HRSRC
-qxeFindResource (HINSTANCE arg1, const Extbyte * arg2, const Extbyte * arg3)
-{
-  if (XEUNICODE_P)
-    return FindResourceW (arg1, (LPCWSTR) arg2, (LPCWSTR) arg3);
-  else
-    return FindResourceA (arg1, (LPCSTR) arg2, (LPCSTR) arg3);
-}
-
-HRSRC
-qxeFindResourceEx (HINSTANCE arg1, const Extbyte * arg2, const Extbyte * arg3, WORD arg4)
-{
-  if (XEUNICODE_P)
-    return FindResourceExW (arg1, (LPCWSTR) arg2, (LPCWSTR) arg3, arg4);
-  else
-    return FindResourceExA (arg1, (LPCSTR) arg2, (LPCSTR) arg3, arg4);
+qxeCreateSemaphore (LPSECURITY_ATTRIBUTES lpSemaphoreAttributes, LONG lInitialCount, LONG lMaximumCount, const Extbyte * lpName)
+{
+  if (XEUNICODE_P)
+    return CreateSemaphoreW (lpSemaphoreAttributes, lInitialCount, lMaximumCount, (LPCWSTR) lpName);
+  else
+    return CreateSemaphoreA (lpSemaphoreAttributes, lInitialCount, lMaximumCount, (LPCSTR) lpName);
+}
+
+HANDLE
+qxeCreateWaitableTimer (LPSECURITY_ATTRIBUTES lpTimerAttributes, WINBOOL bManualReset, const Extbyte * lpTimerName)
+{
+  if (XEUNICODE_P)
+    return CreateWaitableTimerW (lpTimerAttributes, bManualReset, (LPCWSTR) lpTimerName);
+  else
+    return CreateWaitableTimerA (lpTimerAttributes, bManualReset, (LPCSTR) lpTimerName);
+}
+
+HMODULE
+qxeLoadLibrary (const Extbyte * lpLibFileName)
+{
+  if (XEUNICODE_P)
+    return LoadLibraryW ((LPCWSTR) lpLibFileName);
+  else
+    return LoadLibraryA ((LPCSTR) lpLibFileName);
+}
+
+/* Error if QueryFullProcessImageName used: HST: new? -- needs review */
+
+VOID
+qxeFatalAppExit (UINT uAction, const Extbyte * lpMessageText)
+{
+  if (XEUNICODE_P)
+    FatalAppExitW (uAction, (LPCWSTR) lpMessageText);
+  else
+    FatalAppExitA (uAction, (LPCSTR) lpMessageText);
 }
 
 /* Error if GetFirmwareEnvironmentVariable used: Function needs review to determine how to handle it */
 
-DWORD
-qxeFormatMessage (DWORD arg1, PCVOID arg2, DWORD arg3, DWORD arg4, Extbyte * arg5, DWORD arg6, va_list* arg7)
-{
-  if (XEUNICODE_P)
-    return FormatMessageW (arg1, arg2, arg3, arg4, (LPWSTR) arg5, arg6, arg7);
-  else
-    return FormatMessageA (arg1, arg2, arg3, arg4, (LPSTR) arg5, arg6, arg7);
-}
-
-BOOL
-qxeFreeEnvironmentStrings (Extbyte * arg1)
-{
-  if (XEUNICODE_P)
-    return FreeEnvironmentStringsW ((LPWSTR) arg1);
-  else
-    return FreeEnvironmentStringsA ((LPSTR) arg1);
+/* Error if SetFirmwareEnvironmentVariable used: Function needs review to determine how to handle it */
+
+HRSRC
+qxeFindResource (HMODULE hModule, const Extbyte * lpName, const Extbyte * lpType)
+{
+  if (XEUNICODE_P)
+    return FindResourceW (hModule, (LPCWSTR) lpName, (LPCWSTR) lpType);
+  else
+    return FindResourceA (hModule, (LPCSTR) lpName, (LPCSTR) lpType);
+}
+
+/* Skipping EnumResourceTypes because different prototypes in VC6 and VC7 */
+
+/* Skipping EnumResourceNames because different prototypes in VC6 and VC7 */
+
+HANDLE
+qxeBeginUpdateResource (const Extbyte * pFileName, WINBOOL bDeleteExistingResources)
+{
+  if (XEUNICODE_P)
+    return BeginUpdateResourceW ((LPCWSTR) pFileName, bDeleteExistingResources);
+  else
+    return BeginUpdateResourceA ((LPCSTR) pFileName, bDeleteExistingResources);
+}
+
+WINBOOL
+qxeUpdateResource (HANDLE hUpdate, const Extbyte * lpType, const Extbyte * lpName, WORD wLanguage, LPVOID lpData, DWORD cb)
+{
+  if (XEUNICODE_P)
+    return UpdateResourceW (hUpdate, (LPCWSTR) lpType, (LPCWSTR) lpName, wLanguage, lpData, cb);
+  else
+    return UpdateResourceA (hUpdate, (LPCSTR) lpType, (LPCSTR) lpName, wLanguage, lpData, cb);
+}
+
+WINBOOL
+qxeEndUpdateResource (HANDLE hUpdate, WINBOOL fDiscard)
+{
+  if (XEUNICODE_P)
+    return EndUpdateResourceW (hUpdate, fDiscard);
+  else
+    return EndUpdateResourceA (hUpdate, fDiscard);
+}
+
+/* Error if GetFirmwareEnvironmentVariableEx used: HST: new? -- needs review */
+
+/* Error if SetFirmwareEnvironmentVariableEx used: HST: new? -- needs review */
+
+ATOM
+qxeGlobalAddAtom (const Extbyte * lpString)
+{
+  if (XEUNICODE_P)
+    return GlobalAddAtomW ((LPCWSTR) lpString);
+  else
+    return GlobalAddAtomA ((LPCSTR) lpString);
+}
+
+/* Error if GlobalAddAtomEx used: HST: new? -- needs review */
+
+ATOM
+qxeGlobalFindAtom (const Extbyte * lpString)
+{
+  if (XEUNICODE_P)
+    return GlobalFindAtomW ((LPCWSTR) lpString);
+  else
+    return GlobalFindAtomA ((LPCSTR) lpString);
 }
 
 UINT
-qxeGetAtomName (ATOM arg1, Extbyte * arg2, int arg3)
-{
-  if (XEUNICODE_P)
-    return GetAtomNameW (arg1, (LPWSTR) arg2, arg3);
-  else
-    return GetAtomNameA (arg1, (LPSTR) arg2, arg3);
-}
-
-BOOL
-qxeGetBinaryType (const Extbyte * arg1, PDWORD arg2)
-{
-  if (XEUNICODE_P)
-    return GetBinaryTypeW ((LPCWSTR) arg1, arg2);
-  else
-    return GetBinaryTypeA ((LPCSTR) arg1, arg2);
-}
-
-Extbyte *
-qxeGetCommandLine (void)
-{
-  if (XEUNICODE_P)
-    return (Extbyte *) GetCommandLineW ();
-  else
-    return (Extbyte *) GetCommandLineA ();
-}
-
-DWORD
-qxeGetCompressedFileSize (const Extbyte * arg1, PDWORD arg2)
-{
-  if (XEUNICODE_P)
-    return GetCompressedFileSizeW ((LPCWSTR) arg1, arg2);
-  else
-    return GetCompressedFileSizeA ((LPCSTR) arg1, arg2);
-}
-
-BOOL
-qxeGetComputerName (Extbyte * arg1, PDWORD arg2)
-{
-  if (XEUNICODE_P)
-    return GetComputerNameW ((LPWSTR) arg1, arg2);
-  else
-    return GetComputerNameA ((LPSTR) arg1, arg2);
-}
-
-/* Error if GetComputerNameEx used: Function needs review to determine how to handle it */
-
-DWORD
-qxeGetCurrentDirectory (DWORD arg1, Extbyte * arg2)
-{
-  if (XEUNICODE_P)
-    return GetCurrentDirectoryW (arg1, (LPWSTR) arg2);
-  else
-    return GetCurrentDirectoryA (arg1, (LPSTR) arg2);
-}
-
-/* Error if GetCurrentHwProfile used: split-sized LPHW_PROFILE_INFO; NT 4.0+ only */
-
-BOOL
-qxeGetDefaultCommConfig (const Extbyte * arg1, LPCOMMCONFIG arg2, PDWORD arg3)
-{
-  if (XEUNICODE_P)
-    return GetDefaultCommConfigW ((LPCWSTR) arg1, arg2, arg3);
-  else
-    return GetDefaultCommConfigA ((LPCSTR) arg1, arg2, arg3);
-}
-
-BOOL
-qxeGetDiskFreeSpace (const Extbyte * arg1, PDWORD arg2, PDWORD arg3, PDWORD arg4, PDWORD arg5)
-{
-  if (XEUNICODE_P)
-    return GetDiskFreeSpaceW ((LPCWSTR) arg1, arg2, arg3, arg4, arg5);
-  else
-    return GetDiskFreeSpaceA ((LPCSTR) arg1, arg2, arg3, arg4, arg5);
-}
-
-BOOL
-qxeGetDiskFreeSpaceEx (const Extbyte * arg1, PULARGE_INTEGER arg2, PULARGE_INTEGER arg3, PULARGE_INTEGER arg4)
-{
-  if (XEUNICODE_P)
-    return GetDiskFreeSpaceExW ((LPCWSTR) arg1, arg2, arg3, arg4);
-  else
-    return GetDiskFreeSpaceExA ((LPCSTR) arg1, arg2, arg3, arg4);
-}
-
-/* Error if GetDllDirectory used: Function needs review to determine how to handle it */
+qxeGlobalGetAtomName (ATOM nAtom, Extbyte * lpBuffer, int nSize)
+{
+  if (XEUNICODE_P)
+    return GlobalGetAtomNameW (nAtom, (LPWSTR) lpBuffer, nSize);
+  else
+    return GlobalGetAtomNameA (nAtom, (LPSTR) lpBuffer, nSize);
+}
+
+ATOM
+qxeAddAtom (const Extbyte * lpString)
+{
+  if (XEUNICODE_P)
+    return AddAtomW ((LPCWSTR) lpString);
+  else
+    return AddAtomA ((LPCSTR) lpString);
+}
+
+ATOM
+qxeFindAtom (const Extbyte * lpString)
+{
+  if (XEUNICODE_P)
+    return FindAtomW ((LPCWSTR) lpString);
+  else
+    return FindAtomA ((LPCSTR) lpString);
+}
 
 UINT
-qxeGetDriveType (const Extbyte * arg1)
-{
-  if (XEUNICODE_P)
-    return GetDriveTypeW ((LPCWSTR) arg1);
-  else
-    return GetDriveTypeA ((LPCSTR) arg1);
-}
-
-DWORD
-qxeGetEnvironmentVariable (const Extbyte * arg1, Extbyte * arg2, DWORD arg3)
-{
-  if (XEUNICODE_P)
-    return GetEnvironmentVariableW ((LPCWSTR) arg1, (LPWSTR) arg2, arg3);
-  else
-    return GetEnvironmentVariableA ((LPCSTR) arg1, (LPSTR) arg2, arg3);
+qxeGetAtomName (ATOM nAtom, Extbyte * lpBuffer, int nSize)
+{
+  if (XEUNICODE_P)
+    return GetAtomNameW (nAtom, (LPWSTR) lpBuffer, nSize);
+  else
+    return GetAtomNameA (nAtom, (LPSTR) lpBuffer, nSize);
+}
+
+UINT
+qxeGetProfileInt (const Extbyte * lpAppName, const Extbyte * lpKeyName, INT nDefault)
+{
+  if (XEUNICODE_P)
+    return GetProfileIntW ((LPCWSTR) lpAppName, (LPCWSTR) lpKeyName, nDefault);
+  else
+    return GetProfileIntA ((LPCSTR) lpAppName, (LPCSTR) lpKeyName, nDefault);
 }
 
 DWORD
-qxeGetFileAttributes (const Extbyte * arg1)
-{
-  if (XEUNICODE_P)
-    return GetFileAttributesW ((LPCWSTR) arg1);
-  else
-    return GetFileAttributesA ((LPCSTR) arg1);
-}
-
-BOOL
-qxeGetFileAttributesEx (const Extbyte * arg1, GET_FILEEX_INFO_LEVELS arg2, PVOID arg3)
-{
-  if (XEUNICODE_P)
-    return GetFileAttributesExW ((LPCWSTR) arg1, arg2, arg3);
-  else
-    return GetFileAttributesExA ((LPCSTR) arg1, arg2, arg3);
-}
-
-BOOL
-qxeGetFileSecurity (const Extbyte * arg1, SECURITY_INFORMATION arg2, PSECURITY_DESCRIPTOR arg3, DWORD arg4, PDWORD arg5)
-{
-  if (XEUNICODE_P)
-    return GetFileSecurityW ((LPCWSTR) arg1, arg2, arg3, arg4, arg5);
-  else
-    return GetFileSecurityA ((LPCSTR) arg1, arg2, arg3, arg4, arg5);
-}
-
-DWORD
-qxeGetFullPathName (const Extbyte * arg1, DWORD arg2, Extbyte * arg3, Extbyte ** arg4)
-{
-  if (XEUNICODE_P)
-    return GetFullPathNameW ((LPCWSTR) arg1, arg2, (LPWSTR) arg3, (LPWSTR*) arg4);
-  else
-    return GetFullPathNameA ((LPCSTR) arg1, arg2, (LPSTR) arg3, (LPSTR*) arg4);
-}
-
-DWORD
-qxeGetLogicalDriveStrings (DWORD arg1, Extbyte * arg2)
-{
-  if (XEUNICODE_P)
-    return GetLogicalDriveStringsW (arg1, (LPWSTR) arg2);
-  else
-    return GetLogicalDriveStringsA (arg1, (LPSTR) arg2);
-}
-
-/* Error if GetLongPathName used: Win98/2K+ only */
-
-DWORD
-qxeGetModuleFileName (HINSTANCE arg1, Extbyte * arg2, DWORD arg3)
-{
-  if (XEUNICODE_P)
-    return GetModuleFileNameW (arg1, (LPWSTR) arg2, arg3);
-  else
-    return GetModuleFileNameA (arg1, (LPSTR) arg2, arg3);
-}
-
-HMODULE
-qxeGetModuleHandle (const Extbyte * arg1)
-{
-  if (XEUNICODE_P)
-    return GetModuleHandleW ((LPCWSTR) arg1);
-  else
-    return GetModuleHandleA ((LPCSTR) arg1);
-}
-
-/* Error if GetModuleHandleEx used: Function needs review to determine how to handle it */
-
-BOOL
-qxeGetNamedPipeHandleState (HANDLE arg1, PDWORD arg2, PDWORD arg3, PDWORD arg4, PDWORD arg5, Extbyte * arg6, DWORD arg7)
-{
-  if (XEUNICODE_P)
-    return GetNamedPipeHandleStateW (arg1, arg2, arg3, arg4, arg5, (LPWSTR) arg6, arg7);
-  else
-    return GetNamedPipeHandleStateA (arg1, arg2, arg3, arg4, arg5, (LPSTR) arg6, arg7);
-}
-
-UINT
-qxeGetPrivateProfileInt (const Extbyte * arg1, const Extbyte * arg2, INT arg3, const Extbyte * arg4)
-{
-  if (XEUNICODE_P)
-    return GetPrivateProfileIntW ((LPCWSTR) arg1, (LPCWSTR) arg2, arg3, (LPCWSTR) arg4);
-  else
-    return GetPrivateProfileIntA ((LPCSTR) arg1, (LPCSTR) arg2, arg3, (LPCSTR) arg4);
-}
-
-DWORD
-qxeGetPrivateProfileSection (const Extbyte * arg1, Extbyte * arg2, DWORD arg3, const Extbyte * arg4)
-{
-  if (XEUNICODE_P)
-    return GetPrivateProfileSectionW ((LPCWSTR) arg1, (LPWSTR) arg2, arg3, (LPCWSTR) arg4);
-  else
-    return GetPrivateProfileSectionA ((LPCSTR) arg1, (LPSTR) arg2, arg3, (LPCSTR) arg4);
-}
-
-DWORD
-qxeGetPrivateProfileSectionNames (Extbyte * arg1, DWORD arg2, const Extbyte * arg3)
-{
-  if (XEUNICODE_P)
-    return GetPrivateProfileSectionNamesW ((LPWSTR) arg1, arg2, (LPCWSTR) arg3);
-  else
-    return GetPrivateProfileSectionNamesA ((LPSTR) arg1, arg2, (LPCSTR) arg3);
+qxeGetProfileString (const Extbyte * lpAppName, const Extbyte * lpKeyName, const Extbyte * lpDefault, Extbyte * lpReturnedString, DWORD nSize)
+{
+  if (XEUNICODE_P)
+    return GetProfileStringW ((LPCWSTR) lpAppName, (LPCWSTR) lpKeyName, (LPCWSTR) lpDefault, (LPWSTR) lpReturnedString, nSize);
+  else
+    return GetProfileStringA ((LPCSTR) lpAppName, (LPCSTR) lpKeyName, (LPCSTR) lpDefault, (LPSTR) lpReturnedString, nSize);
+}
+
+WINBOOL
+qxeWriteProfileString (const Extbyte * lpAppName, const Extbyte * lpKeyName, const Extbyte * lpString)
+{
+  if (XEUNICODE_P)
+    return WriteProfileStringW ((LPCWSTR) lpAppName, (LPCWSTR) lpKeyName, (LPCWSTR) lpString);
+  else
+    return WriteProfileStringA ((LPCSTR) lpAppName, (LPCSTR) lpKeyName, (LPCSTR) lpString);
 }
 
 DWORD
-qxeGetPrivateProfileString (const Extbyte * arg1, const Extbyte * arg2, const Extbyte * arg3, Extbyte * arg4, DWORD arg5, const Extbyte * arg6)
-{
-  if (XEUNICODE_P)
-    return GetPrivateProfileStringW ((LPCWSTR) arg1, (LPCWSTR) arg2, (LPCWSTR) arg3, (LPWSTR) arg4, arg5, (LPCWSTR) arg6);
-  else
-    return GetPrivateProfileStringA ((LPCSTR) arg1, (LPCSTR) arg2, (LPCSTR) arg3, (LPSTR) arg4, arg5, (LPCSTR) arg6);
-}
-
-BOOL
-qxeGetPrivateProfileStruct (const Extbyte * arg1, const Extbyte * arg2, LPVOID arg3, UINT arg4, const Extbyte * arg5)
-{
-  if (XEUNICODE_P)
-    return GetPrivateProfileStructW ((LPCWSTR) arg1, (LPCWSTR) arg2, arg3, arg4, (LPCWSTR) arg5);
-  else
-    return GetPrivateProfileStructA ((LPCSTR) arg1, (LPCSTR) arg2, arg3, arg4, (LPCSTR) arg5);
-}
-
-UINT
-qxeGetProfileInt (const Extbyte * arg1, const Extbyte * arg2, INT arg3)
-{
-  if (XEUNICODE_P)
-    return GetProfileIntW ((LPCWSTR) arg1, (LPCWSTR) arg2, arg3);
-  else
-    return GetProfileIntA ((LPCSTR) arg1, (LPCSTR) arg2, arg3);
-}
-
-DWORD
-qxeGetProfileSection (const Extbyte * arg1, Extbyte * arg2, DWORD arg3)
-{
-  if (XEUNICODE_P)
-    return GetProfileSectionW ((LPCWSTR) arg1, (LPWSTR) arg2, arg3);
-  else
-    return GetProfileSectionA ((LPCSTR) arg1, (LPSTR) arg2, arg3);
-}
-
-DWORD
-qxeGetProfileString (const Extbyte * arg1, const Extbyte * arg2, const Extbyte * arg3, Extbyte * arg4, DWORD arg5)
-{
-  if (XEUNICODE_P)
-    return GetProfileStringW ((LPCWSTR) arg1, (LPCWSTR) arg2, (LPCWSTR) arg3, (LPWSTR) arg4, arg5);
-  else
-    return GetProfileStringA ((LPCSTR) arg1, (LPCSTR) arg2, (LPCSTR) arg3, (LPSTR) arg4, arg5);
-}
-
-DWORD
-qxeGetShortPathName (const Extbyte * arg1, Extbyte * arg2, DWORD arg3)
-{
-  if (XEUNICODE_P)
-    return GetShortPathNameW ((LPCWSTR) arg1, (LPWSTR) arg2, arg3);
-  else
-    return GetShortPathNameA ((LPCSTR) arg1, (LPSTR) arg2, arg3);
-}
-
-VOID
-qxeGetStartupInfo (LPSTARTUPINFOW arg1)
-{
-  if (XEUNICODE_P)
-    GetStartupInfoW (arg1);
-  else
-    GetStartupInfoA ((LPSTARTUPINFOA) arg1);
-}
-
-UINT
-qxeGetSystemDirectory (Extbyte * arg1, UINT arg2)
-{
-  if (XEUNICODE_P)
-    return GetSystemDirectoryW ((LPWSTR) arg1, arg2);
-  else
-    return GetSystemDirectoryA ((LPSTR) arg1, arg2);
-}
-
-/* Error if GetSystemWindowsDirectory used: Function needs review to determine how to handle it */
-
-/* Error if GetSystemWow64Directory used: Function needs review to determine how to handle it */
-
-UINT
-qxeGetTempFileName (const Extbyte * arg1, const Extbyte * arg2, UINT arg3, Extbyte * arg4)
-{
-  if (XEUNICODE_P)
-    return GetTempFileNameW ((LPCWSTR) arg1, (LPCWSTR) arg2, arg3, (LPWSTR) arg4);
-  else
-    return GetTempFileNameA ((LPCSTR) arg1, (LPCSTR) arg2, arg3, (LPSTR) arg4);
-}
-
-DWORD
-qxeGetTempPath (DWORD arg1, Extbyte * arg2)
-{
-  if (XEUNICODE_P)
-    return GetTempPathW (arg1, (LPWSTR) arg2);
-  else
-    return GetTempPathA (arg1, (LPSTR) arg2);
-}
-
-BOOL
-qxeGetUserName (Extbyte * arg1, PDWORD arg2)
-{
-  if (XEUNICODE_P)
-    return GetUserNameW ((LPWSTR) arg1, arg2);
-  else
-    return GetUserNameA ((LPSTR) arg1, arg2);
-}
-
-/* Error if GetVersionEx used: split-sized LPOSVERSIONINFO */
-
-BOOL
-qxeGetVolumeInformation (const Extbyte * arg1, Extbyte * arg2, DWORD arg3, PDWORD arg4, PDWORD arg5, PDWORD arg6, Extbyte * arg7, DWORD arg8)
-{
-  if (XEUNICODE_P)
-    return GetVolumeInformationW ((LPCWSTR) arg1, (LPWSTR) arg2, arg3, arg4, arg5, arg6, (LPWSTR) arg7, arg8);
-  else
-    return GetVolumeInformationA ((LPCSTR) arg1, (LPSTR) arg2, arg3, arg4, arg5, arg6, (LPSTR) arg7, arg8);
-}
-
-/* Error if GetVolumeNameForVolumeMountPoint used: Function needs review to determine how to handle it */
-
-/* Error if GetVolumePathName used: Function needs review to determine how to handle it */
-
-/* Error if GetVolumePathNamesForVolumeName used: Function needs review to determine how to handle it */
-
-UINT
-qxeGetWindowsDirectory (Extbyte * arg1, UINT arg2)
-{
-  if (XEUNICODE_P)
-    return GetWindowsDirectoryW ((LPWSTR) arg1, arg2);
-  else
-    return GetWindowsDirectoryA ((LPSTR) arg1, arg2);
-}
-
-ATOM
-qxeGlobalAddAtom (const Extbyte * arg1)
-{
-  if (XEUNICODE_P)
-    return GlobalAddAtomW ((LPCWSTR) arg1);
-  else
-    return GlobalAddAtomA ((LPCSTR) arg1);
-}
-
-ATOM
-qxeGlobalFindAtom (const Extbyte * arg1)
-{
-  if (XEUNICODE_P)
-    return GlobalFindAtomW ((LPCWSTR) arg1);
-  else
-    return GlobalFindAtomA ((LPCSTR) arg1);
+qxeGetProfileSection (const Extbyte * lpAppName, Extbyte * lpReturnedString, DWORD nSize)
+{
+  if (XEUNICODE_P)
+    return GetProfileSectionW ((LPCWSTR) lpAppName, (LPWSTR) lpReturnedString, nSize);
+  else
+    return GetProfileSectionA ((LPCSTR) lpAppName, (LPSTR) lpReturnedString, nSize);
+}
+
+WINBOOL
+qxeWriteProfileSection (const Extbyte * lpAppName, const Extbyte * lpString)
+{
+  if (XEUNICODE_P)
+    return WriteProfileSectionW ((LPCWSTR) lpAppName, (LPCWSTR) lpString);
+  else
+    return WriteProfileSectionA ((LPCSTR) lpAppName, (LPCSTR) lpString);
 }
 
 UINT
-qxeGlobalGetAtomName (ATOM arg1, Extbyte * arg2, int arg3)
-{
-  if (XEUNICODE_P)
-    return GlobalGetAtomNameW (arg1, (LPWSTR) arg2, arg3);
-  else
-    return GlobalGetAtomNameA (arg1, (LPSTR) arg2, arg3);
-}
-
-BOOL
-qxeIsBadStringPtr (const Extbyte * arg1, UINT arg2)
-{
-  if (XEUNICODE_P)
-    return IsBadStringPtrW ((LPCWSTR) arg1, arg2);
-  else
-    return IsBadStringPtrA ((LPCSTR) arg1, arg2);
-}
-
-HINSTANCE
-qxeLoadLibraryEx (const Extbyte * arg1, HANDLE arg2, DWORD arg3)
-{
-  if (XEUNICODE_P)
-    return LoadLibraryExW ((LPCWSTR) arg1, arg2, arg3);
-  else
-    return LoadLibraryExA ((LPCSTR) arg1, arg2, arg3);
-}
-
-HINSTANCE
-qxeLoadLibrary (const Extbyte * arg1)
-{
-  if (XEUNICODE_P)
-    return LoadLibraryW ((LPCWSTR) arg1);
-  else
-    return LoadLibraryA ((LPCSTR) arg1);
-}
-
-BOOL
-qxeLogonUser (Extbyte * arg1, Extbyte * arg2, Extbyte * arg3, DWORD arg4, DWORD arg5, PHANDLE arg6)
-{
-  if (XEUNICODE_P)
-    return LogonUserW ((LPWSTR) arg1, (LPWSTR) arg2, (LPWSTR) arg3, arg4, arg5, arg6);
-  else
-    return LogonUserA ((LPSTR) arg1, (LPSTR) arg2, (LPSTR) arg3, arg4, arg5, arg6);
-}
-
-BOOL
-qxeLookupAccountName (const Extbyte * arg1, const Extbyte * arg2, PSID arg3, PDWORD arg4, Extbyte * arg5, PDWORD arg6, PSID_NAME_USE arg7)
-{
-  if (XEUNICODE_P)
-    return LookupAccountNameW ((LPCWSTR) arg1, (LPCWSTR) arg2, arg3, arg4, (LPWSTR) arg5, arg6, arg7);
-  else
-    return LookupAccountNameA ((LPCSTR) arg1, (LPCSTR) arg2, arg3, arg4, (LPSTR) arg5, arg6, arg7);
-}
-
-BOOL
-qxeLookupAccountSid (const Extbyte * arg1, PSID arg2, Extbyte * arg3, PDWORD arg4, Extbyte * arg5, PDWORD arg6, PSID_NAME_USE arg7)
-{
-  if (XEUNICODE_P)
-    return LookupAccountSidW ((LPCWSTR) arg1, arg2, (LPWSTR) arg3, arg4, (LPWSTR) arg5, arg6, arg7);
-  else
-    return LookupAccountSidA ((LPCSTR) arg1, arg2, (LPSTR) arg3, arg4, (LPSTR) arg5, arg6, arg7);
-}
-
-BOOL
-qxeLookupPrivilegeDisplayName (const Extbyte * arg1, const Extbyte * arg2, Extbyte * arg3, PDWORD arg4, PDWORD arg5)
-{
-  if (XEUNICODE_P)
-    return LookupPrivilegeDisplayNameW ((LPCWSTR) arg1, (LPCWSTR) arg2, (LPWSTR) arg3, arg4, arg5);
-  else
-    return LookupPrivilegeDisplayNameA ((LPCSTR) arg1, (LPCSTR) arg2, (LPSTR) arg3, arg4, arg5);
-}
-
-BOOL
-qxeLookupPrivilegeName (const Extbyte * arg1, PLUID arg2, Extbyte * arg3, PDWORD arg4)
-{
-  if (XEUNICODE_P)
-    return LookupPrivilegeNameW ((LPCWSTR) arg1, arg2, (LPWSTR) arg3, arg4);
-  else
-    return LookupPrivilegeNameA ((LPCSTR) arg1, arg2, (LPSTR) arg3, arg4);
-}
-
-BOOL
-qxeLookupPrivilegeValue (const Extbyte * arg1, const Extbyte * arg2, PLUID arg3)
-{
-  if (XEUNICODE_P)
-    return LookupPrivilegeValueW ((LPCWSTR) arg1, (LPCWSTR) arg2, arg3);
-  else
-    return LookupPrivilegeValueA ((LPCSTR) arg1, (LPCSTR) arg2, arg3);
-}
-
-Extbyte *
-qxelstrcat (Extbyte * arg1, const Extbyte * arg2)
-{
-  if (XEUNICODE_P)
-    return (Extbyte *) lstrcatW ((LPWSTR) arg1, (LPCWSTR) arg2);
-  else
-    return (Extbyte *) lstrcatA ((LPSTR) arg1, (LPCSTR) arg2);
-}
-
-int
-qxelstrcmpi (const Extbyte * arg1, const Extbyte * arg2)
-{
-  if (XEUNICODE_P)
-    return lstrcmpiW ((LPCWSTR) arg1, (LPCWSTR) arg2);
-  else
-    return lstrcmpiA ((LPCSTR) arg1, (LPCSTR) arg2);
-}
-
-int
-qxelstrcmp (const Extbyte * arg1, const Extbyte * arg2)
-{
-  if (XEUNICODE_P)
-    return lstrcmpW ((LPCWSTR) arg1, (LPCWSTR) arg2);
-  else
-    return lstrcmpA ((LPCSTR) arg1, (LPCSTR) arg2);
-}
-
-Extbyte *
-qxelstrcpyn (Extbyte * arg1, const Extbyte * arg2, int arg3)
-{
-  if (XEUNICODE_P)
-    return (Extbyte *) lstrcpynW ((LPWSTR) arg1, (LPCWSTR) arg2, arg3);
-  else
-    return (Extbyte *) lstrcpynA ((LPSTR) arg1, (LPCSTR) arg2, arg3);
-}
-
-Extbyte *
-qxelstrcpy (Extbyte * arg1, const Extbyte * arg2)
-{
-  if (XEUNICODE_P)
-    return (Extbyte *) lstrcpyW ((LPWSTR) arg1, (LPCWSTR) arg2);
-  else
-    return (Extbyte *) lstrcpyA ((LPSTR) arg1, (LPCSTR) arg2);
-}
-
-int
-qxelstrlen (const Extbyte * arg1)
-{
-  if (XEUNICODE_P)
-    return lstrlenW ((LPCWSTR) arg1);
-  else
-    return lstrlenA ((LPCSTR) arg1);
-}
-
-BOOL
-qxeMoveFileEx (const Extbyte * arg1, const Extbyte * arg2, DWORD arg3)
-{
-  if (XEUNICODE_P)
-    return MoveFileExW ((LPCWSTR) arg1, (LPCWSTR) arg2, arg3);
-  else
-    return MoveFileExA ((LPCSTR) arg1, (LPCSTR) arg2, arg3);
-}
-
-BOOL
-qxeMoveFile (const Extbyte * arg1, const Extbyte * arg2)
-{
-  if (XEUNICODE_P)
-    return MoveFileW ((LPCWSTR) arg1, (LPCWSTR) arg2);
-  else
-    return MoveFileA ((LPCSTR) arg1, (LPCSTR) arg2);
-}
-
-BOOL
-qxeObjectCloseAuditAlarm (const Extbyte * arg1, PVOID arg2, BOOL arg3)
-{
-  if (XEUNICODE_P)
-    return ObjectCloseAuditAlarmW ((LPCWSTR) arg1, arg2, arg3);
-  else
-    return ObjectCloseAuditAlarmA ((LPCSTR) arg1, arg2, arg3);
-}
-
-BOOL
-qxeObjectDeleteAuditAlarm (const Extbyte * arg1, PVOID arg2, BOOL arg3)
-{
-  if (XEUNICODE_P)
-    return ObjectDeleteAuditAlarmW ((LPCWSTR) arg1, arg2, arg3);
-  else
-    return ObjectDeleteAuditAlarmA ((LPCSTR) arg1, arg2, arg3);
-}
-
-BOOL
-qxeObjectOpenAuditAlarm (const Extbyte * arg1, PVOID arg2, Extbyte * arg3, Extbyte * arg4, PSECURITY_DESCRIPTOR arg5, HANDLE arg6, DWORD arg7, DWORD arg8, PPRIVILEGE_SET arg9, BOOL arg10, BOOL arg11, PBOOL arg12)
-{
-  if (XEUNICODE_P)
-    return ObjectOpenAuditAlarmW ((LPCWSTR) arg1, arg2, (LPWSTR) arg3, (LPWSTR) arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12);
-  else
-    return ObjectOpenAuditAlarmA ((LPCSTR) arg1, arg2, (LPSTR) arg3, (LPSTR) arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12);
-}
-
-BOOL
-qxeObjectPrivilegeAuditAlarm (const Extbyte * arg1, PVOID arg2, HANDLE arg3, DWORD arg4, PPRIVILEGE_SET arg5, BOOL arg6)
-{
-  if (XEUNICODE_P)
-    return ObjectPrivilegeAuditAlarmW ((LPCWSTR) arg1, arg2, arg3, arg4, arg5, arg6);
-  else
-    return ObjectPrivilegeAuditAlarmA ((LPCSTR) arg1, arg2, arg3, arg4, arg5, arg6);
+qxeGetPrivateProfileInt (const Extbyte * lpAppName, const Extbyte * lpKeyName, INT nDefault, const Extbyte * lpFileName)
+{
+  if (XEUNICODE_P)
+    return GetPrivateProfileIntW ((LPCWSTR) lpAppName, (LPCWSTR) lpKeyName, nDefault, (LPCWSTR) lpFileName);
+  else
+    return GetPrivateProfileIntA ((LPCSTR) lpAppName, (LPCSTR) lpKeyName, nDefault, (LPCSTR) lpFileName);
+}
+
+DWORD
+qxeGetPrivateProfileString (const Extbyte * lpAppName, const Extbyte * lpKeyName, const Extbyte * lpDefault, Extbyte * lpReturnedString, DWORD nSize, const Extbyte * lpFileName)
+{
+  if (XEUNICODE_P)
+    return GetPrivateProfileStringW ((LPCWSTR) lpAppName, (LPCWSTR) lpKeyName, (LPCWSTR) lpDefault, (LPWSTR) lpReturnedString, nSize, (LPCWSTR) lpFileName);
+  else
+    return GetPrivateProfileStringA ((LPCSTR) lpAppName, (LPCSTR) lpKeyName, (LPCSTR) lpDefault, (LPSTR) lpReturnedString, nSize, (LPCSTR) lpFileName);
+}
+
+WINBOOL
+qxeWritePrivateProfileString (const Extbyte * lpAppName, const Extbyte * lpKeyName, const Extbyte * lpString, const Extbyte * lpFileName)
+{
+  if (XEUNICODE_P)
+    return WritePrivateProfileStringW ((LPCWSTR) lpAppName, (LPCWSTR) lpKeyName, (LPCWSTR) lpString, (LPCWSTR) lpFileName);
+  else
+    return WritePrivateProfileStringA ((LPCSTR) lpAppName, (LPCSTR) lpKeyName, (LPCSTR) lpString, (LPCSTR) lpFileName);
+}
+
+DWORD
+qxeGetPrivateProfileSection (const Extbyte * lpAppName, Extbyte * lpReturnedString, DWORD nSize, const Extbyte * lpFileName)
+{
+  if (XEUNICODE_P)
+    return GetPrivateProfileSectionW ((LPCWSTR) lpAppName, (LPWSTR) lpReturnedString, nSize, (LPCWSTR) lpFileName);
+  else
+    return GetPrivateProfileSectionA ((LPCSTR) lpAppName, (LPSTR) lpReturnedString, nSize, (LPCSTR) lpFileName);
+}
+
+WINBOOL
+qxeWritePrivateProfileSection (const Extbyte * lpAppName, const Extbyte * lpString, const Extbyte * lpFileName)
+{
+  if (XEUNICODE_P)
+    return WritePrivateProfileSectionW ((LPCWSTR) lpAppName, (LPCWSTR) lpString, (LPCWSTR) lpFileName);
+  else
+    return WritePrivateProfileSectionA ((LPCSTR) lpAppName, (LPCSTR) lpString, (LPCSTR) lpFileName);
+}
+
+DWORD
+qxeGetPrivateProfileSectionNames (Extbyte * lpszReturnBuffer, DWORD nSize, const Extbyte * lpFileName)
+{
+  if (XEUNICODE_P)
+    return GetPrivateProfileSectionNamesW ((LPWSTR) lpszReturnBuffer, nSize, (LPCWSTR) lpFileName);
+  else
+    return GetPrivateProfileSectionNamesA ((LPSTR) lpszReturnBuffer, nSize, (LPCSTR) lpFileName);
+}
+
+WINBOOL
+qxeGetPrivateProfileStruct (const Extbyte * lpszSection, const Extbyte * lpszKey, LPVOID lpStruct, UINT uSizeStruct, const Extbyte * szFile)
+{
+  if (XEUNICODE_P)
+    return GetPrivateProfileStructW ((LPCWSTR) lpszSection, (LPCWSTR) lpszKey, lpStruct, uSizeStruct, (LPCWSTR) szFile);
+  else
+    return GetPrivateProfileStructA ((LPCSTR) lpszSection, (LPCSTR) lpszKey, lpStruct, uSizeStruct, (LPCSTR) szFile);
+}
+
+WINBOOL
+qxeWritePrivateProfileStruct (const Extbyte * lpszSection, const Extbyte * lpszKey, LPVOID lpStruct, UINT uSizeStruct, const Extbyte * szFile)
+{
+  if (XEUNICODE_P)
+    return WritePrivateProfileStructW ((LPCWSTR) lpszSection, (LPCWSTR) lpszKey, lpStruct, uSizeStruct, (LPCWSTR) szFile);
+  else
+    return WritePrivateProfileStructA ((LPCSTR) lpszSection, (LPCSTR) lpszKey, lpStruct, uSizeStruct, (LPCSTR) szFile);
+}
+
+/* Error if GetSystemWow64Directory used: Function needs review to determine how to handle it */
+
+/* Error if SetDllDirectory used: Function needs review to determine how to handle it */
+
+/* Error if GetDllDirectory used: Function needs review to determine how to handle it */
+
+WINBOOL
+qxeCreateDirectoryEx (const Extbyte * lpTemplateDirectory, const Extbyte * lpNewDirectory, LPSECURITY_ATTRIBUTES lpSecurityAttributes)
+{
+  if (XEUNICODE_P)
+    return CreateDirectoryExW ((LPCWSTR) lpTemplateDirectory, (LPCWSTR) lpNewDirectory, lpSecurityAttributes);
+  else
+    return CreateDirectoryExA ((LPCSTR) lpTemplateDirectory, (LPCSTR) lpNewDirectory, lpSecurityAttributes);
+}
+
+/* Error if CreateDirectoryTransacted used: HST: new? -- needs review */
+
+/* Error if RemoveDirectoryTransacted used: HST: new? -- needs review */
+
+/* Error if GetFullPathNameTransacted used: HST: new? -- needs review */
+
+/* Error if CreateFileTransacted used: HST: new? -- needs review */
+
+/* Error if SetFileAttributesTransacted used: HST: new? -- needs review */
+
+/* Error if GetFileAttributesTransacted used: HST: new? -- needs review */
+
+DWORD
+qxeGetCompressedFileSize (const Extbyte * lpFileName, LPDWORD lpFileSizeHigh)
+{
+  if (XEUNICODE_P)
+    return GetCompressedFileSizeW ((LPCWSTR) lpFileName, lpFileSizeHigh);
+  else
+    return GetCompressedFileSizeA ((LPCSTR) lpFileName, lpFileSizeHigh);
+}
+
+/* Error if GetCompressedFileSizeTransacted used: HST: new? -- needs review */
+
+/* Error if DeleteFileTransacted used: HST: new? -- needs review */
+
+/* Error if CheckNameLegalDOS8Dot3 used: Function needs review to determine how to handle it */
+
+WINBOOL
+qxeCopyFile (const Extbyte * lpExistingFileName, const Extbyte * lpNewFileName, WINBOOL bFailIfExists)
+{
+  if (XEUNICODE_P)
+    return CopyFileW ((LPCWSTR) lpExistingFileName, (LPCWSTR) lpNewFileName, bFailIfExists);
+  else
+    return CopyFileA ((LPCSTR) lpExistingFileName, (LPCSTR) lpNewFileName, bFailIfExists);
+}
+
+/* NOTE: NT 4.0+ only */
+WINBOOL
+qxeCopyFileEx (const Extbyte * lpExistingFileName, const Extbyte * lpNewFileName, LPPROGRESS_ROUTINE lpProgressRoutine, LPVOID lpData, LPBOOL pbCancel, DWORD dwCopyFlags)
+{
+  if (XEUNICODE_P)
+    return CopyFileExW ((LPCWSTR) lpExistingFileName, (LPCWSTR) lpNewFileName, lpProgressRoutine, lpData, pbCancel, dwCopyFlags);
+  else
+    return CopyFileExA ((LPCSTR) lpExistingFileName, (LPCSTR) lpNewFileName, lpProgressRoutine, lpData, pbCancel, dwCopyFlags);
+}
+
+/* Error if FindFirstFileTransacted used: HST: new? -- needs review */
+
+/* Error if CopyFileTransacted used: HST: new? -- needs review */
+
+WINBOOL
+qxeMoveFile (const Extbyte * lpExistingFileName, const Extbyte * lpNewFileName)
+{
+  if (XEUNICODE_P)
+    return MoveFileW ((LPCWSTR) lpExistingFileName, (LPCWSTR) lpNewFileName);
+  else
+    return MoveFileA ((LPCSTR) lpExistingFileName, (LPCSTR) lpNewFileName);
+}
+
+WINBOOL
+qxeMoveFileEx (const Extbyte * lpExistingFileName, const Extbyte * lpNewFileName, DWORD dwFlags)
+{
+  if (XEUNICODE_P)
+    return MoveFileExW ((LPCWSTR) lpExistingFileName, (LPCWSTR) lpNewFileName, dwFlags);
+  else
+    return MoveFileExA ((LPCSTR) lpExistingFileName, (LPCSTR) lpNewFileName, dwFlags);
+}
+
+/* Error if MoveFileWithProgress used: NT 5.0+ only */
+
+/* Error if MoveFileTransacted used: HST: new? -- needs review */
+
+/* Error if ReplaceFile used: Function needs review to determine how to handle it */
+
+/* Error if CreateHardLink used: NT 5.0+ only */
+
+/* Error if CreateHardLinkTransacted used: HST: new? -- needs review */
+
+/* Error if FindFirstStream used: HST: new? -- needs review */
+
+/* Error if FindNextStream used: HST: new? -- needs review */
+
+/* Error if FindFirstStreamTransacted used: HST: new? -- needs review */
+
+/* Error if FindFirstFileName used: HST: new? -- needs review */
+
+/* Error if FindNextFileName used: HST: new? -- needs review */
+
+/* Error if FindFirstFileNameTransacted used: HST: new? -- needs review */
+
+WINBOOL
+qxeGetNamedPipeHandleState (HANDLE hNamedPipe, LPDWORD lpState, LPDWORD lpCurInstances, LPDWORD lpMaxCollectionCount, LPDWORD lpCollectDataTimeout, Extbyte * lpUserName, DWORD nMaxUserNameSize)
+{
+  if (XEUNICODE_P)
+    return GetNamedPipeHandleStateW (hNamedPipe, lpState, lpCurInstances, lpMaxCollectionCount, lpCollectDataTimeout, (LPWSTR) lpUserName, nMaxUserNameSize);
+  else
+    return GetNamedPipeHandleStateA (hNamedPipe, lpState, lpCurInstances, lpMaxCollectionCount, lpCollectDataTimeout, (LPSTR) lpUserName, nMaxUserNameSize);
+}
+
+WINBOOL
+qxeCallNamedPipe (const Extbyte * lpNamedPipeName, LPVOID lpInBuffer, DWORD nInBufferSize, LPVOID lpOutBuffer, DWORD nOutBufferSize, LPDWORD lpBytesRead, DWORD nTimeOut)
+{
+  if (XEUNICODE_P)
+    return CallNamedPipeW ((LPCWSTR) lpNamedPipeName, lpInBuffer, nInBufferSize, lpOutBuffer, nOutBufferSize, lpBytesRead, nTimeOut);
+  else
+    return CallNamedPipeA ((LPCSTR) lpNamedPipeName, lpInBuffer, nInBufferSize, lpOutBuffer, nOutBufferSize, lpBytesRead, nTimeOut);
+}
+
+WINBOOL
+qxeSetVolumeLabel (const Extbyte * lpRootPathName, const Extbyte * lpVolumeName)
+{
+  if (XEUNICODE_P)
+    return SetVolumeLabelW ((LPCWSTR) lpRootPathName, (LPCWSTR) lpVolumeName);
+  else
+    return SetVolumeLabelA ((LPCSTR) lpRootPathName, (LPCSTR) lpVolumeName);
+}
+
+WINBOOL
+qxeClearEventLog (HANDLE hEventLog, const Extbyte * lpBackupFileName)
+{
+  if (XEUNICODE_P)
+    return ClearEventLogW (hEventLog, (LPCWSTR) lpBackupFileName);
+  else
+    return ClearEventLogA (hEventLog, (LPCSTR) lpBackupFileName);
+}
+
+WINBOOL
+qxeBackupEventLog (HANDLE hEventLog, const Extbyte * lpBackupFileName)
+{
+  if (XEUNICODE_P)
+    return BackupEventLogW (hEventLog, (LPCWSTR) lpBackupFileName);
+  else
+    return BackupEventLogA (hEventLog, (LPCSTR) lpBackupFileName);
 }
 
 HANDLE
-qxeOpenBackupEventLog (const Extbyte * arg1, const Extbyte * arg2)
-{
-  if (XEUNICODE_P)
-    return OpenBackupEventLogW ((LPCWSTR) arg1, (LPCWSTR) arg2);
-  else
-    return OpenBackupEventLogA ((LPCSTR) arg1, (LPCSTR) arg2);
+qxeOpenEventLog (const Extbyte * lpUNCServerName, const Extbyte * lpSourceName)
+{
+  if (XEUNICODE_P)
+    return OpenEventLogW ((LPCWSTR) lpUNCServerName, (LPCWSTR) lpSourceName);
+  else
+    return OpenEventLogA ((LPCSTR) lpUNCServerName, (LPCSTR) lpSourceName);
 }
 
 HANDLE
-qxeOpenEventLog (const Extbyte * arg1, const Extbyte * arg2)
-{
-  if (XEUNICODE_P)
-    return OpenEventLogW ((LPCWSTR) arg1, (LPCWSTR) arg2);
-  else
-    return OpenEventLogA ((LPCSTR) arg1, (LPCSTR) arg2);
-}
-
-HANDLE
-qxeOpenEvent (DWORD arg1, BOOL arg2, const Extbyte * arg3)
-{
-  if (XEUNICODE_P)
-    return OpenEventW (arg1, arg2, (LPCWSTR) arg3);
-  else
-    return OpenEventA (arg1, arg2, (LPCSTR) arg3);
-}
-
-HANDLE
-qxeOpenFileMapping (DWORD arg1, BOOL arg2, const Extbyte * arg3)
-{
-  if (XEUNICODE_P)
-    return OpenFileMappingW (arg1, arg2, (LPCWSTR) arg3);
-  else
-    return OpenFileMappingA (arg1, arg2, (LPCSTR) arg3);
+qxeRegisterEventSource (const Extbyte * lpUNCServerName, const Extbyte * lpSourceName)
+{
+  if (XEUNICODE_P)
+    return RegisterEventSourceW ((LPCWSTR) lpUNCServerName, (LPCWSTR) lpSourceName);
+  else
+    return RegisterEventSourceA ((LPCSTR) lpUNCServerName, (LPCSTR) lpSourceName);
 }
 
 HANDLE
-qxeOpenMutex (DWORD arg1, BOOL arg2, const Extbyte * arg3)
-{
-  if (XEUNICODE_P)
-    return OpenMutexW (arg1, arg2, (LPCWSTR) arg3);
-  else
-    return OpenMutexA (arg1, arg2, (LPCSTR) arg3);
-}
-
-HANDLE
-qxeOpenSemaphore (DWORD arg1, BOOL arg2, const Extbyte * arg3)
-{
-  if (XEUNICODE_P)
-    return OpenSemaphoreW (arg1, arg2, (LPCWSTR) arg3);
-  else
-    return OpenSemaphoreA (arg1, arg2, (LPCSTR) arg3);
-}
-
-HANDLE
-qxeOpenWaitableTimer (DWORD arg1, BOOL arg2, const Extbyte * arg3)
-{
-  if (XEUNICODE_P)
-    return OpenWaitableTimerW (arg1, arg2, (LPCWSTR) arg3);
-  else
-    return OpenWaitableTimerA (arg1, arg2, (LPCSTR) arg3);
-}
-
-void
-qxeOutputDebugString (const Extbyte * arg1)
-{
-  if (XEUNICODE_P)
-    OutputDebugStringW ((LPCWSTR) arg1);
-  else
-    OutputDebugStringA ((LPCSTR) arg1);
-}
-
-BOOL
-qxePrivilegedServiceAuditAlarm (const Extbyte * arg1, const Extbyte * arg2, HANDLE arg3, PPRIVILEGE_SET arg4, BOOL arg5)
-{
-  if (XEUNICODE_P)
-    return PrivilegedServiceAuditAlarmW ((LPCWSTR) arg1, (LPCWSTR) arg2, arg3, arg4, arg5);
-  else
-    return PrivilegedServiceAuditAlarmA ((LPCSTR) arg1, (LPCSTR) arg2, arg3, arg4, arg5);
-}
-
-/* Error if QueryActCtx used: Function needs review to determine how to handle it */
-
-DWORD
-qxeQueryDosDevice (const Extbyte * arg1, Extbyte * arg2, DWORD arg3)
-{
-  if (XEUNICODE_P)
-    return QueryDosDeviceW ((LPCWSTR) arg1, (LPWSTR) arg2, arg3);
-  else
-    return QueryDosDeviceA ((LPCSTR) arg1, (LPSTR) arg2, arg3);
+qxeOpenBackupEventLog (const Extbyte * lpUNCServerName, const Extbyte * lpFileName)
+{
+  if (XEUNICODE_P)
+    return OpenBackupEventLogW ((LPCWSTR) lpUNCServerName, (LPCWSTR) lpFileName);
+  else
+    return OpenBackupEventLogA ((LPCSTR) lpUNCServerName, (LPCSTR) lpFileName);
+}
+
+WINBOOL
+qxeReadEventLog (HANDLE hEventLog, DWORD dwReadFlags, DWORD dwRecordOffset, LPVOID lpBuffer, DWORD nNumberOfBytesToRead, DWORD * pnBytesRead, DWORD * pnMinNumberOfBytesNeeded)
+{
+  if (XEUNICODE_P)
+    return ReadEventLogW (hEventLog, dwReadFlags, dwRecordOffset, lpBuffer, nNumberOfBytesToRead, pnBytesRead, pnMinNumberOfBytesNeeded);
+  else
+    return ReadEventLogA (hEventLog, dwReadFlags, dwRecordOffset, lpBuffer, nNumberOfBytesToRead, pnBytesRead, pnMinNumberOfBytesNeeded);
+}
+
+WINBOOL
+qxeReportEvent (HANDLE hEventLog, WORD wType, WORD wCategory, DWORD dwEventID, PSID lpUserSid, WORD wNumStrings, DWORD dwDataSize, const Extbyte * * lpStrings, LPVOID lpRawData)
+{
+  if (XEUNICODE_P)
+    return ReportEventW (hEventLog, wType, wCategory, dwEventID, lpUserSid, wNumStrings, dwDataSize, (LPCWSTR *) lpStrings, lpRawData);
+  else
+    return ReportEventA (hEventLog, wType, wCategory, dwEventID, lpUserSid, wNumStrings, dwDataSize, (LPCSTR *) lpStrings, lpRawData);
 }
 
 /* Error if ReadDirectoryChanges used: Unicode-only */
 
-BOOL
-qxeReadEventLog (HANDLE arg1, DWORD arg2, DWORD arg3, PVOID arg4, DWORD arg5, DWORD * arg6, DWORD * arg7)
-{
-  if (XEUNICODE_P)
-    return ReadEventLogW (arg1, arg2, arg3, arg4, arg5, arg6, arg7);
-  else
-    return ReadEventLogA (arg1, arg2, arg3, arg4, arg5, arg6, arg7);
-}
+WINBOOL
+qxeIsBadStringPtr (const Extbyte * lpsz, UINT_PTR ucchMax)
+{
+  if (XEUNICODE_P)
+    return IsBadStringPtrW ((LPCWSTR) lpsz, ucchMax);
+  else
+    return IsBadStringPtrA ((LPCSTR) lpsz, ucchMax);
+}
+
+WINBOOL
+qxeLookupAccountSid (const Extbyte * lpSystemName, PSID Sid, Extbyte * Name, LPDWORD cchName, Extbyte * ReferencedDomainName, LPDWORD cchReferencedDomainName, PSID_NAME_USE peUse)
+{
+  if (XEUNICODE_P)
+    return LookupAccountSidW ((LPCWSTR) lpSystemName, Sid, (LPWSTR) Name, cchName, (LPWSTR) ReferencedDomainName, cchReferencedDomainName, peUse);
+  else
+    return LookupAccountSidA ((LPCSTR) lpSystemName, Sid, (LPSTR) Name, cchName, (LPSTR) ReferencedDomainName, cchReferencedDomainName, peUse);
+}
+
+WINBOOL
+qxeLookupAccountName (const Extbyte * lpSystemName, const Extbyte * lpAccountName, PSID Sid, LPDWORD cbSid, Extbyte * ReferencedDomainName, LPDWORD cchReferencedDomainName, PSID_NAME_USE peUse)
+{
+  if (XEUNICODE_P)
+    return LookupAccountNameW ((LPCWSTR) lpSystemName, (LPCWSTR) lpAccountName, Sid, cbSid, (LPWSTR) ReferencedDomainName, cchReferencedDomainName, peUse);
+  else
+    return LookupAccountNameA ((LPCSTR) lpSystemName, (LPCSTR) lpAccountName, Sid, cbSid, (LPSTR) ReferencedDomainName, cchReferencedDomainName, peUse);
+}
+
+/* Error if LookupAccountNameLocal used: HST: new? -- needs review */
+
+/* Error if LookupAccountSidLocal used: HST: new? -- needs review */
+
+WINBOOL
+qxeLookupPrivilegeValue (const Extbyte * lpSystemName, const Extbyte * lpName, PLUID lpLuid)
+{
+  if (XEUNICODE_P)
+    return LookupPrivilegeValueW ((LPCWSTR) lpSystemName, (LPCWSTR) lpName, lpLuid);
+  else
+    return LookupPrivilegeValueA ((LPCSTR) lpSystemName, (LPCSTR) lpName, lpLuid);
+}
+
+WINBOOL
+qxeLookupPrivilegeName (const Extbyte * lpSystemName, PLUID lpLuid, Extbyte * lpName, LPDWORD cchName)
+{
+  if (XEUNICODE_P)
+    return LookupPrivilegeNameW ((LPCWSTR) lpSystemName, lpLuid, (LPWSTR) lpName, cchName);
+  else
+    return LookupPrivilegeNameA ((LPCSTR) lpSystemName, lpLuid, (LPSTR) lpName, cchName);
+}
+
+WINBOOL
+qxeLookupPrivilegeDisplayName (const Extbyte * lpSystemName, const Extbyte * lpName, Extbyte * lpDisplayName, LPDWORD cchDisplayName, LPDWORD lpLanguageId)
+{
+  if (XEUNICODE_P)
+    return LookupPrivilegeDisplayNameW ((LPCWSTR) lpSystemName, (LPCWSTR) lpName, (LPWSTR) lpDisplayName, cchDisplayName, lpLanguageId);
+  else
+    return LookupPrivilegeDisplayNameA ((LPCSTR) lpSystemName, (LPCSTR) lpName, (LPSTR) lpDisplayName, cchDisplayName, lpLanguageId);
+}
+
+WINBOOL
+qxeBuildCommDCB (const Extbyte * lpDef, LPDCB lpDCB)
+{
+  if (XEUNICODE_P)
+    return BuildCommDCBW ((LPCWSTR) lpDef, lpDCB);
+  else
+    return BuildCommDCBA ((LPCSTR) lpDef, lpDCB);
+}
+
+WINBOOL
+qxeBuildCommDCBAndTimeouts (const Extbyte * lpDef, LPDCB lpDCB, LPCOMMTIMEOUTS lpCommTimeouts)
+{
+  if (XEUNICODE_P)
+    return BuildCommDCBAndTimeoutsW ((LPCWSTR) lpDef, lpDCB, lpCommTimeouts);
+  else
+    return BuildCommDCBAndTimeoutsA ((LPCSTR) lpDef, lpDCB, lpCommTimeouts);
+}
+
+WINBOOL
+qxeCommConfigDialog (const Extbyte * lpszName, HWND hWnd, LPCOMMCONFIG lpCC)
+{
+  if (XEUNICODE_P)
+    return CommConfigDialogW ((LPCWSTR) lpszName, hWnd, lpCC);
+  else
+    return CommConfigDialogA ((LPCSTR) lpszName, hWnd, lpCC);
+}
+
+WINBOOL
+qxeGetDefaultCommConfig (const Extbyte * lpszName, LPCOMMCONFIG lpCC, LPDWORD lpdwSize)
+{
+  if (XEUNICODE_P)
+    return GetDefaultCommConfigW ((LPCWSTR) lpszName, lpCC, lpdwSize);
+  else
+    return GetDefaultCommConfigA ((LPCSTR) lpszName, lpCC, lpdwSize);
+}
+
+WINBOOL
+qxeSetDefaultCommConfig (const Extbyte * lpszName, LPCOMMCONFIG lpCC, DWORD dwSize)
+{
+  if (XEUNICODE_P)
+    return SetDefaultCommConfigW ((LPCWSTR) lpszName, lpCC, dwSize);
+  else
+    return SetDefaultCommConfigA ((LPCSTR) lpszName, lpCC, dwSize);
+}
+
+WINBOOL
+qxeGetComputerName (Extbyte * lpBuffer, LPDWORD nSize)
+{
+  if (XEUNICODE_P)
+    return GetComputerNameW ((LPWSTR) lpBuffer, nSize);
+  else
+    return GetComputerNameA ((LPSTR) lpBuffer, nSize);
+}
+
+WINBOOL
+qxeSetComputerName (const Extbyte * lpComputerName)
+{
+  if (XEUNICODE_P)
+    return SetComputerNameW ((LPCWSTR) lpComputerName);
+  else
+    return SetComputerNameA ((LPCSTR) lpComputerName);
+}
+
+/* Error if DnsHostnameToComputerName used: Function needs review to determine how to handle it */
+
+WINBOOL
+qxeGetUserName (Extbyte * lpBuffer, LPDWORD pcbBuffer)
+{
+  if (XEUNICODE_P)
+    return GetUserNameW ((LPWSTR) lpBuffer, pcbBuffer);
+  else
+    return GetUserNameA ((LPSTR) lpBuffer, pcbBuffer);
+}
+
+WINBOOL
+qxeLogonUser (const Extbyte * lpszUsername, const Extbyte * lpszDomain, const Extbyte * lpszPassword, DWORD dwLogonType, DWORD dwLogonProvider, PHANDLE phToken)
+{
+  if (XEUNICODE_P)
+    return LogonUserW ((LPCWSTR) lpszUsername, (LPCWSTR) lpszDomain, (LPCWSTR) lpszPassword, dwLogonType, dwLogonProvider, phToken);
+  else
+    return LogonUserA ((LPCSTR) lpszUsername, (LPCSTR) lpszDomain, (LPCSTR) lpszPassword, dwLogonType, dwLogonProvider, phToken);
+}
+
+/* Error if LogonUserEx used: HST: new? -- needs review */
+
+/* Error if CreateProcessWithLogon used: Function needs review to determine how to handle it */
+
+/* Error if CreateProcessWithToken used: HST: new? -- needs review */
+
+/* Error if GetCurrentHwProfile used: split-sized LPHW_PROFILE_INFO; NT 4.0+ only */
+
+/* Error if VerifyVersionInfo used: Function needs review to determine how to handle it */
+
+/* Error if CreateJobObject used: NT 5.0+ only */
+
+/* Error if OpenJobObject used: NT 5.0+ only */
+
+/* Error if FindFirstVolumeMountPoint used: Function needs review to determine how to handle it */
+
+/* Error if FindNextVolumeMountPoint used: Function needs review to determine how to handle it */
+
+/* Error if SetVolumeMountPoint used: Function needs review to determine how to handle it */
+
+/* Error if CreateActCtx used: Function needs review to determine how to handle it */
+
+/* Error if FindActCtxSectionString used: Function needs review to determine how to handle it */
+
+/* Error if QueryActCtx used: Function needs review to determine how to handle it */
+
+/* Error if CreateSymbolicLink used: HST: new? -- needs review */
+
+/* Error if CreateSymbolicLinkTransacted used: HST: new? -- needs review */
+
+/* Error if QueryActCtxSettings used: HST: new? -- needs review */
+
+
+/*----------------------------------------------------------------------*/
+/*                      Processing file FILEAPI.H                       */
+/*----------------------------------------------------------------------*/
 
 HANDLE
-qxeRegisterEventSource (const Extbyte * arg1, const Extbyte * arg2)
-{
-  if (XEUNICODE_P)
-    return RegisterEventSourceW ((LPCWSTR) arg1, (LPCWSTR) arg2);
-  else
-    return RegisterEventSourceA ((LPCSTR) arg1, (LPCSTR) arg2);
-}
-
-BOOL
-qxeRemoveDirectory (const Extbyte * arg1)
-{
-  if (XEUNICODE_P)
-    return RemoveDirectoryW ((LPCWSTR) arg1);
-  else
-    return RemoveDirectoryA ((LPCSTR) arg1);
-}
-
-/* Error if ReplaceFile used: Function needs review to determine how to handle it */
-
-BOOL
-qxeReportEvent (HANDLE arg1, WORD arg2, WORD arg3, DWORD arg4, PSID arg5, WORD arg6, DWORD arg7, const Extbyte ** arg8, PVOID arg9)
-{
-  if (XEUNICODE_P)
-    return ReportEventW (arg1, arg2, arg3, arg4, arg5, arg6, arg7, (LPCWSTR*) arg8, arg9);
-  else
-    return ReportEventA (arg1, arg2, arg3, arg4, arg5, arg6, arg7, (LPCSTR*) arg8, arg9);
+qxeCreateFile (const Extbyte * lpFileName, DWORD dwDesiredAccess, DWORD dwShareMode, LPSECURITY_ATTRIBUTES lpSecurityAttributes, DWORD dwCreationDisposition, DWORD dwFlagsAndAttributes, HANDLE hTemplateFile)
+{
+  if (XEUNICODE_P)
+    return CreateFileW ((LPCWSTR) lpFileName, dwDesiredAccess, dwShareMode, lpSecurityAttributes, dwCreationDisposition, dwFlagsAndAttributes, hTemplateFile);
+  else
+    return CreateFileA ((LPCSTR) lpFileName, dwDesiredAccess, dwShareMode, lpSecurityAttributes, dwCreationDisposition, dwFlagsAndAttributes, hTemplateFile);
+}
+
+WINBOOL
+qxeDefineDosDevice (DWORD dwFlags, const Extbyte * lpDeviceName, const Extbyte * lpTargetPath)
+{
+  if (XEUNICODE_P)
+    return DefineDosDeviceW (dwFlags, (LPCWSTR) lpDeviceName, (LPCWSTR) lpTargetPath);
+  else
+    return DefineDosDeviceA (dwFlags, (LPCSTR) lpDeviceName, (LPCSTR) lpTargetPath);
+}
+
+/* Error if DeleteVolumeMountPoint used: HST: new? -- needs review */
+
+HANDLE
+qxeFindFirstChangeNotification (const Extbyte * lpPathName, WINBOOL bWatchSubtree, DWORD dwNotifyFilter)
+{
+  if (XEUNICODE_P)
+    return FindFirstChangeNotificationW ((LPCWSTR) lpPathName, bWatchSubtree, dwNotifyFilter);
+  else
+    return FindFirstChangeNotificationA ((LPCSTR) lpPathName, bWatchSubtree, dwNotifyFilter);
+}
+
+/* Error if FindFirstFile used: HST: new? -- needs review */
+
+/* Error if FindFirstVolume used: HST: new? -- needs review */
+
+/* Error if FindNextVolume used: HST: new? -- needs review */
+
+WINBOOL
+qxeGetDiskFreeSpace (const Extbyte * lpRootPathName, LPDWORD lpSectorsPerCluster, LPDWORD lpBytesPerSector, LPDWORD lpNumberOfFreeClusters, LPDWORD lpTotalNumberOfClusters)
+{
+  if (XEUNICODE_P)
+    return GetDiskFreeSpaceW ((LPCWSTR) lpRootPathName, lpSectorsPerCluster, lpBytesPerSector, lpNumberOfFreeClusters, lpTotalNumberOfClusters);
+  else
+    return GetDiskFreeSpaceA ((LPCSTR) lpRootPathName, lpSectorsPerCluster, lpBytesPerSector, lpNumberOfFreeClusters, lpTotalNumberOfClusters);
+}
+
+UINT
+qxeGetDriveType (const Extbyte * lpRootPathName)
+{
+  if (XEUNICODE_P)
+    return GetDriveTypeW ((LPCWSTR) lpRootPathName);
+  else
+    return GetDriveTypeA ((LPCSTR) lpRootPathName);
 }
 
 DWORD
-qxeSearchPath (const Extbyte * arg1, const Extbyte * arg2, const Extbyte * arg3, DWORD arg4, Extbyte * arg5, Extbyte ** arg6)
-{
-  if (XEUNICODE_P)
-    return SearchPathW ((LPCWSTR) arg1, (LPCWSTR) arg2, (LPCWSTR) arg3, arg4, (LPWSTR) arg5, (LPWSTR*) arg6);
-  else
-    return SearchPathA ((LPCSTR) arg1, (LPCSTR) arg2, (LPCSTR) arg3, arg4, (LPSTR) arg5, (LPSTR*) arg6);
-}
-
-BOOL
-qxeSetComputerName (const Extbyte * arg1)
-{
-  if (XEUNICODE_P)
-    return SetComputerNameW ((LPCWSTR) arg1);
-  else
-    return SetComputerNameA ((LPCSTR) arg1);
-}
-
-/* Error if SetComputerNameEx used: Function needs review to determine how to handle it */
-
-BOOL
-qxeSetCurrentDirectory (const Extbyte * arg1)
-{
-  if (XEUNICODE_P)
-    return SetCurrentDirectoryW ((LPCWSTR) arg1);
-  else
-    return SetCurrentDirectoryA ((LPCSTR) arg1);
-}
-
-BOOL
-qxeSetDefaultCommConfig (const Extbyte * arg1, LPCOMMCONFIG arg2, DWORD arg3)
-{
-  if (XEUNICODE_P)
-    return SetDefaultCommConfigW ((LPCWSTR) arg1, arg2, arg3);
-  else
-    return SetDefaultCommConfigA ((LPCSTR) arg1, arg2, arg3);
-}
-
-/* Error if SetDllDirectory used: Function needs review to determine how to handle it */
-
-BOOL
-qxeSetEnvironmentVariable (const Extbyte * arg1, const Extbyte * arg2)
-{
-  if (XEUNICODE_P)
-    return SetEnvironmentVariableW ((LPCWSTR) arg1, (LPCWSTR) arg2);
-  else
-    return SetEnvironmentVariableA ((LPCSTR) arg1, (LPCSTR) arg2);
-}
-
-BOOL
-qxeSetFileAttributes (const Extbyte * arg1, DWORD arg2)
-{
-  if (XEUNICODE_P)
-    return SetFileAttributesW ((LPCWSTR) arg1, arg2);
-  else
-    return SetFileAttributesA ((LPCSTR) arg1, arg2);
-}
-
-BOOL
-qxeSetFileSecurity (const Extbyte * arg1, SECURITY_INFORMATION arg2, PSECURITY_DESCRIPTOR arg3)
-{
-  if (XEUNICODE_P)
-    return SetFileSecurityW ((LPCWSTR) arg1, arg2, arg3);
-  else
-    return SetFileSecurityA ((LPCSTR) arg1, arg2, arg3);
-}
-
-/* Error if SetFileShortName used: Function needs review to determine how to handle it */
-
-/* Error if SetFirmwareEnvironmentVariable used: Function needs review to determine how to handle it */
-
-BOOL
-qxeSetVolumeLabel (const Extbyte * arg1, const Extbyte * arg2)
-{
-  if (XEUNICODE_P)
-    return SetVolumeLabelW ((LPCWSTR) arg1, (LPCWSTR) arg2);
-  else
-    return SetVolumeLabelA ((LPCSTR) arg1, (LPCSTR) arg2);
-}
-
-/* Error if SetVolumeMountPoint used: Function needs review to determine how to handle it */
-
-BOOL
-qxeUpdateResource (HANDLE arg1, const Extbyte * arg2, const Extbyte * arg3, WORD arg4, PVOID arg5, DWORD arg6)
-{
-  if (XEUNICODE_P)
-    return UpdateResourceW (arg1, (LPCWSTR) arg2, (LPCWSTR) arg3, arg4, arg5, arg6);
-  else
-    return UpdateResourceA (arg1, (LPCSTR) arg2, (LPCSTR) arg3, arg4, arg5, arg6);
-}
-
-/* Error if VerifyVersionInfo used: Function needs review to determine how to handle it */
-
-BOOL
-qxeWaitNamedPipe (const Extbyte * arg1, DWORD arg2)
-{
-  if (XEUNICODE_P)
-    return WaitNamedPipeW ((LPCWSTR) arg1, arg2);
-  else
-    return WaitNamedPipeA ((LPCSTR) arg1, arg2);
-}
-
-BOOL
-qxeWritePrivateProfileSection (const Extbyte * arg1, const Extbyte * arg2, const Extbyte * arg3)
-{
-  if (XEUNICODE_P)
-    return WritePrivateProfileSectionW ((LPCWSTR) arg1, (LPCWSTR) arg2, (LPCWSTR) arg3);
-  else
-    return WritePrivateProfileSectionA ((LPCSTR) arg1, (LPCSTR) arg2, (LPCSTR) arg3);
-}
-
-BOOL
-qxeWritePrivateProfileString (const Extbyte * arg1, const Extbyte * arg2, const Extbyte * arg3, const Extbyte * arg4)
-{
-  if (XEUNICODE_P)
-    return WritePrivateProfileStringW ((LPCWSTR) arg1, (LPCWSTR) arg2, (LPCWSTR) arg3, (LPCWSTR) arg4);
-  else
-    return WritePrivateProfileStringA ((LPCSTR) arg1, (LPCSTR) arg2, (LPCSTR) arg3, (LPCSTR) arg4);
-}
-
-BOOL
-qxeWritePrivateProfileStruct (const Extbyte * arg1, const Extbyte * arg2, LPVOID arg3, UINT arg4, const Extbyte * arg5)
-{
-  if (XEUNICODE_P)
-    return WritePrivateProfileStructW ((LPCWSTR) arg1, (LPCWSTR) arg2, arg3, arg4, (LPCWSTR) arg5);
-  else
-    return WritePrivateProfileStructA ((LPCSTR) arg1, (LPCSTR) arg2, arg3, arg4, (LPCSTR) arg5);
-}
-
-BOOL
-qxeWriteProfileSection (const Extbyte * arg1, const Extbyte * arg2)
-{
-  if (XEUNICODE_P)
-    return WriteProfileSectionW ((LPCWSTR) arg1, (LPCWSTR) arg2);
-  else
-    return WriteProfileSectionA ((LPCSTR) arg1, (LPCSTR) arg2);
-}
-
-BOOL
-qxeWriteProfileString (const Extbyte * arg1, const Extbyte * arg2, const Extbyte * arg3)
-{
-  if (XEUNICODE_P)
-    return WriteProfileStringW ((LPCWSTR) arg1, (LPCWSTR) arg2, (LPCWSTR) arg3);
-  else
-    return WriteProfileStringA ((LPCSTR) arg1, (LPCSTR) arg2, (LPCSTR) arg3);
+qxeGetFileAttributes (const Extbyte * lpFileName)
+{
+  if (XEUNICODE_P)
+    return GetFileAttributesW ((LPCWSTR) lpFileName);
+  else
+    return GetFileAttributesA ((LPCSTR) lpFileName);
+}
+
+DWORD
+qxeGetFullPathName (const Extbyte * lpFileName, DWORD nBufferLength, Extbyte * lpBuffer, Extbyte * * lpFilePart)
+{
+  if (XEUNICODE_P)
+    return GetFullPathNameW ((LPCWSTR) lpFileName, nBufferLength, (LPWSTR) lpBuffer, (LPWSTR *) lpFilePart);
+  else
+    return GetFullPathNameA ((LPCSTR) lpFileName, nBufferLength, (LPSTR) lpBuffer, (LPSTR *) lpFilePart);
+}
+
+DWORD
+qxeGetLogicalDriveStrings (DWORD nBufferLength, Extbyte * lpBuffer)
+{
+  if (XEUNICODE_P)
+    return GetLogicalDriveStringsW (nBufferLength, (LPWSTR) lpBuffer);
+  else
+    return GetLogicalDriveStringsA (nBufferLength, (LPSTR) lpBuffer);
+}
+
+/* Error if GetLongPathName used: HST: new? -- needs review */
+
+DWORD
+qxeGetShortPathName (const Extbyte * lpszLongPath, Extbyte * lpszShortPath, DWORD cchBuffer)
+{
+  if (XEUNICODE_P)
+    return GetShortPathNameW ((LPCWSTR) lpszLongPath, (LPWSTR) lpszShortPath, cchBuffer);
+  else
+    return GetShortPathNameA ((LPCSTR) lpszLongPath, (LPSTR) lpszShortPath, cchBuffer);
+}
+
+UINT
+qxeGetTempFileName (const Extbyte * lpPathName, const Extbyte * lpPrefixString, UINT uUnique, Extbyte * lpTempFileName)
+{
+  if (XEUNICODE_P)
+    return GetTempFileNameW ((LPCWSTR) lpPathName, (LPCWSTR) lpPrefixString, uUnique, (LPWSTR) lpTempFileName);
+  else
+    return GetTempFileNameA ((LPCSTR) lpPathName, (LPCSTR) lpPrefixString, uUnique, (LPSTR) lpTempFileName);
+}
+
+WINBOOL
+qxeGetVolumeInformation (const Extbyte * lpRootPathName, Extbyte * lpVolumeNameBuffer, DWORD nVolumeNameSize, LPDWORD lpVolumeSerialNumber, LPDWORD lpMaximumComponentLength, LPDWORD lpFileSystemFlags, Extbyte * lpFileSystemNameBuffer, DWORD nFileSystemNameSize)
+{
+  if (XEUNICODE_P)
+    return GetVolumeInformationW ((LPCWSTR) lpRootPathName, (LPWSTR) lpVolumeNameBuffer, nVolumeNameSize, lpVolumeSerialNumber, lpMaximumComponentLength, lpFileSystemFlags, (LPWSTR) lpFileSystemNameBuffer, nFileSystemNameSize);
+  else
+    return GetVolumeInformationA ((LPCSTR) lpRootPathName, (LPSTR) lpVolumeNameBuffer, nVolumeNameSize, lpVolumeSerialNumber, lpMaximumComponentLength, lpFileSystemFlags, (LPSTR) lpFileSystemNameBuffer, nFileSystemNameSize);
+}
+
+/* Error if GetVolumePathName used: HST: new? -- needs review */
+
+DWORD
+qxeQueryDosDevice (const Extbyte * lpDeviceName, Extbyte * lpTargetPath, DWORD ucchMax)
+{
+  if (XEUNICODE_P)
+    return QueryDosDeviceW ((LPCWSTR) lpDeviceName, (LPWSTR) lpTargetPath, ucchMax);
+  else
+    return QueryDosDeviceA ((LPCSTR) lpDeviceName, (LPSTR) lpTargetPath, ucchMax);
+}
+
+DWORD
+qxeGetTempPath (DWORD nBufferLength, Extbyte * lpBuffer)
+{
+  if (XEUNICODE_P)
+    return GetTempPathW (nBufferLength, (LPWSTR) lpBuffer);
+  else
+    return GetTempPathA (nBufferLength, (LPSTR) lpBuffer);
+}
+
+/* Error if GetVolumeNameForVolumeMountPoint used: HST: new? -- needs review */
+
+/* Error if GetVolumePathNamesForVolumeName used: HST: new? -- needs review */
+
+/* Error if GetFinalPathNameByHandle used: HST: new? -- needs review */
+
+/* Error if GetVolumeInformationByHandle used: HST: new? -- needs review */
+
+WINBOOL
+qxeCreateDirectory (const Extbyte * lpPathName, LPSECURITY_ATTRIBUTES lpSecurityAttributes)
+{
+  if (XEUNICODE_P)
+    return CreateDirectoryW ((LPCWSTR) lpPathName, lpSecurityAttributes);
+  else
+    return CreateDirectoryA ((LPCSTR) lpPathName, lpSecurityAttributes);
+}
+
+WINBOOL
+qxeDeleteFile (const Extbyte * lpFileName)
+{
+  if (XEUNICODE_P)
+    return DeleteFileW ((LPCWSTR) lpFileName);
+  else
+    return DeleteFileA ((LPCSTR) lpFileName);
+}
+
+/* Error if FindFirstFileEx used: HST: new? -- needs review */
+
+/* Error if FindNextFile used: HST: new? -- needs review */
+
+WINBOOL
+qxeGetDiskFreeSpaceEx (const Extbyte * lpDirectoryName, PULARGE_INTEGER lpFreeBytesAvailableToCaller, PULARGE_INTEGER lpTotalNumberOfBytes, PULARGE_INTEGER lpTotalNumberOfFreeBytes)
+{
+  if (XEUNICODE_P)
+    return GetDiskFreeSpaceExW ((LPCWSTR) lpDirectoryName, lpFreeBytesAvailableToCaller, lpTotalNumberOfBytes, lpTotalNumberOfFreeBytes);
+  else
+    return GetDiskFreeSpaceExA ((LPCSTR) lpDirectoryName, lpFreeBytesAvailableToCaller, lpTotalNumberOfBytes, lpTotalNumberOfFreeBytes);
+}
+
+WINBOOL
+qxeGetFileAttributesEx (const Extbyte * lpFileName, GET_FILEEX_INFO_LEVELS fInfoLevelId, LPVOID lpFileInformation)
+{
+  if (XEUNICODE_P)
+    return GetFileAttributesExW ((LPCWSTR) lpFileName, fInfoLevelId, lpFileInformation);
+  else
+    return GetFileAttributesExA ((LPCSTR) lpFileName, fInfoLevelId, lpFileInformation);
+}
+
+WINBOOL
+qxeRemoveDirectory (const Extbyte * lpPathName)
+{
+  if (XEUNICODE_P)
+    return RemoveDirectoryW ((LPCWSTR) lpPathName);
+  else
+    return RemoveDirectoryA ((LPCSTR) lpPathName);
+}
+
+WINBOOL
+qxeSetFileAttributes (const Extbyte * lpFileName, DWORD dwFileAttributes)
+{
+  if (XEUNICODE_P)
+    return SetFileAttributesW ((LPCWSTR) lpFileName, dwFileAttributes);
+  else
+    return SetFileAttributesA ((LPCSTR) lpFileName, dwFileAttributes);
 }
 
 
@@ -4156,207 +4722,56 @@
 /*                       Processing file ACLAPI.h                       */
 /*----------------------------------------------------------------------*/
 
-/* Error if BuildExplicitAccessWithName used: Function needs review to determine how to handle it */
-
-/* Error if BuildSecurityDescriptor used: Function needs review to determine how to handle it */
-
-/* Error if BuildTrusteeWithName used: Function needs review to determine how to handle it */
-
-/* Error if BuildTrusteeWithObjectsAndName used: Function needs review to determine how to handle it */
-
-/* Error if BuildTrusteeWithObjectsAndSid used: Function needs review to determine how to handle it */
-
-/* Error if BuildTrusteeWithSid used: Function needs review to determine how to handle it */
+/* Error if SetEntriesInAcl used: Function needs review to determine how to handle it */
+
+/* Error if GetExplicitEntriesFromAcl used: Function needs review to determine how to handle it */
+
+/* Error if GetEffectiveRightsFromAcl used: Function needs review to determine how to handle it */
 
 /* Error if GetAuditedPermissionsFromAcl used: Function needs review to determine how to handle it */
 
-/* Error if GetEffectiveRightsFromAcl used: Function needs review to determine how to handle it */
-
-/* Error if GetExplicitEntriesFromAcl used: Function needs review to determine how to handle it */
-
 DWORD
-qxeGetNamedSecurityInfo (Extbyte * arg1, SE_OBJECT_TYPE arg2, SECURITY_INFORMATION arg3, PSID* arg4, PSID* arg5, PACL* arg6, PACL* arg7, PSECURITY_DESCRIPTOR* arg8)
-{
-  if (XEUNICODE_P)
-    return GetNamedSecurityInfoW ((LPWSTR) arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8);
-  else
-    return GetNamedSecurityInfoA ((LPSTR) arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8);
-}
-
-/* Error if GetTrusteeForm used: Function needs review to determine how to handle it */
+qxeGetNamedSecurityInfo (const Extbyte * pObjectName, SE_OBJECT_TYPE ObjectType, SECURITY_INFORMATION SecurityInfo, PSID * ppsidOwner, PSID * ppsidGroup, PACL * ppDacl, PACL * ppSacl, PSECURITY_DESCRIPTOR * ppSecurityDescriptor)
+{
+  if (XEUNICODE_P)
+    return GetNamedSecurityInfoW ((LPCWSTR) pObjectName, ObjectType, SecurityInfo, ppsidOwner, ppsidGroup, ppDacl, ppSacl, ppSecurityDescriptor);
+  else
+    return GetNamedSecurityInfoA ((LPCSTR) pObjectName, ObjectType, SecurityInfo, ppsidOwner, ppsidGroup, ppDacl, ppSacl, ppSecurityDescriptor);
+}
+
+/* Error if SetNamedSecurityInfo used: Function needs review to determine how to handle it */
+
+/* Error if GetInheritanceSource used: HST: new? -- needs review */
+
+/* Error if TreeResetNamedSecurityInfo used: HST: new? -- needs review */
+
+/* Error if BuildSecurityDescriptor used: Function needs review to determine how to handle it */
+
+/* Error if LookupSecurityDescriptorParts used: Function needs review to determine how to handle it */
+
+/* Error if BuildExplicitAccessWithName used: Function needs review to determine how to handle it */
+
+/* Error if BuildImpersonateExplicitAccessWithName used: Function needs review to determine how to handle it */
+
+/* Error if BuildTrusteeWithName used: Function needs review to determine how to handle it */
+
+/* Error if BuildImpersonateTrustee used: Function needs review to determine how to handle it */
+
+/* Error if BuildTrusteeWithSid used: Function needs review to determine how to handle it */
+
+/* Error if BuildTrusteeWithObjectsAndSid used: Function needs review to determine how to handle it */
+
+/* Error if BuildTrusteeWithObjectsAndName used: Function needs review to determine how to handle it */
 
 /* Error if GetTrusteeName used: Function needs review to determine how to handle it */
 
 /* Error if GetTrusteeType used: Function needs review to determine how to handle it */
 
-/* Error if LookupSecurityDescriptorParts used: Function needs review to determine how to handle it */
-
-/* Error if SetEntriesInAcl used: Function needs review to determine how to handle it */
-
-/* Error if SetNamedSecurityInfo used: Function needs review to determine how to handle it */
-
-/* Error if BuildImpersonateExplicitAccessWithName used: Function needs review to determine how to handle it */
-
-/* Error if BuildImpersonateTrustee used: Function needs review to determine how to handle it */
-
-/* Error if GetMultipleTrustee used: Function needs review to determine how to handle it */
+/* Error if GetTrusteeForm used: Function needs review to determine how to handle it */
 
 /* Error if GetMultipleTrusteeOperation used: Function needs review to determine how to handle it */
 
-
-/*----------------------------------------------------------------------*/
-/*                      Processing file MMSYSTEM.H                      */
-/*----------------------------------------------------------------------*/
-
-BOOL
-qxesndPlaySound (const Extbyte * arg1, UINT arg2)
-{
-  if (XEUNICODE_P)
-    return sndPlaySoundW ((LPCWSTR) arg1, arg2);
-  else
-    return sndPlaySoundA ((LPCSTR) arg1, arg2);
-}
-
-BOOL
-qxePlaySound (const Extbyte * arg1, HMODULE arg2, DWORD arg3)
-{
-  if (XEUNICODE_P)
-    return PlaySoundW ((LPCWSTR) arg1, arg2, arg3);
-  else
-    return PlaySoundA ((LPCSTR) arg1, arg2, arg3);
-}
-
-/* Error if waveOutGetDevCaps used: split-sized LPWAVEOUTCAPS */
-
-MMRESULT
-qxewaveOutGetErrorText (MMRESULT arg1, Extbyte * arg2, UINT arg3)
-{
-  if (XEUNICODE_P)
-    return waveOutGetErrorTextW (arg1, (LPWSTR) arg2, arg3);
-  else
-    return waveOutGetErrorTextA (arg1, (LPSTR) arg2, arg3);
-}
-
-/* Error if waveInGetDevCaps used: split-sized LPWAVEINCAPS */
-
-MMRESULT
-qxewaveInGetErrorText (MMRESULT arg1, Extbyte * arg2, UINT arg3)
-{
-  if (XEUNICODE_P)
-    return waveInGetErrorTextW (arg1, (LPWSTR) arg2, arg3);
-  else
-    return waveInGetErrorTextA (arg1, (LPSTR) arg2, arg3);
-}
-
-/* Error if midiOutGetDevCaps used: split-sized LPMIDIOUTCAPS */
-
-MMRESULT
-qxemidiOutGetErrorText (MMRESULT arg1, Extbyte * arg2, UINT arg3)
-{
-  if (XEUNICODE_P)
-    return midiOutGetErrorTextW (arg1, (LPWSTR) arg2, arg3);
-  else
-    return midiOutGetErrorTextA (arg1, (LPSTR) arg2, arg3);
-}
-
-/* Error if midiInGetDevCaps used: split-sized LPMIDIOUTCAPS */
-
-MMRESULT
-qxemidiInGetErrorText (MMRESULT arg1, Extbyte * arg2, UINT arg3)
-{
-  if (XEUNICODE_P)
-    return midiInGetErrorTextW (arg1, (LPWSTR) arg2, arg3);
-  else
-    return midiInGetErrorTextA (arg1, (LPSTR) arg2, arg3);
-}
-
-/* Error if auxGetDevCaps used: split-sized LPAUXCAPS */
-
-/* Error if mixerGetDevCaps used: split-sized LPMIXERCAPS */
-
-/* Error if mixerGetLineInfo used: split-sized LPMIXERLINE */
-
-/* Error if mixerGetLineControls used: split-sized LPMIXERCONTROL */
-
-/* Error if mixerGetControlDetails used: split-sized LPMIXERCONTROL in LPMIXERLINECONTROLS in LPMIXERCONTROLDETAILS */
-
-/* Error if joyGetDevCaps used: split-sized LPJOYCAPS */
-
-FOURCC
-qxemmioStringToFOURCC (const Extbyte * arg1, UINT arg2)
-{
-  if (XEUNICODE_P)
-    return mmioStringToFOURCCW ((LPCWSTR) arg1, arg2);
-  else
-    return mmioStringToFOURCCA ((LPCSTR) arg1, arg2);
-}
-
-LPMMIOPROC
-qxemmioInstallIOProc (FOURCC arg1, LPMMIOPROC arg2, DWORD arg3)
-{
-  if (XEUNICODE_P)
-    return mmioInstallIOProcW (arg1, arg2, arg3);
-  else
-    return mmioInstallIOProcA (arg1, arg2, arg3);
-}
-
-HMMIO
-qxemmioOpen (Extbyte * arg1, LPMMIOINFO arg2, DWORD arg3)
-{
-  if (XEUNICODE_P)
-    return mmioOpenW ((LPWSTR) arg1, arg2, arg3);
-  else
-    return mmioOpenA ((LPSTR) arg1, arg2, arg3);
-}
-
-MMRESULT
-qxemmioRename (const Extbyte * arg1, const Extbyte * arg2, LPCMMIOINFO arg3, DWORD arg4)
-{
-  if (XEUNICODE_P)
-    return mmioRenameW ((LPCWSTR) arg1, (LPCWSTR) arg2, arg3, arg4);
-  else
-    return mmioRenameA ((LPCSTR) arg1, (LPCSTR) arg2, arg3, arg4);
-}
-
-MCIERROR
-qxemciSendCommand (MCIDEVICEID arg1, UINT arg2, DWORD arg3, DWORD arg4)
-{
-  if (XEUNICODE_P)
-    return mciSendCommandW (arg1, arg2, arg3, arg4);
-  else
-    return mciSendCommandA (arg1, arg2, arg3, arg4);
-}
-
-MCIERROR
-qxemciSendString (const Extbyte * arg1, Extbyte * arg2, UINT arg3, HWND arg4)
-{
-  if (XEUNICODE_P)
-    return mciSendStringW ((LPCWSTR) arg1, (LPWSTR) arg2, arg3, arg4);
-  else
-    return mciSendStringA ((LPCSTR) arg1, (LPSTR) arg2, arg3, arg4);
-}
-
-MCIDEVICEID
-qxemciGetDeviceID (const Extbyte * arg1)
-{
-  if (XEUNICODE_P)
-    return mciGetDeviceIDW ((LPCWSTR) arg1);
-  else
-    return mciGetDeviceIDA ((LPCSTR) arg1);
-}
-
-#if !defined (MINGW)
-
-/* Error if mciGetDeviceIDFromElementID used: missing from Win98se version of ADVAPI32.dll */
-
-#endif /* !defined (MINGW) */
-
-BOOL
-qxemciGetErrorString (MCIERROR arg1, Extbyte * arg2, UINT arg3)
-{
-  if (XEUNICODE_P)
-    return mciGetErrorStringW (arg1, (LPWSTR) arg2, arg3);
-  else
-    return mciGetErrorStringA (arg1, (LPSTR) arg2, arg3);
-}
-
+/* Error if GetMultipleTrustee used: Function needs review to determine how to handle it */
+
+/* Error if TreeSetNamedSecurityInfo used: HST: new? -- needs review */
+