CommonLibVR
Loading...
Searching...
No Matches
USER32.h
Go to the documentation of this file.
1#pragma once
2
3#include "REX/W32/BASE.h"
4
5namespace REX::W32
6{
7 enum GWLP : std::int32_t
8 {
10 GWLP_ID = -12,
14 };
15
16 enum WM : std::uint32_t
17 {
18 WM_NULL = 0x0000u,
19 WM_CREATE = 0x0001u,
20 WM_DESTROY = 0x0002u,
21 WM_MOVE = 0x0003u,
22 WM_SIZE = 0x0005u,
23 WM_ACTIVATE = 0x0006u,
24 WM_SETFOCUS = 0x0007u,
25 WM_KILLFOCUS = 0x0008u,
26 WM_ENABLE = 0x000Au,
27 WM_SETREDRAW = 0x000Bu,
28 WM_SETTEXT = 0x000Cu,
29 WM_GETTEXT = 0x000Du,
31 WM_PAINT = 0x000Fu,
32 WM_CLOSE = 0x0010u,
33 WM_QUIT = 0x0012u,
34 WM_ERASEBKGND = 0x0014u,
35 WM_SHOWWINDOW = 0x0018u,
36 WM_ACTIVATEAPP = 0x001Cu,
37 WM_FONTCHANGE = 0x001Du,
38 WM_TIMECHANGE = 0x001Eu,
39 WM_CANCELMODE = 0x001Fu,
40 WM_SETCURSOR = 0x0020u,
43 };
44
45 enum VK : std::uint32_t
46 {
49 VK_CANCEL = 0x3,
53 VK_BACK = 0x8,
54 VK_TAB = 0x9,
57 VK_CLEAR = 0xC,
58 VK_RETURN = 0xD,
59 VK_SHIFT = 0x10,
60 VK_CONTROL = 0x11,
61 VK_MENU = 0x12,
62 VK_PAUSE = 0x13,
63 VK_CAPITAL = 0x14,
64 VK_KANA = 0x15,
65 VK_HANGUEL = 0x15,
66 VK_HANGUL = 0x15,
67 VK_IME_ON = 0x16,
68 VK_JUNJA = 0x17,
69 VK_FINAL = 0x18,
70 VK_HANJA = 0x19,
72 VK_IME_OFF = 0x1A,
73 VK_ESCAPE = 0x1B,
74 VK_CONVERT = 0x1C,
76 VK_ACCEPT = 0x1E,
78 VK_SPACE = 0x20,
79 VK_PRIOR = 0x21,
80 VK_NEXT = 0x22,
81 VK_END = 0x23,
82 VK_HOME = 0x24,
83 VK_LEFT = 0x25,
84 VK_UP = 0x26,
85 VK_RIGHT = 0x27,
86 VK_DOWN = 0x28,
87 VK_SELECT = 0x29,
88 VK_PRINT = 0x2A,
89 VK_EXECUTE = 0x2B,
91 VK_INSERT = 0x2D,
92 VK_DELETE = 0x2E,
93 VK_HELP = 0x2F,
94 VK_0 = 0x30,
95 VK_1 = 0x31,
96 VK_2 = 0x32,
97 VK_3 = 0x33,
98 VK_4 = 0x34,
99 VK_5 = 0x35,
100 VK_6 = 0x36,
101 VK_7 = 0x37,
102 VK_8 = 0x38,
103 VK_9 = 0x39,
104 VK_A = 0x41,
105 VK_B = 0x42,
106 VK_C = 0x43,
107 VK_D = 0x44,
108 VK_E = 0x45,
109 VK_F = 0x46,
110 VK_G = 0x47,
111 VK_H = 0x48,
112 VK_I = 0x49,
113 VK_J = 0x4A,
114 VK_K = 0x4B,
115 VK_L = 0x4C,
116 VK_M = 0x4D,
117 VK_N = 0x4E,
118 VK_O = 0x4F,
119 VK_P = 0x50,
120 VK_Q = 0x51,
121 VK_R = 0x52,
122 VK_S = 0x53,
123 VK_T = 0x54,
124 VK_U = 0x55,
125 VK_V = 0x56,
126 VK_W = 0x57,
127 VK_X = 0x58,
128 VK_Y = 0x59,
129 VK_Z = 0x5A,
130 VK_LWIN = 0x5B,
131 VK_RWIN = 0x5C,
132 VK_APPS = 0x5D,
134 VK_SLEEP = 0x5F,
146 VK_ADD = 0x6B,
150 VK_DIVIDE = 0x6F,
151 VK_F1 = 0x70,
152 VK_F2 = 0x71,
153 VK_F3 = 0x72,
154 VK_F4 = 0x73,
155 VK_F5 = 0x74,
156 VK_F6 = 0x75,
157 VK_F7 = 0x76,
158 VK_F8 = 0x77,
159 VK_F9 = 0x78,
160 VK_F10 = 0x79,
161 VK_F11 = 0x7A,
162 VK_F12 = 0x7B,
163 VK_F13 = 0x7C,
164 VK_F14 = 0x7D,
165 VK_F15 = 0x7E,
166 VK_F16 = 0x7F,
167 VK_F17 = 0x80,
168 VK_F18 = 0x81,
169 VK_F19 = 0x82,
170 VK_F20 = 0x83,
171 VK_F21 = 0x84,
172 VK_F22 = 0x85,
173 VK_F23 = 0x86,
174 VK_F24 = 0x87,
176 VK_SCROLL = 0x91,
182 VK_LSHIFT = 0xA0,
183 VK_RSHIFT = 0xA1,
186 VK_LMENU = 0xA4,
187 VK_RMENU = 0xA5,
208 VK_OEM_1 = 0xBA,
213 VK_OEM_2 = 0xBF,
214 VK_OEM_3 = 0xC0,
238 VK_OEM_4 = 0xDB,
239 VK_OEM_5 = 0xDC,
240 VK_OEM_6 = 0xDD,
241 VK_OEM_7 = 0xDE,
242 VK_OEM_8 = 0xDF,
250 VK_PACKET = 0xE7,
264 VK_ATTN = 0xF6,
265 VK_CRSEL = 0xF7,
266 VK_EXSEL = 0xF8,
267 VK_EREOF = 0xF9,
268 VK_PLAY = 0xFA,
269 VK_ZOOM = 0xFB,
270 VK_NONAME = 0xFC,
271 VK_PA1 = 0xFD,
274 };
275}
276
277namespace REX::W32
278{
279 using WNDPROC = std::intptr_t (*)(HWND, std::uint32_t, std::uintptr_t, std::intptr_t);
280}
281
282namespace REX::W32
283{
284 bool GetClientRect(HWND a_wnd, RECT* a_rect) noexcept;
285 std::int32_t GetKeyNameTextA(std::int32_t a_param, char* a_buf, std::int32_t a_bufLen) noexcept;
286 std::int32_t GetKeyNameTextW(std::int32_t a_param, wchar_t* a_buf, std::int32_t a_bufLen) noexcept;
287 std::int16_t GetKeyState(std::int32_t a_key) noexcept;
288 bool GetWindowRect(HWND a_wnd, RECT* a_rect) noexcept;
289 std::int32_t MessageBoxA(HWND a_wnd, const char* a_text, const char* a_caption, std::uint32_t a_type) noexcept;
290 std::int32_t MessageBoxW(HWND a_wnd, const wchar_t* a_text, const wchar_t* a_caption, std::uint32_t a_type) noexcept;
291 std::intptr_t SetWindowLongPtrA(HWND a_wnd, std::int32_t a_index, std::intptr_t a_newPtr) noexcept;
292 std::int32_t ShowCursor(bool a_show) noexcept;
293}
Definition BSDirectInputManager.h:8
std::intptr_t(*)(HWND, std::uint32_t, std::uintptr_t, std::intptr_t) WNDPROC
Definition USER32.h:279
std::int32_t MessageBoxW(HWND a_wnd, const wchar_t *a_text, const wchar_t *a_caption, std::uint32_t a_type) noexcept
std::intptr_t SetWindowLongPtrA(HWND a_wnd, std::int32_t a_index, std::intptr_t a_newPtr) noexcept
WM
Definition USER32.h:17
@ WM_GETTEXTLENGTH
Definition USER32.h:30
@ WM_SETTEXT
Definition USER32.h:28
@ WM_ERASEBKGND
Definition USER32.h:34
@ WM_CLOSE
Definition USER32.h:32
@ WM_NULL
Definition USER32.h:18
@ WM_DESTROY
Definition USER32.h:20
@ WM_CREATE
Definition USER32.h:19
@ WM_ACTIVATE
Definition USER32.h:23
@ WM_SIZE
Definition USER32.h:22
@ WM_CHILDACTIVATE
Definition USER32.h:42
@ WM_MOVE
Definition USER32.h:21
@ WM_PAINT
Definition USER32.h:31
@ WM_SETCURSOR
Definition USER32.h:40
@ WM_SETREDRAW
Definition USER32.h:27
@ WM_QUIT
Definition USER32.h:33
@ WM_FONTCHANGE
Definition USER32.h:37
@ WM_ACTIVATEAPP
Definition USER32.h:36
@ WM_SHOWWINDOW
Definition USER32.h:35
@ WM_MOUSEACTIVATE
Definition USER32.h:41
@ WM_SETFOCUS
Definition USER32.h:24
@ WM_KILLFOCUS
Definition USER32.h:25
@ WM_ENABLE
Definition USER32.h:26
@ WM_CANCELMODE
Definition USER32.h:39
@ WM_GETTEXT
Definition USER32.h:29
@ WM_TIMECHANGE
Definition USER32.h:38
VK
Definition USER32.h:46
@ VK_ESCAPE
Definition USER32.h:73
@ VK_END
Definition USER32.h:81
@ VK_OEMSPECIFIC_F3
Definition USER32.h:261
@ VK_F21
Definition USER32.h:171
@ VK_6
Definition USER32.h:100
@ VK_0
Definition USER32.h:94
@ VK_RESERVED_D6
Definition USER32.h:236
@ VK_RESERVED_CB
Definition USER32.h:225
@ VK_OEM_8
Definition USER32.h:242
@ VK_CONVERT
Definition USER32.h:74
@ VK_F5
Definition USER32.h:155
@ VK_OEM_MINUS
Definition USER32.h:211
@ VK_VOLUME_DOWN
Definition USER32.h:196
@ VK_ACCEPT
Definition USER32.h:76
@ VK_RESERVED_C4
Definition USER32.h:218
@ VK_DECIMAL
Definition USER32.h:149
@ VK_F8
Definition USER32.h:158
@ VK_F23
Definition USER32.h:173
@ VK_RESERVED_C3
Definition USER32.h:217
@ VK_PACKET
Definition USER32.h:250
@ VK_OEMSPECIFIC_E3
Definition USER32.h:246
@ VK_PA1
Definition USER32.h:271
@ VK_LAUNCH_APP2
Definition USER32.h:205
@ VK_VOLUME_UP
Definition USER32.h:197
@ VK_DIVIDE
Definition USER32.h:150
@ VK_J
Definition USER32.h:113
@ VK_O
Definition USER32.h:118
@ VK_OEM_4
Definition USER32.h:238
@ VK_PRIOR
Definition USER32.h:79
@ VK_RBUTTON
Definition USER32.h:48
@ VK_X
Definition USER32.h:127
@ VK_MEDIA_PLAY_PAUSE
Definition USER32.h:201
@ VK_G
Definition USER32.h:110
@ VK_RESERVED_CD
Definition USER32.h:227
@ VK_I
Definition USER32.h:112
@ VK_OEM_6
Definition USER32.h:240
@ VK_Y
Definition USER32.h:128
@ VK_F6
Definition USER32.h:156
@ VK_S
Definition USER32.h:122
@ VK_DELETE
Definition USER32.h:92
@ VK_OEMSPECIFIC_E1
Definition USER32.h:244
@ VK_NUMPAD3
Definition USER32.h:138
@ VK_KANJI
Definition USER32.h:71
@ VK_ZOOM
Definition USER32.h:269
@ VK_SPACE
Definition USER32.h:78
@ VK_F11
Definition USER32.h:161
@ VK_OEM_COMMA
Definition USER32.h:210
@ VK_F2
Definition USER32.h:152
@ VK_8
Definition USER32.h:102
@ VK_CANCEL
Definition USER32.h:49
@ VK_NUMLOCK
Definition USER32.h:175
@ VK_APPS
Definition USER32.h:132
@ VK_CRSEL
Definition USER32.h:265
@ VK_F19
Definition USER32.h:169
@ VK_OEMSPECIFIC_F2
Definition USER32.h:260
@ VK_RESERVED_C8
Definition USER32.h:222
@ VK_OEM_PERIOD
Definition USER32.h:212
@ VK_C
Definition USER32.h:106
@ VK_IME_ON
Definition USER32.h:67
@ VK_F1
Definition USER32.h:151
@ VK_NUMPAD5
Definition USER32.h:140
@ VK_F18
Definition USER32.h:168
@ VK_F20
Definition USER32.h:170
@ VK_BROWSER_FAVORITES
Definition USER32.h:193
@ VK_UP
Definition USER32.h:84
@ VK_NUMPAD9
Definition USER32.h:144
@ VK_A
Definition USER32.h:104
@ VK_F12
Definition USER32.h:162
@ VK_RSHIFT
Definition USER32.h:183
@ VK_OEMSPECIFIC_E9
Definition USER32.h:251
@ VK_OEMSPECIFIC_EB
Definition USER32.h:253
@ VK_4
Definition USER32.h:98
@ VK_BROWSER_HOME
Definition USER32.h:194
@ VK_NUMPAD1
Definition USER32.h:136
@ VK_VOLUME_MUTE
Definition USER32.h:195
@ VK_MENU
Definition USER32.h:61
@ VK_OEM_2
Definition USER32.h:213
@ VK_Q
Definition USER32.h:120
@ VK_RESERVED_D3
Definition USER32.h:233
@ VK_RESERVED_CC
Definition USER32.h:226
@ VK_B
Definition USER32.h:105
@ VK_LBUTTON
Definition USER32.h:47
@ VK_BROWSER_REFRESH
Definition USER32.h:190
@ VK_U
Definition USER32.h:124
@ VK_E
Definition USER32.h:108
@ VK_NONAME
Definition USER32.h:270
@ VK_RIGHT
Definition USER32.h:85
@ VK_HANGUL
Definition USER32.h:66
@ VK_MODECHANGE
Definition USER32.h:77
@ VK_KANA
Definition USER32.h:64
@ VK_OEM_5
Definition USER32.h:239
@ VK_NUMPAD2
Definition USER32.h:137
@ VK_BROWSER_FORWARD
Definition USER32.h:189
@ VK_LMENU
Definition USER32.h:186
@ VK_LEFT
Definition USER32.h:83
@ VK_D
Definition USER32.h:107
@ VK_RESERVED_D7
Definition USER32.h:237
@ VK_L
Definition USER32.h:115
@ VK_NUMPAD6
Definition USER32.h:141
@ VK_OEM_PLUS
Definition USER32.h:209
@ VK_SUBTRACT
Definition USER32.h:148
@ VK_NUMPAD7
Definition USER32.h:142
@ VK_OEMSPECIFIC_EC
Definition USER32.h:254
@ VK_OEM_1
Definition USER32.h:208
@ VK_OEM_3
Definition USER32.h:214
@ VK_SNAPSHOT
Definition USER32.h:90
@ VK_RESERVED_E0
Definition USER32.h:243
@ VK_OEMSPECIFIC_95
Definition USER32.h:180
@ VK_RCONTROL
Definition USER32.h:185
@ VK_P
Definition USER32.h:119
@ VK_RESERVED_B9
Definition USER32.h:207
@ VK_F17
Definition USER32.h:167
@ VK_EXECUTE
Definition USER32.h:89
@ VK_F16
Definition USER32.h:166
@ VK_OEMSPECIFIC_F1
Definition USER32.h:259
@ VK_EREOF
Definition USER32.h:267
@ VK_PRINT
Definition USER32.h:88
@ VK_RESERVED_FF
Definition USER32.h:273
@ VK_SCROLL
Definition USER32.h:176
@ VK_LAUNCH_MAIL
Definition USER32.h:202
@ VK_SEPARATOR
Definition USER32.h:147
@ VK_NUMPAD8
Definition USER32.h:143
@ VK_RESERVED_5E
Definition USER32.h:133
@ VK_RESERVED_CF
Definition USER32.h:229
@ VK_MEDIA_STOP
Definition USER32.h:200
@ VK_Z
Definition USER32.h:129
@ VK_RESERVED_D5
Definition USER32.h:235
@ VK_JUNJA
Definition USER32.h:68
@ VK_OEMSPECIFIC_EF
Definition USER32.h:257
@ VK_F9
Definition USER32.h:159
@ VK_N
Definition USER32.h:117
@ VK_OEM_102
Definition USER32.h:245
@ VK_OEMSPECIFIC_94
Definition USER32.h:179
@ VK_NUMPAD0
Definition USER32.h:135
@ VK_EXSEL
Definition USER32.h:266
@ VK_OEMSPECIFIC_E4
Definition USER32.h:247
@ VK_PLAY
Definition USER32.h:268
@ VK_RESERVED_D2
Definition USER32.h:232
@ VK_RESERVED_D0
Definition USER32.h:230
@ VK_OEMSPECIFIC_96
Definition USER32.h:181
@ VK_HANGUEL
Definition USER32.h:65
@ VK_RESERVED_0B
Definition USER32.h:56
@ VK_CAPITAL
Definition USER32.h:63
@ VK_F4
Definition USER32.h:154
@ VK_OEMSPECIFIC_93
Definition USER32.h:178
@ VK_RWIN
Definition USER32.h:131
@ VK_INSERT
Definition USER32.h:91
@ VK_M
Definition USER32.h:116
@ VK_F14
Definition USER32.h:164
@ VK_SLEEP
Definition USER32.h:134
@ VK_LAUNCH_MEDIA_SELECT
Definition USER32.h:203
@ VK_OEMSPECIFIC_ED
Definition USER32.h:255
@ VK_7
Definition USER32.h:101
@ VK_W
Definition USER32.h:126
@ VK_RETURN
Definition USER32.h:58
@ VK_OEMSPECIFIC_F5
Definition USER32.h:263
@ VK_BROWSER_STOP
Definition USER32.h:191
@ VK_RESERVED_C9
Definition USER32.h:223
@ VK_OEMSPECIFIC_EE
Definition USER32.h:256
@ VK_OEMSPECIFIC_F0
Definition USER32.h:258
@ VK_RESERVED_CE
Definition USER32.h:228
@ VK_LAUNCH_APP1
Definition USER32.h:204
@ VK_CLEAR
Definition USER32.h:57
@ VK_RESERVED_D1
Definition USER32.h:231
@ VK_MULTIPLY
Definition USER32.h:145
@ VK_F7
Definition USER32.h:157
@ VK_RESERVED_C2
Definition USER32.h:216
@ VK_IME_OFF
Definition USER32.h:72
@ VK_OEMSPECIFIC_92
Definition USER32.h:177
@ VK_F24
Definition USER32.h:174
@ VK_OEM_7
Definition USER32.h:241
@ VK_F10
Definition USER32.h:160
@ VK_RESERVED_D4
Definition USER32.h:234
@ VK_V
Definition USER32.h:125
@ VK_NUMPAD4
Definition USER32.h:139
@ VK_F3
Definition USER32.h:153
@ VK_BROWSER_BACK
Definition USER32.h:188
@ VK_SELECT
Definition USER32.h:87
@ VK_K
Definition USER32.h:114
@ VK_LSHIFT
Definition USER32.h:182
@ VK_RESERVED_0A
Definition USER32.h:55
@ VK_RESERVED_CA
Definition USER32.h:224
@ VK_HELP
Definition USER32.h:93
@ VK_BACK
Definition USER32.h:53
@ VK_OEMSPECIFIC_F4
Definition USER32.h:262
@ VK_T
Definition USER32.h:123
@ VK_RESERVED_C5
Definition USER32.h:219
@ VK_ATTN
Definition USER32.h:264
@ VK_F15
Definition USER32.h:165
@ VK_F13
Definition USER32.h:163
@ VK_9
Definition USER32.h:103
@ VK_OEM_CLEAR
Definition USER32.h:272
@ VK_NONCONVERT
Definition USER32.h:75
@ VK_XBUTTON2
Definition USER32.h:52
@ VK_TAB
Definition USER32.h:54
@ VK_PROCESSKEY
Definition USER32.h:248
@ VK_RESERVED_B8
Definition USER32.h:206
@ VK_DOWN
Definition USER32.h:86
@ VK_SHIFT
Definition USER32.h:59
@ VK_XBUTTON1
Definition USER32.h:51
@ VK_3
Definition USER32.h:97
@ VK_MEDIA_NEXT_TRACK
Definition USER32.h:198
@ VK_HOME
Definition USER32.h:82
@ VK_OEMSPECIFIC_EA
Definition USER32.h:252
@ VK_R
Definition USER32.h:121
@ VK_1
Definition USER32.h:95
@ VK_MEDIA_PREV_TRACK
Definition USER32.h:199
@ VK_F22
Definition USER32.h:172
@ VK_RESERVED_C7
Definition USER32.h:221
@ VK_RMENU
Definition USER32.h:187
@ VK_OEMSPECIFIC_E6
Definition USER32.h:249
@ VK_PAUSE
Definition USER32.h:62
@ VK_LCONTROL
Definition USER32.h:184
@ VK_2
Definition USER32.h:96
@ VK_F
Definition USER32.h:109
@ VK_LWIN
Definition USER32.h:130
@ VK_RESERVED_C1
Definition USER32.h:215
@ VK_MBUTTON
Definition USER32.h:50
@ VK_NEXT
Definition USER32.h:80
@ VK_5
Definition USER32.h:99
@ VK_CONTROL
Definition USER32.h:60
@ VK_FINAL
Definition USER32.h:69
@ VK_H
Definition USER32.h:111
@ VK_HANJA
Definition USER32.h:70
@ VK_RESERVED_C6
Definition USER32.h:220
@ VK_ADD
Definition USER32.h:146
@ VK_BROWSER_SEARCH
Definition USER32.h:192
std::int32_t MessageBoxA(HWND a_wnd, const char *a_text, const char *a_caption, std::uint32_t a_type) noexcept
std::int32_t ShowCursor(bool a_show) noexcept
std::int32_t GetKeyNameTextW(std::int32_t a_param, wchar_t *a_buf, std::int32_t a_bufLen) noexcept
std::int16_t GetKeyState(std::int32_t a_key) noexcept
std::int32_t GetKeyNameTextA(std::int32_t a_param, char *a_buf, std::int32_t a_bufLen) noexcept
bool GetWindowRect(HWND a_wnd, RECT *a_rect) noexcept
GWLP
Definition USER32.h:8
@ GWLP_HINSTANCE
Definition USER32.h:12
@ GWLP_HWNDPARENT
Definition USER32.h:11
@ GWLP_USERDATA
Definition USER32.h:9
@ GWLP_ID
Definition USER32.h:10
@ GWLP_WNDPROC
Definition USER32.h:13
bool GetClientRect(HWND a_wnd, RECT *a_rect) noexcept
HWND__ * HWND
Definition BASE.h:30
Definition BASE.h:110