# PeekConsoleInput

The PeekConsoleInput function reads data from the specified console input buffer without removing it from the buffer.

    BOOL PeekConsoleInput(
      HANDLE hConsoleInput,
      PINPUT_RECORD lpBuffer,
      DWORD nLength,
      LPDWORD lpNumberOfEventsRead
    );

### Parameters

hConsoleInput
Handle to the input buffer. The handle must have GENERIC_READ access.
lpBuffer
Pointer to an INPUT_RECORD buffer that receives the input buffer data.
nLength
Specifies the size, in records, of the buffer pointed to by the lpBuffer parameter.
lpNumberOfEventsRead
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.

### Remarks

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.

Windows NT/2000/XP/2003/Vista/2008/7

- 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, or use the `chcp` or `mode con cp select=` commands.

See also:
INPUT_RECORD, ReadConsoleInput, SetConsoleCP, SetConsoleOutputCP, WriteConsoleInput