Mercurial > hg > xemacs-beta
view src/intl-auto-encap-win32.c @ 3767:6b2ef948e140
[xemacs-hg @ 2006-12-29 18:09:38 by aidan]
etc/ChangeLog addition:
2006-12-21 Aidan Kehoe <kehoea@parhasard.net>
* unicode/unicode-consortium/8859-7.TXT:
Update the mapping to the 2003 version of ISO 8859-7.
lisp/ChangeLog addition:
2006-12-21 Aidan Kehoe <kehoea@parhasard.net>
* mule/cyrillic.el:
* mule/cyrillic.el (iso-8859-5):
* mule/cyrillic.el (cyrillic-koi8-r-encode-table):
Add syntax, case support for Cyrillic; make some parentheses more
Lispy.
* mule/european.el:
Content moved to latin.el, file deleted.
* mule/general-late.el:
If Unicode tables are to be loaded at dump time, do it here, not
in loadup.el.
* mule/greek.el:
Add syntax, case support for Greek.
* mule/latin.el:
Move the content of european.el here. Change the case table
mappings to use hexadecimal codes, to make cross reference to the
standards easier. In all cases, take character syntax from similar
characters in Latin-1 , rather than deciding separately what
syntax they should take. Add (incomplete) support for case with
Turkish. Remove description of the character sets used from the
language environments' doc strings, since now that we create
variant language environments on the fly, such descriptions will
often be inaccurate. Set the native-coding-system language info
property while setting the other coding-system properties of the
language.
* mule/misc-lang.el (ipa):
Remove the language environment. The International Phonetic
_Alphabet_ is not a language, it's inane to have a corresponding
language environment in XEmacs.
* mule/mule-cmds.el (create-variant-language-environment):
Also modify the coding-priority when creating a new language
environment; document that.
* mule/mule-cmds.el (get-language-environment-from-locale):
Recognise that the 'native-coding-system language-info property
can be a list, interpret it correctly when it is one.
2006-12-21 Aidan Kehoe <kehoea@parhasard.net>
* coding.el (coding-system-category):
Use the new 'unicode-type property for finding what sort of
Unicode coding system subtype a coding system is, instead of the
overshadowed 'type property.
* dumped-lisp.el (preloaded-file-list):
mule/european.el has been removed.
* loadup.el (really-early-error-handler):
Unicode tables loaded at dump time are now in
mule/general-late.el.
* simple.el (count-lines):
Add some backslashes to to parentheses in docstrings to help
fontification along.
* simple.el (what-cursor-position):
Wrap a line to fit in 80 characters.
* unicode.el:
Use the 'unicode-type property, not 'type, for setting the Unicode
coding-system subtype.
src/ChangeLog addition:
2006-12-21 Aidan Kehoe <kehoea@parhasard.net>
* file-coding.c:
Update the make-coding-system docstring to reflect unicode-type
* general-slots.h:
New symbol, unicode-type, since 'type was being overridden when
accessing a coding system's Unicode subtype.
* intl-win32.c:
Backslash a few parentheses, to help fontification along.
* intl-win32.c (complex_vars_of_intl_win32):
Use the 'unicode-type symbol, not 'type, when creating the
Microsoft Unicode coding system.
* unicode.c (unicode_putprop):
* unicode.c (unicode_getprop):
* unicode.c (unicode_print):
Using 'type as the property name when working out what Unicode
subtype a given coding system is was broken, since there's a
general coding system property called 'type. Change the former to
use 'unicode-type instead.
author | aidan |
---|---|
date | Fri, 29 Dec 2006 18:09:51 +0000 |
parents | 6765f2581182 |
children | 50861fea97f6 |
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 SHELLAPI.H */ /*----------------------------------------------------------------------*/ 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); } HINSTANCE qxeShellExecute (HWND hwnd, const Extbyte * lpOperation, const Extbyte * lpFile, const Extbyte * lpParameters, const Extbyte * lpDirectory, INT nShowCmd) { if (XEUNICODE_P) return ShellExecuteW (hwnd, (LPCWSTR) lpOperation, (LPCWSTR) lpFile, (LPCWSTR) lpParameters, (LPCWSTR) lpDirectory, nShowCmd); else return ShellExecuteA (hwnd, (LPCSTR) lpOperation, (LPCSTR) lpFile, (LPCSTR) lpParameters, (LPCSTR) lpDirectory, nShowCmd); } HINSTANCE qxeFindExecutable (const Extbyte * lpFile, const Extbyte * lpDirectory, Extbyte * lpResult) { if (XEUNICODE_P) return FindExecutableW ((LPCWSTR) lpFile, (LPCWSTR) lpDirectory, (LPWSTR) lpResult); else return FindExecutableA ((LPCSTR) lpFile, (LPCSTR) lpDirectory, (LPSTR) lpResult); } /* Error if CommandLineToArgv used: Unicode-only */ INT qxeShellAbout (HWND hWnd, const Extbyte * szApp, const Extbyte * szOtherStuff, HICON hIcon) { if (XEUNICODE_P) return ShellAboutW (hWnd, (LPCWSTR) szApp, (LPCWSTR) szOtherStuff, hIcon); else return ShellAboutA (hWnd, (LPCSTR) szApp, (LPCSTR) szOtherStuff, hIcon); } HICON qxeExtractAssociatedIcon (HINSTANCE hInst, Extbyte * lpIconPath, LPWORD lpiIcon) { if (XEUNICODE_P) return ExtractAssociatedIconW (hInst, (LPWSTR) lpIconPath, lpiIcon); else return ExtractAssociatedIconA (hInst, (LPSTR) lpIconPath, lpiIcon); } HICON qxeExtractIcon (HINSTANCE hInst, const Extbyte * lpszExeFileName, UINT nIconIndex) { if (XEUNICODE_P) return ExtractIconW (hInst, (LPCWSTR) lpszExeFileName, nIconIndex); else return ExtractIconA (hInst, (LPCSTR) lpszExeFileName, nIconIndex); } #if !defined (CYGWIN_HEADERS) /* NOTE: NT 4.0+ only */ DWORD qxeDoEnvironmentSubst (Extbyte * szString, UINT cbString) { if (XEUNICODE_P) return DoEnvironmentSubstW ((LPWSTR) szString, cbString); else return DoEnvironmentSubstA ((LPSTR) szString, cbString); } #endif /* !defined (CYGWIN_HEADERS) */ /* Error if FindEnvironmentString used: causes link error; NT 4.0+ only */ /* Skipping ExtractIconEx because NT 4.0+ only, error in Cygwin prototype */ /* NOTE: NT 4.0+ only */ int qxeSHFileOperation (LPSHFILEOPSTRUCTW lpFileOp) { if (XEUNICODE_P) return SHFileOperationW (lpFileOp); else return SHFileOperationA ((LPSHFILEOPSTRUCTA) lpFileOp); } /* NOTE: NT 4.0+ only */ BOOL qxeShellExecuteEx (LPSHELLEXECUTEINFOW lpExecInfo) { if (XEUNICODE_P) return ShellExecuteExW (lpExecInfo); else return ShellExecuteExA ((LPSHELLEXECUTEINFOA) lpExecInfo); } /* Error if WinExecError used: causes link error; NT 4.0+ only */ #if !defined (CYGWIN_HEADERS) /* NOTE: NT 4.0+ only */ HRESULT qxeSHQueryRecycleBin (const Extbyte * pszRootPath, LPSHQUERYRBINFO pSHQueryRBInfo) { if (XEUNICODE_P) return SHQueryRecycleBinW ((LPCWSTR) pszRootPath, pSHQueryRBInfo); else return SHQueryRecycleBinA ((LPCSTR) pszRootPath, pSHQueryRBInfo); } #endif /* !defined (CYGWIN_HEADERS) */ #if !defined (CYGWIN_HEADERS) /* NOTE: NT 4.0+ only */ HRESULT qxeSHEmptyRecycleBin (HWND hwnd, const Extbyte * pszRootPath, DWORD dwFlags) { if (XEUNICODE_P) return SHEmptyRecycleBinW (hwnd, (LPCWSTR) pszRootPath, dwFlags); else return SHEmptyRecycleBinA (hwnd, (LPCSTR) pszRootPath, dwFlags); } #endif /* !defined (CYGWIN_HEADERS) */ /* Error if Shell_NotifyIcon used: split-sized NOTIFYICONDATA, NT 4.0+ only */ /* Skipping SHGetFileInfo because split-sized SHFILEINFO, NT 4.0+ only */ /* Error if SHGetDiskFreeSpace used: causes link error; NT 4.0+ only */ #if !defined (CYGWIN_HEADERS) /* NOTE: NT 4.0+ only */ BOOL qxeSHGetNewLinkInfo (const Extbyte * pszLinkTo, const Extbyte * pszDir, Extbyte * pszName, BOOL * pfMustCopy, UINT uFlags) { if (XEUNICODE_P) return SHGetNewLinkInfoW ((LPCWSTR) pszLinkTo, (LPCWSTR) pszDir, (LPWSTR) pszName, pfMustCopy, uFlags); else return SHGetNewLinkInfoA ((LPCSTR) pszLinkTo, (LPCSTR) pszDir, (LPSTR) pszName, pfMustCopy, uFlags); } #endif /* !defined (CYGWIN_HEADERS) */ #if !defined (CYGWIN_HEADERS) /* NOTE: NT 4.0+ only */ BOOL qxeSHInvokePrinterCommand (HWND hwnd, UINT uAction, const Extbyte * lpBuf1, const Extbyte * lpBuf2, BOOL fModal) { if (XEUNICODE_P) return SHInvokePrinterCommandW (hwnd, uAction, (LPCWSTR) lpBuf1, (LPCWSTR) lpBuf2, fModal); else return SHInvokePrinterCommandA (hwnd, uAction, (LPCSTR) lpBuf1, (LPCSTR) lpBuf2, fModal); } #endif /* !defined (CYGWIN_HEADERS) */ /*----------------------------------------------------------------------*/ /* Processing file WINSPOOL.H */ /*----------------------------------------------------------------------*/ #if defined (HAVE_MS_WINDOWS) /* NOTE: #### problems with DEVMODE pointer in PRINTER_INFO_2 */ BOOL qxeEnumPrinters (DWORD Flags, Extbyte * Name, DWORD Level, LPBYTE pPrinterEnum, DWORD cbBuf, LPDWORD pcbNeeded, LPDWORD pcReturned) { if (XEUNICODE_P) return EnumPrintersW (Flags, (LPWSTR) Name, Level, pPrinterEnum, cbBuf, pcbNeeded, pcReturned); else return EnumPrintersA (Flags, (LPSTR) Name, Level, pPrinterEnum, cbBuf, pcbNeeded, pcReturned); } #endif /* defined (HAVE_MS_WINDOWS) */ #if defined (HAVE_MS_WINDOWS) /* Skipping OpenPrinter because split-sized DEVMODE pointer in split PRINTER_DEFAULTS */ #endif /* defined (HAVE_MS_WINDOWS) */ #if defined (HAVE_MS_WINDOWS) /* Error if ResetPrinter used: split-sized DEVMODE pointer in split PRINTER_DEFAULTS */ #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 GetJob used: split-sized DEVMODE pointer in split JOB_INFO_2 */ #endif /* defined (HAVE_MS_WINDOWS) */ #if defined (HAVE_MS_WINDOWS) /* Error if EnumJobs used: split-sized DEVMODE pointer in split JOB_INFO_2 */ #endif /* defined (HAVE_MS_WINDOWS) */ #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 SetPrinter used: split-sized DEVMODE pointer in split PRINTER_INFO_2 */ #endif /* defined (HAVE_MS_WINDOWS) */ #if defined (HAVE_MS_WINDOWS) /* Error if GetPrinter used: split-sized DEVMODE pointer in split PRINTER_INFO_2 */ #endif /* defined (HAVE_MS_WINDOWS) */ #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 AddPrinterDriverEx 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) /* 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 DeletePrinterDriver used: not used, complicated interface with split structures */ #endif /* defined (HAVE_MS_WINDOWS) */ #if defined (HAVE_MS_WINDOWS) /* Error if DeletePrinterDriverEx used: not used, complicated interface with split structures */ #endif /* defined (HAVE_MS_WINDOWS) */ #if defined (HAVE_MS_WINDOWS) /* Error if AddPerMachineConnection used: not used, complicated interface with split structures */ #endif /* defined (HAVE_MS_WINDOWS) */ #if defined (HAVE_MS_WINDOWS) /* Error if DeletePerMachineConnection used: not used, complicated interface with split structures */ #endif /* defined (HAVE_MS_WINDOWS) */ #if defined (HAVE_MS_WINDOWS) /* Error if EnumPerMachineConnections used: not used, complicated interface with split structures */ #endif /* defined (HAVE_MS_WINDOWS) */ #if defined (HAVE_MS_WINDOWS) /* Error if AddPrintProcessor used: not used, complicated interface with split structures */ #endif /* defined (HAVE_MS_WINDOWS) */ #if defined (HAVE_MS_WINDOWS) /* Error if EnumPrintProcessors used: not used, complicated interface with split structures */ #endif /* defined (HAVE_MS_WINDOWS) */ #if defined (HAVE_MS_WINDOWS) /* Error if GetPrintProcessorDirectory used: not used, complicated interface with split structures */ #endif /* defined (HAVE_MS_WINDOWS) */ #if defined (HAVE_MS_WINDOWS) /* Error if EnumPrintProcessorDatatypes used: not used, complicated interface with split structures */ #endif /* defined (HAVE_MS_WINDOWS) */ #if defined (HAVE_MS_WINDOWS) /* Error if DeletePrintProcessor used: not used, complicated interface with split structures */ #endif /* defined (HAVE_MS_WINDOWS) */ #if defined (HAVE_MS_WINDOWS) /* Error if StartDocPrinter used: not used, complicated interface with split structures */ #endif /* defined (HAVE_MS_WINDOWS) */ #if defined (HAVE_MS_WINDOWS) /* Error if AddJob used: not used, complicated interface with split structures */ #endif /* defined (HAVE_MS_WINDOWS) */ #if defined (HAVE_MS_WINDOWS) /* Skipping DocumentProperties because split-sized DEVMODE, error in Cygwin prototype */ #endif /* defined (HAVE_MS_WINDOWS) */ #if defined (HAVE_MS_WINDOWS) /* Error if AdvancedDocumentProperties used: not used, complicated interface with split structures */ #endif /* defined (HAVE_MS_WINDOWS) */ #if defined (HAVE_MS_WINDOWS) /* Error if GetPrinterData used: not used, complicated interface with split structures */ #endif /* defined (HAVE_MS_WINDOWS) */ #if defined (HAVE_MS_WINDOWS) /* Error if GetPrinterDataEx 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 EnumPrinterDataEx used: not used, complicated interface with split structures */ #endif /* defined (HAVE_MS_WINDOWS) */ #if defined (HAVE_MS_WINDOWS) /* Error if EnumPrinterKey used: not used, complicated interface with split structures */ #endif /* defined (HAVE_MS_WINDOWS) */ #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 SetPrinterDataEx 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 DeletePrinterDataEx used: not used, complicated interface with split structures */ #endif /* defined (HAVE_MS_WINDOWS) */ #if defined (HAVE_MS_WINDOWS) /* Error if DeletePrinterKey used: not used, complicated interface with split structures */ #endif /* defined (HAVE_MS_WINDOWS) */ #if defined (HAVE_MS_WINDOWS) /* Error if PrinterMessageBox used: not used, complicated interface with split structures */ #endif /* defined (HAVE_MS_WINDOWS) */ #if defined (HAVE_MS_WINDOWS) /* Error if AddForm used: not used, complicated interface with split structures */ #endif /* defined (HAVE_MS_WINDOWS) */ #if defined (HAVE_MS_WINDOWS) /* Error if DeleteForm used: not used, complicated interface with split structures */ #endif /* defined (HAVE_MS_WINDOWS) */ #if defined (HAVE_MS_WINDOWS) /* Error if GetForm used: not used, complicated interface with split structures */ #endif /* defined (HAVE_MS_WINDOWS) */ #if defined (HAVE_MS_WINDOWS) /* Error if SetForm used: not used, complicated interface with split structures */ #endif /* defined (HAVE_MS_WINDOWS) */ #if defined (HAVE_MS_WINDOWS) /* Error if EnumForms used: not used, complicated interface with split structures */ #endif /* defined (HAVE_MS_WINDOWS) */ #if defined (HAVE_MS_WINDOWS) /* Error if EnumMonitors used: not used, complicated interface with split structures */ #endif /* defined (HAVE_MS_WINDOWS) */ #if defined (HAVE_MS_WINDOWS) /* Error if AddMonitor used: not used, complicated interface with split structures */ #endif /* defined (HAVE_MS_WINDOWS) */ #if defined (HAVE_MS_WINDOWS) /* Error if DeleteMonitor used: not used, complicated interface with split structures */ #endif /* defined (HAVE_MS_WINDOWS) */ #if defined (HAVE_MS_WINDOWS) /* Error if EnumPorts 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 ConfigurePort 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 XcvData used: not used, complicated interface with split structures */ #endif /* defined (HAVE_MS_WINDOWS) */ #if defined (HAVE_MS_WINDOWS) /* Error if SetPort used: not used, complicated interface with split structures */ #endif /* defined (HAVE_MS_WINDOWS) */ #if defined (HAVE_MS_WINDOWS) /* Error if AddPrinterConnection 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 AddPrintProvidor 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) /* Error if SetPrinterHTMLView used: not used, complicated interface with split structures */ #endif /* defined (HAVE_MS_WINDOWS) */ #if defined (HAVE_MS_WINDOWS) /* Error if GetPrinterHTMLView used: not used, complicated interface with split structures */ #endif /* defined (HAVE_MS_WINDOWS) */ /*----------------------------------------------------------------------*/ /* Processing file WINUSER.H */ /*----------------------------------------------------------------------*/ 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); } HKL qxeLoadKeyboardLayout (const Extbyte * pwszKLID, UINT Flags) { if (XEUNICODE_P) return LoadKeyboardLayoutW ((LPCWSTR) pwszKLID, Flags); else return LoadKeyboardLayoutA ((LPCSTR) pwszKLID, Flags); } BOOL qxeGetKeyboardLayoutName (Extbyte * pwszKLID) { if (XEUNICODE_P) return GetKeyboardLayoutNameW ((LPWSTR) pwszKLID); else return GetKeyboardLayoutNameA ((LPSTR) pwszKLID); } /* Error if CreateDesktop used: split-sized LPDEVMODE */ HDESK qxeOpenDesktop (Extbyte * lpszDesktop, DWORD dwFlags, BOOL fInherit, ACCESS_MASK dwDesiredAccess) { if (XEUNICODE_P) return OpenDesktopW ((LPWSTR) lpszDesktop, dwFlags, fInherit, dwDesiredAccess); else return OpenDesktopA ((LPSTR) lpszDesktop, dwFlags, fInherit, dwDesiredAccess); } /* NOTE: // callback fun differs only in string pointer type */ BOOL qxeEnumDesktops (HWINSTA hwinsta, DESKTOPENUMPROCW lpEnumFunc, LPARAM lParam) { if (XEUNICODE_P) return EnumDesktopsW (hwinsta, lpEnumFunc, lParam); else return EnumDesktopsA (hwinsta, (DESKTOPENUMPROCA) lpEnumFunc, lParam); } HWINSTA qxeCreateWindowStation (Extbyte * lpwinsta, DWORD dwReserved, ACCESS_MASK dwDesiredAccess, LPSECURITY_ATTRIBUTES lpsa) { if (XEUNICODE_P) return CreateWindowStationW ((LPWSTR) lpwinsta, dwReserved, dwDesiredAccess, lpsa); else return CreateWindowStationA ((LPSTR) lpwinsta, dwReserved, dwDesiredAccess, lpsa); } HWINSTA qxeOpenWindowStation (Extbyte * lpszWinSta, BOOL fInherit, ACCESS_MASK dwDesiredAccess) { if (XEUNICODE_P) return OpenWindowStationW ((LPWSTR) lpszWinSta, fInherit, dwDesiredAccess); else return OpenWindowStationA ((LPSTR) lpszWinSta, fInherit, dwDesiredAccess); } /* NOTE: // callback fun differs only in string pointer type */ BOOL qxeEnumWindowStations (WINSTAENUMPROCW lpEnumFunc, LPARAM lParam) { if (XEUNICODE_P) return EnumWindowStationsW (lpEnumFunc, lParam); else return EnumWindowStationsA ((WINSTAENUMPROCA) lpEnumFunc, lParam); } BOOL qxeGetUserObjectInformation (HANDLE hObj, int nIndex, PVOID pvInfo, DWORD nLength, LPDWORD lpnLengthNeeded) { if (XEUNICODE_P) return GetUserObjectInformationW (hObj, nIndex, pvInfo, nLength, lpnLengthNeeded); else return GetUserObjectInformationA (hObj, nIndex, pvInfo, nLength, lpnLengthNeeded); } BOOL qxeSetUserObjectInformation (HANDLE hObj, int nIndex, PVOID pvInfo, DWORD nLength) { if (XEUNICODE_P) return SetUserObjectInformationW (hObj, nIndex, pvInfo, nLength); else return SetUserObjectInformationA (hObj, nIndex, pvInfo, nLength); } UINT qxeRegisterWindowMessage (const Extbyte * lpString) { if (XEUNICODE_P) return RegisterWindowMessageW ((LPCWSTR) lpString); else return RegisterWindowMessageA ((LPCSTR) lpString); } BOOL qxeGetMessage (LPMSG lpMsg, HWND hWnd, UINT wMsgFilterMin, UINT wMsgFilterMax) { if (XEUNICODE_P) return GetMessageW (lpMsg, hWnd, wMsgFilterMin, wMsgFilterMax); else return GetMessageA (lpMsg, hWnd, wMsgFilterMin, wMsgFilterMax); } LONG qxeDispatchMessage (CONST MSG * lpMsg) { if (XEUNICODE_P) return DispatchMessageW (lpMsg); else return DispatchMessageA (lpMsg); } BOOL qxePeekMessage (LPMSG lpMsg, HWND hWnd, UINT wMsgFilterMin, UINT wMsgFilterMax, UINT wRemoveMsg) { if (XEUNICODE_P) return PeekMessageW (lpMsg, hWnd, wMsgFilterMin, wMsgFilterMax, wRemoveMsg); else return PeekMessageA (lpMsg, hWnd, wMsgFilterMin, wMsgFilterMax, wRemoveMsg); } /* Skipping SendMessage because split messages and structures */ LRESULT qxeSendMessageTimeout (HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam, UINT fuFlags, UINT uTimeout, LPDWORD lpdwResult) { if (XEUNICODE_P) return SendMessageTimeoutW (hWnd, Msg, wParam, lParam, fuFlags, uTimeout, lpdwResult); else return SendMessageTimeoutA (hWnd, Msg, wParam, lParam, fuFlags, uTimeout, lpdwResult); } BOOL qxeSendNotifyMessage (HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam) { if (XEUNICODE_P) return SendNotifyMessageW (hWnd, Msg, wParam, lParam); else return SendNotifyMessageA (hWnd, Msg, wParam, lParam); } BOOL qxeSendMessageCallback (HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam, SENDASYNCPROC lpResultCallBack, DWORD dwData) { if (XEUNICODE_P) return SendMessageCallbackW (hWnd, Msg, wParam, lParam, lpResultCallBack, dwData); else return SendMessageCallbackA (hWnd, Msg, wParam, lParam, lpResultCallBack, dwData); } /* Error if BroadcastSystemMessage used: win95 version not split; NT 4.0+ only */ /* Error if RegisterDeviceNotification used: NT 5.0+ only */ BOOL qxePostMessage (HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam) { if (XEUNICODE_P) return PostMessageW (hWnd, Msg, wParam, lParam); else return PostMessageA (hWnd, Msg, wParam, lParam); } BOOL qxePostThreadMessage (DWORD idThread, UINT Msg, WPARAM wParam, LPARAM lParam) { if (XEUNICODE_P) return PostThreadMessageW (idThread, Msg, wParam, lParam); else return PostThreadMessageA (idThread, Msg, wParam, lParam); } /* Skipping DefWindowProc because return value is conditionalized on _MAC, messes up parser */ /* Error if CallWindowProc used: two versions, STRICT and non-STRICT */ /* Error if CallWindowProc used: two versions, STRICT and non-STRICT */ /* Skipping RegisterClass because need to intercept so we can provide our own window procedure and handle split notify messages; split-simple WNDCLASS */ /* Skipping UnregisterClass because need to intercept for reasons related to RegisterClass */ BOOL qxeGetClassInfo (HINSTANCE hInstance, const Extbyte * lpClassName, LPWNDCLASSW lpWndClass) { if (XEUNICODE_P) return GetClassInfoW (hInstance, (LPCWSTR) lpClassName, lpWndClass); else return GetClassInfoA (hInstance, (LPCSTR) lpClassName, (LPWNDCLASSA) lpWndClass); } /* Skipping RegisterClassEx because need to intercept so we can provide our own window procedure and handle split notify messages; split-simple WNDCLASSEX; NT 4.0+ only */ /* NOTE: NT 4.0+ only */ 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); } HWND qxeCreateWindowEx (DWORD dwExStyle, const Extbyte * lpClassName, const Extbyte * lpWindowName, DWORD dwStyle, int X, int Y, int nWidth, int nHeight, HWND hWndParent, HMENU hMenu, HINSTANCE hInstance, LPVOID lpParam) { if (XEUNICODE_P) return CreateWindowExW (dwExStyle, (LPCWSTR) lpClassName, (LPCWSTR) lpWindowName, dwStyle, X, Y, nWidth, nHeight, hWndParent, hMenu, hInstance, lpParam); else return CreateWindowExA (dwExStyle, (LPCSTR) lpClassName, (LPCSTR) lpWindowName, dwStyle, X, Y, nWidth, nHeight, hWndParent, hMenu, hInstance, lpParam); } HWND qxeCreateDialogParam (HINSTANCE hInstance, const Extbyte * lpTemplateName, HWND hWndParent, DLGPROC lpDialogFunc, LPARAM dwInitParam) { if (XEUNICODE_P) return CreateDialogParamW (hInstance, (LPCWSTR) lpTemplateName, hWndParent, lpDialogFunc, dwInitParam); else return CreateDialogParamA (hInstance, (LPCSTR) lpTemplateName, hWndParent, lpDialogFunc, dwInitParam); } /* NOTE: error in Cygwin prototype (no split) but fixable with typedef */ HWND qxeCreateDialogIndirectParam (HINSTANCE hInstance, LPCDLGTEMPLATEW lpTemplate, HWND hWndParent, DLGPROC lpDialogFunc, LPARAM dwInitParam) { if (XEUNICODE_P) return CreateDialogIndirectParamW (hInstance, lpTemplate, hWndParent, lpDialogFunc, dwInitParam); else return CreateDialogIndirectParamA (hInstance, (LPCDLGTEMPLATEA) lpTemplate, hWndParent, lpDialogFunc, dwInitParam); } int qxeDialogBoxParam (HINSTANCE hInstance, const Extbyte * lpTemplateName, HWND hWndParent, DLGPROC lpDialogFunc, LPARAM dwInitParam) { if (XEUNICODE_P) return DialogBoxParamW (hInstance, (LPCWSTR) lpTemplateName, hWndParent, lpDialogFunc, dwInitParam); else return DialogBoxParamA (hInstance, (LPCSTR) lpTemplateName, hWndParent, lpDialogFunc, dwInitParam); } /* NOTE: error in Cygwin prototype (no split) but fixable with typedef */ int qxeDialogBoxIndirectParam (HINSTANCE hInstance, LPCDLGTEMPLATEW hDialogTemplate, HWND hWndParent, DLGPROC lpDialogFunc, LPARAM dwInitParam) { if (XEUNICODE_P) return DialogBoxIndirectParamW (hInstance, hDialogTemplate, hWndParent, lpDialogFunc, dwInitParam); else return DialogBoxIndirectParamA (hInstance, (LPCDLGTEMPLATEA) hDialogTemplate, hWndParent, lpDialogFunc, dwInitParam); } BOOL qxeSetDlgItemText (HWND hDlg, int nIDDlgItem, const Extbyte * lpString) { if (XEUNICODE_P) return SetDlgItemTextW (hDlg, nIDDlgItem, (LPCWSTR) lpString); else return SetDlgItemTextA (hDlg, nIDDlgItem, (LPCSTR) lpString); } UINT qxeGetDlgItemText (HWND hDlg, int nIDDlgItem, Extbyte * lpString, int nMaxCount) { if (XEUNICODE_P) return GetDlgItemTextW (hDlg, nIDDlgItem, (LPWSTR) lpString, nMaxCount); else return GetDlgItemTextA (hDlg, nIDDlgItem, (LPSTR) lpString, nMaxCount); } LONG qxeSendDlgItemMessage (HWND hDlg, int nIDDlgItem, UINT Msg, WPARAM wParam, LPARAM lParam) { if (XEUNICODE_P) return SendDlgItemMessageW (hDlg, nIDDlgItem, Msg, wParam, lParam); else return SendDlgItemMessageA (hDlg, nIDDlgItem, Msg, wParam, lParam); } /* Error if DefDlgProc used: return value is conditionalized on _MAC, messes up parser */ #if !defined (CYGWIN_HEADERS) BOOL qxeCallMsgFilter (LPMSG lpMsg, int nCode) { if (XEUNICODE_P) return CallMsgFilterW (lpMsg, nCode); else return CallMsgFilterA (lpMsg, nCode); } #endif /* !defined (CYGWIN_HEADERS) */ UINT qxeRegisterClipboardFormat (const Extbyte * lpszFormat) { if (XEUNICODE_P) return RegisterClipboardFormatW ((LPCWSTR) lpszFormat); else return RegisterClipboardFormatA ((LPCSTR) lpszFormat); } int qxeGetClipboardFormatName (UINT format, Extbyte * lpszFormatName, int cchMaxCount) { if (XEUNICODE_P) return GetClipboardFormatNameW (format, (LPWSTR) lpszFormatName, cchMaxCount); else return GetClipboardFormatNameA (format, (LPSTR) lpszFormatName, cchMaxCount); } BOOL qxeCharToOem (const Extbyte * lpszSrc, LPSTR lpszDst) { if (XEUNICODE_P) return CharToOemW ((LPCWSTR) lpszSrc, lpszDst); else return CharToOemA ((LPCSTR) lpszSrc, lpszDst); } BOOL qxeOemToChar (LPCSTR lpszSrc, Extbyte * lpszDst) { if (XEUNICODE_P) return OemToCharW (lpszSrc, (LPWSTR) lpszDst); else return OemToCharA (lpszSrc, (LPSTR) lpszDst); } BOOL qxeCharToOemBuff (const Extbyte * lpszSrc, LPSTR lpszDst, DWORD cchDstLength) { if (XEUNICODE_P) return CharToOemBuffW ((LPCWSTR) lpszSrc, lpszDst, cchDstLength); else return CharToOemBuffA ((LPCSTR) lpszSrc, lpszDst, cchDstLength); } BOOL qxeOemToCharBuff (LPCSTR lpszSrc, Extbyte * lpszDst, DWORD cchDstLength) { if (XEUNICODE_P) return OemToCharBuffW (lpszSrc, (LPWSTR) lpszDst, cchDstLength); else return OemToCharBuffA (lpszSrc, (LPSTR) lpszDst, cchDstLength); } Extbyte * qxeCharUpper (Extbyte * lpsz) { if (XEUNICODE_P) return (Extbyte *) CharUpperW ((LPWSTR) lpsz); else return (Extbyte *) CharUpperA ((LPSTR) lpsz); } DWORD qxeCharUpperBuff (Extbyte * lpsz, DWORD cchLength) { if (XEUNICODE_P) return CharUpperBuffW ((LPWSTR) lpsz, cchLength); else return CharUpperBuffA ((LPSTR) lpsz, cchLength); } Extbyte * qxeCharLower (Extbyte * lpsz) { if (XEUNICODE_P) return (Extbyte *) CharLowerW ((LPWSTR) lpsz); else return (Extbyte *) CharLowerA ((LPSTR) lpsz); } DWORD qxeCharLowerBuff (Extbyte * lpsz, DWORD cchLength) { if (XEUNICODE_P) return CharLowerBuffW ((LPWSTR) lpsz, cchLength); else return CharLowerBuffA ((LPSTR) lpsz, cchLength); } Extbyte * qxeCharNext (const Extbyte * lpsz) { if (XEUNICODE_P) return (Extbyte *) CharNextW ((LPCWSTR) lpsz); else return (Extbyte *) CharNextA ((LPCSTR) lpsz); } Extbyte * qxeCharPrev (const Extbyte * lpszStart, const Extbyte * lpszCurrent) { if (XEUNICODE_P) return (Extbyte *) CharPrevW ((LPCWSTR) lpszStart, (LPCWSTR) lpszCurrent); else return (Extbyte *) CharPrevA ((LPCSTR) lpszStart, (LPCSTR) lpszCurrent); } /* Error if IsCharAlpha used: split CHAR */ /* Error if IsCharAlphaNumeric used: split CHAR */ /* Error if IsCharUpper used: split CHAR */ /* Error if IsCharLower used: split CHAR */ int qxeGetKeyNameText (LONG lParam, Extbyte * lpString, int nSize) { if (XEUNICODE_P) return GetKeyNameTextW (lParam, (LPWSTR) lpString, nSize); else return GetKeyNameTextA (lParam, (LPSTR) lpString, nSize); } /* Skipping VkKeyScan because split CHAR */ /* Error if VkKeyScanEx used: split CHAR; NT 4.0+ only */ UINT qxeMapVirtualKey (UINT uCode, UINT uMapType) { if (XEUNICODE_P) return MapVirtualKeyW (uCode, uMapType); else return MapVirtualKeyA (uCode, uMapType); } /* NOTE: NT 4.0+ only */ UINT qxeMapVirtualKeyEx (UINT uCode, UINT uMapType, HKL dwhkl) { if (XEUNICODE_P) return MapVirtualKeyExW (uCode, uMapType, dwhkl); else return MapVirtualKeyExA (uCode, uMapType, dwhkl); } HACCEL qxeLoadAccelerators (HINSTANCE hInstance, const Extbyte * lpTableName) { if (XEUNICODE_P) return LoadAcceleratorsW (hInstance, (LPCWSTR) lpTableName); else return LoadAcceleratorsA (hInstance, (LPCSTR) lpTableName); } HACCEL qxeCreateAcceleratorTable (LPACCEL arg1, int arg2) { if (XEUNICODE_P) return CreateAcceleratorTableW (arg1, arg2); else return CreateAcceleratorTableA (arg1, arg2); } int qxeCopyAcceleratorTable (HACCEL hAccelSrc, LPACCEL lpAccelDst, int cAccelEntries) { if (XEUNICODE_P) return CopyAcceleratorTableW (hAccelSrc, lpAccelDst, cAccelEntries); else return CopyAcceleratorTableA (hAccelSrc, lpAccelDst, cAccelEntries); } int qxeTranslateAccelerator (HWND hWnd, HACCEL hAccTable, LPMSG lpMsg) { if (XEUNICODE_P) return TranslateAcceleratorW (hWnd, hAccTable, lpMsg); else return TranslateAcceleratorA (hWnd, hAccTable, lpMsg); } HMENU qxeLoadMenu (HINSTANCE hInstance, const Extbyte * lpMenuName) { if (XEUNICODE_P) return LoadMenuW (hInstance, (LPCWSTR) lpMenuName); else return LoadMenuA (hInstance, (LPCSTR) lpMenuName); } HMENU qxeLoadMenuIndirect (CONST MENUTEMPLATEW * lpMenuTemplate) { if (XEUNICODE_P) return LoadMenuIndirectW (lpMenuTemplate); else return LoadMenuIndirectA ((CONST MENUTEMPLATEA *) lpMenuTemplate); } BOOL qxeChangeMenu (HMENU hMenu, UINT cmd, const Extbyte * lpszNewItem, UINT cmdInsert, UINT flags) { if (XEUNICODE_P) return ChangeMenuW (hMenu, cmd, (LPCWSTR) lpszNewItem, cmdInsert, flags); else return ChangeMenuA (hMenu, cmd, (LPCSTR) lpszNewItem, cmdInsert, flags); } int qxeGetMenuString (HMENU hMenu, UINT uIDItem, Extbyte * lpString, int nMaxCount, UINT uFlag) { if (XEUNICODE_P) return GetMenuStringW (hMenu, uIDItem, (LPWSTR) lpString, nMaxCount, uFlag); else return GetMenuStringA (hMenu, uIDItem, (LPSTR) lpString, nMaxCount, uFlag); } BOOL qxeInsertMenu (HMENU hMenu, UINT uPosition, UINT uFlags, UINT uIDNewItem, const Extbyte * lpNewItem) { if (XEUNICODE_P) return InsertMenuW (hMenu, uPosition, uFlags, uIDNewItem, (LPCWSTR) lpNewItem); else return InsertMenuA (hMenu, uPosition, uFlags, uIDNewItem, (LPCSTR) lpNewItem); } BOOL qxeAppendMenu (HMENU hMenu, UINT uFlags, UINT uIDNewItem, const Extbyte * lpNewItem) { if (XEUNICODE_P) return AppendMenuW (hMenu, uFlags, uIDNewItem, (LPCWSTR) lpNewItem); else return AppendMenuA (hMenu, uFlags, uIDNewItem, (LPCSTR) lpNewItem); } BOOL qxeModifyMenu (HMENU hMnu, UINT uPosition, UINT uFlags, UINT uIDNewItem, const Extbyte * lpNewItem) { if (XEUNICODE_P) return ModifyMenuW (hMnu, uPosition, uFlags, uIDNewItem, (LPCWSTR) lpNewItem); else return ModifyMenuA (hMnu, uPosition, uFlags, uIDNewItem, (LPCSTR) lpNewItem); } /* NOTE: NT 4.0+ only */ BOOL 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); } /* 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); } /* 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); } int qxeDrawText (HDC hDC, const Extbyte * lpString, int nCount, LPRECT lpRect, UINT uFormat) { if (XEUNICODE_P) return DrawTextW (hDC, (LPCWSTR) lpString, nCount, lpRect, uFormat); else return DrawTextA (hDC, (LPCSTR) lpString, nCount, lpRect, uFormat); } /* 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); } BOOL qxeGrayString (HDC hDC, HBRUSH hBrush, GRAYSTRINGPROC lpOutputFunc, LPARAM lpData, int nCount, int X, int Y, int nWidth, int nHeight) { if (XEUNICODE_P) return GrayStringW (hDC, hBrush, lpOutputFunc, lpData, nCount, X, Y, nWidth, nHeight); else return GrayStringA (hDC, hBrush, lpOutputFunc, lpData, nCount, X, Y, nWidth, nHeight); } /* NOTE: NT 4.0+ only */ 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); } LONG qxeTabbedTextOut (HDC hDC, int X, int Y, const Extbyte * lpString, int nCount, int nTabPositions, LPINT lpnTabStopPositions, int nTabOrigin) { if (XEUNICODE_P) return TabbedTextOutW (hDC, X, Y, (LPCWSTR) lpString, nCount, nTabPositions, lpnTabStopPositions, nTabOrigin); else return TabbedTextOutA (hDC, X, Y, (LPCSTR) lpString, nCount, nTabPositions, lpnTabStopPositions, nTabOrigin); } DWORD qxeGetTabbedTextExtent (HDC hDC, const Extbyte * lpString, int nCount, int nTabPositions, LPINT lpnTabStopPositions) { if (XEUNICODE_P) return GetTabbedTextExtentW (hDC, (LPCWSTR) lpString, nCount, nTabPositions, lpnTabStopPositions); else return GetTabbedTextExtentA (hDC, (LPCSTR) lpString, nCount, nTabPositions, lpnTabStopPositions); } BOOL qxeSetProp (HWND hWnd, const Extbyte * lpString, HANDLE hData) { if (XEUNICODE_P) return SetPropW (hWnd, (LPCWSTR) lpString, hData); else return SetPropA (hWnd, (LPCSTR) lpString, hData); } HANDLE qxeGetProp (HWND hWnd, const Extbyte * lpString) { if (XEUNICODE_P) return GetPropW (hWnd, (LPCWSTR) lpString); else return GetPropA (hWnd, (LPCSTR) lpString); } HANDLE qxeRemoveProp (HWND hWnd, const Extbyte * lpString) { if (XEUNICODE_P) return RemovePropW (hWnd, (LPCWSTR) lpString); else return RemovePropA (hWnd, (LPCSTR) lpString); } /* NOTE: // callback fun differs only in string pointer type */ int qxeEnumPropsEx (HWND hWnd, PROPENUMPROCEXW lpEnumFunc, LPARAM lParam) { if (XEUNICODE_P) return EnumPropsExW (hWnd, lpEnumFunc, lParam); else return EnumPropsExA (hWnd, (PROPENUMPROCEXA) lpEnumFunc, lParam); } /* NOTE: // callback fun differs only in string pointer type */ int qxeEnumProps (HWND hWnd, PROPENUMPROCW lpEnumFunc) { if (XEUNICODE_P) return EnumPropsW (hWnd, lpEnumFunc); else return EnumPropsA (hWnd, (PROPENUMPROCA) lpEnumFunc); } BOOL qxeSetWindowText (HWND hWnd, const Extbyte * lpString) { if (XEUNICODE_P) return SetWindowTextW (hWnd, (LPCWSTR) lpString); else return SetWindowTextA (hWnd, (LPCSTR) lpString); } int qxeGetWindowText (HWND hWnd, Extbyte * lpString, int nMaxCount) { if (XEUNICODE_P) return GetWindowTextW (hWnd, (LPWSTR) lpString, nMaxCount); else return GetWindowTextA (hWnd, (LPSTR) lpString, nMaxCount); } int qxeGetWindowTextLength (HWND hWnd) { if (XEUNICODE_P) return GetWindowTextLengthW (hWnd); else return GetWindowTextLengthA (hWnd); } int qxeMessageBox (HWND hWnd, const Extbyte * lpText, const Extbyte * lpCaption, UINT uType) { if (XEUNICODE_P) return MessageBoxW (hWnd, (LPCWSTR) lpText, (LPCWSTR) lpCaption, uType); else return MessageBoxA (hWnd, (LPCSTR) lpText, (LPCSTR) lpCaption, uType); } int qxeMessageBoxEx (HWND hWnd, const Extbyte * lpText, const Extbyte * lpCaption, UINT uType, WORD wLanguageId) { if (XEUNICODE_P) return MessageBoxExW (hWnd, (LPCWSTR) lpText, (LPCWSTR) lpCaption, uType, wLanguageId); else return MessageBoxExA (hWnd, (LPCSTR) lpText, (LPCSTR) lpCaption, uType, wLanguageId); } /* NOTE: NT 4.0+ only */ int qxeMessageBoxIndirect (LPMSGBOXPARAMSW arg1) { if (XEUNICODE_P) return MessageBoxIndirectW (arg1); else return MessageBoxIndirectA ((LPMSGBOXPARAMSA) arg1); } LONG qxeGetWindowLong (HWND hWnd, int nIndex) { if (XEUNICODE_P) return GetWindowLongW (hWnd, nIndex); else return GetWindowLongA (hWnd, nIndex); } LONG qxeSetWindowLong (HWND hWnd, int nIndex, LONG dwNewLong) { if (XEUNICODE_P) return SetWindowLongW (hWnd, nIndex, dwNewLong); else return SetWindowLongA (hWnd, nIndex, dwNewLong); } DWORD qxeGetClassLong (HWND hWnd, int nIndex) { if (XEUNICODE_P) return GetClassLongW (hWnd, nIndex); else return GetClassLongA (hWnd, nIndex); } DWORD qxeSetClassLong (HWND hWnd, int nIndex, LONG dwNewLong) { if (XEUNICODE_P) return SetClassLongW (hWnd, nIndex, dwNewLong); else return SetClassLongA (hWnd, nIndex, dwNewLong); } HWND qxeFindWindow (const Extbyte * lpClassName, const Extbyte * lpWindowName) { if (XEUNICODE_P) return FindWindowW ((LPCWSTR) lpClassName, (LPCWSTR) lpWindowName); else return FindWindowA ((LPCSTR) lpClassName, (LPCSTR) lpWindowName); } /* NOTE: NT 4.0+ only */ HWND qxeFindWindowEx (HWND 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); } int qxeGetClassName (HWND hWnd, Extbyte * lpClassName, int nMaxCount) { if (XEUNICODE_P) return GetClassNameW (hWnd, (LPWSTR) lpClassName, nMaxCount); else return GetClassNameA (hWnd, (LPSTR) lpClassName, nMaxCount); } /* Error if SetWindowsHook used: obsolete; two versions, STRICT and non-STRICT */ /* Error if SetWindowsHook used: obsolete; two versions, STRICT and non-STRICT */ HHOOK qxeSetWindowsHookEx (int idHook, HOOKPROC lpfn, HINSTANCE hmod, DWORD dwThreadId) { if (XEUNICODE_P) return SetWindowsHookExW (idHook, lpfn, hmod, dwThreadId); else return SetWindowsHookExA (idHook, lpfn, hmod, dwThreadId); } HBITMAP qxeLoadBitmap (HINSTANCE hInstance, const Extbyte * lpBitmapName) { if (XEUNICODE_P) return LoadBitmapW (hInstance, (LPCWSTR) lpBitmapName); else return LoadBitmapA (hInstance, (LPCSTR) lpBitmapName); } HCURSOR qxeLoadCursor (HINSTANCE hInstance, const Extbyte * lpCursorName) { if (XEUNICODE_P) return LoadCursorW (hInstance, (LPCWSTR) lpCursorName); else return LoadCursorA (hInstance, (LPCSTR) lpCursorName); } HCURSOR qxeLoadCursorFromFile (const Extbyte * lpFileName) { if (XEUNICODE_P) return LoadCursorFromFileW ((LPCWSTR) lpFileName); else return LoadCursorFromFileA ((LPCSTR) lpFileName); } HICON qxeLoadIcon (HINSTANCE hInstance, const Extbyte * lpIconName) { if (XEUNICODE_P) return LoadIconW (hInstance, (LPCWSTR) lpIconName); else return LoadIconA (hInstance, (LPCSTR) lpIconName); } /* 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); } int qxeLoadString (HINSTANCE hInstance, UINT uID, Extbyte * lpBuffer, int nBufferMax) { if (XEUNICODE_P) return LoadStringW (hInstance, uID, (LPWSTR) lpBuffer, nBufferMax); else return LoadStringA (hInstance, uID, (LPSTR) lpBuffer, nBufferMax); } BOOL qxeIsDialogMessage (HWND hDlg, LPMSG lpMsg) { if (XEUNICODE_P) return IsDialogMessageW (hDlg, lpMsg); else return IsDialogMessageA (hDlg, lpMsg); } int qxeDlgDirList (HWND hDlg, Extbyte * lpPathSpec, int nIDListBox, int nIDStaticPath, UINT uFileType) { if (XEUNICODE_P) return DlgDirListW (hDlg, (LPWSTR) lpPathSpec, nIDListBox, nIDStaticPath, uFileType); else return DlgDirListA (hDlg, (LPSTR) lpPathSpec, nIDListBox, nIDStaticPath, uFileType); } BOOL qxeDlgDirSelectEx (HWND hDlg, Extbyte * lpString, int nCount, int nIDListBox) { if (XEUNICODE_P) return DlgDirSelectExW (hDlg, (LPWSTR) lpString, nCount, nIDListBox); else return DlgDirSelectExA (hDlg, (LPSTR) lpString, nCount, nIDListBox); } int qxeDlgDirListComboBox (HWND hDlg, Extbyte * lpPathSpec, int nIDComboBox, int nIDStaticPath, UINT uFiletype) { if (XEUNICODE_P) return DlgDirListComboBoxW (hDlg, (LPWSTR) lpPathSpec, nIDComboBox, nIDStaticPath, uFiletype); else return DlgDirListComboBoxA (hDlg, (LPSTR) lpPathSpec, nIDComboBox, nIDStaticPath, uFiletype); } BOOL qxeDlgDirSelectComboBoxEx (HWND hDlg, Extbyte * lpString, int nCount, int nIDComboBox) { if (XEUNICODE_P) return DlgDirSelectComboBoxExW (hDlg, (LPWSTR) lpString, nCount, nIDComboBox); else return DlgDirSelectComboBoxExA (hDlg, (LPSTR) lpString, nCount, nIDComboBox); } LRESULT qxeDefFrameProc (HWND hWnd, HWND hWndMDIClient, UINT uMsg, WPARAM wParam, LPARAM lParam) { if (XEUNICODE_P) return DefFrameProcW (hWnd, hWndMDIClient, uMsg, wParam, lParam); else return DefFrameProcA (hWnd, hWndMDIClient, uMsg, wParam, lParam); } /* Error if DefMDIChildProc used: return value is conditionalized on _MAC, messes up parser */ HWND qxeCreateMDIWindow (Extbyte * lpClassName, Extbyte * lpWindowName, DWORD dwStyle, int X, int Y, int nWidth, int nHeight, HWND hWndParent, HINSTANCE hInstance, LPARAM lParam) { if (XEUNICODE_P) return CreateMDIWindowW ((LPWSTR) lpClassName, (LPWSTR) lpWindowName, dwStyle, X, Y, nWidth, nHeight, hWndParent, hInstance, lParam); else return CreateMDIWindowA ((LPSTR) lpClassName, (LPSTR) lpWindowName, dwStyle, X, Y, nWidth, nHeight, hWndParent, hInstance, lParam); } BOOL qxeWinHelp (HWND hWndMain, const Extbyte * lpszHelp, UINT uCommand, DWORD dwData) { if (XEUNICODE_P) return WinHelpW (hWndMain, (LPCWSTR) lpszHelp, uCommand, dwData); else return WinHelpA (hWndMain, (LPCSTR) lpszHelp, uCommand, dwData); } /* Error if ChangeDisplaySettings used: split-sized LPDEVMODE */ /* Error if ChangeDisplaySettingsEx used: split-sized LPDEVMODE; NT 5.0/Win98+ only */ /* Error if EnumDisplaySettings used: split-sized LPDEVMODE */ /* Error if EnumDisplayDevices used: split-sized PDISPLAY_DEVICE; NT 5.0+ only, no Win98 */ /* NOTE: probs w/ICONMETRICS, NONCLIENTMETRICS */ BOOL qxeSystemParametersInfo (UINT uiAction, UINT uiParam, PVOID pvParam, UINT fWinIni) { if (XEUNICODE_P) return SystemParametersInfoW (uiAction, uiParam, pvParam, fWinIni); else return SystemParametersInfoA (uiAction, uiParam, pvParam, fWinIni); } /* Error if GetMonitorInfo used: NT 5.0/Win98+ only */ /* Error if GetWindowModuleFileName used: NT 5.0+ only */ /* Error if RealGetWindowClass used: NT 5.0+ only */ /* Error if GetAltTabInfo used: NT 5.0+ only */ /*----------------------------------------------------------------------*/ /* Processing file IME.H */ /*----------------------------------------------------------------------*/ /* Error if SendIMEMessageEx used: obsolete, no docs available */ /*----------------------------------------------------------------------*/ /* Processing file IMM.H */ /*----------------------------------------------------------------------*/ #if defined (HAVE_MS_WINDOWS) HKL qxeImmInstallIME (const Extbyte * lpszIMEFileName, const Extbyte * lpszLayoutText) { if (XEUNICODE_P) return ImmInstallIMEW ((LPCWSTR) lpszIMEFileName, (LPCWSTR) lpszLayoutText); else return ImmInstallIMEA ((LPCSTR) lpszIMEFileName, (LPCSTR) lpszLayoutText); } #endif /* defined (HAVE_MS_WINDOWS) */ #if defined (HAVE_MS_WINDOWS) UINT qxeImmGetDescription (HKL arg1, Extbyte * arg2, UINT uBufLen) { if (XEUNICODE_P) return ImmGetDescriptionW (arg1, (LPWSTR) arg2, uBufLen); else return ImmGetDescriptionA (arg1, (LPSTR) arg2, uBufLen); } #endif /* defined (HAVE_MS_WINDOWS) */ #if defined (HAVE_MS_WINDOWS) UINT qxeImmGetIMEFileName (HKL arg1, Extbyte * arg2, UINT uBufLen) { if (XEUNICODE_P) return ImmGetIMEFileNameW (arg1, (LPWSTR) arg2, uBufLen); else return ImmGetIMEFileNameA (arg1, (LPSTR) arg2, uBufLen); } #endif /* defined (HAVE_MS_WINDOWS) */ #if defined (HAVE_MS_WINDOWS) LONG qxeImmGetCompositionString (HIMC arg1, DWORD arg2, LPVOID arg3, DWORD arg4) { if (XEUNICODE_P) return ImmGetCompositionStringW (arg1, arg2, arg3, arg4); else return ImmGetCompositionStringA (arg1, arg2, arg3, arg4); } #endif /* defined (HAVE_MS_WINDOWS) */ #if defined (HAVE_MS_WINDOWS) /* Skipping ImmSetCompositionString because different prototypes in VC6 and VC7 */ #endif /* defined (HAVE_MS_WINDOWS) */ #if defined (HAVE_MS_WINDOWS) DWORD qxeImmGetCandidateListCount (HIMC arg1, LPDWORD lpdwListCount) { if (XEUNICODE_P) return ImmGetCandidateListCountW (arg1, lpdwListCount); else return ImmGetCandidateListCountA (arg1, lpdwListCount); } #endif /* defined (HAVE_MS_WINDOWS) */ #if defined (HAVE_MS_WINDOWS) DWORD qxeImmGetCandidateList (HIMC arg1, DWORD deIndex, LPCANDIDATELIST arg3, DWORD dwBufLen) { if (XEUNICODE_P) return ImmGetCandidateListW (arg1, deIndex, arg3, dwBufLen); else return ImmGetCandidateListA (arg1, deIndex, arg3, dwBufLen); } #endif /* defined (HAVE_MS_WINDOWS) */ #if defined (HAVE_MS_WINDOWS) DWORD qxeImmGetGuideLine (HIMC arg1, DWORD dwIndex, Extbyte * arg3, DWORD dwBufLen) { if (XEUNICODE_P) return ImmGetGuideLineW (arg1, dwIndex, (LPWSTR) arg3, dwBufLen); else return ImmGetGuideLineA (arg1, dwIndex, (LPSTR) arg3, dwBufLen); } #endif /* defined (HAVE_MS_WINDOWS) */ #if defined (HAVE_MS_WINDOWS) /* Skipping ImmGetCompositionFont because split-sized LOGFONT */ #endif /* defined (HAVE_MS_WINDOWS) */ #if defined (HAVE_MS_WINDOWS) /* Skipping ImmSetCompositionFont because split-sized LOGFONT */ #endif /* defined (HAVE_MS_WINDOWS) */ #if defined (HAVE_MS_WINDOWS) /* NOTE: // split-simple REGISTERWORD */ BOOL qxeImmConfigureIME (HKL arg1, HWND arg2, DWORD arg3, LPVOID arg4) { if (XEUNICODE_P) return ImmConfigureIMEW (arg1, arg2, arg3, arg4); else return ImmConfigureIMEA (arg1, arg2, arg3, arg4); } #endif /* defined (HAVE_MS_WINDOWS) */ #if defined (HAVE_MS_WINDOWS) /* NOTE: // strings of various sorts */ LRESULT qxeImmEscape (HKL arg1, HIMC arg2, UINT arg3, LPVOID arg4) { if (XEUNICODE_P) return ImmEscapeW (arg1, arg2, arg3, arg4); else return ImmEscapeA (arg1, arg2, arg3, arg4); } #endif /* defined (HAVE_MS_WINDOWS) */ #if defined (HAVE_MS_WINDOWS) DWORD qxeImmGetConversionList (HKL arg1, HIMC arg2, const Extbyte * arg3, LPCANDIDATELIST arg4, DWORD dwBufLen, UINT uFlag) { if (XEUNICODE_P) return ImmGetConversionListW (arg1, arg2, (LPCWSTR) arg3, arg4, dwBufLen, uFlag); else return ImmGetConversionListA (arg1, arg2, (LPCSTR) arg3, arg4, dwBufLen, uFlag); } #endif /* defined (HAVE_MS_WINDOWS) */ #if defined (HAVE_MS_WINDOWS) 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 * lpszReading, DWORD arg3, const Extbyte * lpszRegister) { if (XEUNICODE_P) return ImmRegisterWordW (arg1, (LPCWSTR) lpszReading, arg3, (LPCWSTR) lpszRegister); else return ImmRegisterWordA (arg1, (LPCSTR) lpszReading, arg3, (LPCSTR) lpszRegister); } #endif /* defined (HAVE_MS_WINDOWS) */ #if defined (HAVE_MS_WINDOWS) BOOL qxeImmUnregisterWord (HKL arg1, const Extbyte * lpszReading, DWORD arg3, const Extbyte * lpszUnregister) { if (XEUNICODE_P) return ImmUnregisterWordW (arg1, (LPCWSTR) lpszReading, arg3, (LPCWSTR) lpszUnregister); else return ImmUnregisterWordA (arg1, (LPCSTR) lpszReading, arg3, (LPCSTR) lpszUnregister); } #endif /* defined (HAVE_MS_WINDOWS) */ #if defined (HAVE_MS_WINDOWS) /* Error if ImmGetRegisterWordStyle used: split-sized STYLEBUF */ #endif /* defined (HAVE_MS_WINDOWS) */ #if defined (HAVE_MS_WINDOWS) UINT qxeImmEnumRegisterWord (HKL arg1, REGISTERWORDENUMPROCW arg2, const Extbyte * lpszReading, DWORD arg4, const Extbyte * lpszRegister, LPVOID arg6) { if (XEUNICODE_P) return ImmEnumRegisterWordW (arg1, arg2, (LPCWSTR) lpszReading, arg4, (LPCWSTR) lpszRegister, arg6); else return ImmEnumRegisterWordA (arg1, (REGISTERWORDENUMPROCA) arg2, (LPCSTR) lpszReading, arg4, (LPCSTR) lpszRegister, arg6); } #endif /* defined (HAVE_MS_WINDOWS) */ #if defined (HAVE_MS_WINDOWS) /* Error if ImmGetImeMenuItems used: split-sized IMEMENUITEMINFO */ #endif /* defined (HAVE_MS_WINDOWS) */ /*----------------------------------------------------------------------*/ /* Processing file MMSYSTEM.H */ /*----------------------------------------------------------------------*/ BOOL qxesndPlaySound (const Extbyte * pszSound, UINT fuSound) { if (XEUNICODE_P) return sndPlaySoundW ((LPCWSTR) pszSound, fuSound); else return sndPlaySoundA ((LPCSTR) pszSound, fuSound); } BOOL qxePlaySound (const Extbyte * pszSound, HMODULE hmod, DWORD fdwSound) { if (XEUNICODE_P) return PlaySoundW ((LPCWSTR) pszSound, hmod, fdwSound); else return PlaySoundA ((LPCSTR) pszSound, hmod, fdwSound); } /* Error if waveOutGetDevCaps used: split-sized LPWAVEOUTCAPS */ MMRESULT qxewaveOutGetErrorText (MMRESULT mmrError, Extbyte * pszText, UINT cchText) { if (XEUNICODE_P) return waveOutGetErrorTextW (mmrError, (LPWSTR) pszText, cchText); else return waveOutGetErrorTextA (mmrError, (LPSTR) pszText, cchText); } /* Error if waveInGetDevCaps used: split-sized LPWAVEINCAPS */ MMRESULT qxewaveInGetErrorText (MMRESULT mmrError, Extbyte * pszText, UINT cchText) { if (XEUNICODE_P) return waveInGetErrorTextW (mmrError, (LPWSTR) pszText, cchText); else return waveInGetErrorTextA (mmrError, (LPSTR) pszText, cchText); } /* Error if midiOutGetDevCaps used: split-sized LPMIDIOUTCAPS */ MMRESULT qxemidiOutGetErrorText (MMRESULT mmrError, Extbyte * pszText, UINT cchText) { if (XEUNICODE_P) return midiOutGetErrorTextW (mmrError, (LPWSTR) pszText, cchText); else return midiOutGetErrorTextA (mmrError, (LPSTR) pszText, cchText); } /* Error if midiInGetDevCaps used: split-sized LPMIDIOUTCAPS */ MMRESULT qxemidiInGetErrorText (MMRESULT mmrError, Extbyte * pszText, UINT cchText) { if (XEUNICODE_P) return midiInGetErrorTextW (mmrError, (LPWSTR) pszText, cchText); else return midiInGetErrorTextA (mmrError, (LPSTR) pszText, cchText); } /* Error if auxGetDevCaps used: split-sized LPAUXCAPS */ /* Error if mixerGetDevCaps used: split-sized LPMIXERCAPS */ /* Error if mixerGetLineInfo used: split-sized LPMIXERLINE */ /* Error if mixerGetLineControls used: split-sized LPMIXERCONTROL */ /* Error if mixerGetControlDetails used: split-sized LPMIXERCONTROL in LPMIXERLINECONTROLS in LPMIXERCONTROLDETAILS */ /* Error if joyGetDevCaps used: split-sized LPJOYCAPS */ FOURCC qxemmioStringToFOURCC (const Extbyte * sz, UINT uFlags) { if (XEUNICODE_P) return mmioStringToFOURCCW ((LPCWSTR) sz, uFlags); else return mmioStringToFOURCCA ((LPCSTR) sz, uFlags); } LPMMIOPROC qxemmioInstallIOProc (FOURCC fccIOProc, LPMMIOPROC pIOProc, DWORD dwFlags) { if (XEUNICODE_P) return mmioInstallIOProcW (fccIOProc, pIOProc, dwFlags); else return mmioInstallIOProcA (fccIOProc, pIOProc, dwFlags); } HMMIO qxemmioOpen (Extbyte * pszFileName, LPMMIOINFO pmmioinfo, DWORD fdwOpen) { if (XEUNICODE_P) return mmioOpenW ((LPWSTR) pszFileName, pmmioinfo, fdwOpen); else return mmioOpenA ((LPSTR) pszFileName, pmmioinfo, fdwOpen); } MMRESULT qxemmioRename (const Extbyte * pszFileName, const Extbyte * pszNewFileName, LPCMMIOINFO pmmioinfo, DWORD fdwRename) { if (XEUNICODE_P) return mmioRenameW ((LPCWSTR) pszFileName, (LPCWSTR) pszNewFileName, pmmioinfo, fdwRename); else return mmioRenameA ((LPCSTR) pszFileName, (LPCSTR) pszNewFileName, pmmioinfo, fdwRename); } MCIERROR qxemciSendCommand (MCIDEVICEID mciId, UINT uMsg, DWORD dwParam1, DWORD dwParam2) { if (XEUNICODE_P) return mciSendCommandW (mciId, uMsg, dwParam1, dwParam2); else return mciSendCommandA (mciId, uMsg, dwParam1, dwParam2); } MCIERROR qxemciSendString (const Extbyte * lpstrCommand, Extbyte * lpstrReturnString, UINT uReturnLength, HWND hwndCallback) { if (XEUNICODE_P) return mciSendStringW ((LPCWSTR) lpstrCommand, (LPWSTR) lpstrReturnString, uReturnLength, hwndCallback); else return mciSendStringA ((LPCSTR) lpstrCommand, (LPSTR) lpstrReturnString, uReturnLength, hwndCallback); } MCIDEVICEID qxemciGetDeviceID (const Extbyte * pszDevice) { if (XEUNICODE_P) return mciGetDeviceIDW ((LPCWSTR) pszDevice); else return mciGetDeviceIDA ((LPCSTR) pszDevice); } #if !defined (MINGW) /* Error if mciGetDeviceIDFromElementID used: missing from Win98se version of ADVAPI32.dll */ #endif /* !defined (MINGW) */ BOOL qxemciGetErrorString (MCIERROR mcierr, Extbyte * pszText, UINT cchText) { if (XEUNICODE_P) return mciGetErrorStringW (mcierr, (LPWSTR) pszText, cchText); else return mciGetErrorStringA (mcierr, (LPSTR) pszText, cchText); } /*----------------------------------------------------------------------*/ /* Processing file WINCON.H */ /*----------------------------------------------------------------------*/ BOOL qxePeekConsoleInput (HANDLE hConsoleInput, PINPUT_RECORD lpBuffer, DWORD nLength, LPDWORD lpNumberOfEventsRead) { if (XEUNICODE_P) return PeekConsoleInputW (hConsoleInput, lpBuffer, nLength, lpNumberOfEventsRead); else return PeekConsoleInputA (hConsoleInput, lpBuffer, nLength, lpNumberOfEventsRead); } BOOL qxeReadConsoleInput (HANDLE hConsoleInput, PINPUT_RECORD lpBuffer, DWORD nLength, LPDWORD lpNumberOfEventsRead) { if (XEUNICODE_P) return ReadConsoleInputW (hConsoleInput, lpBuffer, nLength, lpNumberOfEventsRead); else return ReadConsoleInputA (hConsoleInput, lpBuffer, nLength, lpNumberOfEventsRead); } BOOL qxeWriteConsoleInput (HANDLE hConsoleInput, CONST INPUT_RECORD * lpBuffer, DWORD nLength, LPDWORD lpNumberOfEventsWritten) { if (XEUNICODE_P) return WriteConsoleInputW (hConsoleInput, lpBuffer, nLength, lpNumberOfEventsWritten); else return WriteConsoleInputA (hConsoleInput, lpBuffer, nLength, lpNumberOfEventsWritten); } BOOL qxeReadConsoleOutput (HANDLE hConsoleOutput, PCHAR_INFO lpBuffer, COORD dwBufferSize, COORD dwBufferCoord, PSMALL_RECT lpReadRegion) { if (XEUNICODE_P) return ReadConsoleOutputW (hConsoleOutput, lpBuffer, dwBufferSize, dwBufferCoord, lpReadRegion); else return ReadConsoleOutputA (hConsoleOutput, lpBuffer, dwBufferSize, dwBufferCoord, lpReadRegion); } BOOL qxeWriteConsoleOutput (HANDLE hConsoleOutput, CONST CHAR_INFO * lpBuffer, COORD dwBufferSize, COORD dwBufferCoord, PSMALL_RECT lpWriteRegion) { if (XEUNICODE_P) return WriteConsoleOutputW (hConsoleOutput, lpBuffer, dwBufferSize, dwBufferCoord, lpWriteRegion); else return WriteConsoleOutputA (hConsoleOutput, lpBuffer, dwBufferSize, dwBufferCoord, lpWriteRegion); } BOOL qxeReadConsoleOutputCharacter (HANDLE hConsoleOutput, Extbyte * lpCharacter, DWORD nLength, COORD dwReadCoord, LPDWORD lpNumberOfCharsRead) { if (XEUNICODE_P) return ReadConsoleOutputCharacterW (hConsoleOutput, (LPWSTR) lpCharacter, nLength, dwReadCoord, lpNumberOfCharsRead); else return ReadConsoleOutputCharacterA (hConsoleOutput, (LPSTR) lpCharacter, nLength, dwReadCoord, lpNumberOfCharsRead); } BOOL qxeWriteConsoleOutputCharacter (HANDLE hConsoleOutput, const Extbyte * lpCharacter, DWORD nLength, COORD dwWriteCoord, LPDWORD lpNumberOfCharsWritten) { if (XEUNICODE_P) return WriteConsoleOutputCharacterW (hConsoleOutput, (LPCWSTR) lpCharacter, nLength, dwWriteCoord, lpNumberOfCharsWritten); else return WriteConsoleOutputCharacterA (hConsoleOutput, (LPCSTR) lpCharacter, nLength, dwWriteCoord, lpNumberOfCharsWritten); } /* Error if FillConsoleOutputCharacter used: split CHAR */ BOOL qxeScrollConsoleScreenBuffer (HANDLE hConsoleOutput, CONST SMALL_RECT * lpScrollRectangle, CONST SMALL_RECT * lpClipRectangle, COORD dwDestinationOrigin, CONST CHAR_INFO * lpFill) { if (XEUNICODE_P) return ScrollConsoleScreenBufferW (hConsoleOutput, lpScrollRectangle, lpClipRectangle, dwDestinationOrigin, lpFill); else return ScrollConsoleScreenBufferA (hConsoleOutput, lpScrollRectangle, lpClipRectangle, dwDestinationOrigin, lpFill); } DWORD qxeGetConsoleTitle (Extbyte * lpConsoleTitle, DWORD nSize) { if (XEUNICODE_P) return GetConsoleTitleW ((LPWSTR) lpConsoleTitle, nSize); else return GetConsoleTitleA ((LPSTR) lpConsoleTitle, nSize); } BOOL qxeSetConsoleTitle (const Extbyte * lpConsoleTitle) { if (XEUNICODE_P) return SetConsoleTitleW ((LPCWSTR) lpConsoleTitle); else return SetConsoleTitleA ((LPCSTR) lpConsoleTitle); } BOOL qxeReadConsole (HANDLE hConsoleInput, LPVOID lpBuffer, DWORD nNumberOfCharsToRead, LPDWORD lpNumberOfCharsRead, LPVOID lpReserved) { if (XEUNICODE_P) return ReadConsoleW (hConsoleInput, lpBuffer, nNumberOfCharsToRead, lpNumberOfCharsRead, lpReserved); else return ReadConsoleA (hConsoleInput, lpBuffer, nNumberOfCharsToRead, lpNumberOfCharsRead, lpReserved); } BOOL qxeWriteConsole (HANDLE hConsoleOutput, CONST VOID * lpBuffer, DWORD nNumberOfCharsToWrite, LPDWORD lpNumberOfCharsWritten, LPVOID lpReserved) { if (XEUNICODE_P) return WriteConsoleW (hConsoleOutput, lpBuffer, nNumberOfCharsToWrite, lpNumberOfCharsWritten, lpReserved); else return WriteConsoleA (hConsoleOutput, lpBuffer, nNumberOfCharsToWrite, lpNumberOfCharsWritten, lpReserved); } /*----------------------------------------------------------------------*/ /* Processing file WINNETWK.H */ /*----------------------------------------------------------------------*/ #if defined (HAVE_MS_WINDOWS) DWORD qxeWNetAddConnection (const Extbyte * lpRemoteName, const Extbyte * lpPassword, const Extbyte * lpLocalName) { if (XEUNICODE_P) return WNetAddConnectionW ((LPCWSTR) lpRemoteName, (LPCWSTR) lpPassword, (LPCWSTR) lpLocalName); else return WNetAddConnectionA ((LPCSTR) lpRemoteName, (LPCSTR) lpPassword, (LPCSTR) lpLocalName); } #endif /* defined (HAVE_MS_WINDOWS) */ #if defined (HAVE_MS_WINDOWS) DWORD qxeWNetAddConnection2 (LPNETRESOURCEW lpNetResource, const Extbyte * lpPassword, const Extbyte * lpUserName, DWORD dwFlags) { if (XEUNICODE_P) return WNetAddConnection2W (lpNetResource, (LPCWSTR) lpPassword, (LPCWSTR) lpUserName, dwFlags); else return WNetAddConnection2A ((LPNETRESOURCEA) lpNetResource, (LPCSTR) lpPassword, (LPCSTR) lpUserName, dwFlags); } #endif /* defined (HAVE_MS_WINDOWS) */ #if defined (HAVE_MS_WINDOWS) DWORD qxeWNetAddConnection3 (HWND hwndOwner, LPNETRESOURCEW lpNetResource, const Extbyte * lpPassword, const Extbyte * lpUserName, DWORD dwFlags) { if (XEUNICODE_P) return WNetAddConnection3W (hwndOwner, lpNetResource, (LPCWSTR) lpPassword, (LPCWSTR) lpUserName, dwFlags); else return WNetAddConnection3A (hwndOwner, (LPNETRESOURCEA) lpNetResource, (LPCSTR) lpPassword, (LPCSTR) lpUserName, dwFlags); } #endif /* defined (HAVE_MS_WINDOWS) */ #if defined (HAVE_MS_WINDOWS) DWORD qxeWNetCancelConnection (const Extbyte * lpName, BOOL fForce) { if (XEUNICODE_P) return WNetCancelConnectionW ((LPCWSTR) lpName, fForce); else return WNetCancelConnectionA ((LPCSTR) lpName, fForce); } #endif /* defined (HAVE_MS_WINDOWS) */ #if defined (HAVE_MS_WINDOWS) DWORD qxeWNetCancelConnection2 (const Extbyte * lpName, DWORD dwFlags, BOOL fForce) { if (XEUNICODE_P) return WNetCancelConnection2W ((LPCWSTR) lpName, dwFlags, fForce); else return WNetCancelConnection2A ((LPCSTR) lpName, dwFlags, fForce); } #endif /* defined (HAVE_MS_WINDOWS) */ #if defined (HAVE_MS_WINDOWS) DWORD qxeWNetGetConnection (const Extbyte * lpLocalName, Extbyte * lpRemoteName, LPDWORD lpnLength) { if (XEUNICODE_P) return WNetGetConnectionW ((LPCWSTR) lpLocalName, (LPWSTR) lpRemoteName, lpnLength); else return WNetGetConnectionA ((LPCSTR) lpLocalName, (LPSTR) lpRemoteName, lpnLength); } #endif /* defined (HAVE_MS_WINDOWS) */ #if defined (HAVE_MS_WINDOWS) DWORD qxeWNetUseConnection (HWND hwndOwner, LPNETRESOURCEW lpNetResource, const Extbyte * lpUserID, const Extbyte * lpPassword, DWORD dwFlags, Extbyte * lpAccessName, LPDWORD lpBufferSize, LPDWORD lpResult) { if (XEUNICODE_P) return WNetUseConnectionW (hwndOwner, lpNetResource, (LPCWSTR) lpUserID, (LPCWSTR) lpPassword, dwFlags, (LPWSTR) lpAccessName, lpBufferSize, lpResult); else return WNetUseConnectionA (hwndOwner, (LPNETRESOURCEA) lpNetResource, (LPCSTR) lpUserID, (LPCSTR) lpPassword, dwFlags, (LPSTR) lpAccessName, lpBufferSize, lpResult); } #endif /* defined (HAVE_MS_WINDOWS) */ #if defined (HAVE_MS_WINDOWS) /* NOTE: contains split-simple LPNETRESOURCE */ DWORD qxeWNetConnectionDialog1 (LPCONNECTDLGSTRUCTW lpConnDlgStruct) { if (XEUNICODE_P) return WNetConnectionDialog1W (lpConnDlgStruct); else return WNetConnectionDialog1A ((LPCONNECTDLGSTRUCTA) lpConnDlgStruct); } #endif /* defined (HAVE_MS_WINDOWS) */ #if defined (HAVE_MS_WINDOWS) DWORD qxeWNetDisconnectDialog1 (LPDISCDLGSTRUCTW lpConnDlgStruct) { if (XEUNICODE_P) return WNetDisconnectDialog1W (lpConnDlgStruct); else return WNetDisconnectDialog1A ((LPDISCDLGSTRUCTA) lpConnDlgStruct); } #endif /* defined (HAVE_MS_WINDOWS) */ #if defined (HAVE_MS_WINDOWS) DWORD qxeWNetOpenEnum (DWORD dwScope, DWORD dwType, DWORD dwUsage, LPNETRESOURCEW lpNetResource, LPHANDLE lphEnum) { if (XEUNICODE_P) return WNetOpenEnumW (dwScope, dwType, dwUsage, lpNetResource, lphEnum); else return WNetOpenEnumA (dwScope, dwType, dwUsage, (LPNETRESOURCEA) lpNetResource, lphEnum); } #endif /* defined (HAVE_MS_WINDOWS) */ #if defined (HAVE_MS_WINDOWS) DWORD qxeWNetEnumResource (HANDLE hEnum, LPDWORD lpcCount, LPVOID lpBuffer, LPDWORD lpBufferSize) { if (XEUNICODE_P) return WNetEnumResourceW (hEnum, lpcCount, lpBuffer, lpBufferSize); else return WNetEnumResourceA (hEnum, lpcCount, lpBuffer, lpBufferSize); } #endif /* defined (HAVE_MS_WINDOWS) */ #if defined (HAVE_MS_WINDOWS) DWORD qxeWNetGetUniversalName (const Extbyte * lpLocalPath, DWORD dwInfoLevel, LPVOID lpBuffer, LPDWORD lpBufferSize) { if (XEUNICODE_P) return WNetGetUniversalNameW ((LPCWSTR) lpLocalPath, dwInfoLevel, lpBuffer, lpBufferSize); else return WNetGetUniversalNameA ((LPCSTR) lpLocalPath, dwInfoLevel, lpBuffer, lpBufferSize); } #endif /* defined (HAVE_MS_WINDOWS) */ #if defined (HAVE_MS_WINDOWS) DWORD qxeWNetGetUser (const Extbyte * lpName, Extbyte * lpUserName, LPDWORD lpnLength) { if (XEUNICODE_P) return WNetGetUserW ((LPCWSTR) lpName, (LPWSTR) lpUserName, lpnLength); else return WNetGetUserA ((LPCSTR) lpName, (LPSTR) lpUserName, lpnLength); } #endif /* defined (HAVE_MS_WINDOWS) */ #if defined (HAVE_MS_WINDOWS) DWORD qxeWNetGetProviderName (DWORD dwNetType, Extbyte * lpProviderName, LPDWORD lpBufferSize) { if (XEUNICODE_P) return WNetGetProviderNameW (dwNetType, (LPWSTR) lpProviderName, lpBufferSize); else return WNetGetProviderNameA (dwNetType, (LPSTR) lpProviderName, lpBufferSize); } #endif /* defined (HAVE_MS_WINDOWS) */ #if defined (HAVE_MS_WINDOWS) DWORD qxeWNetGetNetworkInformation (const Extbyte * lpProvider, LPNETINFOSTRUCT lpNetInfoStruct) { if (XEUNICODE_P) return WNetGetNetworkInformationW ((LPCWSTR) lpProvider, lpNetInfoStruct); else return WNetGetNetworkInformationA ((LPCSTR) lpProvider, lpNetInfoStruct); } #endif /* defined (HAVE_MS_WINDOWS) */ #if defined (HAVE_MS_WINDOWS) DWORD qxeWNetGetLastError (LPDWORD lpError, Extbyte * lpErrorBuf, DWORD nErrorBufSize, Extbyte * lpNameBuf, DWORD nNameBufSize) { if (XEUNICODE_P) return WNetGetLastErrorW (lpError, (LPWSTR) lpErrorBuf, nErrorBufSize, (LPWSTR) lpNameBuf, nNameBufSize); else return WNetGetLastErrorA (lpError, (LPSTR) lpErrorBuf, nErrorBufSize, (LPSTR) lpNameBuf, nNameBufSize); } #endif /* defined (HAVE_MS_WINDOWS) */ #if defined (HAVE_MS_WINDOWS) DWORD qxeMultinetGetConnectionPerformance (LPNETRESOURCEW lpNetResource, LPNETCONNECTINFOSTRUCT lpNetConnectInfoStruct) { if (XEUNICODE_P) return MultinetGetConnectionPerformanceW (lpNetResource, lpNetConnectInfoStruct); else return MultinetGetConnectionPerformanceA ((LPNETRESOURCEA) lpNetResource, lpNetConnectInfoStruct); } #endif /* defined (HAVE_MS_WINDOWS) */ /*----------------------------------------------------------------------*/ /* Processing file DDEML.H */ /*----------------------------------------------------------------------*/ UINT qxeDdeInitialize (LPDWORD pidInst, PFNCALLBACK pfnCallback, DWORD afCmd, DWORD ulRes) { if (XEUNICODE_P) return DdeInitializeW (pidInst, pfnCallback, afCmd, ulRes); else return DdeInitializeA (pidInst, pfnCallback, afCmd, ulRes); } /* Skipping DdeCreateStringHandle because error in Cygwin prototype */ DWORD qxeDdeQueryString (DWORD idInst, HSZ hsz, Extbyte * psz, DWORD cchMax, int iCodePage) { if (XEUNICODE_P) return DdeQueryStringW (idInst, hsz, (LPWSTR) psz, cchMax, iCodePage); else return DdeQueryStringA (idInst, hsz, (LPSTR) psz, cchMax, iCodePage); } /*----------------------------------------------------------------------*/ /* Processing file WINGDI.H */ /*----------------------------------------------------------------------*/ int qxeAddFontResource (const Extbyte * arg1) { if (XEUNICODE_P) return AddFontResourceW ((LPCWSTR) arg1); else return AddFontResourceA ((LPCSTR) arg1); } HMETAFILE qxeCopyMetaFile (HMETAFILE arg1, const Extbyte * arg2) { if (XEUNICODE_P) return CopyMetaFileW (arg1, (LPCWSTR) arg2); else return CopyMetaFileA (arg1, (LPCSTR) arg2); } /* Skipping CreateDC because split-sized DEVMODE */ /* Skipping CreateFontIndirect because split-sized LOGFONT */ 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); } /* Skipping CreateIC because split-sized DEVMODE */ HDC qxeCreateMetaFile (const Extbyte * arg1) { if (XEUNICODE_P) return CreateMetaFileW ((LPCWSTR) arg1); else return CreateMetaFileA ((LPCSTR) arg1); } 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); } /* Skipping DeviceCapabilities because split-sized DEVMODE */ /* Skipping EnumFontFamiliesEx because split-complex FONTENUMPROC; NT 4.0+ only */ /* Error if EnumFontFamilies used: split-complex FONTENUMPROC */ /* Error if EnumFonts used: split-complex FONTENUMPROC */ 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); } 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); } 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); } 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); } 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); } DWORD qxeGetGlyphOutline (HDC arg1, UINT arg2, UINT arg3, LPGLYPHMETRICS arg4, DWORD arg5, LPVOID 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); } HMETAFILE qxeGetMetaFile (const Extbyte * arg1) { if (XEUNICODE_P) return GetMetaFileW ((LPCWSTR) arg1); else return GetMetaFileA ((LPCSTR) arg1); } /* Error if GetOutlineTextMetrics used: split-sized LPOUTLINETEXTMETRIC */ 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); } 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); } 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); } /* 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); } /* Error if GetGlyphIndices used: NT 5.0+ only */ /* Error if AddFontResourceEx used: NT 5.0+ only */ /* Error if RemoveFontResourceEx used: NT 5.0+ only */ /* Error if CreateFontIndirectEx used: split-sized ENUMLOGFONTEXDV; NT 5.0+ only */ /* Skipping ResetDC because split-sized DEVMODE */ BOOL qxeRemoveFontResource (const Extbyte * arg1) { if (XEUNICODE_P) return RemoveFontResourceW ((LPCWSTR) arg1); else return RemoveFontResourceA ((LPCSTR) arg1); } HENHMETAFILE qxeCopyEnhMetaFile (HENHMETAFILE arg1, const Extbyte * arg2) { if (XEUNICODE_P) return CopyEnhMetaFileW (arg1, (LPCWSTR) arg2); else return CopyEnhMetaFileA (arg1, (LPCSTR) arg2); } HDC qxeCreateEnhMetaFile (HDC arg1, const Extbyte * arg2, CONST RECT * arg3, const Extbyte * arg4) { if (XEUNICODE_P) return CreateEnhMetaFileW (arg1, (LPCWSTR) arg2, arg3, (LPCWSTR) arg4); else return CreateEnhMetaFileA (arg1, (LPCSTR) arg2, arg3, (LPCSTR) arg4); } HENHMETAFILE qxeGetEnhMetaFile (const Extbyte * arg1) { if (XEUNICODE_P) return GetEnhMetaFileW ((LPCWSTR) arg1); else return GetEnhMetaFileA ((LPCSTR) arg1); } UINT qxeGetEnhMetaFileDescription (HENHMETAFILE arg1, UINT arg2, Extbyte * arg3) { if (XEUNICODE_P) return GetEnhMetaFileDescriptionW (arg1, arg2, (LPWSTR) arg3); else return GetEnhMetaFileDescriptionA (arg1, arg2, (LPSTR) arg3); } /* Skipping GetTextMetrics because split-sized LPTEXTMETRIC */ int qxeStartDoc (HDC arg1, CONST DOCINFOW * arg2) { if (XEUNICODE_P) return StartDocW (arg1, arg2); else return StartDocA (arg1, (CONST DOCINFOA *) arg2); } /* Skipping GetObject because split-sized LOGFONT */ 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); } BOOL qxeExtTextOut (HDC arg1, int arg2, int arg3, UINT arg4, CONST RECT * 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); } 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); } int qxeGetTextFace (HDC arg1, int arg2, Extbyte * arg3) { if (XEUNICODE_P) return GetTextFaceW (arg1, arg2, (LPWSTR) arg3); else return GetTextFaceA (arg1, arg2, (LPSTR) arg3); } DWORD qxeGetKerningPairs (HDC arg1, DWORD arg2, LPKERNINGPAIR arg3) { if (XEUNICODE_P) return GetKerningPairsW (arg1, arg2, arg3); else return GetKerningPairsA (arg1, arg2, arg3); } /* Error if GetLogColorSpace used: split-sized LPLOGCOLORSPACE; NT 4.0+ only */ /* Error if CreateColorSpace used: split-sized LPLOGCOLORSPACE; NT 4.0+ only */ /* Skipping GetICMProfile because NT 4.0+ only, error in Cygwin prototype */ /* 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); } /* 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); } /* Skipping UpdateICMRegKey because NT 4.0+ only, error in Cygwin prototype */ /* Error if wglUseFontBitmaps used: causes link error */ /* Error if wglUseFontOutlines used: causes link error */ /*----------------------------------------------------------------------*/ /* Processing file WINNLS.H */ /*----------------------------------------------------------------------*/ /* Error if GetCPInfoEx used: not used, not examined yet */ /* Error if CompareString used: not used, not examined yet */ /* Error if LCMapString used: not used, not examined yet */ int qxeGetLocaleInfo (LCID Locale, LCTYPE LCType, Extbyte * lpLCData, int cchData) { if (XEUNICODE_P) return GetLocaleInfoW (Locale, LCType, (LPWSTR) lpLCData, cchData); else return GetLocaleInfoA (Locale, LCType, (LPSTR) lpLCData, cchData); } BOOL qxeSetLocaleInfo (LCID Locale, LCTYPE LCType, const Extbyte * lpLCData) { if (XEUNICODE_P) return SetLocaleInfoW (Locale, LCType, (LPCWSTR) lpLCData); else return SetLocaleInfoA (Locale, LCType, (LPCSTR) lpLCData); } /* Error if GetTimeFormat used: not used, not examined yet */ /* Error if GetDateFormat used: not used, not examined yet */ /* Error if GetNumberFormat used: not used, not examined yet */ /* Error if GetCurrencyFormat used: not used, not examined yet */ /* Error if EnumCalendarInfo used: not used, not examined yet */ /* Error if EnumCalendarInfoEx used: not used, not examined yet */ /* Error if EnumTimeFormats used: not used, not examined yet */ /* Error if EnumDateFormats used: not used, not examined yet */ /* Error if EnumDateFormatsEx used: not used, not examined yet */ /* Error if GetStringTypeEx used: not used, not examined yet */ /* Error if GetStringType used: no such fun; A and W versions have different nos. of args */ /* Error if FoldString used: not used, not examined yet */ /* Error if EnumSystemLocales used: not used, not examined yet */ /* Error if EnumSystemCodePages used: not used, not examined yet */ /*----------------------------------------------------------------------*/ /* Processing file WINREG.H */ /*----------------------------------------------------------------------*/ /* Skipping RegConnectRegistry because error in Cygwin prototype */ LONG qxeRegCreateKey (HKEY hKey, const Extbyte * lpSubKey, PHKEY phkResult) { if (XEUNICODE_P) return RegCreateKeyW (hKey, (LPCWSTR) lpSubKey, phkResult); else return RegCreateKeyA (hKey, (LPCSTR) lpSubKey, phkResult); } LONG qxeRegCreateKeyEx (HKEY hKey, const Extbyte * lpSubKey, DWORD Reserved, Extbyte * lpClass, DWORD dwOptions, REGSAM samDesired, LPSECURITY_ATTRIBUTES lpSecurityAttributes, PHKEY phkResult, LPDWORD lpdwDisposition) { if (XEUNICODE_P) return RegCreateKeyExW (hKey, (LPCWSTR) lpSubKey, Reserved, (LPWSTR) lpClass, dwOptions, samDesired, lpSecurityAttributes, phkResult, lpdwDisposition); else return RegCreateKeyExA (hKey, (LPCSTR) lpSubKey, Reserved, (LPSTR) lpClass, dwOptions, samDesired, lpSecurityAttributes, phkResult, lpdwDisposition); } LONG qxeRegDeleteKey (HKEY hKey, const Extbyte * lpSubKey) { if (XEUNICODE_P) return RegDeleteKeyW (hKey, (LPCWSTR) lpSubKey); else return RegDeleteKeyA (hKey, (LPCSTR) lpSubKey); } LONG qxeRegDeleteValue (HKEY hKey, const Extbyte * lpValueName) { if (XEUNICODE_P) return RegDeleteValueW (hKey, (LPCWSTR) lpValueName); else return RegDeleteValueA (hKey, (LPCSTR) lpValueName); } LONG qxeRegEnumKey (HKEY hKey, DWORD dwIndex, Extbyte * lpName, DWORD cbName) { if (XEUNICODE_P) return RegEnumKeyW (hKey, dwIndex, (LPWSTR) lpName, cbName); else return RegEnumKeyA (hKey, dwIndex, (LPSTR) lpName, cbName); } LONG qxeRegEnumKeyEx (HKEY hKey, DWORD dwIndex, Extbyte * lpName, LPDWORD lpcbName, LPDWORD lpReserved, Extbyte * lpClass, LPDWORD lpcbClass, PFILETIME lpftLastWriteTime) { if (XEUNICODE_P) return RegEnumKeyExW (hKey, dwIndex, (LPWSTR) lpName, lpcbName, lpReserved, (LPWSTR) lpClass, lpcbClass, lpftLastWriteTime); else return RegEnumKeyExA (hKey, dwIndex, (LPSTR) lpName, lpcbName, lpReserved, (LPSTR) lpClass, lpcbClass, lpftLastWriteTime); } LONG qxeRegEnumValue (HKEY hKey, DWORD dwIndex, Extbyte * lpValueName, LPDWORD lpcbValueName, LPDWORD lpReserved, LPDWORD lpType, LPBYTE lpData, LPDWORD lpcbData) { if (XEUNICODE_P) return RegEnumValueW (hKey, dwIndex, (LPWSTR) lpValueName, lpcbValueName, lpReserved, lpType, lpData, lpcbData); else return RegEnumValueA (hKey, dwIndex, (LPSTR) lpValueName, lpcbValueName, lpReserved, lpType, lpData, lpcbData); } LONG qxeRegLoadKey (HKEY hKey, const Extbyte * lpSubKey, const Extbyte * lpFile) { if (XEUNICODE_P) return RegLoadKeyW (hKey, (LPCWSTR) lpSubKey, (LPCWSTR) lpFile); else return RegLoadKeyA (hKey, (LPCSTR) lpSubKey, (LPCSTR) lpFile); } LONG qxeRegOpenKey (HKEY hKey, const Extbyte * lpSubKey, PHKEY phkResult) { if (XEUNICODE_P) return RegOpenKeyW (hKey, (LPCWSTR) lpSubKey, phkResult); else return RegOpenKeyA (hKey, (LPCSTR) lpSubKey, phkResult); } LONG qxeRegOpenKeyEx (HKEY hKey, const Extbyte * lpSubKey, DWORD ulOptions, REGSAM samDesired, PHKEY phkResult) { if (XEUNICODE_P) return RegOpenKeyExW (hKey, (LPCWSTR) lpSubKey, ulOptions, samDesired, phkResult); else return RegOpenKeyExA (hKey, (LPCSTR) lpSubKey, ulOptions, samDesired, phkResult); } LONG qxeRegQueryInfoKey (HKEY hKey, Extbyte * lpClass, LPDWORD lpcbClass, LPDWORD lpReserved, LPDWORD lpcSubKeys, LPDWORD lpcbMaxSubKeyLen, LPDWORD lpcbMaxClassLen, LPDWORD lpcValues, LPDWORD lpcbMaxValueNameLen, LPDWORD lpcbMaxValueLen, LPDWORD lpcbSecurityDescriptor, PFILETIME lpftLastWriteTime) { if (XEUNICODE_P) return RegQueryInfoKeyW (hKey, (LPWSTR) lpClass, lpcbClass, lpReserved, lpcSubKeys, lpcbMaxSubKeyLen, lpcbMaxClassLen, lpcValues, lpcbMaxValueNameLen, lpcbMaxValueLen, lpcbSecurityDescriptor, lpftLastWriteTime); else return RegQueryInfoKeyA (hKey, (LPSTR) lpClass, lpcbClass, lpReserved, lpcSubKeys, lpcbMaxSubKeyLen, lpcbMaxClassLen, lpcValues, lpcbMaxValueNameLen, lpcbMaxValueLen, lpcbSecurityDescriptor, lpftLastWriteTime); } LONG qxeRegQueryValue (HKEY hKey, const Extbyte * lpSubKey, Extbyte * lpValue, PLONG lpcbValue) { if (XEUNICODE_P) return RegQueryValueW (hKey, (LPCWSTR) lpSubKey, (LPWSTR) lpValue, lpcbValue); else return RegQueryValueA (hKey, (LPCSTR) lpSubKey, (LPSTR) lpValue, lpcbValue); } LONG qxeRegQueryMultipleValues (HKEY hKey, PVALENTW val_list, DWORD num_vals, Extbyte * lpValueBuf, LPDWORD ldwTotsize) { if (XEUNICODE_P) return RegQueryMultipleValuesW (hKey, val_list, num_vals, (LPWSTR) lpValueBuf, ldwTotsize); else return RegQueryMultipleValuesA (hKey, (PVALENTA) val_list, num_vals, (LPSTR) lpValueBuf, ldwTotsize); } LONG qxeRegQueryValueEx (HKEY hKey, const Extbyte * lpValueName, LPDWORD lpReserved, LPDWORD lpType, LPBYTE lpData, LPDWORD lpcbData) { if (XEUNICODE_P) return RegQueryValueExW (hKey, (LPCWSTR) lpValueName, lpReserved, lpType, lpData, lpcbData); else return RegQueryValueExA (hKey, (LPCSTR) lpValueName, lpReserved, lpType, lpData, lpcbData); } LONG qxeRegReplaceKey (HKEY hKey, const Extbyte * lpSubKey, const Extbyte * lpNewFile, const Extbyte * lpOldFile) { if (XEUNICODE_P) return RegReplaceKeyW (hKey, (LPCWSTR) lpSubKey, (LPCWSTR) lpNewFile, (LPCWSTR) lpOldFile); else return RegReplaceKeyA (hKey, (LPCSTR) lpSubKey, (LPCSTR) lpNewFile, (LPCSTR) lpOldFile); } LONG qxeRegRestoreKey (HKEY hKey, const Extbyte * lpFile, DWORD dwFlags) { if (XEUNICODE_P) return RegRestoreKeyW (hKey, (LPCWSTR) lpFile, dwFlags); else return RegRestoreKeyA (hKey, (LPCSTR) lpFile, dwFlags); } LONG qxeRegSaveKey (HKEY hKey, const Extbyte * lpFile, LPSECURITY_ATTRIBUTES lpSecurityAttributes) { if (XEUNICODE_P) return RegSaveKeyW (hKey, (LPCWSTR) lpFile, lpSecurityAttributes); else return RegSaveKeyA (hKey, (LPCSTR) lpFile, lpSecurityAttributes); } LONG qxeRegSetValue (HKEY hKey, const Extbyte * lpSubKey, DWORD dwType, const Extbyte * lpData, DWORD cbData) { if (XEUNICODE_P) return RegSetValueW (hKey, (LPCWSTR) lpSubKey, dwType, (LPCWSTR) lpData, cbData); else return RegSetValueA (hKey, (LPCSTR) lpSubKey, dwType, (LPCSTR) lpData, cbData); } LONG qxeRegSetValueEx (HKEY hKey, const Extbyte * lpValueName, DWORD Reserved, DWORD dwType, CONST BYTE* lpData, DWORD cbData) { if (XEUNICODE_P) return RegSetValueExW (hKey, (LPCWSTR) lpValueName, Reserved, dwType, lpData, cbData); else return RegSetValueExA (hKey, (LPCSTR) lpValueName, Reserved, dwType, lpData, cbData); } LONG qxeRegUnLoadKey (HKEY hKey, const Extbyte * lpSubKey) { if (XEUNICODE_P) return RegUnLoadKeyW (hKey, (LPCWSTR) lpSubKey); else return RegUnLoadKeyA (hKey, (LPCSTR) lpSubKey); } BOOL qxeInitiateSystemShutdown (Extbyte * lpMachineName, Extbyte * lpMessage, DWORD dwTimeout, BOOL bForceAppsClosed, BOOL bRebootAfterShutdown) { if (XEUNICODE_P) return InitiateSystemShutdownW ((LPWSTR) lpMachineName, (LPWSTR) lpMessage, dwTimeout, bForceAppsClosed, bRebootAfterShutdown); else return InitiateSystemShutdownA ((LPSTR) lpMachineName, (LPSTR) lpMessage, dwTimeout, bForceAppsClosed, bRebootAfterShutdown); } BOOL qxeAbortSystemShutdown (Extbyte * lpMachineName) { if (XEUNICODE_P) return AbortSystemShutdownW ((LPWSTR) lpMachineName); else return AbortSystemShutdownA ((LPSTR) lpMachineName); } /*----------------------------------------------------------------------*/ /* Processing file COMMDLG.H */ /*----------------------------------------------------------------------*/ BOOL qxeGetOpenFileName (LPOPENFILENAMEW arg1) { if (XEUNICODE_P) return GetOpenFileNameW (arg1); else return GetOpenFileNameA ((LPOPENFILENAMEA) arg1); } BOOL qxeGetSaveFileName (LPOPENFILENAMEW arg1) { if (XEUNICODE_P) return GetSaveFileNameW (arg1); else return GetSaveFileNameA ((LPOPENFILENAMEA) arg1); } 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); } BOOL qxeChooseColor (LPCHOOSECOLORW arg1) { if (XEUNICODE_P) return ChooseColorW (arg1); else return ChooseColorA ((LPCHOOSECOLORA) arg1); } HWND qxeFindText (LPFINDREPLACEW arg1) { if (XEUNICODE_P) return FindTextW (arg1); else return FindTextA ((LPFINDREPLACEA) arg1); } HWND qxeReplaceText (LPFINDREPLACEW arg1) { if (XEUNICODE_P) return ReplaceTextW (arg1); else return ReplaceTextA ((LPFINDREPLACEA) arg1); } /* Error if AfxReplaceText used: mac only */ /* Error if ChooseFont used: split-sized LPLOGFONT in LPCHOOSEFONT */ /* Skipping PrintDlg because LPPRINTDLG with split-sized DEVMODE handle */ /* Skipping PageSetupDlg because LPPAGESETUPDLG with split-sized DEVMODE handle */ /*----------------------------------------------------------------------*/ /* Processing file SHLOBJ.H */ /*----------------------------------------------------------------------*/ BOOL qxeSHGetPathFromIDList (LPCITEMIDLIST pidl, Extbyte * pszPath) { if (XEUNICODE_P) return SHGetPathFromIDListW (pidl, (LPWSTR) pszPath); else return SHGetPathFromIDListA (pidl, (LPSTR) pszPath); } /* Skipping SHGetSpecialFolderPath because error in Cygwin prototype, missing from Cygwin libraries */ /* 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 */ /*----------------------------------------------------------------------*/ /* Processing file WINBASE.H */ /*----------------------------------------------------------------------*/ BOOL qxeGetBinaryType (const Extbyte * lpApplicationName, LPDWORD lpBinaryType) { if (XEUNICODE_P) return GetBinaryTypeW ((LPCWSTR) lpApplicationName, lpBinaryType); else return GetBinaryTypeA ((LPCSTR) lpApplicationName, lpBinaryType); } DWORD qxeGetShortPathName (const Extbyte * lpszLongPath, Extbyte * lpszShortPath, DWORD cchBuffer) { if (XEUNICODE_P) return GetShortPathNameW ((LPCWSTR) lpszLongPath, (LPWSTR) lpszShortPath, cchBuffer); else return GetShortPathNameA ((LPCSTR) lpszLongPath, (LPSTR) lpszShortPath, cchBuffer); } /* Error if GetLongPathName used: Win98/2K+ only */ /* Skipping GetEnvironmentStrings because misnamed ANSI version of the function */ BOOL qxeFreeEnvironmentStrings (Extbyte * arg1) { if (XEUNICODE_P) return FreeEnvironmentStringsW ((LPWSTR) arg1); else return FreeEnvironmentStringsA ((LPSTR) arg1); } DWORD qxeFormatMessage (DWORD dwFlags, LPCVOID lpSource, DWORD dwMessageId, DWORD dwLanguageId, Extbyte * lpBuffer, DWORD nSize, va_list * Arguments) { if (XEUNICODE_P) return FormatMessageW (dwFlags, lpSource, dwMessageId, dwLanguageId, (LPWSTR) lpBuffer, nSize, Arguments); else return FormatMessageA (dwFlags, lpSource, dwMessageId, dwLanguageId, (LPSTR) lpBuffer, nSize, Arguments); } HANDLE qxeCreateMailslot (const Extbyte * lpName, DWORD nMaxMessageSize, DWORD lReadTimeout, LPSECURITY_ATTRIBUTES lpSecurityAttributes) { if (XEUNICODE_P) return CreateMailslotW ((LPCWSTR) lpName, nMaxMessageSize, lReadTimeout, lpSecurityAttributes); else return CreateMailslotA ((LPCSTR) lpName, nMaxMessageSize, lReadTimeout, lpSecurityAttributes); } #if !defined (CYGWIN_HEADERS) /* Error if EncryptFile used: Win2K+ only */ #endif /* !defined (CYGWIN_HEADERS) */ #if !defined (CYGWIN_HEADERS) /* Error if DecryptFile used: Win2K+ only */ #endif /* !defined (CYGWIN_HEADERS) */ /* Error if OpenRaw used: error "The procedure entry point OpenRawW could not be located in the dynamic link library ADVAPI32.dll." */ /* Error if QueryRecoveryAgents used: split-sized LPRECOVERY_AGENT_INFORMATION */ int qxelstrcmp (const Extbyte * lpString1, const Extbyte * lpString2) { if (XEUNICODE_P) return lstrcmpW ((LPCWSTR) lpString1, (LPCWSTR) lpString2); else return lstrcmpA ((LPCSTR) lpString1, (LPCSTR) lpString2); } int qxelstrcmpi (const Extbyte * lpString1, const Extbyte * lpString2) { if (XEUNICODE_P) return lstrcmpiW ((LPCWSTR) lpString1, (LPCWSTR) lpString2); else return lstrcmpiA ((LPCSTR) lpString1, (LPCSTR) lpString2); } Extbyte * qxelstrcpyn (Extbyte * lpString1, const Extbyte * lpString2, int iMaxLength) { if (XEUNICODE_P) return (Extbyte *) lstrcpynW ((LPWSTR) lpString1, (LPCWSTR) lpString2, iMaxLength); else return (Extbyte *) lstrcpynA ((LPSTR) lpString1, (LPCSTR) lpString2, iMaxLength); } Extbyte * qxelstrcpy (Extbyte * lpString1, const Extbyte * lpString2) { if (XEUNICODE_P) return (Extbyte *) lstrcpyW ((LPWSTR) lpString1, (LPCWSTR) lpString2); else return (Extbyte *) lstrcpyA ((LPSTR) lpString1, (LPCSTR) lpString2); } Extbyte * qxelstrcat (Extbyte * lpString1, const Extbyte * lpString2) { if (XEUNICODE_P) return (Extbyte *) lstrcatW ((LPWSTR) lpString1, (LPCWSTR) lpString2); else return (Extbyte *) lstrcatA ((LPSTR) lpString1, (LPCSTR) lpString2); } int qxelstrlen (const Extbyte * lpString) { if (XEUNICODE_P) return lstrlenW ((LPCWSTR) lpString); else return lstrlenA ((LPCSTR) lpString); } HANDLE qxeCreateMutex (LPSECURITY_ATTRIBUTES lpMutexAttributes, BOOL bInitialOwner, const Extbyte * lpName) { if (XEUNICODE_P) return CreateMutexW (lpMutexAttributes, bInitialOwner, (LPCWSTR) lpName); else return CreateMutexA (lpMutexAttributes, bInitialOwner, (LPCSTR) lpName); } HANDLE qxeOpenMutex (DWORD dwDesiredAccess, BOOL bInheritHandle, const Extbyte * lpName) { if (XEUNICODE_P) return OpenMutexW (dwDesiredAccess, bInheritHandle, (LPCWSTR) lpName); else return OpenMutexA (dwDesiredAccess, bInheritHandle, (LPCSTR) lpName); } HANDLE qxeCreateEvent (LPSECURITY_ATTRIBUTES lpEventAttributes, BOOL bManualReset, BOOL bInitialState, const Extbyte * lpName) { if (XEUNICODE_P) return CreateEventW (lpEventAttributes, bManualReset, bInitialState, (LPCWSTR) lpName); else return CreateEventA (lpEventAttributes, bManualReset, bInitialState, (LPCSTR) lpName); } HANDLE qxeOpenEvent (DWORD dwDesiredAccess, BOOL bInheritHandle, const Extbyte * lpName) { if (XEUNICODE_P) return OpenEventW (dwDesiredAccess, bInheritHandle, (LPCWSTR) lpName); else return OpenEventA (dwDesiredAccess, bInheritHandle, (LPCSTR) lpName); } HANDLE qxeCreateSemaphore (LPSECURITY_ATTRIBUTES lpSemaphoreAttributes, LONG lInitialCount, LONG lMaximumCount, const Extbyte * lpName) { if (XEUNICODE_P) return CreateSemaphoreW (lpSemaphoreAttributes, lInitialCount, lMaximumCount, (LPCWSTR) lpName); else return CreateSemaphoreA (lpSemaphoreAttributes, lInitialCount, lMaximumCount, (LPCSTR) lpName); } HANDLE qxeOpenSemaphore (DWORD dwDesiredAccess, BOOL bInheritHandle, const Extbyte * lpName) { if (XEUNICODE_P) return OpenSemaphoreW (dwDesiredAccess, bInheritHandle, (LPCWSTR) lpName); else return OpenSemaphoreA (dwDesiredAccess, bInheritHandle, (LPCSTR) lpName); } HANDLE qxeCreateWaitableTimer (LPSECURITY_ATTRIBUTES lpTimerAttributes, BOOL bManualReset, const Extbyte * lpTimerName) { if (XEUNICODE_P) return CreateWaitableTimerW (lpTimerAttributes, bManualReset, (LPCWSTR) lpTimerName); else return CreateWaitableTimerA (lpTimerAttributes, bManualReset, (LPCSTR) lpTimerName); } HANDLE qxeOpenWaitableTimer (DWORD dwDesiredAccess, BOOL bInheritHandle, const Extbyte * lpTimerName) { if (XEUNICODE_P) return OpenWaitableTimerW (dwDesiredAccess, bInheritHandle, (LPCWSTR) lpTimerName); else return OpenWaitableTimerA (dwDesiredAccess, bInheritHandle, (LPCSTR) lpTimerName); } HANDLE qxeCreateFileMapping (HANDLE hFile, LPSECURITY_ATTRIBUTES lpFileMappingAttributes, DWORD flProtect, DWORD dwMaximumSizeHigh, DWORD dwMaximumSizeLow, const Extbyte * lpName) { if (XEUNICODE_P) return CreateFileMappingW (hFile, lpFileMappingAttributes, flProtect, dwMaximumSizeHigh, dwMaximumSizeLow, (LPCWSTR) lpName); else return CreateFileMappingA (hFile, lpFileMappingAttributes, flProtect, dwMaximumSizeHigh, dwMaximumSizeLow, (LPCSTR) lpName); } HANDLE qxeOpenFileMapping (DWORD dwDesiredAccess, BOOL bInheritHandle, const Extbyte * lpName) { if (XEUNICODE_P) return OpenFileMappingW (dwDesiredAccess, bInheritHandle, (LPCWSTR) lpName); else return OpenFileMappingA (dwDesiredAccess, bInheritHandle, (LPCSTR) lpName); } DWORD qxeGetLogicalDriveStrings (DWORD nBufferLength, Extbyte * lpBuffer) { if (XEUNICODE_P) return GetLogicalDriveStringsW (nBufferLength, (LPWSTR) lpBuffer); else return GetLogicalDriveStringsA (nBufferLength, (LPSTR) lpBuffer); } HMODULE qxeLoadLibrary (const Extbyte * lpLibFileName) { if (XEUNICODE_P) return LoadLibraryW ((LPCWSTR) lpLibFileName); else return LoadLibraryA ((LPCSTR) lpLibFileName); } HMODULE qxeLoadLibraryEx (const Extbyte * lpLibFileName, HANDLE hFile, DWORD dwFlags) { if (XEUNICODE_P) return LoadLibraryExW ((LPCWSTR) lpLibFileName, hFile, dwFlags); else return LoadLibraryExA ((LPCSTR) lpLibFileName, hFile, dwFlags); } DWORD qxeGetModuleFileName (HMODULE hModule, Extbyte * lpFilename, DWORD nSize) { if (XEUNICODE_P) return GetModuleFileNameW (hModule, (LPWSTR) lpFilename, nSize); else return GetModuleFileNameA (hModule, (LPSTR) lpFilename, nSize); } HMODULE qxeGetModuleHandle (const Extbyte * lpModuleName) { if (XEUNICODE_P) return GetModuleHandleW ((LPCWSTR) lpModuleName); else return GetModuleHandleA ((LPCSTR) lpModuleName); } BOOL qxeCreateProcess (const Extbyte * lpApplicationName, Extbyte * lpCommandLine, LPSECURITY_ATTRIBUTES lpProcessAttributes, LPSECURITY_ATTRIBUTES lpThreadAttributes, BOOL bInheritHandles, DWORD dwCreationFlags, LPVOID lpEnvironment, const Extbyte * lpCurrentDirectory, LPSTARTUPINFOW lpStartupInfo, LPPROCESS_INFORMATION lpProcessInformation) { if (XEUNICODE_P) return CreateProcessW ((LPCWSTR) lpApplicationName, (LPWSTR) lpCommandLine, lpProcessAttributes, lpThreadAttributes, bInheritHandles, dwCreationFlags, lpEnvironment, (LPCWSTR) lpCurrentDirectory, lpStartupInfo, lpProcessInformation); else return CreateProcessA ((LPCSTR) lpApplicationName, (LPSTR) lpCommandLine, lpProcessAttributes, lpThreadAttributes, bInheritHandles, dwCreationFlags, lpEnvironment, (LPCSTR) lpCurrentDirectory, (LPSTARTUPINFOA) lpStartupInfo, lpProcessInformation); } VOID qxeFatalAppExit (UINT uAction, const Extbyte * lpMessageText) { if (XEUNICODE_P) FatalAppExitW (uAction, (LPCWSTR) lpMessageText); else FatalAppExitA (uAction, (LPCSTR) lpMessageText); } VOID qxeGetStartupInfo (LPSTARTUPINFOW lpStartupInfo) { if (XEUNICODE_P) GetStartupInfoW (lpStartupInfo); else GetStartupInfoA ((LPSTARTUPINFOA) lpStartupInfo); } Extbyte * qxeGetCommandLine (void) { if (XEUNICODE_P) return (Extbyte *) GetCommandLineW (); else return (Extbyte *) GetCommandLineA (); } DWORD qxeGetEnvironmentVariable (const Extbyte * lpName, Extbyte * lpBuffer, DWORD nSize) { if (XEUNICODE_P) return GetEnvironmentVariableW ((LPCWSTR) lpName, (LPWSTR) lpBuffer, nSize); else return GetEnvironmentVariableA ((LPCSTR) lpName, (LPSTR) lpBuffer, nSize); } BOOL qxeSetEnvironmentVariable (const Extbyte * lpName, const Extbyte * lpValue) { if (XEUNICODE_P) return SetEnvironmentVariableW ((LPCWSTR) lpName, (LPCWSTR) lpValue); else return SetEnvironmentVariableA ((LPCSTR) lpName, (LPCSTR) lpValue); } DWORD qxeExpandEnvironmentStrings (const Extbyte * lpSrc, Extbyte * lpDst, DWORD nSize) { if (XEUNICODE_P) return ExpandEnvironmentStringsW ((LPCWSTR) lpSrc, (LPWSTR) lpDst, nSize); else return ExpandEnvironmentStringsA ((LPCSTR) lpSrc, (LPSTR) lpDst, nSize); } VOID qxeOutputDebugString (const Extbyte * lpOutputString) { if (XEUNICODE_P) OutputDebugStringW ((LPCWSTR) lpOutputString); else OutputDebugStringA ((LPCSTR) lpOutputString); } HRSRC qxeFindResource (HMODULE hModule, const Extbyte * lpName, const Extbyte * lpType) { if (XEUNICODE_P) return FindResourceW (hModule, (LPCWSTR) lpName, (LPCWSTR) lpType); else return FindResourceA (hModule, (LPCSTR) lpName, (LPCSTR) lpType); } HRSRC qxeFindResourceEx (HMODULE hModule, const Extbyte * lpType, const Extbyte * lpName, WORD wLanguage) { if (XEUNICODE_P) return FindResourceExW (hModule, (LPCWSTR) lpType, (LPCWSTR) lpName, wLanguage); else return FindResourceExA (hModule, (LPCSTR) lpType, (LPCSTR) lpName, wLanguage); } /* Skipping EnumResourceTypes because different prototypes in VC6 and VC7 */ /* Skipping EnumResourceNames because different prototypes in VC6 and VC7 */ /* Skipping EnumResourceLanguages because different prototypes in VC6 and VC7 */ HANDLE qxeBeginUpdateResource (const Extbyte * pFileName, BOOL bDeleteExistingResources) { if (XEUNICODE_P) return BeginUpdateResourceW ((LPCWSTR) pFileName, bDeleteExistingResources); else return BeginUpdateResourceA ((LPCSTR) pFileName, bDeleteExistingResources); } BOOL qxeUpdateResource (HANDLE hUpdate, const Extbyte * lpType, const Extbyte * lpName, WORD wLanguage, LPVOID lpData, DWORD cbData) { if (XEUNICODE_P) return UpdateResourceW (hUpdate, (LPCWSTR) lpType, (LPCWSTR) lpName, wLanguage, lpData, cbData); else return UpdateResourceA (hUpdate, (LPCSTR) lpType, (LPCSTR) lpName, wLanguage, lpData, cbData); } BOOL qxeEndUpdateResource (HANDLE hUpdate, BOOL fDiscard) { if (XEUNICODE_P) return EndUpdateResourceW (hUpdate, fDiscard); else return EndUpdateResourceA (hUpdate, fDiscard); } ATOM qxeGlobalAddAtom (const Extbyte * lpString) { if (XEUNICODE_P) return GlobalAddAtomW ((LPCWSTR) lpString); else return GlobalAddAtomA ((LPCSTR) lpString); } ATOM qxeGlobalFindAtom (const Extbyte * lpString) { if (XEUNICODE_P) return GlobalFindAtomW ((LPCWSTR) lpString); else return GlobalFindAtomA ((LPCSTR) lpString); } UINT qxeGlobalGetAtomName (ATOM nAtom, Extbyte * lpBuffer, int nSize) { if (XEUNICODE_P) return GlobalGetAtomNameW (nAtom, (LPWSTR) lpBuffer, nSize); else return GlobalGetAtomNameA (nAtom, (LPSTR) lpBuffer, nSize); } ATOM qxeAddAtom (const Extbyte * lpString) { if (XEUNICODE_P) return AddAtomW ((LPCWSTR) lpString); else return AddAtomA ((LPCSTR) lpString); } ATOM qxeFindAtom (const Extbyte * lpString) { if (XEUNICODE_P) return FindAtomW ((LPCWSTR) lpString); else return FindAtomA ((LPCSTR) lpString); } UINT qxeGetAtomName (ATOM nAtom, Extbyte * lpBuffer, int nSize) { if (XEUNICODE_P) return GetAtomNameW (nAtom, (LPWSTR) lpBuffer, nSize); else return GetAtomNameA (nAtom, (LPSTR) lpBuffer, nSize); } UINT qxeGetProfileInt (const Extbyte * lpAppName, const Extbyte * lpKeyName, INT nDefault) { if (XEUNICODE_P) return GetProfileIntW ((LPCWSTR) lpAppName, (LPCWSTR) lpKeyName, nDefault); else return GetProfileIntA ((LPCSTR) lpAppName, (LPCSTR) lpKeyName, nDefault); } DWORD qxeGetProfileString (const Extbyte * lpAppName, const Extbyte * lpKeyName, const Extbyte * lpDefault, Extbyte * lpReturnedString, DWORD nSize) { if (XEUNICODE_P) return GetProfileStringW ((LPCWSTR) lpAppName, (LPCWSTR) lpKeyName, (LPCWSTR) lpDefault, (LPWSTR) lpReturnedString, nSize); else return GetProfileStringA ((LPCSTR) lpAppName, (LPCSTR) lpKeyName, (LPCSTR) lpDefault, (LPSTR) lpReturnedString, nSize); } BOOL qxeWriteProfileString (const Extbyte * lpAppName, const Extbyte * lpKeyName, const Extbyte * lpString) { if (XEUNICODE_P) return WriteProfileStringW ((LPCWSTR) lpAppName, (LPCWSTR) lpKeyName, (LPCWSTR) lpString); else return WriteProfileStringA ((LPCSTR) lpAppName, (LPCSTR) lpKeyName, (LPCSTR) lpString); } DWORD qxeGetProfileSection (const Extbyte * lpAppName, Extbyte * lpReturnedString, DWORD nSize) { if (XEUNICODE_P) return GetProfileSectionW ((LPCWSTR) lpAppName, (LPWSTR) lpReturnedString, nSize); else return GetProfileSectionA ((LPCSTR) lpAppName, (LPSTR) lpReturnedString, nSize); } BOOL qxeWriteProfileSection (const Extbyte * lpAppName, const Extbyte * lpString) { if (XEUNICODE_P) return WriteProfileSectionW ((LPCWSTR) lpAppName, (LPCWSTR) lpString); else return WriteProfileSectionA ((LPCSTR) lpAppName, (LPCSTR) lpString); } UINT qxeGetPrivateProfileInt (const Extbyte * lpAppName, const Extbyte * lpKeyName, INT nDefault, const Extbyte * lpFileName) { if (XEUNICODE_P) return GetPrivateProfileIntW ((LPCWSTR) lpAppName, (LPCWSTR) lpKeyName, nDefault, (LPCWSTR) lpFileName); else return GetPrivateProfileIntA ((LPCSTR) lpAppName, (LPCSTR) lpKeyName, nDefault, (LPCSTR) lpFileName); } DWORD qxeGetPrivateProfileString (const Extbyte * lpAppName, const Extbyte * lpKeyName, const Extbyte * lpDefault, Extbyte * lpReturnedString, DWORD nSize, const Extbyte * lpFileName) { if (XEUNICODE_P) return GetPrivateProfileStringW ((LPCWSTR) lpAppName, (LPCWSTR) lpKeyName, (LPCWSTR) lpDefault, (LPWSTR) lpReturnedString, nSize, (LPCWSTR) lpFileName); else return GetPrivateProfileStringA ((LPCSTR) lpAppName, (LPCSTR) lpKeyName, (LPCSTR) lpDefault, (LPSTR) lpReturnedString, nSize, (LPCSTR) lpFileName); } BOOL qxeWritePrivateProfileString (const Extbyte * lpAppName, const Extbyte * lpKeyName, const Extbyte * lpString, const Extbyte * lpFileName) { if (XEUNICODE_P) return WritePrivateProfileStringW ((LPCWSTR) lpAppName, (LPCWSTR) lpKeyName, (LPCWSTR) lpString, (LPCWSTR) lpFileName); else return WritePrivateProfileStringA ((LPCSTR) lpAppName, (LPCSTR) lpKeyName, (LPCSTR) lpString, (LPCSTR) lpFileName); } DWORD qxeGetPrivateProfileSection (const Extbyte * lpAppName, Extbyte * lpReturnedString, DWORD nSize, const Extbyte * lpFileName) { if (XEUNICODE_P) return GetPrivateProfileSectionW ((LPCWSTR) lpAppName, (LPWSTR) lpReturnedString, nSize, (LPCWSTR) lpFileName); else return GetPrivateProfileSectionA ((LPCSTR) lpAppName, (LPSTR) lpReturnedString, nSize, (LPCSTR) lpFileName); } BOOL qxeWritePrivateProfileSection (const Extbyte * lpAppName, const Extbyte * lpString, const Extbyte * lpFileName) { if (XEUNICODE_P) return WritePrivateProfileSectionW ((LPCWSTR) lpAppName, (LPCWSTR) lpString, (LPCWSTR) lpFileName); else return WritePrivateProfileSectionA ((LPCSTR) lpAppName, (LPCSTR) lpString, (LPCSTR) lpFileName); } DWORD qxeGetPrivateProfileSectionNames (Extbyte * lpszReturnBuffer, DWORD nSize, const Extbyte * lpFileName) { if (XEUNICODE_P) return GetPrivateProfileSectionNamesW ((LPWSTR) lpszReturnBuffer, nSize, (LPCWSTR) lpFileName); else return GetPrivateProfileSectionNamesA ((LPSTR) lpszReturnBuffer, nSize, (LPCSTR) lpFileName); } BOOL qxeGetPrivateProfileStruct (const Extbyte * lpszSection, const Extbyte * lpszKey, LPVOID lpStruct, UINT uSizeStruct, const Extbyte * szFile) { if (XEUNICODE_P) return GetPrivateProfileStructW ((LPCWSTR) lpszSection, (LPCWSTR) lpszKey, lpStruct, uSizeStruct, (LPCWSTR) szFile); else return GetPrivateProfileStructA ((LPCSTR) lpszSection, (LPCSTR) lpszKey, lpStruct, uSizeStruct, (LPCSTR) szFile); } BOOL qxeWritePrivateProfileStruct (const Extbyte * lpszSection, const Extbyte * lpszKey, LPVOID lpStruct, UINT uSizeStruct, const Extbyte * szFile) { if (XEUNICODE_P) return WritePrivateProfileStructW ((LPCWSTR) lpszSection, (LPCWSTR) lpszKey, lpStruct, uSizeStruct, (LPCWSTR) szFile); else return WritePrivateProfileStructA ((LPCSTR) lpszSection, (LPCSTR) lpszKey, lpStruct, uSizeStruct, (LPCSTR) szFile); } UINT qxeGetDriveType (const Extbyte * lpRootPathName) { if (XEUNICODE_P) return GetDriveTypeW ((LPCWSTR) lpRootPathName); else return GetDriveTypeA ((LPCSTR) lpRootPathName); } UINT qxeGetSystemDirectory (Extbyte * lpBuffer, UINT uSize) { if (XEUNICODE_P) return GetSystemDirectoryW ((LPWSTR) lpBuffer, uSize); else return GetSystemDirectoryA ((LPSTR) lpBuffer, uSize); } DWORD qxeGetTempPath (DWORD nBufferLength, Extbyte * lpBuffer) { if (XEUNICODE_P) return GetTempPathW (nBufferLength, (LPWSTR) lpBuffer); else return GetTempPathA (nBufferLength, (LPSTR) lpBuffer); } UINT qxeGetTempFileName (const Extbyte * lpPathName, const Extbyte * lpPrefixString, UINT uUnique, Extbyte * lpTempFileName) { if (XEUNICODE_P) return GetTempFileNameW ((LPCWSTR) lpPathName, (LPCWSTR) lpPrefixString, uUnique, (LPWSTR) lpTempFileName); else return GetTempFileNameA ((LPCSTR) lpPathName, (LPCSTR) lpPrefixString, uUnique, (LPSTR) lpTempFileName); } UINT qxeGetWindowsDirectory (Extbyte * lpBuffer, UINT uSize) { if (XEUNICODE_P) return GetWindowsDirectoryW ((LPWSTR) lpBuffer, uSize); else return GetWindowsDirectoryA ((LPSTR) lpBuffer, uSize); } BOOL qxeSetCurrentDirectory (const Extbyte * lpPathName) { if (XEUNICODE_P) return SetCurrentDirectoryW ((LPCWSTR) lpPathName); else return SetCurrentDirectoryA ((LPCSTR) lpPathName); } DWORD qxeGetCurrentDirectory (DWORD nBufferLength, Extbyte * lpBuffer) { if (XEUNICODE_P) return GetCurrentDirectoryW (nBufferLength, (LPWSTR) lpBuffer); else return GetCurrentDirectoryA (nBufferLength, (LPSTR) lpBuffer); } BOOL qxeGetDiskFreeSpace (const Extbyte * lpRootPathName, LPDWORD lpSectorsPerCluster, LPDWORD lpBytesPerSector, LPDWORD lpNumberOfFreeClusters, LPDWORD lpTotalNumberOfClusters) { if (XEUNICODE_P) return GetDiskFreeSpaceW ((LPCWSTR) lpRootPathName, lpSectorsPerCluster, lpBytesPerSector, lpNumberOfFreeClusters, lpTotalNumberOfClusters); else return GetDiskFreeSpaceA ((LPCSTR) lpRootPathName, lpSectorsPerCluster, lpBytesPerSector, lpNumberOfFreeClusters, lpTotalNumberOfClusters); } BOOL qxeGetDiskFreeSpaceEx (const Extbyte * lpDirectoryName, PULARGE_INTEGER lpFreeBytesAvailableToCaller, PULARGE_INTEGER lpTotalNumberOfBytes, PULARGE_INTEGER lpTotalNumberOfFreeBytes) { if (XEUNICODE_P) return GetDiskFreeSpaceExW ((LPCWSTR) lpDirectoryName, lpFreeBytesAvailableToCaller, lpTotalNumberOfBytes, lpTotalNumberOfFreeBytes); else return GetDiskFreeSpaceExA ((LPCSTR) lpDirectoryName, lpFreeBytesAvailableToCaller, lpTotalNumberOfBytes, lpTotalNumberOfFreeBytes); } BOOL qxeCreateDirectory (const Extbyte * lpPathName, LPSECURITY_ATTRIBUTES lpSecurityAttributes) { if (XEUNICODE_P) return CreateDirectoryW ((LPCWSTR) lpPathName, lpSecurityAttributes); else return CreateDirectoryA ((LPCSTR) lpPathName, lpSecurityAttributes); } BOOL qxeCreateDirectoryEx (const Extbyte * lpTemplateDirectory, const Extbyte * lpNewDirectory, LPSECURITY_ATTRIBUTES lpSecurityAttributes) { if (XEUNICODE_P) return CreateDirectoryExW ((LPCWSTR) lpTemplateDirectory, (LPCWSTR) lpNewDirectory, lpSecurityAttributes); else return CreateDirectoryExA ((LPCSTR) lpTemplateDirectory, (LPCSTR) lpNewDirectory, lpSecurityAttributes); } BOOL qxeRemoveDirectory (const Extbyte * lpPathName) { if (XEUNICODE_P) return RemoveDirectoryW ((LPCWSTR) lpPathName); else return RemoveDirectoryA ((LPCSTR) lpPathName); } DWORD qxeGetFullPathName (const Extbyte * lpFileName, DWORD nBufferLength, Extbyte * lpBuffer, Extbyte * * lpFilePart) { if (XEUNICODE_P) return GetFullPathNameW ((LPCWSTR) lpFileName, nBufferLength, (LPWSTR) lpBuffer, (LPWSTR *) lpFilePart); else return GetFullPathNameA ((LPCSTR) lpFileName, nBufferLength, (LPSTR) lpBuffer, (LPSTR *) lpFilePart); } BOOL qxeDefineDosDevice (DWORD dwFlags, const Extbyte * lpDeviceName, const Extbyte * lpTargetPath) { if (XEUNICODE_P) return DefineDosDeviceW (dwFlags, (LPCWSTR) lpDeviceName, (LPCWSTR) lpTargetPath); else return DefineDosDeviceA (dwFlags, (LPCSTR) lpDeviceName, (LPCSTR) lpTargetPath); } DWORD qxeQueryDosDevice (const Extbyte * lpDeviceName, Extbyte * lpTargetPath, DWORD ucchMax) { if (XEUNICODE_P) return QueryDosDeviceW ((LPCWSTR) lpDeviceName, (LPWSTR) lpTargetPath, ucchMax); else return QueryDosDeviceA ((LPCSTR) lpDeviceName, (LPSTR) lpTargetPath, ucchMax); } HANDLE qxeCreateFile (const Extbyte * lpFileName, DWORD dwDesiredAccess, DWORD dwShareMode, LPSECURITY_ATTRIBUTES lpSecurityAttributes, DWORD dwCreationDisposition, DWORD dwFlagsAndAttributes, HANDLE hTemplateFile) { if (XEUNICODE_P) return CreateFileW ((LPCWSTR) lpFileName, dwDesiredAccess, dwShareMode, lpSecurityAttributes, dwCreationDisposition, dwFlagsAndAttributes, hTemplateFile); else return CreateFileA ((LPCSTR) lpFileName, dwDesiredAccess, dwShareMode, lpSecurityAttributes, dwCreationDisposition, dwFlagsAndAttributes, hTemplateFile); } BOOL qxeSetFileAttributes (const Extbyte * lpFileName, DWORD dwFileAttributes) { if (XEUNICODE_P) return SetFileAttributesW ((LPCWSTR) lpFileName, dwFileAttributes); else return SetFileAttributesA ((LPCSTR) lpFileName, dwFileAttributes); } DWORD qxeGetFileAttributes (const Extbyte * lpFileName) { if (XEUNICODE_P) return GetFileAttributesW ((LPCWSTR) lpFileName); else return GetFileAttributesA ((LPCSTR) lpFileName); } BOOL qxeGetFileAttributesEx (const Extbyte * lpFileName, GET_FILEEX_INFO_LEVELS fInfoLevelId, LPVOID lpFileInformation) { if (XEUNICODE_P) return GetFileAttributesExW ((LPCWSTR) lpFileName, fInfoLevelId, lpFileInformation); else return GetFileAttributesExA ((LPCSTR) lpFileName, fInfoLevelId, lpFileInformation); } DWORD qxeGetCompressedFileSize (const Extbyte * lpFileName, LPDWORD lpFileSizeHigh) { if (XEUNICODE_P) return GetCompressedFileSizeW ((LPCWSTR) lpFileName, lpFileSizeHigh); else return GetCompressedFileSizeA ((LPCSTR) lpFileName, lpFileSizeHigh); } BOOL qxeDeleteFile (const Extbyte * lpFileName) { if (XEUNICODE_P) return DeleteFileW ((LPCWSTR) lpFileName); else return DeleteFileA ((LPCSTR) lpFileName); } /* Error if FindFirstFileEx used: split-sized LPWIN32_FIND_DATA; not used, NT 4.0+ only */ /* Skipping FindFirstFile because split-sized LPWIN32_FIND_DATA */ /* Skipping FindNextFile because split-sized LPWIN32_FIND_DATA */ DWORD qxeSearchPath (const Extbyte * lpPath, const Extbyte * lpFileName, const Extbyte * lpExtension, DWORD nBufferLength, Extbyte * lpBuffer, Extbyte * * lpFilePart) { if (XEUNICODE_P) return SearchPathW ((LPCWSTR) lpPath, (LPCWSTR) lpFileName, (LPCWSTR) lpExtension, nBufferLength, (LPWSTR) lpBuffer, (LPWSTR *) lpFilePart); else return SearchPathA ((LPCSTR) lpPath, (LPCSTR) lpFileName, (LPCSTR) lpExtension, nBufferLength, (LPSTR) lpBuffer, (LPSTR *) lpFilePart); } BOOL qxeCopyFile (const Extbyte * lpExistingFileName, const Extbyte * lpNewFileName, BOOL bFailIfExists) { if (XEUNICODE_P) return CopyFileW ((LPCWSTR) lpExistingFileName, (LPCWSTR) lpNewFileName, bFailIfExists); else return CopyFileA ((LPCSTR) lpExistingFileName, (LPCSTR) lpNewFileName, bFailIfExists); } /* NOTE: NT 4.0+ only */ BOOL qxeCopyFileEx (const Extbyte * lpExistingFileName, const Extbyte * lpNewFileName, LPPROGRESS_ROUTINE lpProgressRoutine, LPVOID lpData, LPBOOL pbCancel, DWORD dwCopyFlags) { if (XEUNICODE_P) return CopyFileExW ((LPCWSTR) lpExistingFileName, (LPCWSTR) lpNewFileName, lpProgressRoutine, lpData, pbCancel, dwCopyFlags); else return CopyFileExA ((LPCSTR) lpExistingFileName, (LPCSTR) lpNewFileName, lpProgressRoutine, lpData, pbCancel, dwCopyFlags); } BOOL qxeMoveFile (const Extbyte * lpExistingFileName, const Extbyte * lpNewFileName) { if (XEUNICODE_P) return MoveFileW ((LPCWSTR) lpExistingFileName, (LPCWSTR) lpNewFileName); else return MoveFileA ((LPCSTR) lpExistingFileName, (LPCSTR) lpNewFileName); } BOOL qxeMoveFileEx (const Extbyte * lpExistingFileName, const Extbyte * lpNewFileName, DWORD dwFlags) { if (XEUNICODE_P) return MoveFileExW ((LPCWSTR) lpExistingFileName, (LPCWSTR) lpNewFileName, dwFlags); else return MoveFileExA ((LPCSTR) lpExistingFileName, (LPCSTR) lpNewFileName, dwFlags); } /* Error if MoveFileWithProgress used: NT 5.0+ only */ /* Error if CreateHardLink used: NT 5.0+ only */ HANDLE qxeCreateNamedPipe (const Extbyte * lpName, DWORD dwOpenMode, DWORD dwPipeMode, DWORD nMaxInstances, DWORD nOutBufferSize, DWORD nInBufferSize, DWORD nDefaultTimeOut, LPSECURITY_ATTRIBUTES lpSecurityAttributes) { if (XEUNICODE_P) return CreateNamedPipeW ((LPCWSTR) lpName, dwOpenMode, dwPipeMode, nMaxInstances, nOutBufferSize, nInBufferSize, nDefaultTimeOut, lpSecurityAttributes); else return CreateNamedPipeA ((LPCSTR) lpName, dwOpenMode, dwPipeMode, nMaxInstances, nOutBufferSize, nInBufferSize, nDefaultTimeOut, lpSecurityAttributes); } BOOL qxeGetNamedPipeHandleState (HANDLE hNamedPipe, LPDWORD lpState, LPDWORD lpCurInstances, LPDWORD lpMaxCollectionCount, LPDWORD lpCollectDataTimeout, Extbyte * lpUserName, DWORD nMaxUserNameSize) { if (XEUNICODE_P) return GetNamedPipeHandleStateW (hNamedPipe, lpState, lpCurInstances, lpMaxCollectionCount, lpCollectDataTimeout, (LPWSTR) lpUserName, nMaxUserNameSize); else return GetNamedPipeHandleStateA (hNamedPipe, lpState, lpCurInstances, lpMaxCollectionCount, lpCollectDataTimeout, (LPSTR) lpUserName, nMaxUserNameSize); } BOOL qxeCallNamedPipe (const Extbyte * lpNamedPipeName, LPVOID lpInBuffer, DWORD nInBufferSize, LPVOID lpOutBuffer, DWORD nOutBufferSize, LPDWORD lpBytesRead, DWORD nTimeOut) { if (XEUNICODE_P) return CallNamedPipeW ((LPCWSTR) lpNamedPipeName, lpInBuffer, nInBufferSize, lpOutBuffer, nOutBufferSize, lpBytesRead, nTimeOut); else return CallNamedPipeA ((LPCSTR) lpNamedPipeName, lpInBuffer, nInBufferSize, lpOutBuffer, nOutBufferSize, lpBytesRead, nTimeOut); } BOOL qxeWaitNamedPipe (const Extbyte * lpNamedPipeName, DWORD nTimeOut) { if (XEUNICODE_P) return WaitNamedPipeW ((LPCWSTR) lpNamedPipeName, nTimeOut); else return WaitNamedPipeA ((LPCSTR) lpNamedPipeName, nTimeOut); } BOOL qxeSetVolumeLabel (const Extbyte * lpRootPathName, const Extbyte * lpVolumeName) { if (XEUNICODE_P) return SetVolumeLabelW ((LPCWSTR) lpRootPathName, (LPCWSTR) lpVolumeName); else return SetVolumeLabelA ((LPCSTR) lpRootPathName, (LPCSTR) lpVolumeName); } BOOL qxeGetVolumeInformation (const Extbyte * lpRootPathName, Extbyte * lpVolumeNameBuffer, DWORD nVolumeNameSize, LPDWORD lpVolumeSerialNumber, LPDWORD lpMaximumComponentLength, LPDWORD lpFileSystemFlags, Extbyte * lpFileSystemNameBuffer, DWORD nFileSystemNameSize) { if (XEUNICODE_P) return GetVolumeInformationW ((LPCWSTR) lpRootPathName, (LPWSTR) lpVolumeNameBuffer, nVolumeNameSize, lpVolumeSerialNumber, lpMaximumComponentLength, lpFileSystemFlags, (LPWSTR) lpFileSystemNameBuffer, nFileSystemNameSize); else return GetVolumeInformationA ((LPCSTR) lpRootPathName, (LPSTR) lpVolumeNameBuffer, nVolumeNameSize, lpVolumeSerialNumber, lpMaximumComponentLength, lpFileSystemFlags, (LPSTR) lpFileSystemNameBuffer, nFileSystemNameSize); } BOOL qxeClearEventLog (HANDLE hEventLog, const Extbyte * lpBackupFileName) { if (XEUNICODE_P) return ClearEventLogW (hEventLog, (LPCWSTR) lpBackupFileName); else return ClearEventLogA (hEventLog, (LPCSTR) lpBackupFileName); } BOOL qxeBackupEventLog (HANDLE hEventLog, const Extbyte * lpBackupFileName) { if (XEUNICODE_P) return BackupEventLogW (hEventLog, (LPCWSTR) lpBackupFileName); else return BackupEventLogA (hEventLog, (LPCSTR) lpBackupFileName); } HANDLE qxeOpenEventLog (const Extbyte * lpUNCServerName, const Extbyte * lpSourceName) { if (XEUNICODE_P) return OpenEventLogW ((LPCWSTR) lpUNCServerName, (LPCWSTR) lpSourceName); else return OpenEventLogA ((LPCSTR) lpUNCServerName, (LPCSTR) lpSourceName); } HANDLE qxeRegisterEventSource (const Extbyte * lpUNCServerName, const Extbyte * lpSourceName) { if (XEUNICODE_P) return RegisterEventSourceW ((LPCWSTR) lpUNCServerName, (LPCWSTR) lpSourceName); else return RegisterEventSourceA ((LPCSTR) lpUNCServerName, (LPCSTR) lpSourceName); } HANDLE qxeOpenBackupEventLog (const Extbyte * lpUNCServerName, const Extbyte * lpFileName) { if (XEUNICODE_P) return OpenBackupEventLogW ((LPCWSTR) lpUNCServerName, (LPCWSTR) lpFileName); else return OpenBackupEventLogA ((LPCSTR) lpUNCServerName, (LPCSTR) lpFileName); } BOOL qxeReadEventLog (HANDLE hEventLog, DWORD dwReadFlags, DWORD dwRecordOffset, LPVOID lpBuffer, DWORD nNumberOfBytesToRead, DWORD * pnBytesRead, DWORD * pnMinNumberOfBytesNeeded) { if (XEUNICODE_P) return ReadEventLogW (hEventLog, dwReadFlags, dwRecordOffset, lpBuffer, nNumberOfBytesToRead, pnBytesRead, pnMinNumberOfBytesNeeded); else return ReadEventLogA (hEventLog, dwReadFlags, dwRecordOffset, lpBuffer, nNumberOfBytesToRead, pnBytesRead, pnMinNumberOfBytesNeeded); } BOOL qxeReportEvent (HANDLE hEventLog, WORD wType, WORD wCategory, DWORD dwEventID, PSID lpUserSid, WORD wNumStrings, DWORD dwDataSize, const Extbyte * * lpStrings, LPVOID lpRawData) { if (XEUNICODE_P) return ReportEventW (hEventLog, wType, wCategory, dwEventID, lpUserSid, wNumStrings, dwDataSize, (LPCWSTR *) lpStrings, lpRawData); else return ReportEventA (hEventLog, wType, wCategory, dwEventID, lpUserSid, wNumStrings, dwDataSize, (LPCSTR *) lpStrings, lpRawData); } BOOL qxeAccessCheckAndAuditAlarm (const Extbyte * SubsystemName, LPVOID HandleId, Extbyte * ObjectTypeName, Extbyte * ObjectName, PSECURITY_DESCRIPTOR SecurityDescriptor, DWORD DesiredAccess, PGENERIC_MAPPING GenericMapping, BOOL ObjectCreation, LPDWORD GrantedAccess, LPBOOL AccessStatus, LPBOOL pfGenerateOnClose) { if (XEUNICODE_P) return AccessCheckAndAuditAlarmW ((LPCWSTR) SubsystemName, HandleId, (LPWSTR) ObjectTypeName, (LPWSTR) ObjectName, SecurityDescriptor, DesiredAccess, GenericMapping, ObjectCreation, GrantedAccess, AccessStatus, pfGenerateOnClose); else return AccessCheckAndAuditAlarmA ((LPCSTR) SubsystemName, HandleId, (LPSTR) ObjectTypeName, (LPSTR) ObjectName, SecurityDescriptor, DesiredAccess, GenericMapping, ObjectCreation, GrantedAccess, AccessStatus, pfGenerateOnClose); } /* Error if AccessCheckByTypeAndAuditAlarm used: NT 5.0+ only */ /* Error if AccessCheckByTypeResultListAndAuditAlarm used: NT 5.0+ only */ BOOL qxeObjectOpenAuditAlarm (const Extbyte * SubsystemName, LPVOID HandleId, Extbyte * ObjectTypeName, Extbyte * ObjectName, PSECURITY_DESCRIPTOR pSecurityDescriptor, HANDLE ClientToken, DWORD DesiredAccess, DWORD GrantedAccess, PPRIVILEGE_SET Privileges, BOOL ObjectCreation, BOOL AccessGranted, LPBOOL GenerateOnClose) { if (XEUNICODE_P) return ObjectOpenAuditAlarmW ((LPCWSTR) SubsystemName, HandleId, (LPWSTR) ObjectTypeName, (LPWSTR) ObjectName, pSecurityDescriptor, ClientToken, DesiredAccess, GrantedAccess, Privileges, ObjectCreation, AccessGranted, GenerateOnClose); else return ObjectOpenAuditAlarmA ((LPCSTR) SubsystemName, HandleId, (LPSTR) ObjectTypeName, (LPSTR) ObjectName, pSecurityDescriptor, ClientToken, DesiredAccess, GrantedAccess, Privileges, ObjectCreation, AccessGranted, GenerateOnClose); } BOOL qxeObjectPrivilegeAuditAlarm (const Extbyte * SubsystemName, LPVOID HandleId, HANDLE ClientToken, DWORD DesiredAccess, PPRIVILEGE_SET Privileges, BOOL AccessGranted) { if (XEUNICODE_P) return ObjectPrivilegeAuditAlarmW ((LPCWSTR) SubsystemName, HandleId, ClientToken, DesiredAccess, Privileges, AccessGranted); else return ObjectPrivilegeAuditAlarmA ((LPCSTR) SubsystemName, HandleId, ClientToken, DesiredAccess, Privileges, AccessGranted); } BOOL qxeObjectCloseAuditAlarm (const Extbyte * SubsystemName, LPVOID HandleId, BOOL GenerateOnClose) { if (XEUNICODE_P) return ObjectCloseAuditAlarmW ((LPCWSTR) SubsystemName, HandleId, GenerateOnClose); else return ObjectCloseAuditAlarmA ((LPCSTR) SubsystemName, HandleId, GenerateOnClose); } BOOL qxeObjectDeleteAuditAlarm (const Extbyte * SubsystemName, LPVOID HandleId, BOOL GenerateOnClose) { if (XEUNICODE_P) return ObjectDeleteAuditAlarmW ((LPCWSTR) SubsystemName, HandleId, GenerateOnClose); else return ObjectDeleteAuditAlarmA ((LPCSTR) SubsystemName, HandleId, GenerateOnClose); } BOOL qxePrivilegedServiceAuditAlarm (const Extbyte * SubsystemName, const Extbyte * ServiceName, HANDLE ClientToken, PPRIVILEGE_SET Privileges, BOOL AccessGranted) { if (XEUNICODE_P) return PrivilegedServiceAuditAlarmW ((LPCWSTR) SubsystemName, (LPCWSTR) ServiceName, ClientToken, Privileges, AccessGranted); else return PrivilegedServiceAuditAlarmA ((LPCSTR) SubsystemName, (LPCSTR) ServiceName, ClientToken, Privileges, AccessGranted); } BOOL qxeSetFileSecurity (const Extbyte * lpFileName, SECURITY_INFORMATION SecurityInformation, PSECURITY_DESCRIPTOR pSecurityDescriptor) { if (XEUNICODE_P) return SetFileSecurityW ((LPCWSTR) lpFileName, SecurityInformation, pSecurityDescriptor); else return SetFileSecurityA ((LPCSTR) lpFileName, SecurityInformation, pSecurityDescriptor); } BOOL qxeGetFileSecurity (const Extbyte * lpFileName, SECURITY_INFORMATION RequestedInformation, PSECURITY_DESCRIPTOR pSecurityDescriptor, DWORD nLength, LPDWORD lpnLengthNeeded) { if (XEUNICODE_P) return GetFileSecurityW ((LPCWSTR) lpFileName, RequestedInformation, pSecurityDescriptor, nLength, lpnLengthNeeded); else return GetFileSecurityA ((LPCSTR) lpFileName, RequestedInformation, pSecurityDescriptor, nLength, lpnLengthNeeded); } HANDLE qxeFindFirstChangeNotification (const Extbyte * lpPathName, BOOL bWatchSubtree, DWORD dwNotifyFilter) { if (XEUNICODE_P) return FindFirstChangeNotificationW ((LPCWSTR) lpPathName, bWatchSubtree, dwNotifyFilter); else return FindFirstChangeNotificationA ((LPCSTR) lpPathName, bWatchSubtree, dwNotifyFilter); } /* Error if ReadDirectoryChanges used: Unicode-only */ BOOL qxeIsBadStringPtr (const Extbyte * lpsz, UINT ucchMax) { if (XEUNICODE_P) return IsBadStringPtrW ((LPCWSTR) lpsz, ucchMax); else return IsBadStringPtrA ((LPCSTR) lpsz, ucchMax); } BOOL qxeLookupAccountSid (const Extbyte * lpSystemName, PSID Sid, Extbyte * Name, LPDWORD cbName, Extbyte * ReferencedDomainName, LPDWORD cbReferencedDomainName, PSID_NAME_USE peUse) { if (XEUNICODE_P) return LookupAccountSidW ((LPCWSTR) lpSystemName, Sid, (LPWSTR) Name, cbName, (LPWSTR) ReferencedDomainName, cbReferencedDomainName, peUse); else return LookupAccountSidA ((LPCSTR) lpSystemName, Sid, (LPSTR) Name, cbName, (LPSTR) ReferencedDomainName, cbReferencedDomainName, peUse); } BOOL qxeLookupAccountName (const Extbyte * lpSystemName, const Extbyte * lpAccountName, PSID Sid, LPDWORD cbSid, Extbyte * ReferencedDomainName, LPDWORD cbReferencedDomainName, PSID_NAME_USE peUse) { if (XEUNICODE_P) return LookupAccountNameW ((LPCWSTR) lpSystemName, (LPCWSTR) lpAccountName, Sid, cbSid, (LPWSTR) ReferencedDomainName, cbReferencedDomainName, peUse); else return LookupAccountNameA ((LPCSTR) lpSystemName, (LPCSTR) lpAccountName, Sid, cbSid, (LPSTR) ReferencedDomainName, cbReferencedDomainName, peUse); } BOOL qxeLookupPrivilegeValue (const Extbyte * lpSystemName, const Extbyte * lpName, PLUID lpLuid) { if (XEUNICODE_P) return LookupPrivilegeValueW ((LPCWSTR) lpSystemName, (LPCWSTR) lpName, lpLuid); else return LookupPrivilegeValueA ((LPCSTR) lpSystemName, (LPCSTR) lpName, lpLuid); } BOOL qxeLookupPrivilegeName (const Extbyte * lpSystemName, PLUID lpLuid, Extbyte * lpName, LPDWORD cbName) { if (XEUNICODE_P) return LookupPrivilegeNameW ((LPCWSTR) lpSystemName, lpLuid, (LPWSTR) lpName, cbName); else return LookupPrivilegeNameA ((LPCSTR) lpSystemName, lpLuid, (LPSTR) lpName, cbName); } BOOL qxeLookupPrivilegeDisplayName (const Extbyte * lpSystemName, const Extbyte * lpName, Extbyte * lpDisplayName, LPDWORD cbDisplayName, LPDWORD lpLanguageId) { if (XEUNICODE_P) return LookupPrivilegeDisplayNameW ((LPCWSTR) lpSystemName, (LPCWSTR) lpName, (LPWSTR) lpDisplayName, cbDisplayName, lpLanguageId); else return LookupPrivilegeDisplayNameA ((LPCSTR) lpSystemName, (LPCSTR) lpName, (LPSTR) lpDisplayName, cbDisplayName, lpLanguageId); } BOOL qxeBuildCommDCB (const Extbyte * lpDef, LPDCB lpDCB) { if (XEUNICODE_P) return BuildCommDCBW ((LPCWSTR) lpDef, lpDCB); else return BuildCommDCBA ((LPCSTR) lpDef, lpDCB); } BOOL qxeBuildCommDCBAndTimeouts (const Extbyte * lpDef, LPDCB lpDCB, LPCOMMTIMEOUTS lpCommTimeouts) { if (XEUNICODE_P) return BuildCommDCBAndTimeoutsW ((LPCWSTR) lpDef, lpDCB, lpCommTimeouts); else return BuildCommDCBAndTimeoutsA ((LPCSTR) lpDef, lpDCB, lpCommTimeouts); } BOOL qxeCommConfigDialog (const Extbyte * lpszName, HWND hWnd, LPCOMMCONFIG lpCC) { if (XEUNICODE_P) return CommConfigDialogW ((LPCWSTR) lpszName, hWnd, lpCC); else return CommConfigDialogA ((LPCSTR) lpszName, hWnd, lpCC); } BOOL qxeGetDefaultCommConfig (const Extbyte * lpszName, LPCOMMCONFIG lpCC, LPDWORD lpdwSize) { if (XEUNICODE_P) return GetDefaultCommConfigW ((LPCWSTR) lpszName, lpCC, lpdwSize); else return GetDefaultCommConfigA ((LPCSTR) lpszName, lpCC, lpdwSize); } BOOL qxeSetDefaultCommConfig (const Extbyte * lpszName, LPCOMMCONFIG lpCC, DWORD dwSize) { if (XEUNICODE_P) return SetDefaultCommConfigW ((LPCWSTR) lpszName, lpCC, dwSize); else return SetDefaultCommConfigA ((LPCSTR) lpszName, lpCC, dwSize); } BOOL qxeGetComputerName (Extbyte * lpBuffer, LPDWORD nSize) { if (XEUNICODE_P) return GetComputerNameW ((LPWSTR) lpBuffer, nSize); else return GetComputerNameA ((LPSTR) lpBuffer, nSize); } BOOL qxeSetComputerName (const Extbyte * lpComputerName) { if (XEUNICODE_P) return SetComputerNameW ((LPCWSTR) lpComputerName); else return SetComputerNameA ((LPCSTR) lpComputerName); } BOOL qxeGetUserName (Extbyte * lpBuffer, LPDWORD nSize) { if (XEUNICODE_P) return GetUserNameW ((LPWSTR) lpBuffer, nSize); else return GetUserNameA ((LPSTR) lpBuffer, nSize); } BOOL qxeLogonUser (Extbyte * lpszUsername, Extbyte * lpszDomain, Extbyte * lpszPassword, DWORD dwLogonType, DWORD dwLogonProvider, PHANDLE phToken) { if (XEUNICODE_P) return LogonUserW ((LPWSTR) lpszUsername, (LPWSTR) lpszDomain, (LPWSTR) lpszPassword, dwLogonType, dwLogonProvider, phToken); else return LogonUserA ((LPSTR) lpszUsername, (LPSTR) lpszDomain, (LPSTR) lpszPassword, dwLogonType, dwLogonProvider, phToken); } BOOL qxeCreateProcessAsUser (HANDLE hToken, const Extbyte * lpApplicationName, Extbyte * lpCommandLine, LPSECURITY_ATTRIBUTES lpProcessAttributes, LPSECURITY_ATTRIBUTES lpThreadAttributes, BOOL bInheritHandles, DWORD dwCreationFlags, LPVOID lpEnvironment, const Extbyte * lpCurrentDirectory, LPSTARTUPINFOW lpStartupInfo, LPPROCESS_INFORMATION lpProcessInformation) { if (XEUNICODE_P) return CreateProcessAsUserW (hToken, (LPCWSTR) lpApplicationName, (LPWSTR) lpCommandLine, lpProcessAttributes, lpThreadAttributes, bInheritHandles, dwCreationFlags, lpEnvironment, (LPCWSTR) lpCurrentDirectory, lpStartupInfo, lpProcessInformation); else return CreateProcessAsUserA (hToken, (LPCSTR) lpApplicationName, (LPSTR) lpCommandLine, lpProcessAttributes, lpThreadAttributes, bInheritHandles, dwCreationFlags, lpEnvironment, (LPCSTR) lpCurrentDirectory, (LPSTARTUPINFOA) lpStartupInfo, lpProcessInformation); } /* Error if GetCurrentHwProfile used: split-sized LPHW_PROFILE_INFO; NT 4.0+ only */ /* Error if GetVersionEx used: split-sized LPOSVERSIONINFO */ /* Error if CreateJobObject used: NT 5.0+ only */ /* Error if OpenJobObject used: NT 5.0+ only */ /*----------------------------------------------------------------------*/ /* Processing file ACLAPI.h */ /*----------------------------------------------------------------------*/ DWORD qxeGetNamedSecurityInfo (IN Extbyte * pObjectName, IN SE_OBJECT_TYPE ObjectType, IN SECURITY_INFORMATION SecurityInfo, OUT PSID * ppsidOowner, OUT PSID * ppsidGroup, OUT PACL * ppDacl, OUT PACL * ppSacl, OUT PSECURITY_DESCRIPTOR * ppSecurityDescriptor) { if (XEUNICODE_P) return GetNamedSecurityInfoW ((IN LPWSTR) pObjectName, ObjectType, SecurityInfo, ppsidOowner, ppsidGroup, ppDacl, ppSacl, ppSecurityDescriptor); else return GetNamedSecurityInfoA ((IN LPSTR) pObjectName, ObjectType, SecurityInfo, ppsidOowner, ppsidGroup, ppDacl, ppSacl, ppSecurityDescriptor); }