PeekConsoleInput function

Reads data from the specified console input buffer without removing it from the buffer.


BOOL WINAPI PeekConsoleInput(
  _In_  HANDLE        hConsoleInput,
  _Out_ PINPUT_RECORD lpBuffer,
  _In_  DWORD         nLength,
  _Out_ LPDWORD       lpNumberOfEventsRead


hConsoleInput [in]
A handle to the console input buffer. The handle must have the GENERIC_READ access right. For more information, see Console Buffer Security and Access Rights.

lpBuffer [out]
A pointer to an array of INPUT_RECORD structures that receives the input buffer data.

nLength [in]
The size of the array pointed to by the lpBuffer parameter, in array elements.

lpNumberOfEventsRead [out]
A pointer to a variable that receives the number of input records read.

Return value

If the function succeeds, the return value is nonzero.

If the function fails, the return value is zero. To get extended error information, call GetLastError.


If the number of records requested exceeds the number of records available in the buffer, the number available is read. If no data is available, the function returns immediately.

This function uses either Unicode characters or 8-bit characters from the console's current code page. The console's code page defaults initially to the system's OEM code page. To change the console's code page, use the SetConsoleCP or SetConsoleOutputCP functions. Legacy consumers may also use the chcp or mode con cp select= commands, but it is not recommended for new development.


Minimum supported client Windows 2000 Professional [desktop apps only]
Minimum supported server Windows 2000 Server [desktop apps only]
Header ConsoleApi.h (via WinCon.h, include Windows.h)
Library Kernel32.lib
DLL Kernel32.dll
Unicode and ANSI names PeekConsoleInputW (Unicode) and PeekConsoleInputA (ANSI)

See also

Console Functions