CreateConsoleScreenBuffer

CreateConsoleScreenBuffer 関数は Windows コンソール用のスクリーンバッファを作成する。

CreateConsoleScreenBuffer dwDesiredAccess, dwShareMode, lpSecurityAttributes, dwFlags, lpScreenBufferData

dwDesiredAccess : [int] コンソールスクリーンバッファへのアクセス。アクセス権の一覧は [Console Buffer Security and Access Rights](console-buffer-security-and-access-rights.md) を参照。
dwShareMode : [int] このパラメータはゼロ(バッファを共有できないことを示す)または以下の値のいずれか 1 つ以上の組み合わせが指定できる。 | 値 | 意味 | |-|-| | **FILE_SHARE_READ** 0x00000001 | コンソールスクリーンバッファに対する他の開く操作を読み取りアクセスで実行できる。 | | **FILE_SHARE_WRITE** 0x00000002 | コンソールスクリーンバッファに対する他の開く操作を書き込みアクセスで実行できる。 |
lpSecurityAttributes : [var] 返されるハンドルが子プロセスに継承可能かどうかを決定する [**SECURITY\_ATTRIBUTES**](/previous-versions/windows/desktop/legacy/aa379560(v=vs.85)) 構造体へのポインタ。*lpSecurityAttributes* が **NULL** の場合、ハンドルは継承できない。構造体の **lpSecurityDescriptor** メンバーが新しいコンソールスクリーンバッファのセキュリティ記述子を指定する。*lpSecurityAttributes* が **NULL** の場合、コンソールスクリーンバッファには既定のセキュリティ記述子が付与される。コンソールスクリーンバッファの既定セキュリティ記述子の ACL は作成者のプライマリトークンまたは impersonation トークンから取得される。
dwFlags : [int] 作成するコンソールスクリーンバッファの種類。サポートされているのは **CONSOLE\_TEXTMODE\_BUFFER** のみ。
lpScreenBufferData : [intptr] 予約済み。**NULL** を指定すべきである。

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

解説

CreateConsoleScreenBuffer 関数は Windows コンソール用のスクリーンバッファを作成する。

[戻り値]
関数が成功した場合、戻り値は新しいコンソールスクリーンバッファへのハンドル。関数が失敗した場合、戻り値は
**INVALID\_HANDLE\_VALUE**。拡張エラー情報を取得するには
[**GetLastError**](/windows/win32/api/errhandlingapi/nf-errhandlingapi-getlasterror)
を呼ぶ。

[備考]
コンソールは複数のスクリーンバッファを持てるが、アクティブなスクリーンバッファは 1
つだけである。非アクティブなスクリーンバッファも読み書きでアクセスできるが、表示されるのはアクティブなスクリーンバッファのみ。新しいスクリーンバッファをアクティブにするには
[**SetConsoleActiveScreenBuffer**](setconsoleactivescreenbuffer.md)
関数を使う。新しく作成されたスクリーンバッファは、この関数を呼んだ時点のアクティブスクリーンバッファから一部のプロパティをコピーする。動作は以下のとおり:
- `フォント` - アクティブスクリーンバッファからコピー - `表示ウィンドウサイズ` - アクティブスクリーンバッファからコピー -
`バッファサイズ` - `表示ウィンドウサイズ` に一致(コピーではない) - `既定属性` (色) -
アクティブスクリーンバッファからコピー - `既定ポップアップ属性` (色) - アクティブスクリーンバッファからコピー
呼び出し側プロセスは、*dwDesiredAccess*
パラメータで指定したアクセス制限の範囲内で、コンソールスクリーンバッファへのハンドルを必要とする任意の関数で返されたハンドルを使用できる。呼び出し側プロセスは
[**DuplicateHandle**](/windows/win32/api/handleapi/nf-handleapi-duplicatehandle)
関数を使って、元のハンドルとは異なるアクセスや継承性を持つスクリーンバッファハンドルの複製を作成できる。ただし
**DuplicateHandle**
は(継承を除いて)別プロセスで有効な複製を作成することはできない。コンソールスクリーンバッファのハンドルを閉じるには
[**CloseHandle**](/windows/win32/api/handleapi/nf-handleapi-closehandle)
関数を使う。[!INCLUDE
[no-vt-equiv-alt-buf](./includes/no-vt-equiv-alt-buf.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