ReadConsoleOutputW

コンソールスクリーンバッファ内の矩形状の文字セルブロックから文字と色属性データを読み取り、宛先バッファへ書き込む。

ReadConsoleOutputW hConsoleOutput, lpBuffer, dwBufferSize, dwBufferCoord, lpReadRegion

hConsoleOutput : [intptr] コンソールスクリーンバッファへのハンドル。ハンドルは **GENERIC\_READ** アクセス権を持つ必要がある。詳細は [Console Buffer Security and Access Rights](console-buffer-security-and-access-rights.md) を参照。
lpBuffer : [var] コンソールスクリーンバッファから読み取られたデータを受け取る宛先バッファへのポインタ。このポインタは [**CHAR\_INFO**](char-info-str.md) 構造体の二次元配列の始点として扱われ、そのサイズは *dwBufferSize* パラメータで指定される。
dwBufferSize : [var] *lpBuffer* パラメータのサイズ(文字セル単位)。[**COORD**](coord-str.md) 構造体の **X** メンバは列数、**Y** メンバは行数を表す。
dwBufferCoord : [var] コンソールスクリーンバッファから読み取られたデータを受け取る *lpBuffer* パラメータ内の左上セルの座標。[**COORD**](coord-str.md) 構造体の **X** メンバは列、**Y** メンバは行を表す。
lpReadRegion : [var] [**SMALL\_RECT**](small-rect-str.md) 構造体へのポインタ。入力時、構造体のメンバは関数が読み取り対象とするコンソールスクリーンバッファ矩形の左上および右下座標を指定する。出力時、構造体のメンバは実際に使用された矩形を指定する。

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

解説

コンソールスクリーンバッファ内の矩形状の文字セルブロックから文字と色属性データを読み取り、宛先バッファへ書き込む。

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

[備考]
**ReadConsoleOutput**
はコンソールスクリーンバッファと宛先バッファを二次元配列(文字セルの列と行)として扱う。*lpReadRegion*
パラメータが指す矩形は、コンソールスクリーンバッファから読み取るブロックのサイズと位置を指定する。同サイズの宛先矩形が、*dwBufferCoord*
パラメータの座標を左上セルとして *lpBuffer*
配列内に配置される。コンソールスクリーンバッファのソース矩形内のセルから読み取ったデータは、宛先バッファの対応するセルへコピーされる。対応するセルが(*dwBufferSize*
パラメータで指定された)宛先バッファ矩形の境界外にある場合、データはコピーされない。コンソールスクリーンバッファの境界内に収まらない座標に対応する宛先バッファのセルは変更されない。言い換えれば、これらは読み取るためのスクリーンバッファデータが存在しないセルである。**ReadConsoleOutput**
は戻る前に、*lpReadRegion*
パラメータが指す構造体のメンバを、宛先バッファへコピーされたセルの実際のスクリーンバッファ矩形に設定する。この矩形は、**ReadConsoleOutput**
がソース矩形の範囲をコンソールスクリーンバッファの境界に合わせてクリップした結果、宛先バッファに対応するセルが存在したソース矩形のセルを反映する。*lpReadRegion*
で指定した矩形がコンソールスクリーンバッファの境界外に完全にあるか、対応する矩形が宛先バッファの境界外に完全に配置された場合、データはコピーされない。この場合、関数は
*lpReadRegion* が指す構造体のメンバの **Right** を **Left** より小さく、または **Bottom**
を **Top** より小さく設定して戻る。コンソールスクリーンバッファのサイズを判定するには
[**GetConsoleScreenBufferInfo**](getconsolescreenbufferinfo.md)
関数を使用する。**ReadConsoleOutput**
関数はコンソールスクリーンバッファのカーソル位置に影響を与えない。コンソールスクリーンバッファの内容はこの関数によって変更されない。[!INCLUDE
[setting-codepage-mode-remarks](./includes/setting-codepage-mode-remarks.md)]
[!INCLUDE [no-vt-equiv-banner](./includes/no-vt-equiv-banner.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