1234567891011121314151617181920212223242526272829303132333435363738 |
- using Microsoft.Win32.SafeHandles;
- using System.Runtime.InteropServices;
- namespace MiniTerm.Native
- {
- /// <summary>
- /// PInvoke signatures for win32 console api
- /// </summary>
- static class ConsoleApi
- {
- internal const int STD_OUTPUT_HANDLE = -11;
- internal const uint ENABLE_VIRTUAL_TERMINAL_PROCESSING = 0x0004;
- internal const uint DISABLE_NEWLINE_AUTO_RETURN = 0x0008;
- [DllImport("kernel32.dll", SetLastError = true)]
- internal static extern SafeFileHandle GetStdHandle(int nStdHandle);
- [DllImport("kernel32.dll", SetLastError = true)]
- internal static extern bool SetConsoleMode(SafeFileHandle hConsoleHandle, uint mode);
- [DllImport("kernel32.dll", SetLastError = true)]
- internal static extern bool GetConsoleMode(SafeFileHandle handle, out uint mode);
- internal delegate bool ConsoleEventDelegate(CtrlTypes ctrlType);
- internal enum CtrlTypes : uint
- {
- CTRL_C_EVENT = 0,
- CTRL_BREAK_EVENT,
- CTRL_CLOSE_EVENT,
- CTRL_LOGOFF_EVENT = 5,
- CTRL_SHUTDOWN_EVENT
- }
- [DllImport("kernel32.dll", SetLastError = true)]
- internal static extern bool SetConsoleCtrlHandler(ConsoleEventDelegate callback, bool add);
- }
- }
|