view src/intl-auto-encap-win32.c @ 5636:07256dcc0c8b

Add missing foreback specifier values to the GUI Element face. They were missing for an unexplicable reason in my initial patch, leading to nil color instances in the whole hierarchy of widget faces. -------------------- ChangeLog entries follow: -------------------- src/ChangeLog addition: 2012-01-03 Didier Verna <didier@xemacs.org> * faces.c (complex_vars_of_faces): Add missing foreback specifier values to the GUI Element face.
author Didier Verna <didier@lrde.epita.fr>
date Tue, 03 Jan 2012 11:25:06 +0100
parents 7eec2a1f3412
children 0f2338afbabf
line wrap: on
line source

/* Automatically-generated Unicode-encapsulation file,
   using the command

   ../lib-src/make-mswin-unicode.pl --c-output intl-auto-encap-win32.c --h-output intl-auto-encap-win32.h intl-encap-win32.c

   Do not edit.  See `make-mswin-unicode.pl'.
*/

#include <config.h>
#include "lisp.h"

#include "syswindows.h"


/*----------------------------------------------------------------------*/
/*                       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                      */
/*----------------------------------------------------------------------*/

/* 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);
}

/* NOTE: error arg2, Cygwin prototype, extra const.
   NOTE: Prototype manually overridden.
         Header file claims:
           HICON WINAPI ExtractAssociatedIcon(HINSTANCE,LPCWSTR,PWORD)
         Overridden with:
           HICON ExtractAssociatedIcon(HINSTANCE, LPWSTR, LPWORD)
         Differences in return-type qualifiers, e.g. WINAPI, are not important.
 */
HICON
qxeExtractAssociatedIcon (HINSTANCE arg1, Extbyte * arg2, LPWORD arg3)
{
  if (XEUNICODE_P)
    return ExtractAssociatedIconW (arg1, (LPWSTR) arg2, arg3);
  else
    return ExtractAssociatedIconA (arg1, (LPSTR) arg2, arg3);
}

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);
}

/* 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);
}

/* 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 */

#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);
}

#endif /* !defined (CYGWIN_HEADERS) */

#if !defined (CYGWIN_HEADERS)

/* 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);
}

#endif /* !defined (CYGWIN_HEADERS) */


/*----------------------------------------------------------------------*/
/*                      Processing file WINSPOOL.H                      */
/*----------------------------------------------------------------------*/

#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 AddJob used: not used, complicated interface with split structures */

#endif /* defined (HAVE_MS_WINDOWS) */

#if defined (HAVE_MS_WINDOWS)

/* Error if AddMonitor used: not used, complicated interface with split structures */

#endif /* defined (HAVE_MS_WINDOWS) */

#if defined (HAVE_MS_WINDOWS)

/* Error if AddPort used: not used, complicated interface with split structures */

#endif /* defined (HAVE_MS_WINDOWS) */

#if defined (HAVE_MS_WINDOWS)

/* Error if AddPrinter used: split-sized DEVMODE pointer in split PRINTER_INFO_2 */

#endif /* defined (HAVE_MS_WINDOWS) */

#if defined (HAVE_MS_WINDOWS)

/* Error if AddPrinterConnection used: not used, complicated interface with split structures */

#endif /* defined (HAVE_MS_WINDOWS) */

#if defined (HAVE_MS_WINDOWS)

/* Error if AddPrinterDriver 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 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 */

#endif /* defined (HAVE_MS_WINDOWS) */

#if defined (HAVE_MS_WINDOWS)

/* Error if EnumPrinterDrivers used: not used, complicated interface with split structures */

#endif /* defined (HAVE_MS_WINDOWS) */

#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) */

#if defined (HAVE_MS_WINDOWS)

/* Error if GetPrinterDriverDirectory 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 */

#endif /* defined (HAVE_MS_WINDOWS) */

#if defined (HAVE_MS_WINDOWS)

/* Error if PrinterMessageBox used: not used, complicated interface with split structures */

#endif /* defined (HAVE_MS_WINDOWS) */

#if defined (HAVE_MS_WINDOWS)

/* Error if ResetPrinter used: split-sized DEVMODE pointer in split PRINTER_DEFAULTS */

#endif /* defined (HAVE_MS_WINDOWS) */

#if defined (HAVE_MS_WINDOWS)

/* Error if SetForm 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 */

#endif /* defined (HAVE_MS_WINDOWS) */

#if defined (HAVE_MS_WINDOWS)

/* 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 SetPrinterData used: not used, complicated interface with split structures */

