SetStdHandle

指定した標準デバイス(標準入力・標準出力・標準エラー)のハンドルを設定する。

SetStdHandle nStdHandle, hHandle

nStdHandle : [int] ハンドルを設定する標準デバイス。次のいずれかの値を指定できる。 | 値 | 意味 | |-|-| | **STD_INPUT_HANDLE** `((DWORD)-10)` | 標準入力デバイス。初期状態ではコンソール入力バッファ `CONIN$`。 | | **STD_OUTPUT_HANDLE** `((DWORD)-11)` | 標準出力デバイス。初期状態ではアクティブなコンソール画面バッファ `CONOUT$`。 | | **STD_ERROR_HANDLE** `((DWORD)-12)` | 標準エラーデバイス。初期状態ではアクティブなコンソール画面バッファ `CONOUT$`。 | > [!NOTE] > これらの定数の値は符号なしだが、ヘッダファイルでは符号付き数値からのキャストとして定義されており、C コンパイラがそれを 32 ビットの最大値直下にロールオーバさせる仕組みを利用している。ヘッダを解析しない言語からこれらのハンドルを扱う場合や定数を再定義する場合はこの制約に注意すること。例えば `((DWORD)-10)` は実際には符号なしの `4294967286` である。
hHandle : [intptr] 標準デバイス用のハンドル。

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

解説

指定した標準デバイス(標準入力・標準出力・標準エラー)のハンドルを設定する。

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

[備考]
プロセスの標準ハンドルは **SetStdHandle** の呼び出しによってリダイレクトされている可能性があり、その場合
[**GetStdHandle**](getstdhandle.md)
はリダイレクト先のハンドルを返す。標準ハンドルがリダイレクトされていても、[**CreateFile**](/windows/win32/api/fileapi/nf-fileapi-createfilea)
関数に CONIN$ を指定すればコンソールの入力バッファのハンドルを取得できる。同様に CONOUT$
を指定すればコンソールのアクティブな画面バッファのハンドルを取得できる。

情報

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