/// <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); }