#endif /* defined (HAVE_MS_WINDOWS) */

#if defined (HAVE_MS_WINDOWS)

/* Error if StartDocPrinter 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);
}

#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);
}

#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);
}

#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);
}

#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);
}

#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);
}

#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);
}

#endif /* defined (HAVE_MS_WINDOWS) */

#if defined (HAVE_MS_WINDOWS)

/* Error if WNetSetConnection used: Function needs review to determine how to handle it */

#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);
}

#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);
}

#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);
}

#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);
}

#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);
}

#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);
}

#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);
}

#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);
}

#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)

/* Error if WNetGetResourceParent used: Function needs review to determine how to handle it */

#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);
}

#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);
}

#endif /* defined (HAVE_MS_WINDOWS) */


/*----------------------------------------------------------------------*/
/*                      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);
}

/* 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);
}

/* 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)
         Overridden with:
           HWINSTA CreateWindowStation(LPWSTR,DWORD,DWORD,LPSECURITY_ATTRIBUTES)
         Differences in return-type qualifiers, e.g. WINAPI, are not important.
 */
HWINSTA
qxeCreateWindowStation (Extbyte * arg1, DWORD arg2, DWORD arg3, LPSECURITY_ATTRIBUTES arg4)
{
  if (XEUNICODE_P)
    return CreateWindowStationW ((LPWSTR) arg1, arg2, arg3, arg4);
  else
    return CreateWindowStationA ((LPSTR) arg1, arg2, arg3, arg4);
}

/* Error if DefDlgProc used: return value is conditionalized on _MAC, messes up parser */

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 */

/* Skipping DefWindowProc because return value is conditionalized on _MAC, messes up parser */

/* 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);
}

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);
}

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);
}

/* 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);
}

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);
}

/* 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);
}

/* 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);
}

/* Error if EnumDisplaySettings used: split-sized LPDEVMODE */

/* Error if EnumDisplaySettingsEx used: Function needs review to determine how to handle it */

/* 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 */

/* 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 */
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);
}

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 */

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 */

UINT
qxeRegisterWindowMessage (const Extbyte * arg1)
{
  if (XEUNICODE_P)
    return RegisterWindowMessageW ((LPCWSTR) arg1);
  else
    return RegisterWindowMessageA ((LPCSTR) arg1);
}

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);
}

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);
}


/*----------------------------------------------------------------------*/
/*                       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);
}

/* 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 */


/*----------------------------------------------------------------------*/
/*                       Processing file WINGDI.H                       */
/*----------------------------------------------------------------------*/

#if defined (HAVE_MS_WINDOWS)

int
qxeAddFontResource (const Extbyte * arg1)
{
  if (XEUNICODE_P)
    return AddFontResourceW ((LPCWSTR) arg1);
  else
    return AddFontResourceA ((LPCSTR) arg1);
}

#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)

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)
{
  if (XEUNICODE_P)
    return CopyMetaFileW (arg1, (LPCWSTR) arg2);
  else
    return CopyMetaFileA (arg1, (LPCSTR) arg2);
}

#endif /* defined (HAVE_MS_WINDOWS) */

#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);
}

#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 */

#endif /* defined (HAVE_MS_WINDOWS) */

#if defined (HAVE_MS_WINDOWS)

/* Skipping CreateIC because split-sized DEVMODE */

#endif /* defined (HAVE_MS_WINDOWS) */

#if defined (HAVE_MS_WINDOWS)

HDC
qxeCreateMetaFile (const Extbyte * arg1)
{
  if (XEUNICODE_P)
    return CreateMetaFileW ((LPCWSTR) arg1);
  else
    return CreateMetaFileA ((LPCSTR) arg1);
}

#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);
}

#endif /* defined (HAVE_MS_WINDOWS) */

#if defined (HAVE_MS_WINDOWS)

/* Skipping DeviceCapabilities because split-sized DEVMODE */

#endif /* defined (HAVE_MS_WINDOWS) */

#if defined (HAVE_MS_WINDOWS)

/* Error if EnumFontFamilies used: split-complex FONTENUMPROC */

#endif /* defined (HAVE_MS_WINDOWS) */

#if defined (HAVE_MS_WINDOWS)

/* Skipping EnumFontFamiliesEx because split-complex FONTENUMPROC; NT 4.0+ only */

#endif /* defined (HAVE_MS_WINDOWS) */

#if defined (HAVE_MS_WINDOWS)

/* Error if EnumFonts used: split-complex FONTENUMPROC */

