45 lines
1.5 KiB
C
45 lines
1.5 KiB
C
/*++
|
|
Copyright (c) Microsoft Corporation
|
|
|
|
Licensed under the MIT license.
|
|
Module Name:
|
|
- stream.h
|
|
|
|
Abstract:
|
|
- This file implements the NT console server stream API
|
|
|
|
Author:
|
|
- Therese Stowell (ThereseS) 6-Nov-1990
|
|
|
|
Revision History:
|
|
--*/
|
|
|
|
#pragma once
|
|
|
|
#include "cmdline.h"
|
|
#include "../server/IWaitRoutine.h"
|
|
#include "readData.hpp"
|
|
|
|
#define IS_CONTROL_CHAR(wch) ((wch) < L' ')
|
|
|
|
[[nodiscard]] NTSTATUS GetChar(_Inout_ InputBuffer* const pInputBuffer,
|
|
_Out_ wchar_t* const pwchOut,
|
|
const bool Wait,
|
|
_Out_opt_ bool* const pCommandLineEditingKeys,
|
|
_Out_opt_ bool* const pPopupKeys,
|
|
_Out_opt_ DWORD* const pdwKeyState) noexcept;
|
|
|
|
// Routine Description:
|
|
// - This routine returns the total number of screen spaces the characters up to the specified character take up.
|
|
size_t RetrieveTotalNumberOfSpaces(const SHORT sOriginalCursorPositionX,
|
|
_In_reads_(ulCurrentPosition) const WCHAR* const pwchBuffer,
|
|
const size_t ulCurrentPosition);
|
|
|
|
// Routine Description:
|
|
// - This routine returns the number of screen spaces the specified character takes up.
|
|
size_t RetrieveNumberOfSpaces(_In_ SHORT sOriginalCursorPositionX,
|
|
_In_reads_(ulCurrentPosition + 1) const WCHAR* const pwchBuffer,
|
|
_In_ size_t ulCurrentPosition);
|
|
|
|
VOID UnblockWriteConsole(const DWORD dwReason);
|