Функция 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 |