#ifndef NTCON_H
#define NTCON_H
#include "ntcon_api.h"
#ifdef __cplusplus
extern "C" {
#endif
/* console standard handles */
#define NT_STD_INPUT_HANDLE (uint32_t)-10
#define NT_STD_OUTPUT_HANDLE (uint32_t)-11
#define NT_STD_ERROR_HANDLE (uint32_t)-12
/* console attachment */
#define NT_ATTACH_PARENT_PROCESS (uint32_t)-1
/* console screen buffer flags */
#define NT_CONSOLE_TEXTMODE_BUFFER (0x01)
/* console control signals */
#define NT_CTRL_C_EVENT (0x00)
#define NT_CTRL_BREAK_EVENT (0x01)
#define NT_CTRL_CLOSE_EVENT (0x02)
#define NT_CTRL_LOGOFF_EVENT (0x05)
#define NT_CTRL_SHUTDOWN_EVENT (0x06)
/* console history flags */
#define NT_HISTORY_NO_DUP_FLAG (0x0001)
/* console event types */
#define NT_KEY_EVENT (0x0001)
#define NT_MOUSE_EVENT (0x0002)
#define NT_WINDOW_BUFFER_SIZE_EVENT (0x0004)
#define NT_MENU_EVENT (0x0008)
#define NT_FOCUS_EVENT (0x0010)
/* control key states */
#define NT_RIGHT_ALT_PRESSED (0x0001)
#define NT_LEFT_ALT_PRESSED (0x0002)
#define NT_RIGHT_CTRL_PRESSED (0x0004)
#define NT_LEFT_CTRL_PRESSED (0x0008)
#define NT_SHIFT_PRESSED (0x0010)
#define NT_NUMLOCK_ON (0x0020)
#define NT_SCROLLLOCK_ON (0x0040)
#define NT_CAPSLOCK_ON (0x0080)
#define NT_ENHANCED_KEY (0x0100)
/* console foreground color attributes */
#define NT_FOREGROUND_BLACK (0x0000)
#define NT_FOREGROUND_BLUE (0x0001)
#define NT_FOREGROUND_GREEN (0x0002)
#define NT_FOREGROUND_CYAN (0x0003)
#define NT_FOREGROUND_RED (0x0004)
#define NT_FOREGROUND_MAGENTA (0x0005)
#define NT_FOREGROUND_YELLOW (0x0006)
#define NT_FOREGROUND_WHITE (0x0007)
#define NT_FOREGROUND_INTENSITY (0x0008)
/* console background color attributes */
#define NT_BACKGROUND_BLACK (0x0000)
#define NT_BACKGROUND_BLUE (0x0010)
#define NT_BACKGROUND_GREEN (0x0020)
#define NT_BACKGROUND_CYAN (0x0030)
#define NT_BACKGROUND_RED (0x0040)
#define NT_BACKGROUND_MAGENTA (0x0050)
#define NT_BACKGROUND_YELLOW (0x0060)
#define NT_BACKGROUND_WHITE (0x0070)
#define NT_BACKGROUND_INTENSITY (0x0080)
/* console common lvb attributes */
#define NT_COMMON_LVB_LEADING_BYTE (0x0100)
#define NT_COMMON_LVB_TRAILING_BYTE (0x0200)
#define NT_COMMON_LVB_GRID_HORIZONTAL (0x0400)
#define NT_COMMON_LVB_GRID_LVERTICAL (0x0800)
#define NT_COMMON_LVB_GRID_RVERTICAL (0x1000)
#define NT_COMMON_LVB_REVERSE_VIDEO (0x4000)
#define NT_COMMON_LVB_UNDERSCORE (0x8000)
/* console font name length limit */
#define NT_LF_FACESIZE (0x20)
/* console font families */
#define NT_FF_DONTCARE (0x0 << 4)
#define NT_FF_ROMAN (0x1 << 4)
#define NT_FF_SWISS (0x2 << 4)
#define NT_FF_MODERN (0x3 << 4)
#define NT_FF_SCRIPT (0x4 << 4)
#define NT_FF_DECORATIVE (0x5 << 4)
/* console font weight */
#define NT_FW_DONTCARE 0
#define NT_FW_THIN 100
#define NT_FW_EXTRALIGHT 200
#define NT_FW_ULTRALIGHT 200
#define NT_FW_LIGHT 300
#define NT_FW_NORMAL 400
#define NT_FW_REGULAR 400
#define NT_FW_MEDIUM 500
#define NT_FW_SEMIBOLD 600
#define NT_FW_DEMIBOLD 600
#define NT_FW_BOLD 700
#define NT_FW_EXTRABOLD 800
#define NT_FW_ULTRABOLD 800
#define NT_FW_HEAVY 900
#define NT_FW_BLACK 900
/* console selection bits */
#define NT_CONSOLE_NO_SELECTION (0x0000)
#define NT_CONSOLE_SELECTION_IN_PROGRESS (0x0001)
#define NT_CONSOLE_SELECTION_NOT_EMPTY (0x0002)
#define NT_CONSOLE_MOUSE_SELECTION (0x0004)
#define NT_CONSOLE_MOUSE_DOWN (0x0008)
/* console mode bits */
#define NT_ENABLE_PROCESSED_INPUT (0x0001)
#define NT_ENABLE_LINE_INPUT (0x0002)
#define NT_ENABLE_ECHO_INPUT (0x0004)
#define NT_ENABLE_WINDOW_INPUT (0x0008)
#define NT_ENABLE_MOUSE_INPUT (0x0010)
#define NT_ENABLE_INSERT_MODE (0x0020)
#define NT_ENABLE_QUICK_EDIT_MODE (0x0040)
#define NT_ENABLE_EXTENDED_FLAGS (0x0080)
/* console display modes */
#define NT_CONSOLE_FULLSCREEN (0x0001)
#define NT_CONSOLE_FULLSCREEN_HARDWARE (0x0002)
/* console structures */
typedef struct _nt_coord {
int16_t x;
int16_t y;
} nt_coord;
typedef struct _nt_small_rect {
int16_t left;
int16_t top;
int16_t right;
int16_t bottom;
} nt_small_rect;
typedef struct _nt_char_info {
union {
wchar16_t unicode_char;
char ascii_char;
};
uint16_t attributes;
} nt_char_info;
typedef struct _nt_console_cursor_info {
uint32_t size;
int32_t visible;
} nt_console_cursor_info;
typedef struct _nt_console_font_info {
uint32_t font;
nt_coord font_size;
} nt_console_font_info;
typedef struct _nt_console_font_info_ex {
uint32_t info_size;
uint32_t font;
nt_coord font_size;
uint32_t font_family;
uint32_t font_weight;
wchar16_t face_name[NT_LF_FACESIZE];
} nt_console_font_info_ex;
typedef struct _nt_console_history_info {
uint32_t info_size;
uint32_t history_buffer_size;
uint32_t history_buffer_count;
uint32_t flags;
} nt_console_history_info;
typedef struct _nt_key_event_record {
int32_t key_down;
uint16_t repeat_count;
uint16_t virtual_key_code;
uint16_t virtual_scan_code;
union {
wchar16_t unicode_char;
char ascii_char;
};
uint32_t control_key_state;
} nt_key_event_record;
typedef struct _nt_mouse_event_record {
nt_coord mouse_position;
uint32_t button_state;
uint32_t control_key_state;
uint32_t event_flags;
} nt_mouse_event_record;
typedef struct _nt_window_buffer_size_record {
nt_coord size;
} nt_window_buffer_size_record;
typedef struct _nt_menu_event_record {
uint32_t command_id;
} nt_menu_event_record;
typedef struct _nt_focus_event_record {
int32_t set_focus;
} nt_focus_event_record;
typedef struct _nt_input_record {
uint16_t event_type;
union {
nt_key_event_record key_event;
nt_mouse_event_record mouse_event;
nt_window_buffer_size_record window_event;
nt_menu_event_record menu_event;
nt_focus_event_record focus_event;
};
} nt_input_record;
typedef struct _nt_console_screen_buffer_info {
nt_coord size;
nt_coord cursor_position;
uint16_t attributes;
nt_small_rect window;
nt_coord max_windows_size;
} nt_console_screen_buffer_info;
typedef struct _nt_console_screen_buffer_info_ex {
uint16_t info_size;
nt_coord size;
nt_coord cursor_position;
uint16_t attributes;
nt_small_rect window;
nt_coord max_windows_size;
uint16_t popup_attributes;
int32_t full_screen_supported;
uint32_t color_table[0x10];
} nt_console_screen_buffer_info_ex;
typedef struct _nt_console_read_console_control {
uint32_t length;
uint32_t initial_chars;
uint32_t crtl_wakeup_mask;
uint32_t ctrl_key_state;
} nt_console_read_console_control;
typedef struct _nt_console_selection_info {
uint32_t flags;
nt_coord selection_anchor;
nt_small_rect selection;
} nt_console_selection_info;
/* console api: console handles */
typedef int32_t __stdcall ntcon_alloc_console(void);
typedef int32_t __stdcall ntcon_attach_console(uint32_t pid);
typedef int32_t __stdcall ntcon_free_console(void);
typedef void * __stdcall ntcon_get_std_handle(uint32_t ntcon_std_type);
/* console api: read/write using std handles */
typedef int32_t __stdcall ntcon_get_number_of_console_input_events(
__in void * hconin,
__out uint32_t * number_of_events);
typedef int32_t __stdcall ntcon_flush_console_input_buffer(
__in void * hconin);
typedef int32_t __stdcall ntcon_peek_console_input_ansi(
__in void * hconin,
__out nt_input_record * buffer,
__in uint32_t length,
__out uint32_t * events_read);
typedef int32_t __stdcall ntcon_peek_console_input_utf16(
__in void * hconin,
__out nt_input_record * buffer,
__in uint32_t length,
__out uint32_t * events_read);
typedef int32_t __stdcall ntcon_read_console_ansi(
__in void * hconsole,
__out char * buffer,
__in uint32_t chars_to_read,
__out uint32_t * chars_read,
__in void * input_control __optional);
typedef int32_t __stdcall ntcon_read_console_utf16(
__in void * hconsole,
__out wchar16_t * buffer,
__in uint32_t chars_to_read,
__out uint32_t * chars_read,
__in void * input_control __optional);
typedef int32_t __stdcall ntcon_read_console_input_ansi(
__in void * hconin,
__out nt_input_record * buffer,
__in uint32_t length,
__out uint32_t * events_read);
typedef int32_t __stdcall ntcon_read_console_input_utf16(
__in void * hconin,
__out nt_input_record * buffer,
__in uint32_t length,
__out uint32_t * events_read);
typedef int32_t __stdcall ntcon_read_console_output_ansi(
__in void * hconout,
__out nt_char_info * buffer,
__in nt_coord buffer_size,
__in nt_coord buffer_coord,
__in_out nt_small_rect * read_region);
typedef int32_t __stdcall ntcon_read_console_output_utf16(
__in void * hconout,
__out nt_char_info * buffer,
__in nt_coord buffer_size,
__in nt_coord buffer_coord,
__in_out nt_small_rect * read_region);
typedef int32_t __stdcall ntcon_write_console_ansi(
__in void * hconsole,
__in const void * buffer,
__in uint32_t bytes_sent,
__out uint32_t * bytes_written,
__in_out void * overlapped __optional);
typedef int32_t __stdcall ntcon_write_console_utf16(
__in void * hconsole,
__in const void * buffer,
__in uint32_t bytes_sent,
__out uint32_t * bytes_written,
__in_out void * overlapped __optional);
typedef int32_t __stdcall ntcon_write_console_input_ansi(
__in void * hconin,
__in const nt_input_record * buffer,
__in uint32_t length,
__out uint32_t * events_written);
typedef int32_t __stdcall ntcon_write_console_input_utf16(
__in void * hconin,
__in const nt_input_record * buffer,
__in uint32_t length,
__out uint32_t * events_written);
typedef int32_t __stdcall ntcon_write_console_output_ansi(
__in void * hconout,
__in const nt_char_info * buffer,
__in nt_coord buffer_size,
__in nt_coord buffer_coord,
__in_out nt_small_rect * write_region);
typedef int32_t __stdcall ntcon_write_console_output_utf16(
__in void * hconout,
__in const nt_char_info * buffer,
__in nt_coord buffer_size,
__in nt_coord buffer_coord,
__in_out nt_small_rect * write_region);
/* console api: screen buffers */
typedef struct _nt_security_attributes nt_security_attributes;
typedef void * __stdcall ntcon_create_console_screen_buffer(
__in uint32_t desired_access,
__in uint32_t share_mode,
__in nt_security_attributes * sec_attr __optional,
__in uint32_t flags,
__in void * reserved);
typedef int32_t __stdcall ntcon_get_console_screen_buffer_info(
__in void * hconout,
__out nt_console_screen_buffer_info * con_screen_buffer_info);
typedef int32_t __stdcall ntcon_get_console_screen_buffer_info_ex(
__in void * hconout,
__out nt_console_screen_buffer_info_ex * con_screen_buffer_info_ex);
typedef int32_t __stdcall ntcon_set_console_screen_buffer_info_ex(
__in void * hconout,
__out nt_console_screen_buffer_info_ex * con_screen_buffer_info_ex);
typedef int32_t __stdcall ntcon_set_console_screen_buffer_size(
__in void * hconout,
__in nt_coord size);
typedef int32_t __stdcall ntcon_set_console_active_screen_buffer(
__in void * hconout);
typedef int32_t __stdcall ntcon_set_console_window_info(
__in void * hconout,
__in int32_t absolute,
__in const nt_small_rect * console_window);
typedef int32_t __stdcall ntcon_scroll_console_screen_buffer_ansi(
__in void * hconout,
__in const nt_small_rect * scroll_rect,
__in const nt_small_rect * clip_rect __optional,
__in nt_coord dest_origin,
__in const nt_char_info * fill);
typedef int32_t __stdcall ntcon_scroll_console_screen_buffer_utf16(
__in void * hconout,
__in const nt_small_rect * scroll_rect,
__in const nt_small_rect * clip_rect __optional,
__in nt_coord dest_origin,
__in const nt_char_info * fill);
/* console api: code page */
typedef uint32_t __stdcall ntcon_get_console_code_page(void);
typedef int32_t __stdcall ntcon_set_console_code_page(uint32_t code_page);
/* console api: console control */
typedef int32_t __stdcall nt_console_handler_routine(
__in uint32_t console_ctrl_type);
typedef int32_t __stdcall ntcon_generate_console_ctrl_event(
__in uint32_t ctrl_event,
__in uint32_t process_group_id);
typedef int32_t __stdcall ntcon_set_console_ctrl_handler(
__in nt_console_handler_routine * handler_routine __optional,
__in int32_t add_or_remove);
/* console api: interface mode */
typedef int32_t __stdcall ntcon_get_console_mode(
__in void * hconsole,
__out uint32_t * mode);
typedef int32_t __stdcall ntcon_set_console_mode(
__in void * hconsole,
__in uint32_t mode);
/* console api: console process list */
typedef uint32_t __stdcall ntcon_get_console_process_list(
__out uint32_t * process_list,
__in uint32_t process_count);
/* console api: aliases */
typedef int32_t __stdcall ntcon_add_console_alias_ansi(
__in char * source,
__in char * target,
__in char * exe_name);
typedef int32_t __stdcall ntcon_add_console_alias_utf16(
__in wchar16_t * source,
__in wchar16_t * target,
__in wchar16_t * exe_name);
typedef uint32_t __stdcall ntcon_get_console_alias_ansi(
__in char * source,
__out char * target_buffer,
__in uint32_t target_buffer_length,
__in char * exe_name);
typedef uint32_t __stdcall ntcon_get_console_alias_utf16(
__in wchar16_t * source,
__out wchar16_t * target_buffer,
__in uint32_t target_buffer_length,
__in wchar16_t * exe_name);
typedef uint32_t __stdcall ntcon_get_console_aliases_ansi(
__out char * alias_buffer,
__in uint32_t alias_buffer_length,
__in char * exe_name);
typedef uint32_t __stdcall ntcon_get_console_aliases_utf16(
__out wchar16_t * alias_buffer,
__in uint32_t alias_buffer_length,
__in wchar16_t * exe_name);
typedef uint32_t __stdcall ntcon_get_console_aliases_length_ansi(
__in char * exe_name);
typedef uint32_t __stdcall ntcon_get_console_aliases_length_utf16(
__in wchar16_t * exe_name);
typedef uint32_t __stdcall ntcon_get_console_alias_exes_ansi(
__out char * exe_name_buffer,
__in uint32_t exe_name_buffer_length);
typedef uint32_t __stdcall ntcon_get_console_alias_exes_utf16(
__out wchar16_t * exe_name_buffer,
__in uint32_t exe_name_buffer_length);
typedef uint32_t __stdcall ntcon_get_console_alias_exes_length_ansi(void);
typedef uint32_t __stdcall ntcon_get_console_alias_exes_length_utf16(void);
/* console api: output attributes */
typedef int32_t __stdcall ntcon_fill_console_output_attribute(
__in void * hconout,
__in uint16_t attribute,
__in uint32_t length,
__in nt_coord write_coord,
__out uint32_t * attrs_written);
typedef int32_t __stdcall ntcon_read_console_output_attribute(
__in void * hconout,
__in uint16_t * attribute,
__in uint32_t length,
__in nt_coord read_coord,
__out uint32_t * attrs_read);
typedef int32_t __stdcall ntcon_write_console_output_attribute(
__in void * hconout,
__in uint16_t * attribute,
__in uint32_t length,
__in nt_coord write_coord,
__out uint32_t * attrs_written);
/* console api: output characters */
typedef int32_t __stdcall ntcon_fill_console_output_character_ansi(
__in void * hconout,
__in char character,
__in uint32_t length,
__in nt_coord write_coord,
__out uint32_t * chars_written);
typedef int32_t __stdcall ntcon_fill_console_output_character_utf16(
__in void * hconout,
__in wchar16_t character,
__in uint32_t length,
__in nt_coord write_coord,
__out uint32_t * chars_written);
typedef int32_t __stdcall ntcon_read_console_output_character_ansi(
__in void * hconout,
__in char * character,
__in uint32_t length,
__in nt_coord read_coord,
__out uint32_t * chars_read);
typedef int32_t __stdcall ntcon_read_console_output_character_utf16(
__in void * hconout,
__in wchar16_t * character,
__in uint32_t length,
__in nt_coord read_coord,
__out uint32_t * chars_read);
typedef int32_t __stdcall ntcon_write_console_output_character_ansi(
__in void * hconout,
__in char * character,
__in uint32_t length,
__in nt_coord write_coord,
__out uint32_t * chars_written);
typedef int32_t __stdcall ntcon_write_console_output_character_utf16(
__in void * hconout,
__in wchar16_t * character,
__in uint32_t length,
__in nt_coord write_coord,
__out uint32_t * chars_written);
/* console api: output code page */
typedef uint32_t __stdcall ntcon_get_console_output_code_page(void);
typedef int32_t __stdcall ntcon_set_console_output_code_page(
__in uint32_t code_page_id);
/* console api: text attributes */
typedef int32_t __stdcall ntcon_set_console_text_attribute(
__in void * hconout,
__in uint16_t attributes);
/* console api: cursor info */
typedef int32_t __stdcall ntcon_get_console_cursor_info(
__in void * hconout,
__out nt_console_cursor_info * console_cursor_info);
typedef int32_t __stdcall ntcon_set_console_cursor_info(
__in void * hconout,
__in const nt_console_cursor_info * console_cursor_info);
typedef int32_t __stdcall ntcon_set_console_cursor_position(
__in void * hconout,
__out nt_coord cursor_position);
/* console api: selection info */
typedef int32_t __stdcall ntcon_get_console_selection_info(
__out nt_console_selection_info * console_selection_info);
/* console api: history info */
typedef int32_t __stdcall ntcon_get_console_history_info(
__out nt_console_history_info * console_history_info);
typedef int32_t __stdcall ntcon_set_console_history_info(
__in nt_console_history_info * console_history_info);
/* console api: font info */
typedef nt_coord __stdcall ntcon_get_console_font_size(
__in void * hconout,
__in uint32_t font);
typedef int32_t __stdcall ntcon_get_current_console_font(
__in void * hconout,
__in int32_t maximum_window,
__out nt_console_font_info * console_current_font);
typedef int32_t __stdcall ntcon_get_current_console_font_ex(
__in void * hconout,
__in int32_t maximum_window,
__out nt_console_font_info_ex * console_current_font_ex);
typedef int32_t __stdcall ntcon_set_current_console_font_ex(
__in void * hconout,
__in int32_t maximum_window,
__in nt_console_font_info_ex * console_current_font_ex);
/* console api: mouse capabilities */
typedef int32_t __stdcall ntcon_get_number_of_console_mouse_buttons(
__out uint32_t * number_of_mouse_buttons);
/* console api: window information */
typedef void * __stdcall ntcon_get_console_window(void);
typedef nt_coord __stdcall ntcon_get_largest_console_window_size(
__in void * hconout);
/* console api: display mode */
typedef int32_t __stdcall ntcon_get_console_display_mode(
__out uint32_t * mode_flags);
typedef int32_t __stdcall ntcon_set_console_display_mode(
__in void * hconsole,
__in uint32_t mode_flags,
__out nt_coord * new_screen_buffer_dimensions __optional);
/* console api: console title */
typedef uint32_t __stdcall ntcon_get_console_title_ansi(
__out char * console_title,
__in uint32_t size);
typedef uint32_t __stdcall ntcon_get_console_title_utf16(
__out wchar16_t * console_title,
__in uint32_t size);
typedef int32_t __stdcall ntcon_set_console_title_ansi(
__in char * console_title);
typedef int32_t __stdcall ntcon_set_console_title_utf16(
__in wchar16_t * console_title);
typedef uint32_t __stdcall ntcon_get_console_original_title_ansi(
__out char * console_title,
__in uint32_t size);
typedef uint32_t __stdcall ntcon_get_console_original_title_utf16(
__out wchar16_t * console_title,
__in uint32_t size);
/* ntcon function vtbl */
typedef struct _ntcon_vtbl {
/* console handles */
ntcon_alloc_console * alloc_console;
ntcon_attach_console * attach_console;
ntcon_free_console * free_console;
ntcon_get_std_handle * get_std_handle;
/* read/write using std handles */
ntcon_get_number_of_console_input_events * get_number_of_console_input_events;
ntcon_flush_console_input_buffer * flush_console_input_buffer;
ntcon_peek_console_input_ansi * peek_console_input_ansi;
ntcon_peek_console_input_utf16 * peek_console_input_utf16;
ntcon_read_console_ansi * read_console_ansi;
ntcon_read_console_utf16 * read_console_utf16;
ntcon_read_console_input_ansi * read_console_input_ansi;
ntcon_read_console_input_utf16 * read_console_input_utf16;
ntcon_read_console_output_ansi * read_console_output_ansi;
ntcon_read_console_output_utf16 * read_console_output_utf16;
ntcon_write_console_ansi * write_console_ansi;
ntcon_write_console_utf16 * write_console_utf16;
ntcon_write_console_input_ansi * write_console_input_ansi;
ntcon_write_console_input_utf16 * write_console_input_utf16;
ntcon_write_console_output_ansi * write_console_output_ansi;
ntcon_write_console_output_utf16 * write_console_output_utf16;
/* screen buffers */
ntcon_create_console_screen_buffer * create_console_screen_buffer;
ntcon_get_console_screen_buffer_info * get_console_screen_buffer_info;
ntcon_get_console_screen_buffer_info_ex * get_console_screen_buffer_info_ex;
ntcon_set_console_screen_buffer_info_ex * set_console_screen_buffer_info_ex;
ntcon_set_console_screen_buffer_size * set_console_screen_buffer_size;
ntcon_set_console_active_screen_buffer * set_console_active_screen_buffer;
ntcon_set_console_window_info * set_console_window_info;
ntcon_scroll_console_screen_buffer_ansi * scroll_console_screen_buffer_ansi;
ntcon_scroll_console_screen_buffer_utf16 * scroll_console_screen_buffer_utf16;
/* code page */
ntcon_get_console_code_page * get_console_code_page;
ntcon_set_console_code_page * set_console_code_page;
/* console control */
ntcon_generate_console_ctrl_event * generate_console_ctrl_event;
ntcon_set_console_ctrl_handler * set_console_ctrl_handler;
/* interface mode */
ntcon_get_console_mode * get_console_mode;
ntcon_set_console_mode * set_console_mode;
/* console process list */
ntcon_get_console_process_list * get_console_process_list;
/* aliases */
ntcon_add_console_alias_ansi * add_console_alias_ansi;
ntcon_add_console_alias_utf16 * add_console_alias_utf16;
ntcon_get_console_alias_ansi * get_console_alias_ansi;
ntcon_get_console_alias_utf16 * get_console_alias_utf16;
ntcon_get_console_aliases_ansi * get_console_aliases_ansi;
ntcon_get_console_aliases_utf16 * get_console_aliases_utf16;
ntcon_get_console_aliases_length_ansi * get_console_aliases_length_ansi;
ntcon_get_console_aliases_length_utf16 * get_console_aliases_length_utf16;
ntcon_get_console_alias_exes_ansi * get_console_alias_exes_ansi;
ntcon_get_console_alias_exes_utf16 * get_console_alias_exes_utf16;
ntcon_get_console_alias_exes_length_ansi * get_console_alias_exes_length_ansi;
ntcon_get_console_alias_exes_length_utf16 * get_console_alias_exes_length_utf16;
/* output attributes */
ntcon_fill_console_output_attribute * fill_console_output_attribute;
ntcon_read_console_output_attribute * read_console_output_attribute;
ntcon_write_console_output_attribute * write_console_output_attribute;
/* output characters */
ntcon_fill_console_output_character_ansi * fill_console_output_character_ansi;
ntcon_fill_console_output_character_utf16 * fill_console_output_character_utf16;
ntcon_read_console_output_character_ansi * read_console_output_character_ansi;
ntcon_read_console_output_character_utf16 * read_console_output_character_utf16;
ntcon_write_console_output_character_ansi * write_console_output_character_ansi;
ntcon_write_console_output_character_utf16 * write_console_output_character_utf16;
/* output code page */
ntcon_get_console_output_code_page * get_console_output_code_page;
ntcon_set_console_output_code_page * set_console_output_code_page;
/* text attributes */
ntcon_set_console_text_attribute * set_console_text_attribute;
/* cursor info */
ntcon_get_console_cursor_info * get_console_cursor_info;
ntcon_set_console_cursor_info * set_console_cursor_info;
ntcon_set_console_cursor_position * set_console_cursor_position;
/* selection info */
ntcon_get_console_selection_info * get_console_selection_info;
/* history info */
ntcon_get_console_history_info * get_console_history_info;
ntcon_set_console_history_info * set_console_history_info;
/* font info */
ntcon_get_console_font_size * get_console_font_size;
ntcon_get_current_console_font * get_current_console_font;
ntcon_get_current_console_font_ex * get_current_console_font_ex;
ntcon_set_current_console_font_ex * set_current_console_font_ex;
/* mouse capabilities */
ntcon_get_number_of_console_mouse_buttons * get_number_of_console_mouse_buttons;
/* window information */
ntcon_get_console_window * get_console_window;
ntcon_get_largest_console_window_size * get_largest_console_window_size;
/* display mode */
ntcon_get_console_display_mode * get_console_display_mode;
ntcon_set_console_display_mode * set_console_display_mode;
/* console title */
ntcon_get_console_title_ansi * get_console_title_ansi;
ntcon_get_console_title_utf16 * get_console_title_utf16;
ntcon_set_console_title_ansi * set_console_title_ansi;
ntcon_set_console_title_utf16 * set_console_title_utf16;
ntcon_get_console_original_title_ansi * get_console_original_title_ansi;
ntcon_get_console_original_title_utf16 * get_console_original_title_utf16;
} ntcon_vtbl;
ntcon_api
int32_t __fastcall ntcon_vtbl_init(ntcon_vtbl * pvtbl);
#ifdef __cplusplus
}
#endif
#endif