ReadConsoleInputW

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

ReadConsoleInputW hConsoleInput, lpBuffer, nLength, lpNumberOfEventsRead

hConsoleInput : [intptr] コンソール入力バッファへのハンドル。ハンドルは **GENERIC\_READ** アクセス権を持つ必要がある。詳細は [Console Buffer Security and Access Rights](console-buffer-security-and-access-rights.md) を参照。
lpBuffer : [var] 入力バッファデータを受け取る [**INPUT\_RECORD**](input-record-str.md) 構造体の配列へのポインタ。
nLength : [int] *lpBuffer* パラメータが指す配列のサイズ(配列要素数)。
lpNumberOfEventsRead : [var] 読み取られた入力レコード数を受け取る変数へのポインタ。

(プラグイン / モジュール : kernel32.dll)

解説

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

[戻り値]
関数が成功した場合、戻り値は 0 以外である。関数が失敗した場合、戻り値は 0 である。拡張エラー情報を取得するには
[**GetLastError**](/windows/win32/api/errhandlingapi/nf-errhandlingapi-getlasterror)
を呼び出す。

[備考]
*nLength*
パラメータで要求されたレコード数がバッファ内で利用可能なレコード数を超えている場合、利用可能な数が読み取られる。関数は少なくとも 1
つの入力レコードが読み取られるまで戻らない。プロセスは、未読のコンソール入力があるかを判定するために、[wait
functions](/windows/win32/sync/wait-functions)
のいずれかにコンソール入力バッファハンドルを指定できる。入力バッファが空でない場合、コンソール入力バッファハンドルの状態はシグナル状態となる。コンソールの入力バッファ内の未読入力レコード数を判定するには
[**GetNumberOfConsoleInputEvents**](getnumberofconsoleinputevents.md)
関数を使用する。未読レコード数に影響を与えずにコンソール入力バッファから入力レコードを読み取るには
[**PeekConsoleInput**](peekconsoleinput.md)
関数を使用する。コンソールの入力バッファ内の未読レコードを全て破棄するには
[**FlushConsoleInputBuffer**](flushconsoleinputbuffer.md)
関数を使用する。[!INCLUDE
[setting-codepage-mode-remarks](./includes/setting-codepage-mode-remarks.md)]

情報

プラグイン / モジュールkernel32.dll
バージョン1.0
作成日2026/04/16
著作者IronHSP / CsWin32 bridge
URLhttps://github.com/inovia/IronHSP
備考Win32 API の kernel32.dll 関数群。CsWin32 + win32metadata から自動生成。
hsp3net 専用 (intptr / NSTRUCT / wstr を使用)。
タイプ拡張命令
グループWin32API
対応環境
  • Windows 版 HSP
hs ファイルhsphelp\win32_kernel32_gen2.hs