CreatePseudoConsole 函数

为调用进程创建新的伪控制台对象。

语法

HRESULT WINAPI CreatePseudoConsole(
    _In_ COORD size,
    _In_ HANDLE hInput,
    _In_ HANDLE hOutput,
    _In_ DWORD dwFlags,
    _Out_ HPCON* phPC
);

参数

size [in]
初始创建伪控制台时将使用的字符计数的窗口/缓冲区的尺寸。 稍后可以使用 ResizePseudoConsole 对此进行调整。

hInput [in]
表示用户对设备的输入的数据流的开放句柄。 这目前仅限于同步 I/O。

hOutput [in]
表示设备的应用程序输出的数据流的开放句柄。 这目前仅限于同步 I/O。

dwFlags [in]
值可以是下列任一值:

含义
0 执行标准伪控制台创建。
PSEUDOCONSOLE_INHERIT_CURSOR (DWORD)1 创建的伪控制台会话将尝试继承父控制台的游标位置。

phPC [out]
指向将接收新伪控制台设备的句柄的位置的指针。

返回值

类型:HRESULT

如果该方法成功,则返回 S_OK。 否则,将返回 HRESULT 错误代码。

注解

此函数主要用于尝试成为命令行用户界面 (CUI) 应用程序的终端窗口。 调用方负责显示输出流上的信息,以及收集用户输入并将其序列化到输入流中。

编码为 UTF-8 的输入和输出流包含与虚拟终端序列交错的纯文本。

在输出流中,调用应用程序可以解码虚拟终端序列,以在显示窗口中布局并显示纯文本。

在输入流中,纯文本表示用户输入的标准键盘键。 更复杂的操作通过编码控制键和鼠标移动表示为嵌入在此流中的虚拟终端序列

操作完成后,必须使用 ClosePseudoConsole 关闭此函数创建的句柄。

如果使用 PSEUDOCONSOLE_INHERIT_CURSOR,则调用应用程序应准备好在后台线程上以异步方式响应对游标状态的请求,方法是转发或解释将在 hOutput 上接收的游标信息的请求并在 hInput 上答复。 否则可能会导致调用应用程序在发出伪控制台系统的另一个请求时挂起。

示例

有关使用此函数建立伪控制台会话的完整演练,请参阅创建伪控制台会话

要求

   
最低受支持的客户端 Windows 10 2018 年 10 月更新(版本 1809)[仅限桌面应用]
最低受支持的服务器 Windows Server 2019 [仅限桌面应用]
标头 ConsoleApi.h (via WinCon.h, include Windows.h)
Kernel32.lib
DLL Kernel32.dll

另请参阅

伪控制台

创建伪控制台会话

ResizePseudoConsole

ClosePseudoConsole