WriteConsoleOutputW

コンソール画面バッファ内の指定矩形ブロックの文字セルに文字と色属性データを書き込む。

WriteConsoleOutputW hConsoleOutput, lpBuffer, dwBufferSize, dwBufferCoord, lpWriteRegion

hConsoleOutput : [intptr] コンソール画面バッファのハンドル。GENERIC_WRITE アクセス権を持つ必要がある。詳細は Console Buffer Security and Access Rights を参照。
lpBuffer : [var] コンソール画面バッファに書き込むデータ。dwBufferSize で指定されたサイズの CHAR_INFO 構造体の 2 次元配列の起点として扱われる。
dwBufferSize : [var] lpBuffer が指すバッファのサイズ (文字セル単位)。COORD 構造体の **X** メンバが列数、**Y** メンバが行数。
dwBufferCoord : [var] lpBuffer が指すバッファの左上セル座標。COORD 構造体の **X** メンバが列、**Y** メンバが行。
lpWriteRegion : [var] SMALL_RECT 構造体へのポインタ。入力時、構造体メンバは書き込み先となるコンソール画面バッファ矩形の左上座標と右下座標を指定する。出力時には実際に使われた矩形を示す。

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

解説

コンソール画面バッファ内の指定矩形ブロックの文字セルに文字と色属性データを書き込む。

[戻り値]
関数が成功した場合、戻り値は 0 以外である。関数が失敗した場合、戻り値は 0 となる。拡張エラー情報を取得するには
GetLastError を呼ぶ。

[備考]
**WriteConsoleOutput** はソースバッファと宛先画面バッファを 2 次元配列 (列と行の文字セル)
として扱う。lpWriteRegion が指す矩形は、コンソール画面バッファ内に書き込むブロックのサイズと位置を指定する。同サイズの矩形が
dwBufferCoord 座標を左上セルとして lpBuffer 内に配置される。この矩形と (dwBufferSize で指定された)
ソースバッファ矩形の交差部分のセルから宛先矩形にデータが書き込まれる。ソース矩形外に対応する宛先矩形セルは書き込みで影響を受けない。WriteConsoleOutput
は戻る前に、lpWriteRegion
のメンバを書き込み操作で実際に影響を受けた画面バッファ矩形に設定する。この矩形はコンソール画面バッファ境界に切り取られ、ソースバッファに対応セルが存在した宛先矩形のセルを反映する。lpWriteRegion
で指定された矩形が完全にコンソール画面バッファ境界外、または対応矩形が完全にソースバッファ境界外にある場合、データは書き込まれない。この場合、関数は
**Right** が **Left** より小さいか **Bottom** が **Top**
より小さい状態で戻る。コンソール画面バッファのサイズは GetConsoleScreenBufferInfo
で調べる。**WriteConsoleOutput** はカーソル位置に影響を与えない。

情報

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