<Return[R]><Top>

ReadConsoleInput

Declare Function Api_ReadConsoleInput& Lib "kernel32" Alias "ReadConsoleInputA" (ByVal hConsoleInput&, ByRef lpBuffer As PUT_RECORD, ByVal nLength&, ByRef lpNumberOfEventsRead&)

Declare Function ReadConsoleInput Lib "kernel32" Alias "ReadConsoleInputA" (ByVal hConsoleInput As Long, ByRef lpBuffer As PUT_RECORD, ByVal nLength As Long, ByRef lpNumberOfEventsRead As Long) As Long

コンソール入力バッファからデータを読み取り、読み取ったデータをバッファから削除する。

パラメータ
hConsoleInput
    入力バッファのハンドルを指定する。このハンドルには、GENERIC_READ アクセス権が必要である。

lpBuffer
    入力バッファのデータを受け取る INPUT_RECORD バッファへのポインタを指定する。
nLength
    lpBuffer が指すバッファのサイズを入力レコード数で指定する。
lpNumberOfEventsRead
    読み取られた入力レコード数を受け取る 32 ビット変数へのポインタを指定する。

戻り値
    関数が成功すると、0 以外の値が返る。
    関数が失敗すると、0 が返る。拡張エラー情報を取得するには、GetLastError 関数を使う。

解説
    nLength パラメータで要求したレコード数がバッファのレコード数より多い場合は、バッファ内にあるレコードだけが読み取られる。この関数

    は、少なくとも 1 つの入力レコードを読み取るまで制御を戻さない。
    コンソール入力バッファのハンドルをいずれかの待機関数に渡して、未読のコンソール入力があるかどうか調べることができる。入力バッファ

    が空でないときは、コンソール入力バッファのハンドルがシグナル状態になる。
    コンソールの入力バッファにある未読入力レコードの数を調べるには、GetNumberOfConsoleInputEvents 関数を使う。未読レコードの数を

    変更せずにコンソール入力バッファから入力レコードを読み取るには、PeekConsoleInput 関数を使う。コンソールの入力バッファに残っている

    すべての未読レコードを破棄するには、FlushConsoleInputBuffer 関数を使う。
    Windows NT/2000:この関数は、コンソールの現在のコードページにある Unicode 文字または 8 ビット文字のいずれかを使う。コンソール

    のコードページは、既定値でシステムの OEM コードページに初期設定される。コンソールのコードページを変更するには、SetConsoleCP 関

    数、SetConsoleOutputCP 関数、 chcp コマンド、mode con cp select= コマンドのいずれかを使う。