--- /dev/null
+/*
+ * PROJECT: ReactOS Console Utilities Library
+ * LICENSE: GPL-2.0+ (https://spdx.org/licenses/GPL-2.0+)
+ * PURPOSE: Provides basic abstraction wrappers around CRT streams or
+ * Win32 console API I/O functions, to deal with i18n + Unicode
+ * related problems.
+ * COPYRIGHT: Copyright 2017-2018 ReactOS Team
+ * Copyright 2017-2018 Hermes Belusca-Maito
+ */
+
+#ifndef __STREAM_PRIVATE_H__
+#define __STREAM_PRIVATE_H__
+
+#pragma once
+
+/*
+ * Console I/O streams
+ */
+
+#if 0
+// Shadow type, implementation-specific
+typedef struct _CON_STREAM CON_STREAM, *PCON_STREAM;
+#endif
+
+typedef struct _CON_STREAM
+{
+ CON_WRITE_FUNC WriteFunc;
+
+#ifdef USE_CRT
+ FILE* fStream;
+#else
+ BOOL IsInitialized;
+ CRITICAL_SECTION Lock;
+
+ HANDLE hHandle;
+
+ /*
+ * TRUE if 'hHandle' refers to a console, in which case I/O UTF-16
+ * is directly used. If 'hHandle' refers to a file or a pipe, the
+ * 'Mode' flag is used.
+ */
+ BOOL IsConsole;
+
+ /*
+ * The 'Mode' flag is used to know the translation mode
+ * when 'hHandle' refers to a file or a pipe.
+ */
+ CON_STREAM_MODE Mode;
+ UINT CodePage; // Used to convert UTF-16 text to some ANSI codepage.
+#endif /* defined(USE_CRT) */
+} CON_STREAM, *PCON_STREAM;
+
+#endif /* __STREAM_PRIVATE_H__ */
+
+/* EOF */