/*++
Copyright (c) 1989 Microsoft Corporation
Module Name:
os2nt.h
Abstract:
Prototypes for NT functions that are called from Win32 only os2ss files.
Author:
Michael Jarus (mjarus) 21-Dec-1992
Environment:
User Mode Only
Revision History:
--*/
/****************************************
* Definitions from nt.h and ntrtl.h
***************************************/
#ifndef NT_INCLUDED // or _NTRTL_
VOID
RtlFillMemoryUlong (
IN PVOID Destination,
IN ULONG Length,
IN ULONG Pattern
);
#if DBG
#define KdPrint(_x_) DbgPrint _x_
ULONG
DbgPrint(
PCH Format,
...
);
VOID
RtlAssert(
PVOID FailedAssertion,
PVOID FileName,
ULONG LineNumber,
PCHAR Message OPTIONAL
);
#define ASSERT( exp ) \
if (!(exp)) \
RtlAssert( #exp, __FILE__, __LINE__, NULL )
#define ASSERTMSG( msg, exp ) \
if (!(exp)) \
RtlAssert( #exp, __FILE__, __LINE__, msg )
#else
#define KdPrint(_x_)
#define ASSERT( exp )
#define ASSERTMSG( msg, exp )
#endif // DBG
#endif // NT_INCLUDED
/************************************
* Internal definitions from Win32
***********************************/
BOOL
VerifyConsoleIoHandle(
HANDLE hIoHandle
);
#ifdef DBCS
// MSKK Feb.10.1993 V-AkihiS
/*******************************************
* Intrenal definitions from Win32 for DBCS
*******************************************/
BOOL
GetConsoleNlsMode(
IN HANDLE hConsole,
OUT PDWORD lpdwNlsMode
);
BOOL
SetConsoleNlsMode(
IN HANDLE hConsole,
IN DWORD fdwNlsMode
);
// MSKK Jul.02.1992 KazuM
BOOL
GetConsoleCharType(
IN HANDLE hConsole,
IN COORD coordCheck,
OUT PDWORD pdwType
);
#define CHAR_TYPE_SBCS 0 // Displayed SBCS character
#define CHAR_TYPE_LEADING 2 // Displayed leading byte of DBCS
#define CHAR_TYPE_TRAILING 3 // Displayed trailing byte of DBCS
#endif
#ifdef JAPAN
// MSKK May.11.1993 V-AkihiS
// kbdjpn.h
//
// Returned this value as keyboard type of GetKeyboardType()
//
#define KBD_TYPE_JAPAN 7
// There are Microsoft keyboard types
#define SUB_KBD_TYPE_MICROSOFT 0x00
#define MICROSOFT_KBD_101_TYPE 0
#define MICROSOFT_KBD_AX_TYPE 1
#define MICROSOFT_KBD_106_TYPE 2
#define MICROSOFT_KBD_002_TYPE 3
#define MICROSOFT_KBD_001_TYPE 4
#define MICROSOFT_KBD_FUNC 12
// There are AX keyboard types
#define SUB_KBD_TYPE_AX 0x01
#define AX_KBD_DESKTOP_TYPE 1
#define AX_KBD_DESKTOP_FUNC 12
// There are EPSON keyboard types
#define SUB_KBD_TYPE_EPSON 0x04
// There are FUJITSU keyboard types
#define SUB_KBD_TYPE_FUJITSU 0x05
#define FUJITSU_KBD_JIS_TYPE 0
#define FUJITSU_KBD_OASYS_TYPE 1
// There are IBM keyboard types
#define SUB_KBD_TYPE_IBM 0x07
#define IBM_KBD_001_TYPE 1
#define IBM_KBD_002_TYPE 2
#define IBM_KBD_003_TYPE 3
#define IBM_KBD_A01_TYPE 4
#define IBM_KBD_S_TYPE 5
#define IBM_KBD_002_FUNC 12
#define IBM_KBD_A01_FUNC 12
// There are MATSUSITA keyboard types
#define SUB_KBD_TYPE_MATSUSITA 0x0a
// There are NEC keyboard types
#define SUB_KBD_TYPE_NEC 0x0d
#define NEC_KBD_NORMAL_TYPE 1
#define NEC_KBD_N_MODE_TYPE 2
#define NEC_KBD_H_MODE_TYPE 3
#define NEC_KBD_LAPTOP_TYPE 4
#define NEC_KBD_NORMAL_FUNC 15
#define NEC_KBD_N_MODE_FUNC 10
#define NEC_KBD_H_MODE_FUNC 15
#define NEC_KBD_LAPTOP_FUNC 15
// There are TOSHIBA keyboard types
#define SUB_KBD_TYPE_TOSHIBA 0x12
#define TOSHIBA_KBD_LAPTOP_TYPE 1
#define TOSHIBA_KBD_LAPTOP_TENKEY_TYPE 2
#define TOSHIBA_KBD_DESKTOP_TYPE 3
#define TOSHIBA_KBD_J3100GX_TYPE 4
#define TOSHIBA_KBD_LAPTOP_FUNC 10
#define TOSHIBA_KBD_LAPTOP_TENKEY_FUNC 10
#define TOSHIBA_KBD_DESKTOP_FUNC 12
#define TOSHIBA_KBD_J3100GX_FUNC 10
#endif
/********************************************************
* Definitions of debug Win32 API (ssrtl\sswinapi.c)
*******************************************************/
#if DBG
BOOL
Or2WinPeekConsoleInputA(
PSZ FuncName,
HANDLE hConsoleInput,
PINPUT_RECORD lpBuffer,
DWORD nLength,
LPDWORD lpNumberOfEventsRead
);
BOOL
Or2WinReadConsoleInputA(
PSZ FuncName,
HANDLE hConsoleInput,
PINPUT_RECORD lpBuffer,
DWORD nLength,
LPDWORD lpNumberOfEventsRead
);
BOOL
Or2WinWriteConsoleInputA(
PSZ FuncName,
HANDLE hConsoleInput,
PINPUT_RECORD lpBuffer,
DWORD nLength,
LPDWORD lpNumberOfEventsWritten
);
BOOL
Or2WinReadConsoleOutputCharacterA(
PSZ FuncName,
HANDLE hConsoleOutput,
LPSTR lpCharacter,
DWORD nLength,
COORD dwReadCoord,
LPDWORD lpNumberOfCharsRead
);
BOOL
Or2WinReadConsoleOutputCharacterW(
PSZ FuncName,
HANDLE hConsoleOutput,
LPWSTR lpCharacter,
DWORD nLength,
COORD dwReadCoord,
LPDWORD lpNumberOfCharsRead
);
BOOL
Or2WinReadConsoleOutputAttribute(
PSZ FuncName,
HANDLE hConsoleOutput,
LPWORD lpAttribute,
DWORD nLength,
COORD dwReadCoord,
LPDWORD lpNumberOfAttrsRead
);
BOOL
Or2WinWriteConsoleOutputCharacterA(
PSZ FuncName,
HANDLE hConsoleOutput,
LPSTR lpCharacter,
DWORD nLength,
COORD dwWriteCoord,
LPDWORD lpNumberOfCharsWritten
);
BOOL
Or2WinWriteConsoleOutputCharacterW(
PSZ FuncName,
HANDLE hConsoleOutput,
LPWSTR lpCharacter,
DWORD nLength,
COORD dwWriteCoord,
LPDWORD lpNumberOfCharsWritten
);
BOOL
Or2WinWriteConsoleOutputAttribute(
PSZ FuncName,
HANDLE hConsoleOutput,
LPWORD lpAttribute,
DWORD nLength,
COORD dwWriteCoord,
LPDWORD lpNumberOfAttrsWritten
);
BOOL
Or2WinFillConsoleOutputCharacterA(
PSZ FuncName,
HANDLE hConsoleOutput,
CHAR cCharacter,
DWORD nLength,
COORD dwWriteCoord,
LPDWORD lpNumberOfCharsWritten
);
BOOL
Or2WinFillConsoleOutputAttribute(
PSZ FuncName,
HANDLE hConsoleOutput,
WORD wAttribute,
DWORD nLength,
COORD dwWriteCoord,
LPDWORD lpNumberOfAttrsWritten
);
BOOL
Or2WinGetConsoleMode(
PSZ FuncName,
HANDLE hConsoleHandle,
LPDWORD lpMode
);
BOOL
Or2WinGetNumberOfConsoleInputEvents(
PSZ FuncName,
HANDLE hConsoleInput,
LPDWORD lpNumberOfEvents
);
BOOL
Or2WinGetConsoleScreenBufferInfo(
PSZ FuncName,
HANDLE hConsoleOutput,
PCONSOLE_SCREEN_BUFFER_INFO lpConsoleScreenBufferInfo
);
COORD
Or2WinGetLargestConsoleWindowSize(
PSZ FuncName,
HANDLE hConsoleOutput
);
BOOL
Or2WinGetConsoleCursorInfo(
PSZ FuncName,
HANDLE hConsoleOutput,
PCONSOLE_CURSOR_INFO lpConsoleCursorInfo
);
BOOL
Or2WinGetNumberOfConsoleMouseButtons(
PSZ FuncName,
LPDWORD lpNumberOfMouseButtons
);
BOOL
Or2WinSetConsoleMode(
PSZ FuncName,
HANDLE hConsoleHandle,
DWORD dwMode
);
BOOL
Or2WinSetConsoleActiveScreenBuffer(
PSZ FuncName,
HANDLE hConsoleOutput
);
BOOL
Or2WinSetConsoleScreenBufferSize(
PSZ FuncName,
HANDLE hConsoleOutput,
COORD dwSize
);
BOOL
Or2WinSetConsoleCursorPosition(
PSZ FuncName,
HANDLE hConsoleOutput,
COORD dwCursorPosition
);
BOOL
Or2WinSetConsoleCursorInfo(
PSZ FuncName,
HANDLE hConsoleOutput,
PCONSOLE_CURSOR_INFO lpConsoleCursorInfo
);
BOOL
Or2WinScrollConsoleScreenBufferA(
PSZ FuncName,
HANDLE hConsoleOutput,
PSMALL_RECT lpScrollRectangle,
PSMALL_RECT lpClipRectangle,
COORD dwDestinationOrigin,
PCHAR_INFO lpFill
);
BOOL
Or2WinScrollConsoleScreenBufferW(
PSZ FuncName,
HANDLE hConsoleOutput,
PSMALL_RECT lpScrollRectangle,
PSMALL_RECT lpClipRectangle,
COORD dwDestinationOrigin,
PCHAR_INFO lpFill
);
BOOL
Or2WinSetConsoleWindowInfo(
PSZ FuncName,
HANDLE hConsoleOutput,
BOOL bAbsolute,
PSMALL_RECT lpConsoleWindow
);
BOOL
Or2WinSetConsoleTextAttribute(
PSZ FuncName,
HANDLE hConsoleOutput,
WORD wAttributes
);
BOOL
Or2WinSetConsoleCtrlHandler(
PSZ FuncName,
PHANDLER_ROUTINE HandlerRoutine,
BOOL Add
);
DWORD
Or2WinGetConsoleTitleW(
PSZ FuncName,
LPWSTR lpConsoleTitle,
DWORD nSize
);
BOOL
Or2WinSetConsoleTitleA(
PSZ FuncName,
LPSTR lpConsoleTitle
);
BOOL
Or2WinSetConsoleTitleW(
PSZ FuncName,
LPWSTR lpConsoleTitle
);
BOOL
Or2WinWriteConsoleA(
PSZ FuncName,
HANDLE hConsoleOutput,
CONST VOID *lpBuffer,
DWORD nNumberOfCharsToWrite,
LPDWORD lpNumberOfCharsWritten,
LPVOID lpReserved
);
HANDLE
Or2WinCreateConsoleScreenBuffer(
PSZ FuncName,
DWORD dwDesiredAccess,
DWORD dwShareMode,
LPSECURITY_ATTRIBUTES lpSecurityAttributes,
DWORD dwFlags,
PVOID lpScreenBufferData
);
UINT
Or2WinGetConsoleCP(
PSZ FuncName
);
BOOL
Or2WinSetConsoleCP(
PSZ FuncName,
UINT wCodePageID
);
UINT
Or2WinGetConsoleOutputCP(
PSZ FuncName
);
BOOL
Or2WinSetConsoleOutputCP(
PSZ FuncName,
UINT wCodePageID
);
BOOL
Or2WinBeep(
PSZ FuncName,
DWORD dwFreq,
DWORD dwDuration
);
BOOL
Or2WinCloseHandle(
PSZ FuncName,
HANDLE hObject
);
HANDLE
Or2WinCreateEventW(
PSZ FuncName,
LPSECURITY_ATTRIBUTES lpEventAttributes,
BOOL bManualReset,
BOOL bInitialState,
LPWSTR lpName
);
HANDLE
Or2WinCreateFileA(
PSZ FuncName,
LPCSTR lpFileName,
DWORD dwDesiredAccess,
DWORD dwShareMode,
LPSECURITY_ATTRIBUTES lpSecurityAttributes,
DWORD dwCreationDisposition,
DWORD dwFlagsAndAttributes,
HANDLE hTemplateFile
);
HANDLE
Or2WinCreateFileW(
PSZ FuncName,
LPCWSTR lpFileName,
DWORD dwDesiredAccess,
DWORD dwShareMode,
LPSECURITY_ATTRIBUTES lpSecurityAttributes,
DWORD dwCreationDisposition,
DWORD dwFlagsAndAttributes,
HANDLE hTemplateFile
);
BOOL
Or2WinCreateProcessA(
PSZ FuncName,
LPCSTR lpApplicationName,
LPCSTR lpCommandLine,
LPSECURITY_ATTRIBUTES lpProcessAttributes,
LPSECURITY_ATTRIBUTES lpThreadAttributes,
BOOL bInheritHandles,
DWORD dwCreationFlags,
LPVOID lpEnvironment,
LPSTR lpCurrentDirectory,
LPSTARTUPINFOA lpStartupInfo,
LPPROCESS_INFORMATION lpProcessInformation
);
HANDLE
Or2WinCreateThread(
PSZ FuncName,
LPSECURITY_ATTRIBUTES lpThreadAttributes,
DWORD dwStackSize,
LPTHREAD_START_ROUTINE lpStartAddress,
LPVOID lpParameter,
DWORD dwCreationFlags,
LPDWORD lpThreadId
);
BOOL
Or2WinDuplicateHandle(
PSZ FuncName,
HANDLE hSourceProcessHandle,
HANDLE hSourceHandle,
HANDLE hTargetProcessHandle,
LPHANDLE lpTargetHandle,
DWORD dwDesiredAccess,
BOOL bInheritHandle,
DWORD dwOptions
);
VOID
Or2WinEnterCriticalSection(
PSZ FuncName,
LPCRITICAL_SECTION lpCriticalSection
);
LPSTR
Or2WinGetCommandLineA(
PSZ FuncName
);
COORD
Or2WinGetConsoleFontSize(
PSZ FuncName,
HANDLE hConsoleOutput,
DWORD nFont
);
DWORD
Or2WinGetFileType(
PSZ FuncName,
HANDLE hFile
);
DWORD
Or2WinGetFullPathNameA(
PSZ FuncName,
LPCSTR lpFileName,
DWORD nBufferLength,
LPSTR lpBuffer,
LPSTR *lpFilePart
);
HANDLE
Or2WinGetModuleHandleA(
PSZ FuncName,
LPCSTR lpModuleName
);
HANDLE
Or2WinGetStdHandle(
PSZ FuncName,
DWORD nStdHandle
);
UINT
Or2WinGetSystemDirectoryA(
PSZ FuncName,
LPSTR lpBuffer,
UINT uSize
);
VOID
Or2WinInitializeCriticalSection(
PSZ FuncName,
LPCRITICAL_SECTION lpCriticalSection
);
VOID
Or2WinLeaveCriticalSection(
PSZ FuncName,
LPCRITICAL_SECTION lpCriticalSection
);
int
Or2WinLoadStringA(
PSZ FuncName,
HINSTANCE hInstance,
UINT uID,
LPSTR lpBuffer,
int nBufferMax
);
int
Or2WinMessageBoxA(
PSZ FuncName,
HWND hWnd ,
LPCSTR lpText,
LPCSTR lpCaption ,
UINT uType
);
HANDLE
Or2WinOpenProcess(
PSZ FuncName,
DWORD dwDesiredAccess,
BOOL bInheritHandle,
DWORD dwProcessId
);
DWORD
Or2WinResumeThread(
PSZ FuncName,
HANDLE hThread
);
UINT
Or2WinSetErrorMode(
PSZ FuncName,
UINT uMode
);
BOOL
Or2WinSetEvent(
PSZ FuncName,
HANDLE hEvent
);
BOOL
Or2WinSetStdHandle(
PSZ FuncName,
DWORD nStdHandle,
HANDLE hHandle
);
LCID
Or2WinGetThreadLocale(
PSZ FuncName
);
BOOL
Or2WinSetThreadLocale(
PSZ FuncName,
LCID Locale
);
BOOL
Or2WinSetThreadPriority(
PSZ FuncName,
HANDLE hThread,
int nPriority
);
BOOL
Or2WinSystemParametersInfoA(
PSZ FuncName,
UINT uiAction,
UINT uiParam,
PVOID pvParam,
UINT fWinIni
);
BOOL
Or2WinTerminateThread(
PSZ FuncName,
HANDLE hThread,
DWORD dwExitCode
);
BOOL
Or2WinVerifyConsoleIoHandle(
PSZ FuncName,
HANDLE hIoHandle
);
DWORD
Or2WinWaitForSingleObject(
PSZ FuncName,
HANDLE hHandle,
DWORD dwMilliseconds
);
BOOL
Or2WinWriteFile(
PSZ FuncName,
HANDLE hFile,
CONST VOID *lpBuffer,
DWORD nNumberOfBytesToWrite,
LPDWORD lpNumberOfBytesWritten,
LPOVERLAPPED lpOverlapped
);
int
Or2Win_read(
PSZ FuncName,
int hFile,
void *Buffer,
unsigned int Length
);
BOOL
Or2WinReadFile(
PSZ FuncName,
HANDLE hFile,
LPVOID lpBuffer,
DWORD nNumberOfBytesToRead,
LPDWORD lpNumberOfBytesRead,
LPOVERLAPPED lpOverlapped
);
BOOL
Or2WinIsValidCodePage(
PSZ FuncName,
UINT CodePage
);
UINT
Or2WinGetACP(
PSZ FuncName
);
UINT
Or2WinGetOEMCP(
PSZ FuncName
);
BOOL
Or2WinGetCPInfo(
PSZ FuncName,
UINT CodePage,
LPCPINFO lpCPInfo
);
BOOL
Or2WinIsDBCSLeadByte(
PSZ FuncName,
BYTE TestChar
);
int
Or2WinMultiByteToWideChar(
PSZ FuncName,
UINT CodePage,
DWORD dwFlags,
LPCSTR lpMultiByteStr,
int cchMultiByte,
LPWSTR lpWideCharStr,
int cchWideChar
);
int
Or2WinWideCharToMultiByte(
PSZ FuncName,
UINT CodePage,
DWORD dwFlags,
LPCWSTR lpWideCharStr,
int cchWideChar,
LPSTR lpMultiByteStr,
int cchMultiByte,
LPSTR lpDefaultChar,
LPBOOL lpUsedDefaultChar
);
int
Or2WinCompareStringW(
PSZ FuncName,
LCID Locale,
DWORD dwCmpFlags,
LPCWSTR lpString1,
int cchCount1,
LPCWSTR lpString2,
int cchCount2
);
int
Or2WinLCMapStringW(
PSZ FuncName,
LCID Locale,
DWORD dwMapFlags,
LPCWSTR lpSrcStr,
int cchSrc,
LPWSTR lpDestStr,
int cchDest
);
int
Or2WinGetLocaleInfoW(
PSZ FuncName,
LCID Locale,
LCTYPE LCType,
LPWSTR lpLCData,
int cchData
);
LANGID
Or2WinGetSystemDefaultLangID(
PSZ FuncName
);
LANGID
Or2WinGetUserDefaultLangID(
PSZ FuncName
);
LCID
Or2WinGetSystemDefaultLCID(
PSZ FuncName
);
LCID
Or2WinGetUserDefaultLCID(
PSZ FuncName
);
BOOL
Or2WinGetStringTypeW(
PSZ FuncName,
DWORD dwInfoType,
LPCWSTR lpSrcStr,
int cchSrc,
LPWORD lpCharType
);
int
Or2WinFoldStringW(
PSZ FuncName,
DWORD dwMapFlags,
LPCWSTR lpSrcStr,
int cchSrc,
LPWSTR lpDestStr,
int cchDest
);
HANDLE
Or2WinHeapCreate(
PSZ FuncName,
DWORD flOptions,
DWORD dwInitialSize,
DWORD dwMaximumSize
);
LPSTR
Or2WinHeapAlloc(
PSZ FuncName,
HANDLE hHeap,
DWORD dwFlags,
DWORD dwBytes
);
BOOL
Or2WinHeapFree(
PSZ FuncName,
HANDLE hHeap,
DWORD dwFlags,
LPSTR lpMem
);
#else
#define Or2WinPeekConsoleInputA PeekConsoleInputA
#define Or2WinReadConsoleInputA ReadConsoleInputA
#define Or2WinWriteConsoleInputA WriteConsoleInputA
#define Or2WinReadConsoleOutputCharacterA ReadConsoleOutputCharacterA
#define Or2WinReadConsoleOutputCharacterW ReadConsoleOutputCharacterW
#define Or2WinReadConsoleOutputAttribute ReadConsoleOutputAttribute
#define Or2WinWriteConsoleOutputCharacterA WriteConsoleOutputCharacterA
#define Or2WinWriteConsoleOutputCharacterW WriteConsoleOutputCharacterW
#define Or2WinWriteConsoleOutputAttribute WriteConsoleOutputAttribute
#define Or2WinFillConsoleOutputCharacterA FillConsoleOutputCharacterA
#define Or2WinFillConsoleOutputAttribute FillConsoleOutputAttribute
#define Or2WinGetConsoleMode GetConsoleMode
#define Or2WinGetNumberOfConsoleInputEvents GetNumberOfConsoleInputEvents
#define Or2WinGetConsoleScreenBufferInfo GetConsoleScreenBufferInfo
#define Or2WinGetLargestConsoleWindowSize GetLargestConsoleWindowSize
#define Or2WinGetConsoleCursorInfo GetConsoleCursorInfo
#define Or2WinGetNumberOfConsoleMouseButtons GetNumberOfConsoleMouseButtons
#define Or2WinSetConsoleMode SetConsoleMode
#define Or2WinSetConsoleActiveScreenBuffer SetConsoleActiveScreenBuffer
#define Or2WinSetConsoleScreenBufferSize SetConsoleScreenBufferSize
#define Or2WinSetConsoleCursorPosition SetConsoleCursorPosition
#define Or2WinSetConsoleCursorInfo SetConsoleCursorInfo
#define Or2WinScrollConsoleScreenBufferA ScrollConsoleScreenBufferA
#define Or2WinScrollConsoleScreenBufferW ScrollConsoleScreenBufferW
#define Or2WinSetConsoleWindowInfo SetConsoleWindowInfo
#define Or2WinSetConsoleTextAttribute SetConsoleTextAttribute
#define Or2WinSetConsoleCtrlHandler SetConsoleCtrlHandler
#define Or2WinGetConsoleTitleW GetConsoleTitleW
#define Or2WinSetConsoleTitleA SetConsoleTitleA
#define Or2WinSetConsoleTitleW SetConsoleTitleW
#define Or2WinWriteConsoleA WriteConsoleA
#define Or2WinCreateConsoleScreenBuffer CreateConsoleScreenBuffer
#define Or2WinGetConsoleCP GetConsoleCP
#define Or2WinSetConsoleCP SetConsoleCP
#define Or2WinGetConsoleOutputCP GetConsoleOutputCP
#define Or2WinSetConsoleOutputCP SetConsoleOutputCP
#define Or2WinBeep Beep
#define Or2WinCloseHandle CloseHandle
#define Or2WinCreateEventW CreateEventW
#define Or2WinCreateFileA CreateFileA
#define Or2WinCreateFileW CreateFileW
#define Or2WinCreateProcessA CreateProcessA
#define Or2WinCreateThread CreateThread
#define Or2WinDuplicateHandle DuplicateHandle
#define Or2WinEnterCriticalSection EnterCriticalSection
#define Or2WinGetCommandLineA GetCommandLineA
#define Or2WinGetConsoleFontSize GetConsoleFontSize
#define Or2WinGetCurrentConsoleFont GetCurrentConsoleFont
#define Or2WinGetFileType GetFileType
#define Or2WinGetFullPathNameA GetFullPathNameA
#define Or2WinGetModuleHandleA GetModuleHandleA
#define Or2WinGetStdHandle GetStdHandle
#define Or2WinGetSystemDirectoryA GetSystemDirectoryA
#define Or2WinInitializeCriticalSection InitializeCriticalSection
#define Or2WinLeaveCriticalSection LeaveCriticalSection
#define Or2WinLoadStringA LoadStringA
#define Or2WinMessageBoxA MessageBoxA
#define Or2WinOpenProcess OpenProcess
#define Or2WinResumeThread ResumeThread
#define Or2WinSetErrorMode SetErrorMode
#define Or2WinSetEvent SetEvent
#define Or2WinSetStdHandle SetStdHandle
#define Or2WinGetThreadLocale GetThreadLocale
#define Or2WinSetThreadLocale SetThreadLocale
#define Or2WinSetThreadPriority SetThreadPriority
#define Or2WinSystemParametersInfoA SystemParametersInfoA
#define Or2WinTerminateThread TerminateThread
#define Or2WinVerifyConsoleIoHandle VerifyConsoleIoHandle
#define Or2WinWaitForSingleObject WaitForSingleObject
#define Or2WinWriteFile WriteFile
#define Or2Win_read _read
#define Or2WinReadFile ReadFile
#define Or2WinIsValidCodePage IsValidCodePage
#define Or2WinGetACP GetACP
#define Or2WinGetOEMCP GetOEMCP
#define Or2WinGetCPInfo GetCPInfo
#define Or2WinIsDBCSLeadByte IsDBCSLeadByte
#define Or2WinMultiByteToWideChar MultiByteToWideChar
#define Or2WinWideCharToMultiByte WideCharToMultiByte
#define Or2WinCompareStringW CompareStringW
#define Or2WinLCMapStringW LCMapStringW
#define Or2WinGetLocaleInfoW GetLocaleInfoW
#define Or2WinGetSystemDefaultLangID GetSystemDefaultLangID
#define Or2WinGetUserDefaultLangID GetUserDefaultLangID
#define Or2WinGetSystemDefaultLCID GetSystemDefaultLCID
#define Or2WinGetUserDefaultLCID GetUserDefaultLCID
#define Or2WinGetStringTypeW GetStringTypeW
#define Or2WinFoldStringW FoldStringW
#define Or2WinHeapCreate HeapCreate
#define Or2WinHeapAlloc HeapAlloc
#define Or2WinHeapFree HeapFree
#endif