Implemented terminal.getch() for Windows

This commit is contained in:
miere43 2016-06-23 23:22:38 +03:00
commit dd7a24d8cc
2 changed files with 43 additions and 12 deletions

View file

@ -1016,4 +1016,26 @@ proc wsaCloseEvent*(hEvent: Handle): bool
{.stdcall, importc: "WSACloseEvent", dynlib: "ws2_32.dll".}
proc wsaResetEvent*(hEvent: Handle): bool
{.stdcall, importc: "WSAResetEvent", dynlib: "ws2_32.dll".}
{.stdcall, importc: "WSAResetEvent", dynlib: "ws2_32.dll".}
type
INPUT_RECORD* {.final, pure.} = object
eventType*: int16
padding: array[18, byte]
KEY_EVENT_RECORD* {.final, pure.} = object
eventType*: int16
bKeyDown*: WINBOOL
wRepeatCount*: int16
wVirtualKeyCode*: int16
wVirtualScanCode*: int16
UnicodeChar*: int16
dwControlKeyState*: DWORD
when defined(useWinAnsi):
proc readConsoleInput*(hConsoleInput: Handle, lpBuffer: pointer, nLength: cint,
lpNumberOfEventsRead: ptr cint): cint
{.header: "<windows.h>", importc: "ReadConsoleInputA".}
else:
proc readConsoleInput*(hConsoleInput: Handle, lpBuffer: pointer, nLength: cint,
lpNumberOfEventsRead: ptr cint): cint
{.header: "<windows.h>", importc: "ReadConsoleInputW".}