Exemplo n.º 1
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="nEvents"></param>
        /// <returns></returns>
        public ConsoleInputEventInfo[] PeekEvents(int nEvents)
        {
            if (disposed)
            {
                throw new ObjectDisposedException(this.ToString());
            }

            ConsoleInputEventInfo[] events = new ConsoleInputEventInfo[nEvents];
            int eventsRead = 0;

            if (!WinCon.PeekConsoleInput(Handle, events, nEvents, ref eventsRead))
            {
                throw new System.IO.IOException("Unable to peek events.", Marshal.GetLastWin32Error());
            }
            if (eventsRead < nEvents)
            {
                // create a new array that contains just the events that were read
                ConsoleInputEventInfo[] newBuff = new ConsoleInputEventInfo[eventsRead];
                Array.Copy(events, newBuff, eventsRead);
                events = newBuff;
            }

            return(events);
        }