# PeekConsoleInput

Функция `PeekConsoleInput` считывает данные из указанного консольного входного буфера без удаления считанных записей из буфера.

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

### Параметры

hConsoleInput
Дескриптор консольного буфера ввода. Дескриптор должен иметь права `GENERIC_READ`.
lpBuffer
Указатель на массив структур INPUT_RECORD, который получит данные из входного буфера. Общий размер требуемого массива должен быть меньше чем 64КБ.
nLength
Число элементов в буфере `lpBuffer`, которое необходимо получить.
lpNumberOfEventsRead
Указатель на 32-х разрядную переменную, которая получит число реально прочитанных элементов.

### Возвращаемое значение

В случае успеха возвращается ненулевое значение.
Если функция завершается неудачно, возвращается ноль. Для получения дополнительной информации вызывайте функцию `GetLastError`.

### Замечания

Если число запрашиваемых элементов превысит число доступных в буфере, будут считаны все доступные. Если не доступно ни одной записи, функция немедленно завершится.

- Эта функция использует либо Unicode, либо 8-битовые символы из текущей кодовой страницы консоли. Кодовая страница консоли по умолчанию равна системной OEM странице.
  Для смены кодовой страницы используйте функции SetConsoleCP или SetConsoleOutputCP, или используйте команды `chcp` или `mode con cp select=`.

Смотрите также:
INPUT_RECORD, ReadConsoleInput, SetConsoleCP, SetConsoleOutputCP, WriteConsoleInput