ReadConsoleW

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

ReadConsoleW hConsoleInput, lpBuffer, nNumberOfCharsToRead, lpNumberOfCharsRead, pInputControl

hConsoleInput : [intptr] コンソール入力バッファへのハンドル。ハンドルは **GENERIC\_READ** アクセス権を持つ必要がある。詳細は [Console Buffer Security and Access Rights](console-buffer-security-and-access-rights.md) を参照。
lpBuffer : [intptr] コンソール入力バッファから読み取られたデータを受け取るバッファへのポインタ。
nNumberOfCharsToRead : [int] 読み取る文字数。*lpBuffer* パラメータが指すバッファのサイズは少なくとも `nNumberOfCharsToRead * sizeof(TCHAR)` バイトであるべきである。
lpNumberOfCharsRead : [var] 実際に読み取られた文字数を受け取る変数へのポインタ。
pInputControl : [var] 読み取り操作の終了を知らせる制御文字を指定する [**CONSOLE\_READCONSOLE\_CONTROL**](console-readconsole-control.md) 構造体へのポインタ。このパラメータは **NULL** でもよい。既定ではこのパラメータは Unicode 入力を必要とする。ANSI モードの場合はこのパラメータを **NULL** に設定する。

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

解説

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

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

[備考]
**ReadConsole**
はコンソールの入力バッファからキーボード入力を読み取る。[**ReadFile**](/windows/win32/api/fileapi/nf-fileapi-readfile)
関数と同様に動作するが、Unicode(ワイド文字)または ANSI
モードのいずれかで読み取れる点が異なる。両モードに互換性のある単一のソースセットを維持するアプリケーションでは **ReadFile**
ではなく **ReadConsole** を使用する。**ReadConsole**
はコンソール入力バッファハンドルでのみ使用できるが、**ReadFile**
は他のハンドル(ファイルやパイプなど)でも使用できる。**ReadConsole**
は、コンソールハンドル以外にリダイレクトされた標準ハンドルと一緒に使用すると失敗する。[**ReadFile**](/windows/win32/api/fileapi/nf-fileapi-readfile)
の動作に影響する全ての入力モードは **ReadConsole**
にも同じ影響を与える。コンソール入力バッファの入力モードを取得および設定するには、[**GetConsoleMode**](getconsolemode.md)
および [**SetConsoleMode**](setconsolemode.md)
関数を使用する。入力バッファにキーボードイベント以外の入力イベント(マウスイベントやウィンドウリサイズイベントなど)が含まれる場合、それらは破棄される。それらのイベントは
[**ReadConsoleInput**](readconsoleinput.md)
関数を使用することでのみ読み取ることができる。[!INCLUDE
[setting-codepage-mode-remarks](./includes/setting-codepage-mode-remarks.md)]
*pInputControl*
パラメータは、[**CONSOLE\_READCONSOLE\_CONTROL**](console-readconsole-control.md)
構造体で指定されるファイル完了制御文字に応答して、読み取りからの中間起床を有効にするために使用できる。この機能は、コマンド拡張が有効であること、標準出力ハンドルがコンソール出力ハンドルであること、および入力が
Unicode であることを必要とする。**Windows Server 2003 および Windows XP/2000:**
中間読み取り機能はサポートされない。**クックドモード** は、コンソール入力ハンドルに対し
[**SetConsoleMode**](setconsolemode.md) で **ENABLE_LINE_INPUT**
が設定されている状態である。クックドモードでは、コンソールホストがコマンドラインアプリケーションに代わって編集行を提供し、**ReadFile**
または **ReadConsole** への呼び出しは Enter キーが押されるまで戻らない。**中間読み取り**
は、クックド読み取りモードにおける **ReadConsole**
呼び出しに対するその動作の拡張である。[**CONSOLE\_READCONSOLE\_CONTROL**](console-readconsole-control.md)
構造体の [**dwCtrlWakeupMask**](console-readconsole-control.md)
にフラグを設定し、**ReadConsole** 呼び出し時にそれを *pinputControl*
に渡すと、読み取りは必ずしも改行を待たず、指定された文字で戻るようになる。

情報

プラグイン / モジュール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