// Licensed under the Apache License, Version 2.0 // or the MIT license // , at your option. // All files in the project carrying such notice may not be copied, modified, or distributed // except according to those terms. //! ApiSet Contract for api-ms-win-core-console-l1 use shared::minwindef::{BOOL, DWORD, LPDWORD, LPVOID, UINT}; use um::wincon::{PCONSOLE_READCONSOLE_CONTROL, PHANDLER_ROUTINE}; use um::wincontypes::{COORD, HPCON, PINPUT_RECORD}; use um::winnt::{HANDLE, HRESULT, VOID}; extern "system" { pub fn AllocConsole() -> BOOL; pub fn GetConsoleCP() -> UINT; pub fn GetConsoleMode( hConsoleHandle: HANDLE, lpMode: LPDWORD, ) -> BOOL; pub fn GetConsoleOutputCP() -> UINT; pub fn GetNumberOfConsoleInputEvents( hConsoleInput: HANDLE, lpNumberOfEvents: LPDWORD, ) -> BOOL; pub fn PeekConsoleInputA( hConsoleInput: HANDLE, lpBuffer: PINPUT_RECORD, nLength: DWORD, lpNumberOfEventsRead: LPDWORD, ) -> BOOL; pub fn ReadConsoleA( hConsoleInput: HANDLE, lpBuffer: LPVOID, nNumberOfCharsToRead: DWORD, lpNumberOfCharsRead: LPDWORD, pInputControl: PCONSOLE_READCONSOLE_CONTROL, ) -> BOOL; pub fn ReadConsoleW( hConsoleInput: HANDLE, lpBuffer: LPVOID, nNumberOfCharsToRead: DWORD, lpNumberOfCharsRead: LPDWORD, pInputControl: PCONSOLE_READCONSOLE_CONTROL, ) -> BOOL; pub fn ReadConsoleInputA( hConsoleInput: HANDLE, lpBuffer: PINPUT_RECORD, nLength: DWORD, lpNumberOfEventsRead: LPDWORD, ) -> BOOL; pub fn ReadConsoleInputW( hConsoleInput: HANDLE, lpBuffer: PINPUT_RECORD, nLength: DWORD, lpNumberOfEventsRead: LPDWORD, ) -> BOOL; pub fn SetConsoleCtrlHandler( HandlerRoutine: PHANDLER_ROUTINE, Add: BOOL, ) -> BOOL; pub fn SetConsoleMode( hConsoleHandle: HANDLE, dwMode: DWORD, ) -> BOOL; pub fn WriteConsoleA( hConsoleOutput: HANDLE, lpBuffer: *const VOID, nNumberOfCharsToWrite: DWORD, lpNumberOfCharsWritten: LPDWORD, lpReserved: LPVOID, ) -> BOOL; pub fn WriteConsoleW( hConsoleOutput: HANDLE, lpBuffer: *const VOID, nNumberOfCharsToWrite: DWORD, lpNumberOfCharsWritten: LPDWORD, lpReserved: LPVOID, ) -> BOOL; pub fn CreatePseudoConsole( size: COORD, hInput: HANDLE, hOutput: HANDLE, dwFlags: DWORD, phPC: *mut HPCON, ) -> HRESULT; pub fn ResizePseudoConsole( hPC: HPCON, size: COORD, ) -> HRESULT; pub fn ClosePseudoConsole( hPC: HPCON, ); }