source: trunk/include/win/wincon.h@ 1036

Last change on this file since 1036 was 4, checked in by ktk, 26 years ago

Import

File size: 5.4 KB
Line 
1/* $Id: wincon.h,v 1.1 1999-05-24 20:19:21 ktk Exp $ */
2
3#ifndef __WINE_WINCON_H
4#define __WINE_WINCON_H
5
6#include "winbase.h" /* for COORD */
7
8#define CTRL_C_EVENT 0
9#define CTRL_BREAK_EVENT 1
10#define CTRL_CLOSE_EVENT 2
11#define CTRL_LOGOFF_EVENT 5
12#define CTRL_SHUTDOWN_EVENT 6
13
14/* Console Mode flags */
15#define ENABLE_PROCESSED_INPUT 0x01
16#define ENABLE_LINE_INPUT 0x02
17#define ENABLE_ECHO_INPUT 0x04
18#define ENABLE_WINDOW_INPUT 0x08
19#define ENABLE_MOUSE_INPUT 0x10
20
21#define ENABLE_PROCESSED_OUTPUT 0x01
22#define ENABLE_WRAP_AT_EOL_OUTPUT 0x02
23
24
25typedef BOOL HANDLER_ROUTINE(WORD);
26
27/* Attributes flags: */
28
29#define FOREGROUND_BLUE 0x0001 /* text color contains blue. */
30#define FOREGROUND_GREEN 0x0002 /* text color contains green. */
31#define FOREGROUND_RED 0x0004 /* text color contains red. */
32#define FOREGROUND_INTENSITY 0x0008 /* text color is intensified. */
33#define BACKGROUND_BLUE 0x0010 /* background color contains blue. */
34#define BACKGROUND_GREEN 0x0020 /* background color contains green. */
35#define BACKGROUND_RED 0x0040 /* background color contains red. */
36#define BACKGROUND_INTENSITY 0x0080 /* background color is intensified. */
37
38typedef struct _CONSOLE_CURSOR_INFO {
39 DWORD dwSize; /* Between 1 & 100 for percentage of cell filled */
40 BOOL bVisible; /* Visibility of cursor */
41} CONSOLE_CURSOR_INFO, *LPCONSOLE_CURSOR_INFO;
42
43/*
44typedef struct tagCOORD
45{
46 INT16 x;
47 INT16 y;
48} COORD,*LPCOORD;
49*/
50
51typedef struct tagSMALL_RECT
52{
53 INT16 Left;
54 INT16 Top;
55 INT16 Right;
56 INT16 Bottom;
57} SMALL_RECT,*LPSMALL_RECT;
58
59typedef struct tagCONSOLE_SCREEN_BUFFER_INFO
60{
61 COORD dwSize;
62 COORD dwCursorPosition;
63 WORD wAttributes;
64 SMALL_RECT srWindow;
65 COORD dwMaximumWindowSize;
66} CONSOLE_SCREEN_BUFFER_INFO,*LPCONSOLE_SCREEN_BUFFER_INFO;
67
68typedef struct tagCHAR_INFO
69{
70 union
71 {
72 WCHAR UnicodeChar;
73 CHAR AsciiChar;
74 } Char;
75 WORD Attributes;
76} CHAR_INFO,*LPCHAR_INFO;
77
78typedef struct tagKEY_EVENT_RECORD
79{
80 BOOL bKeyDown; /* 04 */
81 WORD wRepeatCount; /* 08 */
82 WORD wVirtualKeyCode; /* 0A */
83 WORD wVirtualScanCode; /* 0C */
84 union /* 0E */
85 {
86 WCHAR UniCodeChar; /* 0E */
87 CHAR AsciiChar; /* 0E */
88 } uChar;
89 DWORD dwControlKeyState; /* 10 */
90} KEY_EVENT_RECORD,*LPKEY_EVENT_RECORD;
91
92/* dwControlKeyState bitmask */
93#define RIGHT_ALT_PRESSED 0x0001
94#define LEFT_ALT_PRESSED 0x0002
95#define RIGHT_CTRL_PRESSED 0x0004
96#define LEFT_CTRL_PRESSED 0x0008
97#define SHIFT_PRESSED 0x0010
98#define NUMLOCK_ON 0x0020
99#define SCROLLLOCK_ON 0x0040
100#define CAPSLOCK_ON 0x0080
101#define ENHANCED_KEY 0x0100
102
103typedef struct tagMOUSE_EVENT_RECORD
104{
105 COORD dwMousePosition;
106 DWORD dwButtonState;
107 DWORD dwControlKeyState;
108 DWORD dwEventFlags;
109} MOUSE_EVENT_RECORD,*LPMOUSE_EVENT_RECORD;
110
111typedef struct tagWINDOW_BUFFER_SIZE_RECORD
112{
113 COORD dwSize;
114} WINDOW_BUFFER_SIZE_RECORD,*LPWINDOW_BUFFER_SIZE_RECORD;
115
116typedef struct tagMENU_EVENT_RECORD
117{
118 UINT dwCommandId; /* perhaps UINT16 ??? */
119} MENU_EVENT_RECORD,*LPMENU_EVENT_RECORD;
120
121typedef struct tagFOCUS_EVENT_RECORD
122{
123 BOOL bSetFocus; /* perhaps BOOL16 ??? */
124} FOCUS_EVENT_RECORD,*LPFOCUS_EVENT_RECORD;
125
126typedef struct tagINPUT_RECORD
127{
128 WORD EventType; /* 00 */
129 union
130 {
131 KEY_EVENT_RECORD KeyEvent;
132 MOUSE_EVENT_RECORD MouseEvent;
133 WINDOW_BUFFER_SIZE_RECORD WindowBufferSizeEvent;
134 MENU_EVENT_RECORD MenuEvent;
135 FOCUS_EVENT_RECORD FocusEvent;
136 } Event;
137} INPUT_RECORD,*LPINPUT_RECORD;
138
139/* INPUT_RECORD.wEventType */
140#define KEY_EVENT 0x01
141#define MOUSE_EVENT 0x02
142#define WINDOW_BUFFER_SIZE_EVENT 0x04
143#define MENU_EVENT 0x08
144#define FOCUS_EVENT 0x10
145
146BOOL WINAPI WriteConsoleOutputA( HANDLE hConsoleOutput, LPCHAR_INFO lpBuffer, COORD dwBufferSize, COORD dwBufferCoord, LPSMALL_RECT lpWriteRegion);
147BOOL WINAPI WriteConsoleOutputW( HANDLE hConsoleOutput, LPCHAR_INFO lpBuffer, COORD dwBufferSize, COORD dwBufferCoord, LPSMALL_RECT lpWriteRegion);
148#define WriteConsoleOutput WINELIB_NAME_AW(WriteConsoleOutput)
149BOOL WINAPI WriteConsoleInputA( HANDLE handle, INPUT_RECORD *buffer,
150 DWORD count, LPDWORD written );
151BOOL WINAPI WriteConsoleInputW( HANDLE handle, INPUT_RECORD *buffer,
152 DWORD count, LPDWORD written );
153#define WriteConsoleInput WINELIB_NAME_AW(WriteConsoleInput)
154BOOL WINAPI PeekConsoleInputA( HANDLE handle, LPINPUT_RECORD buffer,
155 DWORD count, LPDWORD read );
156BOOL WINAPI PeekConsoleInputW( HANDLE handle, LPINPUT_RECORD buffer,
157 DWORD count, LPDWORD read );
158#define PeekConsoleInput WINELIB_NAME_AW(PeekConsoleInput)
159BOOL WINAPI ReadConsoleA( HANDLE hConsoleInput, LPVOID lpBuffer,
160 DWORD nNumberOfCharsToRead,
161 LPDWORD lpNumberOfCharsRead, LPVOID lpReserved);
162BOOL WINAPI ReadConsoleW( HANDLE hConsoleInput, LPVOID lpBuffer,
163 DWORD nNumberOfCharsToRead,
164 LPDWORD lpNumberOfCharsRead, LPVOID lpReserved);
165#define ReadConsole WINELIB_NAME_AW(ReadConsole)
166BOOL WINAPI ReadConsoleInputA(HANDLE hConsoleInput,
167 LPINPUT_RECORD lpBuffer, DWORD nLength,
168 LPDWORD lpNumberOfEventsRead);
169BOOL WINAPI ReadConsoleInputW(HANDLE hConsoleInput,
170 LPINPUT_RECORD lpBuffer, DWORD nLength,
171 LPDWORD lpNumberOfEventsRead);
172#define ReadConsoleInput WINELIB_NAME_AW(ReadConsoleInput)
173
174#ifdef __WINE__
175extern HANDLE CONSOLE_OpenHandle( BOOL output, DWORD access, LPSECURITY_ATTRIBUTES sa );
176#endif
177
178#endif /* __WINE_WINCON_H */
Note: See TracBrowser for help on using the repository browser.