Поделиться через


Функция CreatePseudoConsole

Создает новый псевдоконсоль для вызывающего процесса.

Синтаксис

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

Параметры

размер [in]
Измерения окна или буфера в количестве символов, которые будут использоваться при первоначальном создании псевдоконсоля. Это можно изменить позже с помощью ResizePseudoConsole.

hInput [in]
Открытый дескриптор потока данных, который представляет входные данные пользователя на устройство. В настоящее время это ограничено синхронным вводом-выводом .

hOutput [in]
Открытый дескриптор потока данных, представляющий выходные данные приложения с устройства. В настоящее время это ограничено синхронным вводом-выводом .

dwFlags [in]
Может иметь следующие значения:

Значение Значение
0 Выполните стандартное создание псевдоконсоля.
PSEUDOCONSOLE_INHERIT_CURSOR (DWORD)1 Созданный сеанс псевдоконсоля попытается наследовать положение курсора родительской консоли.

phPC [out]
Указатель на расположение, которое получит дескриптор нового псевдоконсоля устройства.

Возвращаемое значение

Тип: HRESULT

Если этот метод выполнен успешно, он возвращает S_OK. В противном случае возвращается код ошибки HRESULT .

Замечания

Эта функция в основном используется приложениями, пытающимися быть окном терминала для приложения пользовательского интерфейса командной строки (CUI). Вызывающие пользователи отвечают за представление информации о выходном потоке и сборе входных данных пользователя и сериализации его в входном потоке.

Входные и выходные потоки, закодированные как UTF-8, содержат обычный текст, чередуемый с виртуальными последовательности терминалов.

В выходном потоке последовательности виртуальных терминалов можно декодировать вызывающим приложением для макета и представить обычный текст в окне отображения.

В входном потоке обычный текст представляет стандартные входные клавиши клавиатуры пользователем. Более сложные операции представлены клавишами управления кодировкой и движениями мыши в виде последовательностей виртуальных терминалов, внедренных в этот поток.

При завершении операций дескриптор, созданный этой функцией, должен быть закрыт с помощью ClosePseudoConsole .

При использовании PSEUDOCONSOLE_INHERIT_CURSORвызывающее приложение должно быть готово реагировать на запрос состояния курсора в асинхронном режиме в фоновом потоке, переадресовав или интерпретируя запрос на сведения курсора, которые будут получены hOutput и отвечать на hInputних. Сбой этого может привести к зависаю вызывающего приложения при выполнении другого запроса псевдоконсоля системы.

Примеры

Полное пошаговое руководство по использованию этой функции для создания сеанса псевдоконсоля см. в статье "Создание сеанса Псевдоконсоля".

Requirements

   
Минимальная версия клиента обновление Windows 10 за октябрь 2018 г. (версия 1809) [только классические приложения]
Минимальная версия сервера Windows Server 2019 [только классические приложения]
Верхний колонтитул ConsoleApi.h (через WinCon.h, включая Windows.h)
Библиотека Kernel32.lib
DLL-библиотеки Kernel32.dll

См. также

Псевдоконсолы

Создание сеанса псевдоконсоли

ResizePseudoConsole

ClosePseudoConsole