Sweden-Number/include/wincon.h

258 lines
6.9 KiB
C

#ifndef _WINCON_H_
#define _WINCON_H_
#ifdef UNICODE
#define FillConsoleOutputCharacter FillConsoleOutputCharacterW
#define GetConsoleTitle GetConsoleTitleW
#define PeekConsoleInput PeekConsoleInputW
#define ReadConsole ReadConsoleW
#define ReadConsoleInput ReadConsoleInputW
#define ReadConsoleOutput ReadConsoleOutputW
#define ReadConsoleOutputCharacter ReadConsoleOutputCharacterW
#define ScrollConsoleScreenBuffer ScrollConsoleScreenBufferW
#define SetConsoleTitle SetConsoleTitleW
#define WriteConsole WriteConsoleW
#define WriteConsoleInput WriteConsoleInputW
#define WriteConsoleOutput WriteConsoleOutputW
#define WriteConsoleOutputCharacter WriteConsoleOutputCharacterW
#else
#define FillConsoleOutputCharacter FillConsoleOutputCharacterA
#define GetConsoleTitle GetConsoleTitleA
#define PeekConsoleInput PeekConsoleInputA
#define ReadConsole ReadConsoleA
#define ReadConsoleInput ReadConsoleInputA
#define ReadConsoleOutput ReadConsoleOutputA
#define ReadConsoleOutputCharacter ReadConsoleOutputCharacterA
#define ScrollConsoleScreenBuffer ScrollConsoleScreenBufferA
#define SetConsoleTitle SetConsoleTitleA
#define WriteConsole WriteConsoleA
#define WriteConsoleInput WriteConsoleInputA
#define WriteConsoleOutput WriteConsoleOutputA
#define WriteConsoleOutputCharacter WriteConsoleOutputCharacterA
#endif
#if 0
typedef struct
{
int bKeyDown;
WORD wRepeatCount;
WORD wVirtualKeyCode;
WORD wVirtualScanCode;
char AsciiChar;
char pad;
#if 0
union
{
WCHAR UnicodeChar;
CHAR AsciiChar;
}
uChar;
#endif
DWORD dwControlKeyState;
} __attribute__ ((packed)) KEY_EVENT_RECORD;
#define RIGHT_ALT_PRESSED 0x1
#define LEFT_ALT_PRESSED 0x2
#define RIGHT_CTRL_PRESSED 0x4
#define LEFT_CTRL_PRESSED 0x8
#define SHIFT_PRESSED 0x10
#define NUMLOCK_ON 0x20
#define SCROLLLOCK_ON 0x40
#define CAPSLOCK_ON 0x80
#define ENHANCED_KEY 0x100
typedef struct
{
COORD dwMousePosition;
DWORD dwButtonState;
DWORD dwControlKeyState;
DWORD dwEventFlags;
}
MOUSE_EVENT_RECORD;
#define CONSOLE_TEXTMODE_BUFFER 1
#define FROM_LEFT_1ST_BUTTON_PRESSED 0x0001
#define RIGHTMOST_BUTTON_PRESSED 0x0002
#define FROM_LEFT_2ND_BUTTON_PRESSED 0x0004
#define FROM_LEFT_3RD_BUTTON_PRESSED 0x0008
#define FROM_LEFT_4TH_BUTTON_PRESSED 0x0010
#define MOUSE_MOVED 0x0001
#define DOUBLE_CLICK 0x0002
typedef struct
{
COORD size;
}
WINDOW_BUFFER_SIZE_RECORD;
typedef struct
{
UINT dwCommandId;
}
MENU_EVENT_RECORD;
typedef struct
{
BOOL bSetFocus;
}
FOCUS_EVENT_RECORD;
typedef struct
{
WORD EventType;
union
{
KEY_EVENT_RECORD KeyEvent;
MOUSE_EVENT_RECORD MouseEvent;
WINDOW_BUFFER_SIZE_RECORD WindowBufferSizeEvent;
MENU_EVENT_RECORD MenuEvent;
FOCUS_EVENT_RECORD FocusEvent;
}
Event;
}
INPUT_RECORD;
#define KEY_EVENT 0x1
#define MOUSE_EVENT 0x2
#define WINDOW_BUFFER_SIZE_EVENT 0x4
#define MENU_EVENT 0x8
#define FOCUS_EVENT 0x10
typedef struct
{
union
{
WCHAR UnicodeChar;
CHAR AsciiChar;
}
Char;
WORD Attributes;
}
CHAR_INFO;
#define FOREGROUND_BLUE 0x01
#define FOREGROUND_GREEN 0x02
#define FOREGROUND_RED 0x04
#define FOREGROUND_INTENSITY 0x08
#define BACKGROUND_BLUE 0x10
#define BACKGROUND_GREEN 0x20
#define BACKGROUND_RED 0x40
#define BACKGROUND_INTENSITY 0x80
typedef struct
{
COORD dwSize;
COORD dwCursorPosition;
WORD wAttrs;
SMALL_RECT srWindow;
COORD dwMaximumWindowSize;
}
CONSOLE_SCREEN_BUFFER_INFO;
typedef struct
{
DWORD size;
BOOL bVisible;
}
CONSOLE_CURSOR_INFO;
#endif
#define CTRL_C_EVENT 0
#define CTRL_BREAK_EVENT 1
#define CTRL_CLOSE_EVENT 2
#define CTRL_LOGOFF_EVENT 5
#define CTRL_SHUTDOWN_EVENT 6
typedef BOOL HANDLER_ROUTINE (WORD ctrltype);
#if 0
#define ENABLE_PROCESSED_INPUT 0x01
#define ENABLE_LINE_INPUT 0x02
#define ENABLE_ECHO_INPUT 0x04
#define ENABLE_WINDOW_INPUT 0x08
#define ENABLE_MOUSE_INPUT 0x10
#define ENABLE_PROCESSED_OUTPUT 0x01
#define ENABLE_WRAP_AT_EOL_OUTPUT 0x02
BOOL AllocConsole (VOID);
HANDLE CreateConsoleScreenBuffer (DWORD access, DWORD mode,
CONST SECURITY_ATTRIBUTES * lattr,
DWORD flags, VOID * ptr);
BOOL FillConsoleOutputAttribute (HANDLE h, WORD attr, DWORD len,
COORD co, DWORD * done);
BOOL FillConsoleOutputCharacterA (HANDLE h, CHAR c, DWORD len,
COORD co, DWORD * done);
BOOL FlushBuffer (HANDLE h);
BOOL FreeConsole (VOID);
BOOL GenerateConsoleCtrlEvent (DWORD ev, DWORD group);
UINT GetConsoleCP (VOID);
BOOL GetConsoleCursorInfo (HANDLE h, CONSOLE_CURSOR_INFO *info);
BOOL GetConsoleMode (HANDLE h, DWORD * mode);
UINT GetConsoleOutputCP (VOID);
BOOL GetConsoleScreenBufferInfo (HANDLE h, CONSOLE_SCREEN_BUFFER_INFO * ptr);
DWORD GetConsoleTitleA (LPSTR str, DWORD len);
COORD GetLargestConsoleWindowSize (HANDLE h);
BOOL GetNumberOfConsoleInputEvents (HANDLE h, DWORD * n);
BOOL GetNumberOfConsoleMouseButtons (DWORD * n);
BOOL PeekConsoleInputA (HANDLE h, INPUT_RECORD * ptr, DWORD len, DWORD * done);
BOOL ReadConsoleA (HANDLE h, VOID * ptr, DWORD len, DWORD * done, VOID * res);
BOOL ReadConsoleInputA (HANDLE h, INPUT_RECORD * ptr, DWORD len, DWORD * done);
BOOL ReadConsoleOutputA (HANDLE h, CHAR_INFO * ptr, COORD size,
COORD fred, SMALL_RECT * reg);
BOOL ReadConsoleOutputAttribute (HANDLE h, WORD * attr, DWORD len,
COORD rc, DWORD * done);
BOOL ReadConsoleOutputCharacterA (HANDLE h, LPSTR c, DWORD len,
COORD rc, DWORD * done);
BOOL ScrollConsoleScreenBufferA (HANDLE h, CONST SMALL_RECT * sr,
CONST SMALL_RECT * cr, COORD cpos,
CONST CHAR_INFO * i);
BOOL SetConsoleActiveScreenBuffer (HANDLE h);
BOOL SetConsoleCP (UINT i);
BOOL SetConsoleCtrlHandler (HANDLER_ROUTINE * func, BOOL a);
BOOL SetConsoleCursorInfo (HANDLE h, CONST CONSOLE_CURSOR_INFO * info);
BOOL SetConsoleCursorPosition (HANDLE h, COORD pos);
BOOL SetConsoleMode (HANDLE h, DWORD mode);
BOOL SetConsoleOutputCP (UINT i);
BOOL SetConsoleScreenBufferSize (HANDLE h, COORD size);
BOOL SetConsoleTextAttribute (HANDLE h, WORD attrs);
BOOL SetConsoleTitleA (const char * str);
BOOL SetConsoleWindowInfo (HANDLE h, BOOL abs, CONST SMALL_RECT * wnd);
BOOL WriteConsoleA (HANDLE h, CONST VOID * ptr, DWORD slen,
DWORD * done, VOID * res);
BOOL WriteConsoleInputA (HANDLE h, CONST INPUT_RECORD * ptr,
DWORD len, DWORD * done);
BOOL WriteConsoleOutputA (HANDLE h, CONST CHAR_INFO * ptr,
COORD size, COORD fred,
SMALL_RECT* where);
BOOL WriteConsoleOutputAttribute (HANDLE h, CONST WORD *attr, DWORD len,
COORD co, DWORD * done);
BOOL WriteConsoleOutputCharacterA (HANDLE h, const char * c, DWORD len,
COORD co, DWORD * done);
#endif
#endif