|
@@ -38,16 +38,30 @@ foreign kernel32 {
|
|
lpNumberOfCharsWritten: LPDWORD,
|
|
lpNumberOfCharsWritten: LPDWORD,
|
|
lpReserved: LPVOID) -> BOOL ---
|
|
lpReserved: LPVOID) -> BOOL ---
|
|
|
|
|
|
|
|
+ PeekConsoleInputW :: proc(hConsoleInput: HANDLE,
|
|
|
|
+ lpBuffer: ^INPUT_RECORD,
|
|
|
|
+ nLength: DWORD,
|
|
|
|
+ lpNumberOfEventsRead: LPDWORD) -> BOOL ---
|
|
|
|
+
|
|
|
|
+ ReadConsoleInputW :: proc(hConsoleInput: HANDLE,
|
|
|
|
+ lpBuffer: ^INPUT_RECORD,
|
|
|
|
+ nLength: DWORD,
|
|
|
|
+ lpNumberOfEventsRead: LPDWORD) -> BOOL ---
|
|
|
|
+
|
|
GetConsoleMode :: proc(hConsoleHandle: HANDLE,
|
|
GetConsoleMode :: proc(hConsoleHandle: HANDLE,
|
|
lpMode: LPDWORD) -> BOOL ---
|
|
lpMode: LPDWORD) -> BOOL ---
|
|
SetConsoleMode :: proc(hConsoleHandle: HANDLE,
|
|
SetConsoleMode :: proc(hConsoleHandle: HANDLE,
|
|
dwMode: DWORD) -> BOOL ---
|
|
dwMode: DWORD) -> BOOL ---
|
|
SetConsoleCursorPosition :: proc(hConsoleHandle: HANDLE,
|
|
SetConsoleCursorPosition :: proc(hConsoleHandle: HANDLE,
|
|
- dwCursorPosition: COORD) -> BOOL ---
|
|
|
|
|
|
+ dwCursorPosition: COORD) -> BOOL ---
|
|
SetConsoleTextAttribute :: proc(hConsoleOutput: HANDLE,
|
|
SetConsoleTextAttribute :: proc(hConsoleOutput: HANDLE,
|
|
- wAttributes: WORD) -> BOOL ---
|
|
|
|
|
|
+ wAttributes: WORD) -> BOOL ---
|
|
|
|
+ GetConsoleCP :: proc() -> UINT ---
|
|
|
|
+ SetConsoleCP :: proc(wCodePageID: UINT) -> BOOL ---
|
|
|
|
+ GetConsoleOutputCP :: proc() -> UINT ---
|
|
SetConsoleOutputCP :: proc(wCodePageID: UINT) -> BOOL ---
|
|
SetConsoleOutputCP :: proc(wCodePageID: UINT) -> BOOL ---
|
|
-
|
|
|
|
|
|
+ FlushConsoleInputBuffer :: proc(hConsoleInput: HANDLE) -> BOOL ---
|
|
|
|
+
|
|
GetFileInformationByHandle :: proc(hFile: HANDLE, lpFileInformation: LPBY_HANDLE_FILE_INFORMATION) -> BOOL ---
|
|
GetFileInformationByHandle :: proc(hFile: HANDLE, lpFileInformation: LPBY_HANDLE_FILE_INFORMATION) -> BOOL ---
|
|
SetHandleInformation :: proc(hObject: HANDLE,
|
|
SetHandleInformation :: proc(hObject: HANDLE,
|
|
dwMask: DWORD,
|
|
dwMask: DWORD,
|
|
@@ -85,6 +99,12 @@ foreign kernel32 {
|
|
RemoveDirectoryW :: proc(lpPathName: LPCWSTR) -> BOOL ---
|
|
RemoveDirectoryW :: proc(lpPathName: LPCWSTR) -> BOOL ---
|
|
SetFileAttributesW :: proc(lpFileName: LPCWSTR, dwFileAttributes: DWORD) -> BOOL ---
|
|
SetFileAttributesW :: proc(lpFileName: LPCWSTR, dwFileAttributes: DWORD) -> BOOL ---
|
|
SetLastError :: proc(dwErrCode: DWORD) ---
|
|
SetLastError :: proc(dwErrCode: DWORD) ---
|
|
|
|
+ GetCommTimeouts :: proc(handle: HANDLE, timeouts: ^COMMTIMEOUTS) -> BOOL ---
|
|
|
|
+ SetCommTimeouts :: proc(handle: HANDLE, timeouts: ^COMMTIMEOUTS) -> BOOL ---
|
|
|
|
+ ClearCommError :: proc(hFile: HANDLE, lpErrors: ^Com_Error, lpStat: ^COMSTAT) -> BOOL ---
|
|
|
|
+ GetCommState :: proc(handle: HANDLE, dcb: ^DCB) -> BOOL ---
|
|
|
|
+ SetCommState :: proc(handle: HANDLE, dcb: ^DCB) -> BOOL ---
|
|
|
|
+ GetCommPorts :: proc(lpPortNumbers: PULONG, uPortNumbersCount: ULONG, puPortNumbersFound: PULONG) -> ULONG ---
|
|
GetCommandLineW :: proc() -> LPCWSTR ---
|
|
GetCommandLineW :: proc() -> LPCWSTR ---
|
|
GetTempPathW :: proc(nBufferLength: DWORD, lpBuffer: LPCWSTR) -> DWORD ---
|
|
GetTempPathW :: proc(nBufferLength: DWORD, lpBuffer: LPCWSTR) -> DWORD ---
|
|
GetCurrentProcess :: proc() -> HANDLE ---
|
|
GetCurrentProcess :: proc() -> HANDLE ---
|
|
@@ -1016,82 +1036,6 @@ PHANDLER_ROUTINE :: HandlerRoutine
|
|
// NOTE(Jeroen, 2024-06-13): As Odin now supports bit_fields, we no longer need
|
|
// NOTE(Jeroen, 2024-06-13): As Odin now supports bit_fields, we no longer need
|
|
// a helper procedure. `init_dcb_with_config` and `get_dcb_config` have been removed.
|
|
// a helper procedure. `init_dcb_with_config` and `get_dcb_config` have been removed.
|
|
|
|
|
|
-DTR_Control :: enum byte {
|
|
|
|
- Disable = 0,
|
|
|
|
- Enable = 1,
|
|
|
|
- Handshake = 2,
|
|
|
|
-}
|
|
|
|
-RTS_Control :: enum byte {
|
|
|
|
- Disable = 0,
|
|
|
|
- Enable = 1,
|
|
|
|
- Handshake = 2,
|
|
|
|
- Toggle = 3,
|
|
|
|
-}
|
|
|
|
-Parity :: enum byte {
|
|
|
|
- None = 0,
|
|
|
|
- Odd = 1,
|
|
|
|
- Even = 2,
|
|
|
|
- Mark = 3,
|
|
|
|
- Space = 4,
|
|
|
|
-}
|
|
|
|
-Stop_Bits :: enum byte {
|
|
|
|
- One = 0,
|
|
|
|
- One_And_A_Half = 1,
|
|
|
|
- Two = 2,
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-DCB :: struct {
|
|
|
|
- DCBlength: DWORD,
|
|
|
|
- BaudRate: DWORD,
|
|
|
|
- using _: bit_field DWORD {
|
|
|
|
- fBinary: bool | 1,
|
|
|
|
- fParity: bool | 1,
|
|
|
|
- fOutxCtsFlow: bool | 1,
|
|
|
|
- fOutxDsrFlow: bool | 1,
|
|
|
|
- fDtrControl: DTR_Control | 2,
|
|
|
|
- fDsrSensitivity: bool | 1,
|
|
|
|
- fTXContinueOnXoff: bool | 1,
|
|
|
|
- fOutX: bool | 1,
|
|
|
|
- fInX: bool | 1,
|
|
|
|
- fErrorChar: bool | 1,
|
|
|
|
- fNull: bool | 1,
|
|
|
|
- fRtsControl: RTS_Control | 2,
|
|
|
|
- fAbortOnError: bool | 1,
|
|
|
|
- },
|
|
|
|
- wReserved: WORD,
|
|
|
|
- XOnLim: WORD,
|
|
|
|
- XOffLim: WORD,
|
|
|
|
- ByteSize: BYTE,
|
|
|
|
- Parity: Parity,
|
|
|
|
- StopBits: Stop_Bits,
|
|
|
|
- XonChar: byte,
|
|
|
|
- XoffChar: byte,
|
|
|
|
- ErrorChar: byte,
|
|
|
|
- EofChar: byte,
|
|
|
|
- EvtChar: byte,
|
|
|
|
- wReserved1: WORD,
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-@(default_calling_convention="system")
|
|
|
|
-foreign kernel32 {
|
|
|
|
- GetCommState :: proc(handle: HANDLE, dcb: ^DCB) -> BOOL ---
|
|
|
|
- SetCommState :: proc(handle: HANDLE, dcb: ^DCB) -> BOOL ---
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-COMMTIMEOUTS :: struct {
|
|
|
|
- ReadIntervalTimeout: DWORD,
|
|
|
|
- ReadTotalTimeoutMultiplier: DWORD,
|
|
|
|
- ReadTotalTimeoutConstant: DWORD,
|
|
|
|
- WriteTotalTimeoutMultiplier: DWORD,
|
|
|
|
- WriteTotalTimeoutConstant: DWORD,
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-@(default_calling_convention="system")
|
|
|
|
-foreign kernel32 {
|
|
|
|
- GetCommTimeouts :: proc(handle: HANDLE, timeouts: ^COMMTIMEOUTS) -> BOOL ---
|
|
|
|
- SetCommTimeouts :: proc(handle: HANDLE, timeouts: ^COMMTIMEOUTS) -> BOOL ---
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
LPFIBER_START_ROUTINE :: #type proc "system" (lpFiberParameter: LPVOID)
|
|
LPFIBER_START_ROUTINE :: #type proc "system" (lpFiberParameter: LPVOID)
|
|
|
|
|
|
@(default_calling_convention = "system")
|
|
@(default_calling_convention = "system")
|
|
@@ -1168,9 +1112,9 @@ Battery_Flag :: enum BYTE {
|
|
Low = 1,
|
|
Low = 1,
|
|
Critical = 2,
|
|
Critical = 2,
|
|
Charging = 3,
|
|
Charging = 3,
|
|
- No_Battery = 7,
|
|
|
|
|
|
+ No_Battery = 7,
|
|
}
|
|
}
|
|
-Battery_Flags :: bit_set[Battery_Flag; BYTE]
|
|
|
|
|
|
+Battery_Flags :: bit_set[Battery_Flag; BYTE]
|
|
|
|
|
|
/* Global Memory Flags */
|
|
/* Global Memory Flags */
|
|
GMEM_FIXED :: 0x0000
|
|
GMEM_FIXED :: 0x0000
|