#endif /* defined (HAVE_MS_WINDOWS) */

#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);
}

#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);
}

#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);
}

#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);
}

#endif /* defined (HAVE_MS_WINDOWS) */

#if defined (HAVE_MS_WINDOWS)

/* 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);
}

#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);
}

#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);
}

#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);
}

#endif /* defined (HAVE_MS_WINDOWS) */

#if defined (HAVE_MS_WINDOWS)

HENHMETAFILE
qxeGetEnhMetaFile (const Extbyte * arg1)
{
  if (XEUNICODE_P)
    return GetEnhMetaFileW ((LPCWSTR) arg1);
  else
    return GetEnhMetaFileA ((LPCSTR) arg1);
}

#endif /* defined (HAVE_MS_WINDOWS) */

#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);
}

#endif /* defined (HAVE_MS_WINDOWS) */

#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);
}

#endif /* defined (HAVE_MS_WINDOWS) */

#if defined (HAVE_MS_WINDOWS)

/* Error if GetLogColorSpace used: split-sized LPLOGCOLORSPACE; NT 4.0+ only */

#endif /* defined (HAVE_MS_WINDOWS) */

#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);
}

#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 */

#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);
}

#endif /* defined (HAVE_MS_WINDOWS) */

#if defined (HAVE_MS_WINDOWS)

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);
}

#endif /* defined (HAVE_MS_WINDOWS) */

#if defined (HAVE_MS_WINDOWS)

/* Skipping UpdateICMRegKey because NT 4.0+ only, error in Cygwin prototype */

#endif /* defined (HAVE_MS_WINDOWS) */

#if defined (HAVE_MS_WINDOWS)

/* Error if wglUseFontBitmaps used: causes link error */

#endif /* defined (HAVE_MS_WINDOWS) */

#if defined (HAVE_MS_WINDOWS)

/* Error if wglUseFontOutlines used: causes link error */

#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 SHLOBJ.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 */

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 */


/*----------------------------------------------------------------------*/
/*                      Processing file COMMDLG.H                       */
/*----------------------------------------------------------------------*/

#if defined (HAVE_MS_WINDOWS)

BOOL
qxeChooseColor (LPCHOOSECOLORW arg1)
{
  if (XEUNICODE_P)
    return ChooseColorW (arg1);
  else
    return ChooseColorA ((LPCHOOSECOLORA) 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);
}

#endif /* defined (HAVE_MS_WINDOWS) */

#if defined (HAVE_MS_WINDOWS)

short
qxeGetFileTitle (const Extbyte * arg1, Extbyte * arg2, WORD arg3)
{
  if (XEUNICODE_P)
    return GetFileTitleW ((LPCWSTR) arg1, (LPWSTR) arg2, arg3);
  else
    return GetFileTitleA ((LPCSTR) arg1, (LPSTR) arg2, arg3);
}

#endif /* defined (HAVE_MS_WINDOWS) */

#if defined (HAVE_MS_WINDOWS)

BOOL
qxeGetOpenFileName (LPOPENFILENAMEW arg1)
{
  if (XEUNICODE_P)
    return GetOpenFileNameW (arg1);
  else
    return GetOpenFileNameA ((LPOPENFILENAMEA) 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 */

#endif /* defined (HAVE_MS_WINDOWS) */

#if defined (HAVE_MS_WINDOWS)

HWND
qxeReplaceText (LPFINDREPLACEW arg1)
{
  if (XEUNICODE_P)
    return ReplaceTextW (arg1);
  else
    return ReplaceTextA ((LPFINDREPLACEA) arg1);
}

#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) */


/*----------------------------------------------------------------------*/
/*                        Processing file IMM.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) */


/*----------------------------------------------------------------------*/
/*                      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);
}

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 */

#if !defined (CYGWIN_HEADERS)

/* Error if EncryptFile used: Win2K+ only */

#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);
}

/* 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);
}

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);
}

/* 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);
}

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 */

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);
}

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);
}

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);
}

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);
}

HANDLE
qxeOpenBackupEventLog (const Extbyte * arg1, const Extbyte * arg2)
{
  if (XEUNICODE_P)
    return OpenBackupEventLogW ((LPCWSTR) arg1, (LPCWSTR) arg2);
  else
    return OpenBackupEventLogA ((LPCSTR) arg1, (LPCSTR) arg2);
}

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);
}

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);
}

/* 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);
}

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);
}

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);
}


/*----------------------------------------------------------------------*/
/*                       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 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 */

/* 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 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);
}