Exemplo n.º 1
0
        /// <summary>
        /// Opens the screen buffer.
        /// </summary>
        /// <returns>Returns a new <see cref="ConsoleInputBuffer"/> instance that references the
        /// console's input buffer.</returns>
        /// <remarks>This method allocates a new ConsoleInputBuffer instance.  Callers should
        /// call Dispose on the returned instance when they're done with it.</remarks>
        static public ConsoleInputBuffer GetInputBuffer()
        {
            IntPtr inHandle = WinApi.CreateFile("CONIN$",
                                                WinApi.GENERIC_READ | WinApi.GENERIC_WRITE, WinApi.FILE_SHARE_READ | WinApi.FILE_SHARE_WRITE,
                                                null,
                                                WinApi.OPEN_EXISTING,
                                                0,
                                                IntPtr.Zero);

            if (inHandle.ToInt32() == WinApi.INVALID_HANDLE_VALUE)
            {
                throw new IOException("Unable to open CONIN$", Marshal.GetLastWin32Error());
            }
            ConsoleInputBuffer inputBuffer = new ConsoleInputBuffer(inHandle);

            inputBuffer.ownsHandle = true;

            return(inputBuffer);
        }
Exemplo n.º 2
0
        /// <summary>
        /// Opens the screen buffer.
        /// </summary>
        /// <returns>Returns a new <see cref="ConsoleInputBuffer"/> instance that references the
        /// console's input buffer.</returns>
        /// <remarks>This method allocates a new ConsoleInputBuffer instance.  Callers should
        /// call Dispose on the returned instance when they're done with it.</remarks>
        public static ConsoleInputBuffer GetInputBuffer()
        {
            IntPtr inHandle = WinApi.CreateFile("CONIN$",
                WinApi.GENERIC_READ | WinApi.GENERIC_WRITE, WinApi.FILE_SHARE_READ | WinApi.FILE_SHARE_WRITE,
                null,
                WinApi.OPEN_EXISTING,
                0,
                IntPtr.Zero);

            if (inHandle.ToInt32() == WinApi.INVALID_HANDLE_VALUE)
            {
                throw new IOException("Unable to open CONIN$", Marshal.GetLastWin32Error());
            }
            ConsoleInputBuffer inputBuffer = new ConsoleInputBuffer(inHandle);
            inputBuffer.ownsHandle = true;

            return inputBuffer;
        }