zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

consoleapi2.h (7535B) - Raw


      1 /**
      2  * This file has no copyright assigned and is placed in the Public Domain.
      3  * This file is part of the mingw-w64 runtime package.
      4  * No warranty is given; refer to the file DISCLAIMER.PD within this package.
      5  */
      6 
      7 #ifndef _APISETCONSOLEL2_
      8 #define _APISETCONSOLEL2_
      9 
     10 #include <_mingw_unicode.h>
     11 
     12 #include <apiset.h>
     13 #include <apisetcconv.h>
     14 #include <minwinbase.h>
     15 #include <minwindef.h>
     16 
     17 #include <wincontypes.h>
     18 #include <windef.h>
     19 
     20 #ifdef __cplusplus
     21 extern "C" {
     22 #endif
     23 
     24 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
     25 
     26 #define FOREGROUND_BLUE 0x0001
     27 #define FOREGROUND_GREEN 0x0002
     28 #define FOREGROUND_RED 0x0004
     29 #define FOREGROUND_INTENSITY 0x0008
     30 #define BACKGROUND_BLUE 0x0010
     31 #define BACKGROUND_GREEN 0x0020
     32 #define BACKGROUND_RED 0x0040
     33 #define BACKGROUND_INTENSITY 0x0080
     34 #define COMMON_LVB_LEADING_BYTE 0x0100
     35 #define COMMON_LVB_TRAILING_BYTE 0x0200
     36 #define COMMON_LVB_GRID_HORIZONTAL 0x0400
     37 #define COMMON_LVB_GRID_LVERTICAL 0x0800
     38 #define COMMON_LVB_GRID_RVERTICAL 0x1000
     39 #define COMMON_LVB_REVERSE_VIDEO 0x4000
     40 #define COMMON_LVB_UNDERSCORE 0x8000
     41 
     42 #define COMMON_LVB_SBCSDBCS 0x0300
     43 
     44 WINBASEAPI WINBOOL WINAPI FillConsoleOutputCharacterA(HANDLE console_output, CHAR character, DWORD length, COORD write_coord, LPDWORD number_of_chars_written);
     45 WINBASEAPI WINBOOL WINAPI FillConsoleOutputCharacterW(HANDLE console_output, WCHAR character, DWORD length, COORD write_coord, LPDWORD number_of_chars_written);
     46 #define FillConsoleOutputCharacter __MINGW_NAME_AW(FillConsoleOutputCharacter)
     47 
     48 WINBASEAPI WINBOOL WINAPI FillConsoleOutputAttribute(HANDLE console_output, WORD attribute, DWORD length, COORD write_coord, LPDWORD number_of_attrs_written);
     49 WINBASEAPI WINBOOL WINAPI GenerateConsoleCtrlEvent(DWORD ctrl_event, DWORD process_group_id);
     50 WINBASEAPI HANDLE WINAPI CreateConsoleScreenBuffer(DWORD desired_access, DWORD share_mode, const SECURITY_ATTRIBUTES *security_attributes, DWORD flags, LPVOID screen_buffer_data);
     51 WINBASEAPI WINBOOL WINAPI SetConsoleActiveScreenBuffer(HANDLE console_output);
     52 WINBASEAPI WINBOOL WINAPI FlushConsoleInputBuffer(HANDLE console_input);
     53 WINBASEAPI WINBOOL WINAPI SetConsoleCP(UINT code_page_id);
     54 WINBASEAPI WINBOOL WINAPI SetConsoleOutputCP(UINT code_page_id);
     55 
     56 typedef struct _CONSOLE_CURSOR_INFO {
     57   DWORD dwSize;
     58   WINBOOL bVisible;
     59 } CONSOLE_CURSOR_INFO, *PCONSOLE_CURSOR_INFO;
     60 
     61 WINBASEAPI WINBOOL WINAPI GetConsoleCursorInfo(HANDLE console_output, PCONSOLE_CURSOR_INFO console_cursor_info);
     62 WINBASEAPI WINBOOL WINAPI SetConsoleCursorInfo(HANDLE console_output, const CONSOLE_CURSOR_INFO *console_cursor_info);
     63 
     64 typedef struct _CONSOLE_SCREEN_BUFFER_INFO {
     65   COORD dwSize;
     66   COORD dwCursorPosition;
     67   WORD wAttributes;
     68   SMALL_RECT srWindow;
     69   COORD dwMaximumWindowSize;
     70 } CONSOLE_SCREEN_BUFFER_INFO, *PCONSOLE_SCREEN_BUFFER_INFO;
     71 
     72 WINBASEAPI WINBOOL WINAPI GetConsoleScreenBufferInfo(HANDLE console_output, PCONSOLE_SCREEN_BUFFER_INFO console_screen_buffer_info);
     73 
     74 typedef struct _CONSOLE_SCREEN_BUFFER_INFOEX {
     75   ULONG cbSize;
     76   COORD dwSize;
     77   COORD dwCursorPosition;
     78   WORD wAttributes;
     79   SMALL_RECT srWindow;
     80   COORD dwMaximumWindowSize;
     81   WORD wPopupAttributes;
     82   WINBOOL bFullscreenSupported;
     83   COLORREF ColorTable[16];
     84 } CONSOLE_SCREEN_BUFFER_INFOEX, *PCONSOLE_SCREEN_BUFFER_INFOEX;
     85 
     86 WINBASEAPI WINBOOL WINAPI GetConsoleScreenBufferInfoEx(HANDLE console_output, PCONSOLE_SCREEN_BUFFER_INFOEX console_screen_buffer_info_ex);
     87 WINBASEAPI WINBOOL WINAPI SetConsoleScreenBufferInfoEx(HANDLE console_output, PCONSOLE_SCREEN_BUFFER_INFOEX console_screen_buffer_info_ex);
     88 WINBASEAPI WINBOOL WINAPI SetConsoleScreenBufferSize(HANDLE console_output, COORD size);
     89 WINBASEAPI WINBOOL WINAPI SetConsoleCursorPosition(HANDLE console_output, COORD cursor_position);
     90 WINBASEAPI COORD WINAPI GetLargestConsoleWindowSize(HANDLE console_output);
     91 WINBASEAPI WINBOOL WINAPI SetConsoleTextAttribute(HANDLE console_output, WORD attributes);
     92 WINBASEAPI WINBOOL WINAPI SetConsoleWindowInfo(HANDLE console_output, WINBOOL absolute, const SMALL_RECT *console_window);
     93 
     94 WINBASEAPI WINBOOL WINAPI WriteConsoleOutputCharacterA(HANDLE console_output, LPCSTR character, DWORD length, COORD write_coord, LPDWORD number_of_chars_written);
     95 WINBASEAPI WINBOOL WINAPI WriteConsoleOutputCharacterW(HANDLE console_output, LPCWSTR character, DWORD length, COORD write_coord, LPDWORD number_of_chars_written);
     96 #define WriteConsoleOutputCharacter __MINGW_NAME_AW(WriteConsoleOutputCharacter)
     97 
     98 WINBASEAPI WINBOOL WINAPI WriteConsoleOutputAttribute(HANDLE console_output, const WORD *attribute, DWORD length, COORD write_coord, LPDWORD number_of_attrs_written);
     99 
    100 WINBASEAPI WINBOOL WINAPI ReadConsoleOutputCharacterA(HANDLE console_output, LPSTR character, DWORD length, COORD read_coord, LPDWORD number_of_chars_read);
    101 WINBASEAPI WINBOOL WINAPI ReadConsoleOutputCharacterW(HANDLE console_output, LPWSTR character, DWORD length, COORD read_coord, LPDWORD number_of_chars_read);
    102 #define ReadConsoleOutputCharacter __MINGW_NAME_AW(ReadConsoleOutputCharacter)
    103 
    104 WINBASEAPI WINBOOL WINAPI ReadConsoleOutputAttribute(HANDLE console_output, LPWORD attribute, DWORD length, COORD read_coord, LPDWORD number_of_attrs_read);
    105 
    106 WINBASEAPI WINBOOL WINAPI WriteConsoleInputA(HANDLE console_input, const INPUT_RECORD *buffer, DWORD length, LPDWORD number_of_events_written);
    107 WINBASEAPI WINBOOL WINAPI WriteConsoleInputW(HANDLE console_input, const INPUT_RECORD *buffer, DWORD length, LPDWORD number_of_events_written);
    108 #define WriteConsoleInput __MINGW_NAME_AW(WriteConsoleInput)
    109 
    110 WINBASEAPI WINBOOL WINAPI ScrollConsoleScreenBufferA(HANDLE console_output, const SMALL_RECT *scroll_rectangle, const SMALL_RECT *clip_rectangle, COORD destination_origin, const CHAR_INFO *fill);
    111 WINBASEAPI WINBOOL WINAPI ScrollConsoleScreenBufferW(HANDLE console_output, const SMALL_RECT *scroll_rectangle, const SMALL_RECT *clip_rectangle, COORD destination_origin, const CHAR_INFO *fill);
    112 #define ScrollConsoleScreenBuffer __MINGW_NAME_AW(ScrollConsoleScreenBuffer)
    113 
    114 WINBASEAPI WINBOOL WINAPI WriteConsoleOutputA(HANDLE console_output, const CHAR_INFO *buffer, COORD buffer_size, COORD buffer_coord, PSMALL_RECT write_region);
    115 WINBASEAPI WINBOOL WINAPI WriteConsoleOutputW(HANDLE console_output, const CHAR_INFO *buffer, COORD buffer_size, COORD buffer_coord, PSMALL_RECT write_region);
    116 #define WriteConsoleOutput __MINGW_NAME_AW(WriteConsoleOutput)
    117 
    118 WINBASEAPI WINBOOL WINAPI ReadConsoleOutputA(HANDLE console_output, PCHAR_INFO buffer, COORD buffer_size, COORD buffer_coord, PSMALL_RECT read_region);
    119 WINBASEAPI WINBOOL WINAPI ReadConsoleOutputW(HANDLE console_output, PCHAR_INFO buffer, COORD buffer_size, COORD buffer_coord, PSMALL_RECT read_region);
    120 #define ReadConsoleOutput __MINGW_NAME_AW(ReadConsoleOutput)
    121 
    122 WINBASEAPI DWORD WINAPI GetConsoleTitleA(LPSTR console_title, DWORD size);
    123 WINBASEAPI DWORD WINAPI GetConsoleTitleW(LPWSTR console_title, DWORD size);
    124 #define GetConsoleTitle __MINGW_NAME_AW(GetConsoleTitle)
    125 
    126 #if (_WIN32_WINNT >= 0x0600)
    127 
    128 WINBASEAPI DWORD WINAPI GetConsoleOriginalTitleA(LPSTR console_title, DWORD size);
    129 WINBASEAPI DWORD WINAPI GetConsoleOriginalTitleW(LPWSTR console_title, DWORD size);
    130 #define GetConsoleOriginalTitle __MINGW_NAME_AW(GetConsoleOriginalTitle)
    131 
    132 #endif /* _WIN32_WINNT >= 0x0600 */
    133 
    134 WINBASEAPI WINBOOL WINAPI SetConsoleTitleA(LPCSTR console_title);
    135 WINBASEAPI WINBOOL WINAPI SetConsoleTitleW(LPCWSTR console_title);
    136 #define SetConsoleTitle __MINGW_NAME_AW(SetConsoleTitle)
    137 
    138 #endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */
    139 
    140 #ifdef __cplusplus
    141 }
    142 #endif
    143 
    144 #endif /* _APISETCONSOLEL2_ */