Reactos
at master 55 lines 1.3 kB view raw
1/* 2 * PROJECT: ReactOS Console Utilities Library 3 * LICENSE: GPL-2.0+ (https://spdx.org/licenses/GPL-2.0+) 4 * PURPOSE: Provides basic abstraction wrappers around CRT streams or 5 * Win32 console API I/O functions, to deal with i18n + Unicode 6 * related problems. 7 * COPYRIGHT: Copyright 2017-2018 ReactOS Team 8 * Copyright 2017-2018 Hermes Belusca-Maito 9 */ 10 11#ifndef __STREAM_PRIVATE_H__ 12#define __STREAM_PRIVATE_H__ 13 14#pragma once 15 16/* 17 * Console I/O streams 18 */ 19 20#if 0 21// Shadow type, implementation-specific 22typedef struct _CON_STREAM CON_STREAM, *PCON_STREAM; 23#endif 24 25typedef struct _CON_STREAM 26{ 27 CON_WRITE_FUNC WriteFunc; 28 29#ifdef USE_CRT 30 FILE* fStream; 31#else 32 BOOL IsInitialized; 33 CRITICAL_SECTION Lock; 34 35 HANDLE hHandle; 36 37 /* 38 * TRUE if 'hHandle' refers to a console, in which case I/O UTF-16 39 * is directly used. If 'hHandle' refers to a file or a pipe, the 40 * 'Mode' flag is used. 41 */ 42 BOOL IsConsole; 43 44 /* 45 * The 'Mode' flag is used to know the translation mode 46 * when 'hHandle' refers to a file or a pipe. 47 */ 48 CON_STREAM_MODE Mode; 49 UINT CodePage; // Used to convert UTF-16 text to some ANSI code page. 50#endif /* defined(USE_CRT) */ 51} CON_STREAM, *PCON_STREAM; 52 53#endif /* __STREAM_PRIVATE_H__ */ 54 55/* EOF */