aboutsummaryrefslogtreecommitdiff
path: root/lib/libc/include/any-windows-any/consoleapi2.h
blob: 184e47fe551df6ca9bd0fec37c432d8a23ac80b6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
/**
 * This file has no copyright assigned and is placed in the Public Domain.
 * This file is part of the mingw-w64 runtime package.
 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
 */

#ifndef _APISETCONSOLEL2_
#define _APISETCONSOLEL2_

#include <_mingw_unicode.h>

#include <apiset.h>
#include <apisetcconv.h>
#include <minwinbase.h>
#include <minwindef.h>

#include <wincontypes.h>
#include <windef.h>

#ifdef __cplusplus
extern "C" {
#endif

#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)

#define FOREGROUND_BLUE 0x0001
#define FOREGROUND_GREEN 0x0002
#define FOREGROUND_RED 0x0004
#define FOREGROUND_INTENSITY 0x0008
#define BACKGROUND_BLUE 0x0010
#define BACKGROUND_GREEN 0x0020
#define BACKGROUND_RED 0x0040
#define BACKGROUND_INTENSITY 0x0080
#define COMMON_LVB_LEADING_BYTE 0x0100
#define COMMON_LVB_TRAILING_BYTE 0x0200
#define COMMON_LVB_GRID_HORIZONTAL 0x0400
#define COMMON_LVB_GRID_LVERTICAL 0x0800
#define COMMON_LVB_GRID_RVERTICAL 0x1000
#define COMMON_LVB_REVERSE_VIDEO 0x4000
#define COMMON_LVB_UNDERSCORE 0x8000

#define COMMON_LVB_SBCSDBCS 0x0300

WINBASEAPI WINBOOL WINAPI FillConsoleOutputCharacterA(HANDLE console_output, CHAR character, DWORD length, COORD write_coord, LPDWORD number_of_chars_written);
WINBASEAPI WINBOOL WINAPI FillConsoleOutputCharacterW(HANDLE console_output, WCHAR character, DWORD length, COORD write_coord, LPDWORD number_of_chars_written);
#define FillConsoleOutputCharacter __MINGW_NAME_AW(FillConsoleOutputCharacter)

WINBASEAPI WINBOOL WINAPI FillConsoleOutputAttribute(HANDLE console_output, WORD attribute, DWORD length, COORD write_coord, LPDWORD number_of_attrs_written);
WINBASEAPI WINBOOL WINAPI GenerateConsoleCtrlEvent(DWORD ctrl_event, DWORD process_group_id);
WINBASEAPI HANDLE WINAPI CreateConsoleScreenBuffer(DWORD desired_access, DWORD share_mode, const SECURITY_ATTRIBUTES *security_attributes, DWORD flags, LPVOID screen_buffer_data);
WINBASEAPI WINBOOL WINAPI SetConsoleActiveScreenBuffer(HANDLE console_output);
WINBASEAPI WINBOOL WINAPI FlushConsoleInputBuffer(HANDLE console_input);
WINBASEAPI WINBOOL WINAPI SetConsoleCP(UINT code_page_id);
WINBASEAPI WINBOOL WINAPI SetConsoleOutputCP(UINT code_page_id);

typedef struct _CONSOLE_CURSOR_INFO {
  DWORD dwSize;
  WINBOOL bVisible;
} CONSOLE_CURSOR_INFO, *PCONSOLE_CURSOR_INFO;

WINBASEAPI WINBOOL WINAPI GetConsoleCursorInfo(HANDLE console_output, PCONSOLE_CURSOR_INFO console_cursor_info);
WINBASEAPI WINBOOL WINAPI SetConsoleCursorInfo(HANDLE console_output, const CONSOLE_CURSOR_INFO *console_cursor_info);

typedef struct _CONSOLE_SCREEN_BUFFER_INFO {
  COORD dwSize;
  COORD dwCursorPosition;
  WORD wAttributes;
  SMALL_RECT srWindow;
  COORD dwMaximumWindowSize;
} CONSOLE_SCREEN_BUFFER_INFO, *PCONSOLE_SCREEN_BUFFER_INFO;

WINBASEAPI WINBOOL WINAPI GetConsoleScreenBufferInfo(HANDLE console_output, PCONSOLE_SCREEN_BUFFER_INFO console_screen_buffer_info);

typedef struct _CONSOLE_SCREEN_BUFFER_INFOEX {
  ULONG cbSize;
  COORD dwSize;
  COORD dwCursorPosition;
  WORD wAttributes;
  SMALL_RECT srWindow;
  COORD dwMaximumWindowSize;
  WORD wPopupAttributes;
  WINBOOL bFullscreenSupported;
  COLORREF ColorTable[16];
} CONSOLE_SCREEN_BUFFER_INFOEX, *PCONSOLE_SCREEN_BUFFER_INFOEX;

WINBASEAPI WINBOOL WINAPI GetConsoleScreenBufferInfoEx(HANDLE console_output, PCONSOLE_SCREEN_BUFFER_INFOEX console_screen_buffer_info_ex);
WINBASEAPI WINBOOL WINAPI SetConsoleScreenBufferInfoEx(HANDLE console_output, PCONSOLE_SCREEN_BUFFER_INFOEX console_screen_buffer_info_ex);
WINBASEAPI WINBOOL WINAPI SetConsoleScreenBufferSize(HANDLE console_output, COORD size);
WINBASEAPI WINBOOL WINAPI SetConsoleCursorPosition(HANDLE console_output, COORD cursor_position);
WINBASEAPI COORD WINAPI GetLargestConsoleWindowSize(HANDLE console_output);
WINBASEAPI WINBOOL WINAPI SetConsoleTextAttribute(HANDLE console_output, WORD attributes);
WINBASEAPI WINBOOL WINAPI SetConsoleWindowInfo(HANDLE console_output, WINBOOL absolute, const SMALL_RECT *console_window);

WINBASEAPI WINBOOL WINAPI WriteConsoleOutputCharacterA(HANDLE console_output, LPCSTR character, DWORD length, COORD write_coord, LPDWORD number_of_chars_written);
WINBASEAPI WINBOOL WINAPI WriteConsoleOutputCharacterW(HANDLE console_output, LPCWSTR character, DWORD length, COORD write_coord, LPDWORD number_of_chars_written);
#define WriteConsoleOutputCharacter __MINGW_NAME_AW(WriteConsoleOutputCharacter)

WINBASEAPI WINBOOL WINAPI WriteConsoleOutputAttribute(HANDLE console_output, const WORD *attribute, DWORD length, COORD write_coord, LPDWORD number_of_attrs_written);

WINBASEAPI WINBOOL WINAPI ReadConsoleOutputCharacterA(HANDLE console_output, LPSTR character, DWORD length, COORD read_coord, LPDWORD number_of_chars_read);
WINBASEAPI WINBOOL WINAPI ReadConsoleOutputCharacterW(HANDLE console_output, LPWSTR character, DWORD length, COORD read_coord, LPDWORD number_of_chars_read);
#define ReadConsoleOutputCharacter __MINGW_NAME_AW(ReadConsoleOutputCharacter)

WINBASEAPI WINBOOL WINAPI ReadConsoleOutputAttribute(HANDLE console_output, LPWORD attribute, DWORD length, COORD read_coord, LPDWORD number_of_attrs_read);

WINBASEAPI WINBOOL WINAPI WriteConsoleInputA(HANDLE console_input, const INPUT_RECORD *buffer, DWORD length, LPDWORD number_of_events_written);
WINBASEAPI WINBOOL WINAPI WriteConsoleInputW(HANDLE console_input, const INPUT_RECORD *buffer, DWORD length, LPDWORD number_of_events_written);
#define WriteConsoleInput __MINGW_NAME_AW(WriteConsoleInput)

WINBASEAPI WINBOOL WINAPI ScrollConsoleScreenBufferA(HANDLE console_output, const SMALL_RECT *scroll_rectangle, const SMALL_RECT *clip_rectangle, COORD destination_origin, const CHAR_INFO *fill);
WINBASEAPI WINBOOL WINAPI ScrollConsoleScreenBufferW(HANDLE console_output, const SMALL_RECT *scroll_rectangle, const SMALL_RECT *clip_rectangle, COORD destination_origin, const CHAR_INFO *fill);
#define ScrollConsoleScreenBuffer __MINGW_NAME_AW(ScrollConsoleScreenBuffer)

WINBASEAPI WINBOOL WINAPI WriteConsoleOutputA(HANDLE console_output, const CHAR_INFO *buffer, COORD buffer_size, COORD buffer_coord, PSMALL_RECT write_region);
WINBASEAPI WINBOOL WINAPI WriteConsoleOutputW(HANDLE console_output, const CHAR_INFO *buffer, COORD buffer_size, COORD buffer_coord, PSMALL_RECT write_region);
#define WriteConsoleOutput __MINGW_NAME_AW(WriteConsoleOutput)

WINBASEAPI WINBOOL WINAPI ReadConsoleOutputA(HANDLE console_output, PCHAR_INFO buffer, COORD buffer_size, COORD buffer_coord, PSMALL_RECT read_region);
WINBASEAPI WINBOOL WINAPI ReadConsoleOutputW(HANDLE console_output, PCHAR_INFO buffer, COORD buffer_size, COORD buffer_coord, PSMALL_RECT read_region);
#define ReadConsoleOutput __MINGW_NAME_AW(ReadConsoleOutput)

WINBASEAPI DWORD WINAPI GetConsoleTitleA(LPSTR console_title, DWORD size);
WINBASEAPI DWORD WINAPI GetConsoleTitleW(LPWSTR console_title, DWORD size);
#define GetConsoleTitle __MINGW_NAME_AW(GetConsoleTitle)

#if (_WIN32_WINNT >= 0x0600)

WINBASEAPI DWORD WINAPI GetConsoleOriginalTitleA(LPSTR console_title, DWORD size);
WINBASEAPI DWORD WINAPI GetConsoleOriginalTitleW(LPWSTR console_title, DWORD size);
#define GetConsoleOriginalTitle __MINGW_NAME_AW(GetConsoleOriginalTitle)

#endif /* _WIN32_WINNT >= 0x0600 */

WINBASEAPI WINBOOL WINAPI SetConsoleTitleA(LPCSTR console_title);
WINBASEAPI WINBOOL WINAPI SetConsoleTitleW(LPCWSTR console_title);
#define SetConsoleTitle __MINGW_NAME_AW(SetConsoleTitle)

#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */

#ifdef __cplusplus
}
#endif

#endif /* _APISETCONSOLEL2_ */