다음을 통해 공유


CreatePseudoConsole 함수

호출 프로세스에 대한 새 의사console 개체를 만듭니다.

구문

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

매개 변수

크기 [in]
pseudoconsole의 초기 생성에 사용할 문자 수의 창/버퍼 크기입니다. 나중에 ResizePseudoConsole을 사용하여 조정할 수 있습니다.

hInput [in]
디바이스에 대한 사용자 입력을 나타내는 데이터 스트림에 대한 열린 핸들입니다. 현재 동기 I/O로 제한됩니다.

hOutput [in]
디바이스의 애플리케이션 출력을 나타내는 데이터 스트림에 대한 열린 핸들입니다. 현재 동기 I/O로 제한됩니다.

dwFlags [in]
값은 다음 중 하나입니다.

의미
0 표준 의사 창 만들기를 수행합니다.
PSEUDOCONSOLE_INHERIT_CURSOR(DWORD)1 생성된 pseudoconsole 세션은 부모 콘솔의 커서 위치를 상속하려고 시도합니다.

phPC [out]
새 pseudoconsole 디바이스에 대한 핸들을 받을 위치에 대한 포인터입니다.

반환 값

형식: HRESULT

메서드가 성공하면 S_OK를 반환하고, 성공하지 않으면 HRESULT 오류 코드를 반환합니다.

설명

이 함수는 주로 CUI(명령줄 사용자 인터페이스) 애플리케이션의 터미널 창이 되도록 시도하는 애플리케이션에서 사용됩니다. 호출자는 출력 스트림에 대한 정보를 표시하고 사용자 입력을 수집하고 입력 스트림으로 serialize하는 작업을 담당합니다.

UTF-8로 인코딩된 입력 및 출력 스트림에는 가상 터미널 시퀀스와 인터리브된 일반 텍스트가 포함됩니다.

출력 스트림 에서 호출 애플리케이션에서 가상 터미널 시퀀스를 디코딩하여 레이아웃을 지정하고 표시 창에 일반 텍스트를 표시할 수 있습니다.

입력 스트림에서 일반 텍스트는 사용자가 입력한 표준 키보드 키를 나타냅니다. 더 복잡한 작업은 제어 키 및 마우스 이동을 이 스트림에 포함된 가상 터미널 시퀀스인코딩하여 나타냅니다.

작업이 완료되면 이 함수에서 만든 핸들을 ClosePseudoConsole닫아야 합니다.

사용하는 PSEUDOCONSOLE_INHERIT_CURSOR경우 호출 애플리케이션은 수신 hOutputhInput될 커서 정보에 대한 요청을 전달하거나 해석하여 백그라운드 스레드에서 비동기 방식으로 커서 상태에 대한 요청에 응답하도록 준비해야 합니다. 이렇게 하지 않으면 의사console 시스템의 다른 요청을 수행하는 동안 호출 애플리케이션이 중단될 수 있습니다.

예제

이 함수를 사용하여 의사console 세션을 설정하는 방법에 대한 전체 연습은 Pseudoconsole 세션 만들기를 참조하세요.

요구 사항

   
지원되는 최소 클라이언트 Windows 10 2018년 10월 업데이트(버전 1809) [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2019 [데스크톱 앱만 해당]
헤더 ConsoleApi.h(WinCon.h를 통해, Windows.h 포함)
라이브러리 Kernel32.lib
DLL Kernel32.dll

참고 항목

의사콘솔

Pseudoconsole 세션 만들기

ResizePseudoConsole

ClosePseudoConsole