kernelbase: Use the same HLOCAL flags / lock layout as native.
[wine.git] / include / wincontypes.h
blobd724a80921d402b9ebc040a79a47b774d3cca932
1 /*
2 * Copyright (C) the Wine project
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
19 #ifndef _WINCONTYPES_
20 #define _WINCONTYPES_
22 typedef struct tagCOORD
24 SHORT X;
25 SHORT Y;
26 } COORD, *LPCOORD;
28 typedef struct tagSMALL_RECT
30 SHORT Left;
31 SHORT Top;
32 SHORT Right;
33 SHORT Bottom;
34 } SMALL_RECT,*LPSMALL_RECT;
36 typedef struct tagKEY_EVENT_RECORD
38 BOOL bKeyDown; /* 04 */
39 WORD wRepeatCount; /* 08 */
40 WORD wVirtualKeyCode; /* 0A */
41 WORD wVirtualScanCode; /* 0C */
42 union /* 0E */
44 WCHAR UnicodeChar; /* 0E */
45 CHAR AsciiChar; /* 0E */
46 } uChar;
47 DWORD dwControlKeyState; /* 10 */
48 } KEY_EVENT_RECORD,*LPKEY_EVENT_RECORD;
50 /* dwControlKeyState bitmask */
51 #define RIGHT_ALT_PRESSED 0x0001
52 #define LEFT_ALT_PRESSED 0x0002
53 #define RIGHT_CTRL_PRESSED 0x0004
54 #define LEFT_CTRL_PRESSED 0x0008
55 #define SHIFT_PRESSED 0x0010
56 #define NUMLOCK_ON 0x0020
57 #define SCROLLLOCK_ON 0x0040
58 #define CAPSLOCK_ON 0x0080
59 #define ENHANCED_KEY 0x0100
61 typedef struct tagMOUSE_EVENT_RECORD
63 COORD dwMousePosition;
64 DWORD dwButtonState;
65 DWORD dwControlKeyState;
66 DWORD dwEventFlags;
67 } MOUSE_EVENT_RECORD,*LPMOUSE_EVENT_RECORD;
69 /* MOUSE_EVENT_RECORD.dwButtonState */
70 #define FROM_LEFT_1ST_BUTTON_PRESSED 0x0001
71 #define RIGHTMOST_BUTTON_PRESSED 0x0002
72 #define FROM_LEFT_2ND_BUTTON_PRESSED 0x0004
73 #define FROM_LEFT_3RD_BUTTON_PRESSED 0x0008
74 #define FROM_LEFT_4TH_BUTTON_PRESSED 0x0010
76 /* MOUSE_EVENT_RECORD.dwEventFlags */
77 #define MOUSE_MOVED 0x0001
78 #define DOUBLE_CLICK 0x0002
79 #define MOUSE_WHEELED 0x0004
80 #define MOUSE_HWHEELED 0x0008
82 typedef struct tagWINDOW_BUFFER_SIZE_RECORD
84 COORD dwSize;
85 } WINDOW_BUFFER_SIZE_RECORD,*LPWINDOW_BUFFER_SIZE_RECORD;
87 typedef struct tagMENU_EVENT_RECORD
89 UINT dwCommandId;
90 } MENU_EVENT_RECORD,*LPMENU_EVENT_RECORD;
92 typedef struct tagFOCUS_EVENT_RECORD
94 BOOL bSetFocus;
95 } FOCUS_EVENT_RECORD,*LPFOCUS_EVENT_RECORD;
97 typedef struct tagINPUT_RECORD
99 WORD EventType;
100 union
102 KEY_EVENT_RECORD KeyEvent;
103 MOUSE_EVENT_RECORD MouseEvent;
104 WINDOW_BUFFER_SIZE_RECORD WindowBufferSizeEvent;
105 MENU_EVENT_RECORD MenuEvent;
106 FOCUS_EVENT_RECORD FocusEvent;
107 } Event;
108 } INPUT_RECORD,*PINPUT_RECORD;
110 /* INPUT_RECORD.wEventType */
111 #define KEY_EVENT 0x01
112 #define MOUSE_EVENT 0x02
113 #define WINDOW_BUFFER_SIZE_EVENT 0x04
114 #define MENU_EVENT 0x08
115 #define FOCUS_EVENT 0x10
117 typedef struct tagCHAR_INFO
119 union
121 WCHAR UnicodeChar;
122 CHAR AsciiChar;
123 } Char;
124 WORD Attributes;
125 } CHAR_INFO,*LPCHAR_INFO;
127 typedef struct _CONSOLE_FONT_INFO
129 DWORD nFont;
130 COORD dwFontSize;
131 } CONSOLE_FONT_INFO,*LPCONSOLE_FONT_INFO;
133 typedef void *HPCON;
135 #endif /* _WINCONTYPES_ */