Функция ReadConsoleInputEx

Считывает данные из входного буфера консоли и удаляет его из буфера с настраиваемым поведением.

Обратите внимание, что эта функция не связана с библиотекой импорта. Эта функция доступна в виде ресурсов с именем ReadConsoleInputExA и ReadConsoleInputExW в Kernel32.dll. Для динамической связи с Kernel32.dll необходимо использовать функции LoadLibrary и GetProcAddress .

Синтаксис

BOOL WINAPI ReadConsoleInputEx(
  _In_  HANDLE        hConsoleInput,
  _Out_ PINPUT_RECORD lpBuffer,
  _In_  DWORD         nLength,
  _Out_ LPDWORD       lpNumberOfEventsRead,
  _In_  USHORT        wFlags
);

Параметры

hConsoleInput [in]
Дескриптор входного буфера консоли. Этот дескриптор должен иметь право доступа GENERIC_READ. Дополнительные сведения см. в статье Безопасность и права доступа для буфера консоли.

lpBuffer [out]
Указатель на массив INPUT_RECORD структур, получающих входные данные буфера.

nLength [in]
Размер массива, на который указывает параметр lpBuffer , в элементах массива.

lpNumberOfEventsRead [out]
Указатель на переменную, которая получает количество операций чтения входных записей.

wFlags [in]

Набор флагов (ORed вместе), указывающий поведение чтения консоли.

Значение Значение
CONSOLE_READ_NOREMOVE0x0001 Оставьте события в входном буфере (как и в PeekConsoleInput)
CONSOLE_READ_NOWAIT0x0002 Возвращается немедленно, даже если в входном буфере отсутствуют события.

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

Если функция выполняется успешно, возвращается ненулевое значение.

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

Замечания

Эта функция является настраиваемой версией ReadConsoleInput. Дополнительные сведения о работе см. в примечанияхReadConsoleInput.

Вызов ReadConsoleInputEx с флагами CONSOLE_READ_NOMOVE | CONSOLE_READ_NOWAIT эквивалентен вызову PeekConsoleInput.

Эта функция не существует в заголовках консоли Windows. Чтобы получить доступ к нему из приложения C или C++, включите следующие объявления и динамически свяжите файл kernel32.dll, как описано выше.

#ifndef CONSOLE_READ_NOREMOVE
#define CONSOLE_READ_NOREMOVE   0x0001
#endif

#ifndef CONSOLE_READ_NOWAIT
#define CONSOLE_READ_NOWAIT     0x0002
#endif

BOOL
WINAPI
ReadConsoleInputExA(
    _In_ HANDLE hConsoleInput,
    _Out_writes_(nLength) PINPUT_RECORD lpBuffer,
    _In_ DWORD nLength,
    _Out_ LPDWORD lpNumberOfEventsRead,
    _In_ USHORT wFlags);

BOOL
WINAPI
ReadConsoleInputExW(
    _In_ HANDLE hConsoleInput,
    _Out_writes_(nLength) PINPUT_RECORD lpBuffer,
    _In_ DWORD nLength,
    _Out_ LPDWORD lpNumberOfEventsRead,
    _In_ USHORT wFlags);

Requirements

   
Минимальная версия клиента Windows 7 [только классические приложения]
Минимальная версия сервера Windows Server 2003 [только классические приложения]
Верхний колонтитул нет, см. примечания
Библиотека нет, см. примечания
DLL-библиотеки Kernel32.dll
Имена Юникода и ANSI ReadConsoleInputExW (Юникод) и ReadConsoleInputExA (ANSI)

См. также

Функции консоли

FlushConsoleInputBuffer

GetNumberOfConsoleInputEvents

INPUT_RECORD

Низкоуровневые функции ввода консоли

ReadConsoleInput

PeekConsoleInput

ReadConsole

ReadFile

SetConsoleCP

SetConsoleOutputCP

WriteConsoleInput