CreatePseudoConsole 関数
呼び出しプロセスの新しい疑似コンソール オブジェクトを作成します。
構文
HRESULT WINAPI CreatePseudoConsole(
_In_ COORD size,
_In_ HANDLE hInput,
_In_ HANDLE hOutput,
_In_ DWORD dwFlags,
_Out_ HPCON* phPC
);
パラメーター
サイズ [in]
疑似コンソールの初期作成時に使用される文字数でのウィンドウ/バッファーの分析コード。 これは、ResizePseudoConsole で後で調整できます。
hInput [in]
デバイスへのユーザーによる入力を表すデータのストリームへのオープン ハンドル。 これは現在、同期 I/O に制限されています。
hOutput [in]
デバイスからのアプリケーション出力を表すデータのストリームへのオープン ハンドル。 これは現在、同期 I/O に制限されています。
dwFlags [in]
値は次のいずれかになります。
Value | 説明 |
---|---|
0 | 標準の疑似コンソール作成を実行します。 |
PSEUDOCONSOLE_INHERIT_CURSOR (DWORD)1 | 作成された疑似コンソール セッションは、親コンソールのカーソル位置の継承を試みます。 |
phPC [out]
新しい疑似コンソール デバイスへのハンドルを受信する場所へのポインター。
戻り値
型: HRESULT
このメソッドは、成功すると S_OK を返します。 そうでない場合は、HRESULT エラー コードを返します。
解説
この関数は、主にコマンド ライン ユーザー インターフェイス (CUI) アプリケーションのターミナル ウィンドウを試みるアプリケーションで使用されます。 呼び出し元は、出力ストリームに関する情報を表示し、ユーザーによる入力を収集して入力ストリームにシリアル化する責任を負います。
UTF-8 としてエンコードされた入力ストリームと出力ストリームには、仮想ターミナル シーケンスとインタリーブされたプレーン テキストが含まれています。
出力ストリームでは、呼び出しアプリケーションによって仮想ターミナル シーケンスをデコードしてレイアウトし、表示ウィンドウにプレーン テキストを表示できます。
入力ストリームでは、プレーン テキストはユーザーが入力する標準キーボードのキーを表します。 より複雑な操作は、Ctrl キーとマウスの動きを、このストリームに埋め込まれた仮想ターミナル シーケンスとしてエンコードすることによって表されます。
操作が完了したら、この関数によって作成されたハンドルを ClosePseudoConsole で閉じる必要があります。
PSEUDOCONSOLE_INHERIT_CURSOR
を使用する場合、呼び出しアプリケーションは、hOutput
で受信し hInput
で返信するカーソル情報の要求を転送または解釈して、バックグラウンド スレッドで非同期的にカーソル状態の要求に応答する準備をする必要があります。 これを行わないと、疑似コンソール システムの別の要求を行っている間に呼び出しアプリケーションがハングする可能性があります。
例
この関数を使用した疑似コンソール セッションの確立に関する完全なチュートリアルについては、「疑似コンソール セッションの作成」を参照してください。
要件
サポートされている最小のクライアント | Windows 10 October 2018 Update (バージョン 1809)[デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows Server 2019 [デスクトップ アプリのみ] |
ヘッダー | ConsoleApi.h (WinCon.h 経由、Windows.h をインクルード) |
ライブラリ | Kernel32.lib |
[DLL] | Kernel32.dll |