Función CreatePseudoConsole
Crea un nuevo objeto de pseudoconsola para el proceso de llamada.
Sintaxis
HRESULT WINAPI CreatePseudoConsole(
_In_ COORD size,
_In_ HANDLE hInput,
_In_ HANDLE hOutput,
_In_ DWORD dwFlags,
_Out_ HPCON* phPC
);
Parámetros
size [in]
Dimensiones de la ventana o el búfer en número de caracteres que se utilizarán en la creación inicial de la pseudoconsola. Esto se puede ajustar más adelante con ResizePseudoConsole.
hInput [in]
Identificador abierto de un flujo de datos que representa la entrada del usuario en el dispositivo. Actualmente está restringido a E/S sincrónica.
hOutput [in]
Identificador abierto de un flujo de datos que representa la salida de la aplicación desde el dispositivo. Actualmente está restringido a E/S sincrónica.
dwFlags [in]
El valor puede ser uno de los siguientes:
Valor | Significado |
---|---|
0 | Realice una creación de pseudoconsola estándar. |
PSEUDOCONSOLE_INHERIT_CURSOR (DWORD)1 | La sesión de pseudoconsola creada intentará heredar la posición del cursor de la consola primaria. |
phPC [out]
Puntero a una ubicación que recibirá un identificador para el nuevo dispositivo de pseudoconsola.
Valor devuelto
Tipo: HRESULT
Si este método se realiza correctamente, devuelve S_OK. De lo contrario, devuelve un código de error de HRESULT.
Comentarios
Esta función la usan principalmente las aplicaciones que intentan ser una ventana de terminal para una aplicación de interfaz de usuario de línea de comandos (CUI). Los llamadores se convierten en responsables de la presentación de la información sobre el flujo de salida y de recopilar la entrada del usuario y serializarla en el flujo de entrada.
Los flujos de entrada y salida codificados como UTF-8 contienen texto sin formato intercalado con secuencias de terminal virtual.
En el flujo de salida, la aplicación que llama puede decodificar las secuencias del terminal virtual para diseñar y presentar el texto sin formato en una ventana de visualización.
En el flujo de entrada, el texto sin formato representa la entrada de teclas de teclado estándar por parte de un usuario. Las operaciones más complicadas se representan mediante la codificación de teclas de control y movimientos del ratón como secuencias de terminal virtual insertadas en esta secuencia.
El identificador creado por esta función debe cerrarse con ClosePseudoConsole cuando se completen las operaciones.
Si usa PSEUDOCONSOLE_INHERIT_CURSOR
, la aplicación que realiza la llamada debe estar preparada para responder a la solicitud del estado del cursor de forma asíncrona en un subproceso en segundo plano reenviando o interpretando la solicitud de información del cursor que se recibirá el hOutput
y se responderá el hInput
. Si no lo hace, es posible que la aplicación que realiza la llamada se bloquee al realizar otra solicitud del sistema de pseudoconsola.
Ejemplos
Para ver un tutorial completo sobre cómo usar esta función para establecer una sesión de pseudoconsola, consulte Creación de una sesión de pseudoconsola.
Requisitos
Cliente mínimo compatible | Actualización de octubre de 2018 de Windows 10 (versión 1809) [solo aplicaciones de escritorio] |
Servidor mínimo compatible | Windows Server 2019 [solo aplicaciones de escritorio] |
Encabezado | ConsoleApi.h (a través de WinCon.h, incluido Windows.h) |
Biblioteca | Kernel32.lib |
Archivo DLL | Kernel32.dll |