]>
Commit | Line | Data |
---|---|---|
ff7c6d11 XL |
1 | // Licensed under the Apache License, Version 2.0 |
2 | // <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license | |
3 | // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option. | |
4 | // All files in the project carrying such notice may not be copied, modified, or distributed | |
5 | // except according to those terms. | |
6 | //! USER procedure declarations, constant definitions and macros | |
7 | use ctypes::{c_int, c_long, c_short, c_uint}; | |
8 | use shared::basetsd::{ | |
9 | DWORD_PTR, INT32, INT_PTR, PDWORD_PTR, UINT16, UINT32, UINT64, UINT_PTR, ULONG_PTR, | |
10 | }; | |
60c5eb7d | 11 | #[cfg(target_pointer_width = "64")] |
ff7c6d11 XL |
12 | use shared::basetsd::LONG_PTR; |
13 | use shared::guiddef::{GUID, LPCGUID}; | |
14 | use shared::minwindef::{ | |
15 | ATOM, BOOL, BYTE, DWORD, HINSTANCE, HIWORD, HKL, HMODULE, HRGN, HWINSTA, INT, LOWORD, LPARAM, | |
60c5eb7d XL |
16 | LPBYTE, LPDWORD, LPINT, LPVOID, LPWORD, LRESULT, PBYTE, PUINT, PULONG, TRUE, UCHAR, UINT, |
17 | ULONG, USHORT, WORD, WPARAM, | |
ff7c6d11 XL |
18 | }; |
19 | use shared::windef::{ | |
60c5eb7d XL |
20 | COLORREF, DPI_AWARENESS, DPI_AWARENESS_CONTEXT, DPI_HOSTING_BEHAVIOR, HACCEL, HBITMAP, HBRUSH, |
21 | HCURSOR, HDC, HDESK, HHOOK, HICON, HMENU, HMONITOR, HWINEVENTHOOK, HWND, LPCRECT, LPPOINT, | |
22 | LPRECT, POINT, RECT, SIZE, | |
ff7c6d11 XL |
23 | }; |
24 | use um::minwinbase::LPSECURITY_ATTRIBUTES; | |
25 | use um::wingdi::{ | |
26 | BLENDFUNCTION, DEVMODEA, DEVMODEW, LOGFONTA, LOGFONTW, PDISPLAY_DEVICEA, PDISPLAY_DEVICEW | |
27 | }; | |
28 | use um::winnt::{ | |
29 | ACCESS_MASK, BOOLEAN, CHAR, HANDLE, LONG, LPCSTR, LPCWSTR, LPSTR, LPWSTR, LUID, | |
30 | PSECURITY_DESCRIPTOR, PSECURITY_INFORMATION, PVOID, SHORT, VOID, WCHAR, | |
31 | }; | |
32 | use vc::limits::UINT_MAX; | |
33 | use vc::vadefs::va_list; | |
34 | pub type HDWP = HANDLE; | |
35 | pub type MENUTEMPLATEA = VOID; | |
36 | pub type MENUTEMPLATEW = VOID; | |
37 | pub type LPMENUTEMPLATEA = PVOID; | |
38 | pub type LPMENUTEMPLATEW = PVOID; | |
39 | FN!{stdcall WNDPROC( | |
40 | HWND, | |
41 | UINT, | |
42 | WPARAM, | |
43 | LPARAM, | |
44 | ) -> LRESULT} | |
45 | FN!{stdcall DLGPROC( | |
46 | HWND, | |
47 | UINT, | |
48 | WPARAM, | |
49 | LPARAM, | |
50 | ) -> INT_PTR} | |
51 | FN!{stdcall TIMERPROC( | |
52 | HWND, | |
53 | UINT, | |
54 | UINT_PTR, | |
55 | DWORD, | |
56 | ) -> ()} | |
57 | FN!{stdcall GRAYSTRINGPROC( | |
58 | HDC, | |
59 | LPARAM, | |
60 | c_int, | |
61 | ) -> BOOL} | |
62 | FN!{stdcall WNDENUMPROC( | |
63 | HWND, | |
64 | LPARAM, | |
65 | ) -> BOOL} | |
66 | FN!{stdcall HOOKPROC( | |
67 | code: c_int, | |
68 | wParam: WPARAM, | |
69 | lParam: LPARAM, | |
70 | ) -> LRESULT} | |
71 | FN!{stdcall SENDASYNCPROC( | |
72 | HWND, | |
73 | UINT, | |
74 | ULONG_PTR, | |
75 | LRESULT, | |
76 | ) -> ()} | |
77 | FN!{stdcall PROPENUMPROCA( | |
78 | HWND, | |
79 | LPCSTR, | |
80 | HANDLE, | |
81 | ) -> BOOL} | |
82 | FN!{stdcall PROPENUMPROCW( | |
83 | HWND, | |
84 | LPCWSTR, | |
85 | HANDLE, | |
86 | ) -> BOOL} | |
87 | FN!{stdcall PROPENUMPROCEXA( | |
88 | HWND, | |
89 | LPSTR, | |
90 | HANDLE, | |
91 | ULONG_PTR, | |
92 | ) -> BOOL} | |
93 | FN!{stdcall PROPENUMPROCEXW( | |
94 | HWND, | |
95 | LPWSTR, | |
96 | HANDLE, | |
97 | ULONG_PTR, | |
98 | ) -> BOOL} | |
99 | FN!{stdcall EDITWORDBREAKPROCA( | |
100 | lpch: LPSTR, | |
101 | ichCurrent: c_int, | |
102 | cch: c_int, | |
103 | code: c_int, | |
104 | ) -> c_int} | |
105 | FN!{stdcall EDITWORDBREAKPROCW( | |
106 | lpch: LPWSTR, | |
107 | ichCurrent: c_int, | |
108 | cch: c_int, | |
109 | code: c_int, | |
110 | ) -> c_int} | |
111 | FN!{stdcall DRAWSTATEPROC( | |
112 | hdc: HDC, | |
113 | lData: LPARAM, | |
114 | wData: WPARAM, | |
115 | cx: c_int, | |
116 | cy: c_int, | |
117 | ) -> BOOL} | |
118 | FN!{stdcall NAMEENUMPROCA( | |
119 | LPSTR, | |
120 | LPARAM, | |
121 | ) -> BOOL} | |
122 | FN!{stdcall NAMEENUMPROCW( | |
123 | LPWSTR, | |
124 | LPARAM, | |
125 | ) -> BOOL} | |
126 | pub type WINSTAENUMPROCA = NAMEENUMPROCA; | |
127 | pub type DESKTOPENUMPROCA = NAMEENUMPROCA; | |
128 | pub type WINSTAENUMPROCW = NAMEENUMPROCW; | |
129 | pub type DESKTOPENUMPROCW = NAMEENUMPROCW; | |
130 | #[inline] | |
131 | pub fn IS_INTRESOURCE(r: ULONG_PTR) -> bool { | |
132 | (r >> 16) == 0 | |
133 | } | |
134 | #[inline] | |
135 | pub fn MAKEINTRESOURCEA(i: WORD) -> LPSTR { | |
136 | i as ULONG_PTR as LPSTR | |
137 | } | |
138 | #[inline] | |
139 | pub fn MAKEINTRESOURCEW(i: WORD) -> LPWSTR { | |
140 | i as ULONG_PTR as LPWSTR | |
141 | } | |
142 | pub const RT_CURSOR: LPWSTR = MAKEINTRESOURCE!(1); | |
143 | pub const RT_BITMAP: LPWSTR = MAKEINTRESOURCE!(2); | |
144 | pub const RT_ICON: LPWSTR = MAKEINTRESOURCE!(3); | |
145 | pub const RT_MENU: LPWSTR = MAKEINTRESOURCE!(4); | |
146 | pub const RT_DIALOG: LPWSTR = MAKEINTRESOURCE!(5); | |
147 | pub const RT_STRING: LPWSTR = MAKEINTRESOURCE!(6); | |
148 | pub const RT_FONTDIR: LPWSTR = MAKEINTRESOURCE!(7); | |
149 | pub const RT_FONT: LPWSTR = MAKEINTRESOURCE!(8); | |
150 | pub const RT_ACCELERATOR: LPWSTR = MAKEINTRESOURCE!(9); | |
151 | pub const RT_RCDATA: LPWSTR = MAKEINTRESOURCE!(10); | |
152 | pub const RT_MESSAGETABLE: LPWSTR = MAKEINTRESOURCE!(11); | |
153 | pub const DIFFERENCE: WORD = 11; | |
154 | pub const RT_GROUP_CURSOR: LPWSTR = MAKEINTRESOURCE!(1 + DIFFERENCE); | |
155 | pub const RT_GROUP_ICON: LPWSTR = MAKEINTRESOURCE!(3 + DIFFERENCE); | |
156 | pub const RT_VERSION: LPWSTR = MAKEINTRESOURCE!(16); | |
157 | pub const RT_DLGINCLUDE: LPWSTR = MAKEINTRESOURCE!(17); | |
158 | pub const RT_PLUGPLAY: LPWSTR = MAKEINTRESOURCE!(19); | |
159 | pub const RT_VXD: LPWSTR = MAKEINTRESOURCE!(20); | |
160 | pub const RT_ANICURSOR: LPWSTR = MAKEINTRESOURCE!(21); | |
161 | pub const RT_ANIICON: LPWSTR = MAKEINTRESOURCE!(22); | |
162 | pub const RT_HTML: LPWSTR = MAKEINTRESOURCE!(23); | |
163 | pub const RT_MANIFEST: LPWSTR = MAKEINTRESOURCE!(24); | |
164 | pub const CREATEPROCESS_MANIFEST_RESOURCE_ID: LPWSTR = MAKEINTRESOURCE!(1); | |
165 | pub const ISOLATIONAWARE_MANIFEST_RESOURCE_ID: LPWSTR = MAKEINTRESOURCE!(2); | |
166 | pub const ISOLATIONAWARE_NOSTATICIMPORT_MANIFEST_RESOURCE_ID: LPWSTR | |
167 | = MAKEINTRESOURCE!(3); | |
168 | pub const MINIMUM_RESERVED_MANIFEST_RESOURCE_ID: LPWSTR = MAKEINTRESOURCE!(1); | |
169 | pub const MAXIMUM_RESERVED_MANIFEST_RESOURCE_ID: LPWSTR = MAKEINTRESOURCE!(16); | |
170 | extern "system" { | |
171 | pub fn wvsprintfA( | |
172 | _: LPSTR, | |
173 | _: LPCSTR, | |
174 | arglist: va_list, | |
175 | ) -> c_int; | |
176 | pub fn wvsprintfW( | |
177 | _: LPWSTR, | |
178 | _: LPCWSTR, | |
179 | arglist: va_list, | |
180 | ) -> c_int; | |
181 | } | |
182 | extern "C" { | |
183 | pub fn wsprintfA( | |
184 | _: LPSTR, | |
185 | _: LPCSTR, | |
186 | ... | |
187 | ) -> c_int; | |
188 | pub fn wsprintfW( | |
189 | _: LPWSTR, | |
190 | _: LPCWSTR, | |
191 | ... | |
192 | ) -> c_int; | |
193 | } | |
194 | pub const SETWALLPAPER_DEFAULT: LPWSTR = -1isize as LPWSTR; | |
195 | pub const SB_HORZ: UINT = 0; | |
196 | pub const SB_VERT: UINT = 1; | |
197 | pub const SB_CTL: UINT = 2; | |
198 | pub const SB_BOTH: UINT = 3; | |
199 | pub const SB_LINEUP: LPARAM = 0; | |
200 | pub const SB_LINELEFT: LPARAM = 0; | |
201 | pub const SB_LINEDOWN: LPARAM = 1; | |
202 | pub const SB_LINERIGHT: LPARAM = 1; | |
203 | pub const SB_PAGEUP: LPARAM = 2; | |
204 | pub const SB_PAGELEFT: LPARAM = 2; | |
205 | pub const SB_PAGEDOWN: LPARAM = 3; | |
206 | pub const SB_PAGERIGHT: LPARAM = 3; | |
207 | pub const SB_THUMBPOSITION: LPARAM = 4; | |
208 | pub const SB_THUMBTRACK: LPARAM = 5; | |
209 | pub const SB_TOP: LPARAM = 6; | |
210 | pub const SB_LEFT: LPARAM = 6; | |
211 | pub const SB_BOTTOM: LPARAM = 7; | |
212 | pub const SB_RIGHT: LPARAM = 7; | |
213 | pub const SB_ENDSCROLL: LPARAM = 8; | |
214 | pub const SW_HIDE: c_int = 0; | |
215 | pub const SW_SHOWNORMAL: c_int = 1; | |
216 | pub const SW_NORMAL: c_int = 1; | |
217 | pub const SW_SHOWMINIMIZED: c_int = 2; | |
218 | pub const SW_SHOWMAXIMIZED: c_int = 3; | |
219 | pub const SW_MAXIMIZE: c_int = 3; | |
220 | pub const SW_SHOWNOACTIVATE: c_int = 4; | |
221 | pub const SW_SHOW: c_int = 5; | |
222 | pub const SW_MINIMIZE: c_int = 6; | |
223 | pub const SW_SHOWMINNOACTIVE: c_int = 7; | |
224 | pub const SW_SHOWNA: c_int = 8; | |
225 | pub const SW_RESTORE: c_int = 9; | |
226 | pub const SW_SHOWDEFAULT: c_int = 10; | |
227 | pub const SW_FORCEMINIMIZE: c_int = 11; | |
228 | pub const SW_MAX: c_int = 11; | |
229 | pub const HIDE_WINDOW: c_int = 0; | |
230 | pub const SHOW_OPENWINDOW: c_int = 1; | |
231 | pub const SHOW_ICONWINDOW: c_int = 2; | |
232 | pub const SHOW_FULLSCREEN: c_int = 3; | |
233 | pub const SHOW_OPENNOACTIVATE: c_int = 4; | |
234 | pub const SW_PARENTCLOSING: LPARAM = 1; | |
235 | pub const SW_OTHERZOOM: LPARAM = 2; | |
236 | pub const SW_PARENTOPENING: LPARAM = 3; | |
237 | pub const SW_OTHERUNZOOM: LPARAM = 4; | |
238 | pub const AW_HOR_POSITIVE: DWORD = 0x00000001; | |
239 | pub const AW_HOR_NEGATIVE: DWORD = 0x00000002; | |
240 | pub const AW_VER_POSITIVE: DWORD = 0x00000004; | |
241 | pub const AW_VER_NEGATIVE: DWORD = 0x00000008; | |
242 | pub const AW_CENTER: DWORD = 0x00000010; | |
243 | pub const AW_HIDE: DWORD = 0x00010000; | |
244 | pub const AW_ACTIVATE: DWORD = 0x00020000; | |
245 | pub const AW_SLIDE: DWORD = 0x00040000; | |
246 | pub const AW_BLEND: DWORD = 0x00080000; | |
247 | pub const KF_EXTENDED: WORD = 0x0100; | |
248 | pub const KF_DLGMODE: WORD = 0x0800; | |
249 | pub const KF_MENUMODE: WORD = 0x1000; | |
250 | pub const KF_ALTDOWN: WORD = 0x2000; | |
251 | pub const KF_REPEAT: WORD = 0x4000; | |
252 | pub const KF_UP: WORD = 0x8000; | |
253 | pub const VK_LBUTTON: c_int = 0x01; | |
254 | pub const VK_RBUTTON: c_int = 0x02; | |
255 | pub const VK_CANCEL: c_int = 0x03; | |
256 | pub const VK_MBUTTON: c_int = 0x04; | |
257 | pub const VK_XBUTTON1: c_int = 0x05; | |
258 | pub const VK_XBUTTON2: c_int = 0x06; | |
259 | pub const VK_BACK: c_int = 0x08; | |
260 | pub const VK_TAB: c_int = 0x09; | |
261 | pub const VK_CLEAR: c_int = 0x0C; | |
262 | pub const VK_RETURN: c_int = 0x0D; | |
263 | pub const VK_SHIFT: c_int = 0x10; | |
264 | pub const VK_CONTROL: c_int = 0x11; | |
265 | pub const VK_MENU: c_int = 0x12; | |
266 | pub const VK_PAUSE: c_int = 0x13; | |
267 | pub const VK_CAPITAL: c_int = 0x14; | |
268 | pub const VK_KANA: c_int = 0x15; | |
269 | pub const VK_HANGEUL: c_int = 0x15; | |
270 | pub const VK_HANGUL: c_int = 0x15; | |
271 | pub const VK_JUNJA: c_int = 0x17; | |
272 | pub const VK_FINAL: c_int = 0x18; | |
273 | pub const VK_HANJA: c_int = 0x19; | |
274 | pub const VK_KANJI: c_int = 0x19; | |
275 | pub const VK_ESCAPE: c_int = 0x1B; | |
276 | pub const VK_CONVERT: c_int = 0x1C; | |
277 | pub const VK_NONCONVERT: c_int = 0x1D; | |
278 | pub const VK_ACCEPT: c_int = 0x1E; | |
279 | pub const VK_MODECHANGE: c_int = 0x1F; | |
280 | pub const VK_SPACE: c_int = 0x20; | |
281 | pub const VK_PRIOR: c_int = 0x21; | |
282 | pub const VK_NEXT: c_int = 0x22; | |
283 | pub const VK_END: c_int = 0x23; | |
284 | pub const VK_HOME: c_int = 0x24; | |
285 | pub const VK_LEFT: c_int = 0x25; | |
286 | pub const VK_UP: c_int = 0x26; | |
287 | pub const VK_RIGHT: c_int = 0x27; | |
288 | pub const VK_DOWN: c_int = 0x28; | |
289 | pub const VK_SELECT: c_int = 0x29; | |
290 | pub const VK_PRINT: c_int = 0x2A; | |
291 | pub const VK_EXECUTE: c_int = 0x2B; | |
292 | pub const VK_SNAPSHOT: c_int = 0x2C; | |
293 | pub const VK_INSERT: c_int = 0x2D; | |
294 | pub const VK_DELETE: c_int = 0x2E; | |
295 | pub const VK_HELP: c_int = 0x2F; | |
296 | pub const VK_LWIN: c_int = 0x5B; | |
297 | pub const VK_RWIN: c_int = 0x5C; | |
298 | pub const VK_APPS: c_int = 0x5D; | |
299 | pub const VK_SLEEP: c_int = 0x5F; | |
300 | pub const VK_NUMPAD0: c_int = 0x60; | |
301 | pub const VK_NUMPAD1: c_int = 0x61; | |
302 | pub const VK_NUMPAD2: c_int = 0x62; | |
303 | pub const VK_NUMPAD3: c_int = 0x63; | |
304 | pub const VK_NUMPAD4: c_int = 0x64; | |
305 | pub const VK_NUMPAD5: c_int = 0x65; | |
306 | pub const VK_NUMPAD6: c_int = 0x66; | |
307 | pub const VK_NUMPAD7: c_int = 0x67; | |
308 | pub const VK_NUMPAD8: c_int = 0x68; | |
309 | pub const VK_NUMPAD9: c_int = 0x69; | |
310 | pub const VK_MULTIPLY: c_int = 0x6A; | |
311 | pub const VK_ADD: c_int = 0x6B; | |
312 | pub const VK_SEPARATOR: c_int = 0x6C; | |
313 | pub const VK_SUBTRACT: c_int = 0x6D; | |
314 | pub const VK_DECIMAL: c_int = 0x6E; | |
315 | pub const VK_DIVIDE: c_int = 0x6F; | |
316 | pub const VK_F1: c_int = 0x70; | |
317 | pub const VK_F2: c_int = 0x71; | |
318 | pub const VK_F3: c_int = 0x72; | |
319 | pub const VK_F4: c_int = 0x73; | |
320 | pub const VK_F5: c_int = 0x74; | |
321 | pub const VK_F6: c_int = 0x75; | |
322 | pub const VK_F7: c_int = 0x76; | |
323 | pub const VK_F8: c_int = 0x77; | |
324 | pub const VK_F9: c_int = 0x78; | |
325 | pub const VK_F10: c_int = 0x79; | |
326 | pub const VK_F11: c_int = 0x7A; | |
327 | pub const VK_F12: c_int = 0x7B; | |
328 | pub const VK_F13: c_int = 0x7C; | |
329 | pub const VK_F14: c_int = 0x7D; | |
330 | pub const VK_F15: c_int = 0x7E; | |
331 | pub const VK_F16: c_int = 0x7F; | |
332 | pub const VK_F17: c_int = 0x80; | |
333 | pub const VK_F18: c_int = 0x81; | |
334 | pub const VK_F19: c_int = 0x82; | |
335 | pub const VK_F20: c_int = 0x83; | |
336 | pub const VK_F21: c_int = 0x84; | |
337 | pub const VK_F22: c_int = 0x85; | |
338 | pub const VK_F23: c_int = 0x86; | |
339 | pub const VK_F24: c_int = 0x87; | |
340 | pub const VK_NAVIGATION_VIEW: c_int = 0x88; | |
341 | pub const VK_NAVIGATION_MENU: c_int = 0x89; | |
342 | pub const VK_NAVIGATION_UP: c_int = 0x8A; | |
343 | pub const VK_NAVIGATION_DOWN: c_int = 0x8B; | |
344 | pub const VK_NAVIGATION_LEFT: c_int = 0x8C; | |
345 | pub const VK_NAVIGATION_RIGHT: c_int = 0x8D; | |
346 | pub const VK_NAVIGATION_ACCEPT: c_int = 0x8E; | |
347 | pub const VK_NAVIGATION_CANCEL: c_int = 0x8F; | |
348 | pub const VK_NUMLOCK: c_int = 0x90; | |
349 | pub const VK_SCROLL: c_int = 0x91; | |
350 | pub const VK_OEM_NEC_EQUAL: c_int = 0x92; | |
351 | pub const VK_OEM_FJ_JISHO: c_int = 0x92; | |
352 | pub const VK_OEM_FJ_MASSHOU: c_int = 0x93; | |
353 | pub const VK_OEM_FJ_TOUROKU: c_int = 0x94; | |
354 | pub const VK_OEM_FJ_LOYA: c_int = 0x95; | |
355 | pub const VK_OEM_FJ_ROYA: c_int = 0x96; | |
356 | pub const VK_LSHIFT: c_int = 0xA0; | |
357 | pub const VK_RSHIFT: c_int = 0xA1; | |
358 | pub const VK_LCONTROL: c_int = 0xA2; | |
359 | pub const VK_RCONTROL: c_int = 0xA3; | |
360 | pub const VK_LMENU: c_int = 0xA4; | |
361 | pub const VK_RMENU: c_int = 0xA5; | |
362 | pub const VK_BROWSER_BACK: c_int = 0xA6; | |
363 | pub const VK_BROWSER_FORWARD: c_int = 0xA7; | |
364 | pub const VK_BROWSER_REFRESH: c_int = 0xA8; | |
365 | pub const VK_BROWSER_STOP: c_int = 0xA9; | |
366 | pub const VK_BROWSER_SEARCH: c_int = 0xAA; | |
367 | pub const VK_BROWSER_FAVORITES: c_int = 0xAB; | |
368 | pub const VK_BROWSER_HOME: c_int = 0xAC; | |
369 | pub const VK_VOLUME_MUTE: c_int = 0xAD; | |
370 | pub const VK_VOLUME_DOWN: c_int = 0xAE; | |
371 | pub const VK_VOLUME_UP: c_int = 0xAF; | |
372 | pub const VK_MEDIA_NEXT_TRACK: c_int = 0xB0; | |
373 | pub const VK_MEDIA_PREV_TRACK: c_int = 0xB1; | |
374 | pub const VK_MEDIA_STOP: c_int = 0xB2; | |
375 | pub const VK_MEDIA_PLAY_PAUSE: c_int = 0xB3; | |
376 | pub const VK_LAUNCH_MAIL: c_int = 0xB4; | |
377 | pub const VK_LAUNCH_MEDIA_SELECT: c_int = 0xB5; | |
378 | pub const VK_LAUNCH_APP1: c_int = 0xB6; | |
379 | pub const VK_LAUNCH_APP2: c_int = 0xB7; | |
380 | pub const VK_OEM_1: c_int = 0xBA; | |
381 | pub const VK_OEM_PLUS: c_int = 0xBB; | |
382 | pub const VK_OEM_COMMA: c_int = 0xBC; | |
383 | pub const VK_OEM_MINUS: c_int = 0xBD; | |
384 | pub const VK_OEM_PERIOD: c_int = 0xBE; | |
385 | pub const VK_OEM_2: c_int = 0xBF; | |
386 | pub const VK_OEM_3: c_int = 0xC0; | |
387 | pub const VK_GAMEPAD_A: c_int = 0xC3; | |
388 | pub const VK_GAMEPAD_B: c_int = 0xC4; | |
389 | pub const VK_GAMEPAD_X: c_int = 0xC5; | |
390 | pub const VK_GAMEPAD_Y: c_int = 0xC6; | |
391 | pub const VK_GAMEPAD_RIGHT_SHOULDER: c_int = 0xC7; | |
392 | pub const VK_GAMEPAD_LEFT_SHOULDER: c_int = 0xC8; | |
393 | pub const VK_GAMEPAD_LEFT_TRIGGER: c_int = 0xC9; | |
394 | pub const VK_GAMEPAD_RIGHT_TRIGGER: c_int = 0xCA; | |
395 | pub const VK_GAMEPAD_DPAD_UP: c_int = 0xCB; | |
396 | pub const VK_GAMEPAD_DPAD_DOWN: c_int = 0xCC; | |
397 | pub const VK_GAMEPAD_DPAD_LEFT: c_int = 0xCD; | |
398 | pub const VK_GAMEPAD_DPAD_RIGHT: c_int = 0xCE; | |
399 | pub const VK_GAMEPAD_MENU: c_int = 0xCF; | |
400 | pub const VK_GAMEPAD_VIEW: c_int = 0xD0; | |
401 | pub const VK_GAMEPAD_LEFT_THUMBSTICK_BUTTON: c_int = 0xD1; | |
402 | pub const VK_GAMEPAD_RIGHT_THUMBSTICK_BUTTON: c_int = 0xD2; | |
403 | pub const VK_GAMEPAD_LEFT_THUMBSTICK_UP: c_int = 0xD3; | |
404 | pub const VK_GAMEPAD_LEFT_THUMBSTICK_DOWN: c_int = 0xD4; | |
405 | pub const VK_GAMEPAD_LEFT_THUMBSTICK_RIGHT: c_int = 0xD5; | |
406 | pub const VK_GAMEPAD_LEFT_THUMBSTICK_LEFT: c_int = 0xD6; | |
407 | pub const VK_GAMEPAD_RIGHT_THUMBSTICK_UP: c_int = 0xD7; | |
408 | pub const VK_GAMEPAD_RIGHT_THUMBSTICK_DOWN: c_int = 0xD8; | |
409 | pub const VK_GAMEPAD_RIGHT_THUMBSTICK_RIGHT: c_int = 0xD9; | |
410 | pub const VK_GAMEPAD_RIGHT_THUMBSTICK_LEFT: c_int = 0xDA; | |
411 | pub const VK_OEM_4: c_int = 0xDB; | |
412 | pub const VK_OEM_5: c_int = 0xDC; | |
413 | pub const VK_OEM_6: c_int = 0xDD; | |
414 | pub const VK_OEM_7: c_int = 0xDE; | |
415 | pub const VK_OEM_8: c_int = 0xDF; | |
416 | pub const VK_OEM_AX: c_int = 0xE1; | |
417 | pub const VK_OEM_102: c_int = 0xE2; | |
418 | pub const VK_ICO_HELP: c_int = 0xE3; | |
419 | pub const VK_ICO_00: c_int = 0xE4; | |
420 | pub const VK_PROCESSKEY: c_int = 0xE5; | |
421 | pub const VK_ICO_CLEAR: c_int = 0xE6; | |
422 | pub const VK_PACKET: c_int = 0xE7; | |
423 | pub const VK_OEM_RESET: c_int = 0xE9; | |
424 | pub const VK_OEM_JUMP: c_int = 0xEA; | |
425 | pub const VK_OEM_PA1: c_int = 0xEB; | |
426 | pub const VK_OEM_PA2: c_int = 0xEC; | |
427 | pub const VK_OEM_PA3: c_int = 0xED; | |
428 | pub const VK_OEM_WSCTRL: c_int = 0xEE; | |
429 | pub const VK_OEM_CUSEL: c_int = 0xEF; | |
430 | pub const VK_OEM_ATTN: c_int = 0xF0; | |
431 | pub const VK_OEM_FINISH: c_int = 0xF1; | |
432 | pub const VK_OEM_COPY: c_int = 0xF2; | |
433 | pub const VK_OEM_AUTO: c_int = 0xF3; | |
434 | pub const VK_OEM_ENLW: c_int = 0xF4; | |
435 | pub const VK_OEM_BACKTAB: c_int = 0xF5; | |
436 | pub const VK_ATTN: c_int = 0xF6; | |
437 | pub const VK_CRSEL: c_int = 0xF7; | |
438 | pub const VK_EXSEL: c_int = 0xF8; | |
439 | pub const VK_EREOF: c_int = 0xF9; | |
440 | pub const VK_PLAY: c_int = 0xFA; | |
441 | pub const VK_ZOOM: c_int = 0xFB; | |
442 | pub const VK_NONAME: c_int = 0xFC; | |
443 | pub const VK_PA1: c_int = 0xFD; | |
444 | pub const VK_OEM_CLEAR: c_int = 0xFE; | |
445 | pub const WH_MIN: c_int = -1; | |
446 | pub const WH_MSGFILTER: c_int = -1; | |
447 | pub const WH_JOURNALRECORD: c_int = 0; | |
448 | pub const WH_JOURNALPLAYBACK: c_int = 1; | |
449 | pub const WH_KEYBOARD: c_int = 2; | |
450 | pub const WH_GETMESSAGE: c_int = 3; | |
451 | pub const WH_CALLWNDPROC: c_int = 4; | |
452 | pub const WH_CBT: c_int = 5; | |
453 | pub const WH_SYSMSGFILTER: c_int = 6; | |
454 | pub const WH_MOUSE: c_int = 7; | |
455 | pub const WH_HARDWARE: c_int = 8; | |
456 | pub const WH_DEBUG: c_int = 9; | |
457 | pub const WH_SHELL: c_int = 10; | |
458 | pub const WH_FOREGROUNDIDLE: c_int = 11; | |
459 | pub const WH_CALLWNDPROCRET: c_int = 12; | |
460 | pub const WH_KEYBOARD_LL: c_int = 13; | |
461 | pub const WH_MOUSE_LL: c_int = 14; | |
462 | pub const WH_MAX: c_int = 14; | |
463 | pub const WH_MINHOOK: c_int = WH_MIN; | |
464 | pub const WH_MAXHOOK: c_int = WH_MAX; | |
465 | pub const HC_ACTION: c_int = 0; | |
466 | pub const HC_GETNEXT: c_int = 1; | |
467 | pub const HC_SKIP: c_int = 2; | |
468 | pub const HC_NOREMOVE: c_int = 3; | |
469 | pub const HC_NOREM: c_int = HC_NOREMOVE; | |
470 | pub const HC_SYSMODALON: c_int = 4; | |
471 | pub const HC_SYSMODALOFF: c_int = 5; | |
472 | pub const HCBT_MOVESIZE: c_int = 0; | |
473 | pub const HCBT_MINMAX: c_int = 1; | |
474 | pub const HCBT_QS: c_int = 2; | |
475 | pub const HCBT_CREATEWND: c_int = 3; | |
476 | pub const HCBT_DESTROYWND: c_int = 4; | |
477 | pub const HCBT_ACTIVATE: c_int = 5; | |
478 | pub const HCBT_CLICKSKIPPED: c_int = 6; | |
479 | pub const HCBT_KEYSKIPPED: c_int = 7; | |
480 | pub const HCBT_SYSCOMMAND: c_int = 8; | |
481 | pub const HCBT_SETFOCUS: c_int = 9; | |
482 | STRUCT!{struct CBT_CREATEWNDA { | |
483 | lpcs: *mut CREATESTRUCTA, | |
484 | hwndInsertAfter: HWND, | |
485 | }} | |
486 | pub type LPCBT_CREATEWNDA = *mut CBT_CREATEWNDA; | |
487 | STRUCT!{struct CBT_CREATEWNDW { | |
488 | lpcs: *mut CREATESTRUCTW, | |
489 | hwndInsertAfter: HWND, | |
490 | }} | |
491 | pub type LPCBT_CREATEWNDW = *mut CBT_CREATEWNDW; | |
492 | STRUCT!{struct CBTACTIVATESTRUCT { | |
493 | fMouse: BOOL, | |
494 | hWndActive: HWND, | |
495 | }} | |
496 | pub type LPCBTACTIVATESTRUCT = *mut CBTACTIVATESTRUCT; | |
497 | STRUCT!{struct WTSSESSION_NOTIFICATION { | |
498 | cbSize: DWORD, | |
499 | dwSessionId: DWORD, | |
500 | }} | |
501 | pub type PWTSSESSION_NOTIFICATION = *mut WTSSESSION_NOTIFICATION; | |
502 | pub const WTS_CONSOLE_CONNECT: WPARAM = 0x1; | |
503 | pub const WTS_CONSOLE_DISCONNECT: WPARAM = 0x2; | |
504 | pub const WTS_REMOTE_CONNECT: WPARAM = 0x3; | |
505 | pub const WTS_REMOTE_DISCONNECT: WPARAM = 0x4; | |
506 | pub const WTS_SESSION_LOGON: WPARAM = 0x5; | |
507 | pub const WTS_SESSION_LOGOFF: WPARAM = 0x6; | |
508 | pub const WTS_SESSION_LOCK: WPARAM = 0x7; | |
509 | pub const WTS_SESSION_UNLOCK: WPARAM = 0x8; | |
510 | pub const WTS_SESSION_REMOTE_CONTROL: WPARAM = 0x9; | |
511 | pub const WTS_SESSION_CREATE: WPARAM = 0xa; | |
512 | pub const WTS_SESSION_TERMINATE: WPARAM = 0xb; | |
513 | pub const MSGF_DIALOGBOX: c_int = 0; | |
514 | pub const MSGF_MESSAGEBOX: c_int = 1; | |
515 | pub const MSGF_MENU: c_int = 2; | |
516 | pub const MSGF_SCROLLBAR: c_int = 5; | |
517 | pub const MSGF_NEXTWINDOW: c_int = 6; | |
518 | pub const MSGF_MAX: c_int = 8; | |
519 | pub const MSGF_USER: c_int = 4096; | |
520 | pub const HSHELL_WINDOWCREATED: c_int = 1; | |
521 | pub const HSHELL_WINDOWDESTROYED: c_int = 2; | |
522 | pub const HSHELL_ACTIVATESHELLWINDOW: c_int = 3; | |
523 | pub const HSHELL_WINDOWACTIVATED: c_int = 4; | |
524 | pub const HSHELL_GETMINRECT: c_int = 5; | |
525 | pub const HSHELL_REDRAW: c_int = 6; | |
526 | pub const HSHELL_TASKMAN: c_int = 7; | |
527 | pub const HSHELL_LANGUAGE: c_int = 8; | |
528 | pub const HSHELL_SYSMENU: c_int = 9; | |
529 | pub const HSHELL_ENDTASK: c_int = 10; | |
530 | pub const HSHELL_ACCESSIBILITYSTATE: c_int = 11; | |
531 | pub const HSHELL_APPCOMMAND: c_int = 12; | |
532 | pub const HSHELL_WINDOWREPLACED: c_int = 13; | |
533 | pub const HSHELL_WINDOWREPLACING: c_int = 14; | |
534 | pub const HSHELL_MONITORCHANGED: c_int = 16; | |
535 | pub const HSHELL_HIGHBIT: c_int = 0x8000; | |
536 | pub const HSHELL_FLASH: c_int = HSHELL_REDRAW | HSHELL_HIGHBIT; | |
537 | pub const HSHELL_RUDEAPPACTIVATED: c_int = HSHELL_WINDOWACTIVATED | HSHELL_HIGHBIT; | |
538 | pub const APPCOMMAND_BROWSER_BACKWARD: c_short = 1; | |
539 | pub const APPCOMMAND_BROWSER_FORWARD: c_short = 2; | |
540 | pub const APPCOMMAND_BROWSER_REFRESH: c_short = 3; | |
541 | pub const APPCOMMAND_BROWSER_STOP: c_short = 4; | |
542 | pub const APPCOMMAND_BROWSER_SEARCH: c_short = 5; | |
543 | pub const APPCOMMAND_BROWSER_FAVORITES: c_short = 6; | |
544 | pub const APPCOMMAND_BROWSER_HOME: c_short = 7; | |
545 | pub const APPCOMMAND_VOLUME_MUTE: c_short = 8; | |
546 | pub const APPCOMMAND_VOLUME_DOWN: c_short = 9; | |
547 | pub const APPCOMMAND_VOLUME_UP: c_short = 10; | |
548 | pub const APPCOMMAND_MEDIA_NEXTTRACK: c_short = 11; | |
549 | pub const APPCOMMAND_MEDIA_PREVIOUSTRACK: c_short = 12; | |
550 | pub const APPCOMMAND_MEDIA_STOP: c_short = 13; | |
551 | pub const APPCOMMAND_MEDIA_PLAY_PAUSE: c_short = 14; | |
552 | pub const APPCOMMAND_LAUNCH_MAIL: c_short = 15; | |
553 | pub const APPCOMMAND_LAUNCH_MEDIA_SELECT: c_short = 16; | |
554 | pub const APPCOMMAND_LAUNCH_APP1: c_short = 17; | |
555 | pub const APPCOMMAND_LAUNCH_APP2: c_short = 18; | |
556 | pub const APPCOMMAND_BASS_DOWN: c_short = 19; | |
557 | pub const APPCOMMAND_BASS_BOOST: c_short = 20; | |
558 | pub const APPCOMMAND_BASS_UP: c_short = 21; | |
559 | pub const APPCOMMAND_TREBLE_DOWN: c_short = 22; | |
560 | pub const APPCOMMAND_TREBLE_UP: c_short = 23; | |
561 | pub const APPCOMMAND_MICROPHONE_VOLUME_MUTE: c_short = 24; | |
562 | pub const APPCOMMAND_MICROPHONE_VOLUME_DOWN: c_short = 25; | |
563 | pub const APPCOMMAND_MICROPHONE_VOLUME_UP: c_short = 26; | |
564 | pub const APPCOMMAND_HELP: c_short = 27; | |
565 | pub const APPCOMMAND_FIND: c_short = 28; | |
566 | pub const APPCOMMAND_NEW: c_short = 29; | |
567 | pub const APPCOMMAND_OPEN: c_short = 30; | |
568 | pub const APPCOMMAND_CLOSE: c_short = 31; | |
569 | pub const APPCOMMAND_SAVE: c_short = 32; | |
570 | pub const APPCOMMAND_PRINT: c_short = 33; | |
571 | pub const APPCOMMAND_UNDO: c_short = 34; | |
572 | pub const APPCOMMAND_REDO: c_short = 35; | |
573 | pub const APPCOMMAND_COPY: c_short = 36; | |
574 | pub const APPCOMMAND_CUT: c_short = 37; | |
575 | pub const APPCOMMAND_PASTE: c_short = 38; | |
576 | pub const APPCOMMAND_REPLY_TO_MAIL: c_short = 39; | |
577 | pub const APPCOMMAND_FORWARD_MAIL: c_short = 40; | |
578 | pub const APPCOMMAND_SEND_MAIL: c_short = 41; | |
579 | pub const APPCOMMAND_SPELL_CHECK: c_short = 42; | |
580 | pub const APPCOMMAND_DICTATE_OR_COMMAND_CONTROL_TOGGLE: c_short = 43; | |
581 | pub const APPCOMMAND_MIC_ON_OFF_TOGGLE: c_short = 44; | |
582 | pub const APPCOMMAND_CORRECTION_LIST: c_short = 45; | |
583 | pub const APPCOMMAND_MEDIA_PLAY: c_short = 46; | |
584 | pub const APPCOMMAND_MEDIA_PAUSE: c_short = 47; | |
585 | pub const APPCOMMAND_MEDIA_RECORD: c_short = 48; | |
586 | pub const APPCOMMAND_MEDIA_FAST_FORWARD: c_short = 49; | |
587 | pub const APPCOMMAND_MEDIA_REWIND: c_short = 50; | |
588 | pub const APPCOMMAND_MEDIA_CHANNEL_UP: c_short = 51; | |
589 | pub const APPCOMMAND_MEDIA_CHANNEL_DOWN: c_short = 52; | |
590 | pub const APPCOMMAND_DELETE: c_short = 53; | |
591 | pub const APPCOMMAND_DWM_FLIP3D: c_short = 54; | |
592 | pub const FAPPCOMMAND_MOUSE: WORD = 0x8000; | |
593 | pub const FAPPCOMMAND_KEY: WORD = 0; | |
594 | pub const FAPPCOMMAND_OEM: WORD = 0x1000; | |
595 | pub const FAPPCOMMAND_MASK: WORD = 0xF000; | |
596 | #[inline] | |
597 | pub fn GET_APPCOMMAND_LPARAM(lParam: LPARAM) -> c_short { | |
598 | (HIWORD(lParam as DWORD) & !FAPPCOMMAND_MASK) as c_short | |
599 | } | |
600 | #[inline] | |
601 | pub fn GET_DEVICE_LPARAM(lParam: LPARAM) -> WORD { | |
602 | HIWORD(lParam as DWORD) & FAPPCOMMAND_MASK | |
603 | } | |
604 | pub use self::GET_DEVICE_LPARAM as GET_MOUSEORKEY_LPARAM; | |
605 | pub use shared::minwindef::LOWORD as GET_FLAGS_LPARAM; | |
606 | pub use self::GET_FLAGS_LPARAM as GET_KEYSTATE_LPARAM; | |
607 | STRUCT!{struct SHELLHOOKINFO { | |
608 | hwnd: HWND, | |
609 | rc: RECT, | |
610 | }} | |
611 | pub type LPSHELLHOOKINFO = *mut SHELLHOOKINFO; | |
612 | STRUCT!{struct EVENTMSG { | |
613 | message: UINT, | |
614 | paramL: UINT, | |
615 | paramH: UINT, | |
616 | time: DWORD, | |
617 | hwnd: HWND, | |
618 | }} | |
619 | pub type PEVENTMSGMSG = *mut EVENTMSG; | |
620 | pub type NPEVENTMSGMSG = *mut EVENTMSG; | |
621 | pub type LPEVENTMSGMSG = *mut EVENTMSG; | |
622 | pub type PEVENTMSG = *mut EVENTMSG; | |
623 | pub type NPEVENTMSG = *mut EVENTMSG; | |
624 | pub type LPEVENTMSG = *mut EVENTMSG; | |
625 | STRUCT!{struct CWPSTRUCT { | |
626 | lParam: LPARAM, | |
627 | wParam: WPARAM, | |
628 | message: UINT, | |
629 | hwnd: HWND, | |
630 | }} | |
631 | pub type PCWPSTRUCT = *mut CWPSTRUCT; | |
632 | pub type NPCWPSTRUCT = *mut CWPSTRUCT; | |
633 | pub type LPCWPSTRUCT = *mut CWPSTRUCT; | |
634 | STRUCT!{struct CWPRETSTRUCT { | |
635 | lResult: LRESULT, | |
636 | lParam: LPARAM, | |
637 | wParam: WPARAM, | |
638 | message: UINT, | |
639 | hwnd: HWND, | |
640 | }} | |
641 | pub type PCWPRETSTRUCT = *mut CWPRETSTRUCT; | |
642 | pub type NPCWPRETSTRUCT = *mut CWPRETSTRUCT; | |
643 | pub type LPCWPRETSTRUCT = *mut CWPRETSTRUCT; | |
644 | pub const LLKHF_EXTENDED: DWORD = (KF_EXTENDED >> 8) as u32; | |
645 | pub const LLKHF_INJECTED: DWORD = 0x00000010; | |
646 | pub const LLKHF_ALTDOWN: DWORD = (KF_ALTDOWN >> 8) as u32; | |
647 | pub const LLKHF_UP: DWORD = (KF_UP >> 8) as u32; | |
648 | pub const LLKHF_LOWER_IL_INJECTED: DWORD = 0x00000002; | |
649 | pub const LLMHF_INJECTED: DWORD = 0x00000001; | |
650 | pub const LLMHF_LOWER_IL_INJECTED: DWORD = 0x00000002; | |
651 | STRUCT!{struct KBDLLHOOKSTRUCT { | |
652 | vkCode: DWORD, | |
653 | scanCode: DWORD, | |
654 | flags: DWORD, | |
655 | time: DWORD, | |
656 | dwExtraInfo: ULONG_PTR, | |
657 | }} | |
658 | pub type LPKBDLLHOOKSTRUCT = *mut KBDLLHOOKSTRUCT; | |
659 | pub type PKBDLLHOOKSTRUCT = *mut KBDLLHOOKSTRUCT; | |
660 | STRUCT!{struct MSLLHOOKSTRUCT { | |
661 | pt: POINT, | |
662 | mouseData: DWORD, | |
663 | flags: DWORD, | |
664 | time: DWORD, | |
665 | dwExtraInfo: ULONG_PTR, | |
666 | }} | |
667 | pub type LPMSLLHOOKSTRUCT = *mut MSLLHOOKSTRUCT; | |
668 | pub type PMSLLHOOKSTRUCT = *mut MSLLHOOKSTRUCT; | |
669 | STRUCT!{struct DEBUGHOOKINFO { | |
670 | idThread: DWORD, | |
671 | idThreadInstaller: DWORD, | |
672 | lParam: LPARAM, | |
673 | wParam: WPARAM, | |
674 | code: c_int, | |
675 | }} | |
676 | pub type PDEBUGHOOKINFO = *mut DEBUGHOOKINFO; | |
677 | pub type NPDEBUGHOOKINFO = *mut DEBUGHOOKINFO; | |
678 | pub type LPDEBUGHOOKINFO = *mut DEBUGHOOKINFO; | |
679 | STRUCT!{struct MOUSEHOOKSTRUCT { | |
680 | pt: POINT, | |
681 | hwnd: HWND, | |
682 | wHitTestCode: UINT, | |
683 | dwExtraInfo: ULONG_PTR, | |
684 | }} | |
685 | pub type LPMOUSEHOOKSTRUCT = *mut MOUSEHOOKSTRUCT; | |
686 | pub type PMOUSEHOOKSTRUCT = *mut MOUSEHOOKSTRUCT; | |
687 | STRUCT!{struct MOUSEHOOKSTRUCTEX { | |
688 | parent: MOUSEHOOKSTRUCT, | |
689 | mouseData: DWORD, | |
690 | }} | |
691 | pub type LPMOUSEHOOKSTRUCTEX = *mut MOUSEHOOKSTRUCTEX; | |
692 | pub type PMOUSEHOOKSTRUCTEX = *mut MOUSEHOOKSTRUCTEX; | |
693 | STRUCT!{struct HARDWAREHOOKSTRUCT { | |
694 | hwnd: HWND, | |
695 | message: UINT, | |
696 | wParam: WPARAM, | |
697 | lParam: LPARAM, | |
698 | }} | |
699 | pub type LPHARDWAREHOOKSTRUCT = *mut HARDWAREHOOKSTRUCT; | |
700 | pub type PHARDWAREHOOKSTRUCT = *mut HARDWAREHOOKSTRUCT; | |
701 | pub const HKL_PREV: HKL = 0 as HKL; | |
702 | pub const HKL_NEXT: HKL = 1 as HKL; | |
703 | pub const KLF_ACTIVATE: UINT = 0x00000001; | |
704 | pub const KLF_SUBSTITUTE_OK: UINT = 0x00000002; | |
705 | pub const KLF_REORDER: UINT = 0x00000008; | |
706 | pub const KLF_REPLACELANG: UINT = 0x00000010; | |
707 | pub const KLF_NOTELLSHELL: UINT = 0x00000080; | |
708 | pub const KLF_SETFORPROCESS: UINT = 0x00000100; | |
709 | pub const KLF_SHIFTLOCK: UINT = 0x00010000; | |
710 | pub const KLF_RESET: UINT = 0x40000000; | |
711 | pub const INPUTLANGCHANGE_SYSCHARSET: WPARAM = 0x0001; | |
712 | pub const INPUTLANGCHANGE_FORWARD: WPARAM = 0x0002; | |
713 | pub const INPUTLANGCHANGE_BACKWARD: WPARAM = 0x0004; | |
714 | pub const KL_NAMELENGTH: usize = 9; | |
715 | extern "system" { | |
716 | pub fn LoadKeyboardLayoutA( | |
717 | pwszKLID: LPCSTR, | |
718 | Flags: DWORD, | |
719 | ) -> HKL; | |
720 | pub fn LoadKeyboardLayoutW( | |
721 | pwszKLID: LPCWSTR, | |
722 | Flags: DWORD, | |
723 | ) -> HKL; | |
724 | pub fn ActivateKeyboardLayout( | |
725 | hkl: HKL, | |
726 | Flags: UINT, | |
727 | ) -> HKL; | |
728 | pub fn ToUnicodeEx( | |
729 | wVirtKey: UINT, | |
730 | wScanCode: UINT, | |
731 | lpKeyState: *const BYTE, | |
732 | pwszBuff: LPWSTR, | |
733 | cchBuff: c_int, | |
734 | wFlags: UINT, | |
735 | dwhkl: HKL, | |
736 | ) -> c_int; | |
737 | pub fn UnloadKeyboardLayout( | |
738 | hkl: HKL, | |
739 | ) -> BOOL; | |
740 | pub fn GetKeyboardLayoutNameA( | |
741 | pwszKLID: LPSTR, | |
742 | ) -> BOOL; | |
743 | pub fn GetKeyboardLayoutNameW( | |
744 | pwszKLID: LPWSTR, | |
745 | ) -> BOOL; | |
746 | pub fn GetKeyboardLayoutList( | |
747 | nBuff: c_int, | |
748 | lpList: *mut HKL, | |
749 | ) -> c_int; | |
750 | pub fn GetKeyboardLayout( | |
751 | idThread: DWORD, | |
752 | ) -> HKL; | |
753 | } | |
754 | STRUCT!{struct MOUSEMOVEPOINT { | |
755 | x: c_int, | |
756 | y: c_int, | |
757 | time: DWORD, | |
758 | dwExtraInfo: ULONG_PTR, | |
759 | }} | |
760 | pub type PMOUSEMOVEPOINT = *mut MOUSEMOVEPOINT; | |
761 | pub type LPMOUSEMOVEPOINT = *mut MOUSEMOVEPOINT; | |
762 | pub const GMMP_USE_DISPLAY_POINTS: DWORD = 1; | |
763 | pub const GMMP_USE_HIGH_RESOLUTION_POINTS: DWORD = 2; | |
764 | extern "system" { | |
765 | pub fn GetMouseMovePointsEx( | |
766 | cbSize: UINT, | |
767 | lppt: LPMOUSEMOVEPOINT, | |
768 | lpptBuf: LPMOUSEMOVEPOINT, | |
769 | nBufPoints: c_int, | |
770 | resolution: DWORD, | |
771 | ) -> c_int; | |
772 | } | |
773 | pub const DESKTOP_READOBJECTS: DWORD = 0x0001; | |
774 | pub const DESKTOP_CREATEWINDOW: DWORD = 0x0002; | |
775 | pub const DESKTOP_CREATEMENU: DWORD = 0x0004; | |
776 | pub const DESKTOP_HOOKCONTROL: DWORD = 0x0008; | |
777 | pub const DESKTOP_JOURNALRECORD: DWORD = 0x0010; | |
778 | pub const DESKTOP_JOURNALPLAYBACK: DWORD = 0x0020; | |
779 | pub const DESKTOP_ENUMERATE: DWORD = 0x0040; | |
780 | pub const DESKTOP_WRITEOBJECTS: DWORD = 0x0080; | |
781 | pub const DESKTOP_SWITCHDESKTOP: DWORD = 0x0100; | |
782 | pub const DF_ALLOWOTHERACCOUNTHOOK: DWORD = 0x0001; | |
783 | extern "system" { | |
784 | pub fn CreateDesktopA( | |
785 | lpszDesktop: LPCSTR, | |
786 | lpszDevice: LPCSTR, | |
787 | pDevmode: *mut DEVMODEA, | |
788 | dwFlags: DWORD, | |
789 | dwDesiredAccess: ACCESS_MASK, | |
790 | lpsa: LPSECURITY_ATTRIBUTES, | |
791 | ) -> HDESK; | |
792 | pub fn CreateDesktopW( | |
793 | lpszDesktop: LPCWSTR, | |
794 | lpszDevice: LPCWSTR, | |
795 | pDevmode: *mut DEVMODEW, | |
796 | dwFlags: DWORD, | |
797 | dwDesiredAccess: ACCESS_MASK, | |
798 | lpsa: LPSECURITY_ATTRIBUTES, | |
799 | ) -> HDESK; | |
800 | pub fn CreateDesktopExA( | |
801 | lpszDesktop: LPCSTR, | |
802 | lpszDevice: LPCSTR, | |
803 | pDevmode: *mut DEVMODEA, | |
804 | dwFlags: DWORD, | |
805 | dwDesiredAccess: ACCESS_MASK, | |
806 | lpsa: LPSECURITY_ATTRIBUTES, | |
807 | ulHeapSize: ULONG, | |
808 | pvoid: PVOID, | |
809 | ) -> HDESK; | |
810 | pub fn CreateDesktopExW( | |
811 | lpszDesktop: LPCWSTR, | |
812 | lpszDevice: LPCWSTR, | |
813 | pDevmode: *mut DEVMODEW, | |
814 | dwFlags: DWORD, | |
815 | dwDesiredAccess: ACCESS_MASK, | |
816 | lpsa: LPSECURITY_ATTRIBUTES, | |
817 | ulHeapSize: ULONG, | |
818 | pvoid: PVOID, | |
819 | ) -> HDESK; | |
820 | pub fn OpenDesktopA( | |
821 | lpszDesktop: LPCSTR, | |
822 | dwFlags: DWORD, | |
823 | fInherit: BOOL, | |
824 | dwDesiredAccess: ACCESS_MASK, | |
825 | ) -> HDESK; | |
826 | pub fn OpenDesktopW( | |
827 | lpszDesktop: LPCWSTR, | |
828 | dwFlags: DWORD, | |
829 | fInherit: BOOL, | |
830 | dwDesiredAccess: ACCESS_MASK, | |
831 | ) -> HDESK; | |
832 | pub fn OpenInputDesktop( | |
833 | dwFlags: DWORD, | |
834 | fInherit: BOOL, | |
835 | dwDesiredAccess: ACCESS_MASK, | |
836 | ) -> HDESK; | |
837 | pub fn EnumDesktopsA( | |
838 | hwinsta: HWINSTA, | |
839 | lpEnumFunc: DESKTOPENUMPROCA, | |
840 | lParam: LPARAM, | |
841 | ) -> BOOL; | |
842 | pub fn EnumDesktopsW( | |
843 | hwinsta: HWINSTA, | |
844 | lpEnumFunc: DESKTOPENUMPROCW, | |
845 | lParam: LPARAM, | |
846 | ) -> BOOL; | |
847 | pub fn EnumDesktopWindows( | |
848 | hDesktop: HDESK, | |
849 | lpfn: WNDENUMPROC, | |
850 | lParam: LPARAM, | |
851 | ) -> BOOL; | |
852 | pub fn SwitchDesktop( | |
853 | hDesktop: HDESK, | |
854 | ) -> BOOL; | |
855 | pub fn SetThreadDesktop( | |
856 | hDesktop: HDESK, | |
857 | ) -> BOOL; | |
858 | pub fn CloseDesktop( | |
859 | hDesktop: HDESK, | |
860 | ) -> BOOL; | |
861 | pub fn GetThreadDesktop( | |
862 | dwThreadId: DWORD, | |
863 | ) -> HDESK; | |
864 | } | |
865 | pub const WINSTA_ENUMDESKTOPS: DWORD = 0x0001; | |
866 | pub const WINSTA_READATTRIBUTES: DWORD = 0x0002; | |
867 | pub const WINSTA_ACCESSCLIPBOARD: DWORD = 0x0004; | |
868 | pub const WINSTA_CREATEDESKTOP: DWORD = 0x0008; | |
869 | pub const WINSTA_WRITEATTRIBUTES: DWORD = 0x0010; | |
870 | pub const WINSTA_ACCESSGLOBALATOMS: DWORD = 0x0020; | |
871 | pub const WINSTA_EXITWINDOWS: DWORD = 0x0040; | |
872 | pub const WINSTA_ENUMERATE: DWORD = 0x0100; | |
873 | pub const WINSTA_READSCREEN: DWORD = 0x0200; | |
874 | pub const WINSTA_ALL_ACCESS: DWORD = WINSTA_ENUMDESKTOPS | WINSTA_READATTRIBUTES | |
875 | | WINSTA_ACCESSCLIPBOARD | WINSTA_CREATEDESKTOP | WINSTA_WRITEATTRIBUTES | |
876 | | WINSTA_ACCESSGLOBALATOMS | WINSTA_EXITWINDOWS | WINSTA_ENUMERATE | WINSTA_READSCREEN; | |
877 | pub const CWF_CREATE_ONLY: DWORD = 0x00000001; | |
878 | pub const WSF_VISIBLE: DWORD = 0x0001; | |
879 | extern "system" { | |
880 | pub fn CreateWindowStationA( | |
881 | lpwinsta: LPCSTR, | |
882 | dwFlags: DWORD, | |
883 | dwDesiredAccess: ACCESS_MASK, | |
884 | lpsa: LPSECURITY_ATTRIBUTES, | |
885 | ) -> HWINSTA; | |
886 | pub fn CreateWindowStationW( | |
887 | lpwinsta: LPCWSTR, | |
888 | dwFlags: DWORD, | |
889 | dwDesiredAccess: ACCESS_MASK, | |
890 | lpsa: LPSECURITY_ATTRIBUTES, | |
891 | ) -> HWINSTA; | |
892 | pub fn OpenWindowStationA( | |
893 | lpszWinSta: LPCSTR, | |
894 | fInherit: BOOL, | |
895 | dwDesiredAccess: ACCESS_MASK, | |
896 | ) -> HWINSTA; | |
897 | pub fn OpenWindowStationW( | |
898 | lpszWinSta: LPCWSTR, | |
899 | fInherit: BOOL, | |
900 | dwDesiredAccess: ACCESS_MASK, | |
901 | ) -> HWINSTA; | |
902 | pub fn EnumWindowStationsA( | |
903 | lpEnumFunc: WINSTAENUMPROCA, | |
904 | lParam: LPARAM, | |
905 | ) -> BOOL; | |
906 | pub fn EnumWindowStationsW( | |
907 | lpEnumFunc: WINSTAENUMPROCW, | |
908 | lParam: LPARAM, | |
909 | ) -> BOOL; | |
910 | pub fn CloseWindowStation( | |
911 | hWinSta: HWINSTA, | |
912 | ) -> BOOL; | |
913 | pub fn SetProcessWindowStation( | |
914 | hWinSta: HWINSTA, | |
915 | ) -> BOOL; | |
60c5eb7d | 916 | pub fn GetProcessWindowStation() -> HWINSTA; |
ff7c6d11 XL |
917 | pub fn SetUserObjectSecurity( |
918 | hObj: HANDLE, | |
919 | pSIRequested: PSECURITY_INFORMATION, | |
920 | pSID: PSECURITY_DESCRIPTOR, | |
921 | ) -> BOOL; | |
922 | pub fn GetUserObjectSecurity( | |
923 | hObj: HANDLE, | |
924 | pSIRequested: PSECURITY_INFORMATION, | |
925 | pSID: PSECURITY_DESCRIPTOR, | |
926 | nLength: DWORD, | |
927 | lpnLengthNeeded: LPDWORD, | |
928 | ) -> BOOL; | |
929 | } | |
930 | pub const UOI_FLAGS: DWORD = 1; | |
931 | pub const UOI_NAME: DWORD = 2; | |
932 | pub const UOI_TYPE: DWORD = 3; | |
933 | pub const UOI_USER_SID: DWORD = 4; | |
934 | pub const UOI_HEAPSIZE: DWORD = 5; | |
935 | pub const UOI_IO: DWORD = 6; | |
936 | pub const UOI_TIMERPROC_EXCEPTION_SUPPRESSION: DWORD = 7; | |
937 | STRUCT!{struct USEROBJECTFLAGS { | |
938 | fInherit: BOOL, | |
939 | fReserved: BOOL, | |
940 | dwFlags: DWORD, | |
941 | }} | |
942 | pub type PUSEROBJECTFLAGS = *mut USEROBJECTFLAGS; | |
943 | extern "system" { | |
944 | pub fn GetUserObjectInformationA( | |
945 | hObj: HANDLE, | |
946 | nIndex: c_int, | |
947 | pvInfo: PVOID, | |
948 | nLength: DWORD, | |
949 | lpnLengthNeeded: LPDWORD, | |
950 | ) -> BOOL; | |
951 | pub fn GetUserObjectInformationW( | |
952 | hObj: HANDLE, | |
953 | nIndex: c_int, | |
954 | pvInfo: PVOID, | |
955 | nLength: DWORD, | |
956 | lpnLengthNeeded: LPDWORD, | |
957 | ) -> BOOL; | |
958 | pub fn SetUserObjectInformationA( | |
959 | hObj: HANDLE, | |
960 | nIndex: c_int, | |
961 | pvInfo: PVOID, | |
962 | nLength: DWORD, | |
963 | ) -> BOOL; | |
964 | pub fn SetUserObjectInformationW( | |
965 | hObj: HANDLE, | |
966 | nIndex: c_int, | |
967 | pvInfo: PVOID, | |
968 | nLength: DWORD, | |
969 | ) -> BOOL; | |
970 | } | |
971 | STRUCT!{struct WNDCLASSEXA { | |
972 | cbSize: UINT, | |
973 | style: UINT, | |
974 | lpfnWndProc: WNDPROC, | |
975 | cbClsExtra: c_int, | |
976 | cbWndExtra: c_int, | |
977 | hInstance: HINSTANCE, | |
978 | hIcon: HICON, | |
979 | hCursor: HCURSOR, | |
980 | hbrBackground: HBRUSH, | |
981 | lpszMenuName: LPCSTR, | |
982 | lpszClassName: LPCSTR, | |
983 | hIconSm: HICON, | |
984 | }} | |
985 | pub type PWNDCLASSEXA = *mut WNDCLASSEXA; | |
986 | pub type NPWNDCLASSEXA = *mut WNDCLASSEXA; | |
987 | pub type LPWNDCLASSEXA = *mut WNDCLASSEXA; | |
988 | STRUCT!{struct WNDCLASSEXW { | |
989 | cbSize: UINT, | |
990 | style: UINT, | |
991 | lpfnWndProc: WNDPROC, | |
992 | cbClsExtra: c_int, | |
993 | cbWndExtra: c_int, | |
994 | hInstance: HINSTANCE, | |
995 | hIcon: HICON, | |
996 | hCursor: HCURSOR, | |
997 | hbrBackground: HBRUSH, | |
998 | lpszMenuName: LPCWSTR, | |
999 | lpszClassName: LPCWSTR, | |
1000 | hIconSm: HICON, | |
1001 | }} | |
1002 | pub type PWNDCLASSEXW = *mut WNDCLASSEXW; | |
1003 | pub type NPWNDCLASSEXW = *mut WNDCLASSEXW; | |
1004 | pub type LPWNDCLASSEXW = *mut WNDCLASSEXW; | |
1005 | STRUCT!{struct WNDCLASSA { | |
1006 | style: UINT, | |
1007 | lpfnWndProc: WNDPROC, | |
1008 | cbClsExtra: c_int, | |
1009 | cbWndExtra: c_int, | |
1010 | hInstance: HINSTANCE, | |
1011 | hIcon: HICON, | |
1012 | hCursor: HCURSOR, | |
1013 | hbrBackground: HBRUSH, | |
1014 | lpszMenuName: LPCSTR, | |
1015 | lpszClassName: LPCSTR, | |
1016 | }} | |
1017 | pub type PWNDCLASSA = *mut WNDCLASSA; | |
1018 | pub type NPWNDCLASSA = *mut WNDCLASSA; | |
1019 | pub type LPWNDCLASSA = *mut WNDCLASSA; | |
1020 | STRUCT!{struct WNDCLASSW { | |
1021 | style: UINT, | |
1022 | lpfnWndProc: WNDPROC, | |
1023 | cbClsExtra: c_int, | |
1024 | cbWndExtra: c_int, | |
1025 | hInstance: HINSTANCE, | |
1026 | hIcon: HICON, | |
1027 | hCursor: HCURSOR, | |
1028 | hbrBackground: HBRUSH, | |
1029 | lpszMenuName: LPCWSTR, | |
1030 | lpszClassName: LPCWSTR, | |
1031 | }} | |
1032 | pub type PWNDCLASSW = *mut WNDCLASSW; | |
1033 | pub type NPWNDCLASSW = *mut WNDCLASSW; | |
1034 | pub type LPWNDCLASSW = *mut WNDCLASSW; | |
1035 | extern "system" { | |
1036 | pub fn IsHungAppWindow( | |
1037 | hwnd: HWND, | |
1038 | ) -> BOOL; | |
1039 | pub fn DisableProcessWindowsGhosting(); | |
1040 | } | |
1041 | STRUCT!{struct MSG { | |
1042 | hwnd: HWND, | |
1043 | message: UINT, | |
1044 | wParam: WPARAM, | |
1045 | lParam: LPARAM, | |
1046 | time: DWORD, | |
1047 | pt: POINT, | |
1048 | }} | |
1049 | pub type PMSG = *mut MSG; | |
1050 | pub type NPMSG = *mut MSG; | |
1051 | pub type LPMSG = *mut MSG; | |
1052 | //POINTSTOPOINT | |
1053 | //POINTTOPOINTS | |
1054 | //MAKEWPARAM | |
1055 | //MAKELPARAM | |
1056 | //MAKELRESULT | |
1057 | pub const GWL_WNDPROC: c_int = -4; | |
1058 | pub const GWL_HINSTANCE: c_int = -6; | |
1059 | pub const GWL_HWNDPARENT: c_int = -8; | |
1060 | pub const GWL_STYLE: c_int = -16; | |
1061 | pub const GWL_EXSTYLE: c_int = -20; | |
1062 | pub const GWL_USERDATA: c_int = -21; | |
1063 | pub const GWL_ID: c_int = -12; | |
1064 | pub const GWLP_WNDPROC: c_int = -4; | |
1065 | pub const GWLP_HINSTANCE: c_int = -6; | |
1066 | pub const GWLP_HWNDPARENT: c_int = -8; | |
1067 | pub const GWLP_USERDATA: c_int = -21; | |
1068 | pub const GWLP_ID: c_int = -12; | |
1069 | pub const GCL_MENUNAME: c_int = -8; | |
1070 | pub const GCL_HBRBACKGROUND: c_int = -10; | |
1071 | pub const GCL_HCURSOR: c_int = -12; | |
1072 | pub const GCL_HICON: c_int = -14; | |
1073 | pub const GCL_HMODULE: c_int = -16; | |
1074 | pub const GCL_CBWNDEXTRA: c_int = -18; | |
1075 | pub const GCL_CBCLSEXTRA: c_int = -20; | |
1076 | pub const GCL_WNDPROC: c_int = -24; | |
1077 | pub const GCL_STYLE: c_int = -26; | |
1078 | pub const GCW_ATOM: c_int = -32; | |
1079 | pub const GCL_HICONSM: c_int = -34; | |
1080 | pub const GCLP_MENUNAME: c_int = -8; | |
1081 | pub const GCLP_HBRBACKGROUND: c_int = -10; | |
1082 | pub const GCLP_HCURSOR: c_int = -12; | |
1083 | pub const GCLP_HICON: c_int = -14; | |
1084 | pub const GCLP_HMODULE: c_int = -16; | |
1085 | pub const GCLP_WNDPROC: c_int = -24; | |
1086 | pub const GCLP_HICONSM: c_int = -34; | |
1087 | pub const WM_NULL: UINT = 0x0000; | |
1088 | pub const WM_CREATE: UINT = 0x0001; | |
1089 | pub const WM_DESTROY: UINT = 0x0002; | |
1090 | pub const WM_MOVE: UINT = 0x0003; | |
1091 | pub const WM_SIZE: UINT = 0x0005; | |
1092 | pub const WM_ACTIVATE: UINT = 0x0006; | |
1093 | pub const WA_INACTIVE: WORD = 0; | |
1094 | pub const WA_ACTIVE: WORD = 1; | |
1095 | pub const WA_CLICKACTIVE: WORD = 2; | |
1096 | pub const WM_SETFOCUS: UINT = 0x0007; | |
1097 | pub const WM_KILLFOCUS: UINT = 0x0008; | |
1098 | pub const WM_ENABLE: UINT = 0x000A; | |
1099 | pub const WM_SETREDRAW: UINT = 0x000B; | |
1100 | pub const WM_SETTEXT: UINT = 0x000C; | |
1101 | pub const WM_GETTEXT: UINT = 0x000D; | |
1102 | pub const WM_GETTEXTLENGTH: UINT = 0x000E; | |
1103 | pub const WM_PAINT: UINT = 0x000F; | |
1104 | pub const WM_CLOSE: UINT = 0x0010; | |
1105 | pub const WM_QUERYENDSESSION: UINT = 0x0011; | |
1106 | pub const WM_QUERYOPEN: UINT = 0x0013; | |
1107 | pub const WM_ENDSESSION: UINT = 0x0016; | |
1108 | pub const WM_QUIT: UINT = 0x0012; | |
1109 | pub const WM_ERASEBKGND: UINT = 0x0014; | |
1110 | pub const WM_SYSCOLORCHANGE: UINT = 0x0015; | |
1111 | pub const WM_SHOWWINDOW: UINT = 0x0018; | |
1112 | pub const WM_WININICHANGE: UINT = 0x001A; | |
1113 | pub const WM_SETTINGCHANGE: UINT = WM_WININICHANGE; | |
1114 | pub const WM_DEVMODECHANGE: UINT = 0x001B; | |
1115 | pub const WM_ACTIVATEAPP: UINT = 0x001C; | |
1116 | pub const WM_FONTCHANGE: UINT = 0x001D; | |
1117 | pub const WM_TIMECHANGE: UINT = 0x001E; | |
1118 | pub const WM_CANCELMODE: UINT = 0x001F; | |
1119 | pub const WM_SETCURSOR: UINT = 0x0020; | |
1120 | pub const WM_MOUSEACTIVATE: UINT = 0x0021; | |
1121 | pub const WM_CHILDACTIVATE: UINT = 0x0022; | |
1122 | pub const WM_QUEUESYNC: UINT = 0x0023; | |
1123 | pub const WM_GETMINMAXINFO: UINT = 0x0024; | |
1124 | STRUCT!{struct MINMAXINFO { | |
1125 | ptReserved: POINT, | |
1126 | ptMaxSize: POINT, | |
1127 | ptMaxPosition: POINT, | |
1128 | ptMinTrackSize: POINT, | |
1129 | ptMaxTrackSize: POINT, | |
1130 | }} | |
1131 | pub type PMINMAXINFO = *mut MINMAXINFO; | |
1132 | pub type LPMINMAXINFO = *mut MINMAXINFO; | |
1133 | pub const WM_PAINTICON: UINT = 0x0026; | |
1134 | pub const WM_ICONERASEBKGND: UINT = 0x0027; | |
1135 | pub const WM_NEXTDLGCTL: UINT = 0x0028; | |
1136 | pub const WM_SPOOLERSTATUS: UINT = 0x002A; | |
1137 | pub const WM_DRAWITEM: UINT = 0x002B; | |
1138 | pub const WM_MEASUREITEM: UINT = 0x002C; | |
1139 | pub const WM_DELETEITEM: UINT = 0x002D; | |
1140 | pub const WM_VKEYTOITEM: UINT = 0x002E; | |
1141 | pub const WM_CHARTOITEM: UINT = 0x002F; | |
1142 | pub const WM_SETFONT: UINT = 0x0030; | |
1143 | pub const WM_GETFONT: UINT = 0x0031; | |
1144 | pub const WM_SETHOTKEY: UINT = 0x0032; | |
1145 | pub const WM_GETHOTKEY: UINT = 0x0033; | |
1146 | pub const WM_QUERYDRAGICON: UINT = 0x0037; | |
1147 | pub const WM_COMPAREITEM: UINT = 0x0039; | |
1148 | pub const WM_GETOBJECT: UINT = 0x003D; | |
1149 | pub const WM_COMPACTING: UINT = 0x0041; | |
1150 | pub const WM_COMMNOTIFY: UINT = 0x0044; | |
1151 | pub const WM_WINDOWPOSCHANGING: UINT = 0x0046; | |
1152 | pub const WM_WINDOWPOSCHANGED: UINT = 0x0047; | |
1153 | pub const WM_POWER: UINT = 0x0048; | |
1154 | pub const PWR_OK: WPARAM = 1; | |
1155 | pub const PWR_FAIL: WPARAM = -1isize as usize; | |
1156 | pub const PWR_SUSPENDREQUEST: WPARAM = 1; | |
1157 | pub const PWR_SUSPENDRESUME: WPARAM = 2; | |
1158 | pub const PWR_CRITICALRESUME: WPARAM = 3; | |
1159 | pub const WM_COPYDATA: UINT = 0x004A; | |
1160 | pub const WM_CANCELJOURNAL: UINT = 0x004B; | |
1161 | STRUCT!{struct COPYDATASTRUCT { | |
1162 | dwData: ULONG_PTR, | |
1163 | cbData: DWORD, | |
1164 | lpData: PVOID, | |
1165 | }} | |
1166 | pub type PCOPYDATASTRUCT = *mut COPYDATASTRUCT; | |
1167 | STRUCT!{struct MDINEXTMENU { | |
1168 | hmenuIn: HMENU, | |
1169 | hmenuNext: HMENU, | |
1170 | hwndNext: HWND, | |
1171 | }} | |
1172 | pub type PMDINEXTMENU = *mut MDINEXTMENU; | |
1173 | pub type LPMDINEXTMENU = *mut MDINEXTMENU; | |
1174 | pub const WM_NOTIFY: UINT = 0x004E; | |
1175 | pub const WM_INPUTLANGCHANGEREQUEST: UINT = 0x0050; | |
1176 | pub const WM_INPUTLANGCHANGE: UINT = 0x0051; | |
1177 | pub const WM_TCARD: UINT = 0x0052; | |
1178 | pub const WM_HELP: UINT = 0x0053; | |
1179 | pub const WM_USERCHANGED: UINT = 0x0054; | |
1180 | pub const WM_NOTIFYFORMAT: UINT = 0x0055; | |
1181 | pub const NFR_ANSI: LRESULT = 1; | |
1182 | pub const NFR_UNICODE: LRESULT = 2; | |
1183 | pub const NF_QUERY: LPARAM = 3; | |
1184 | pub const NF_REQUERY: LPARAM = 4; | |
1185 | pub const WM_CONTEXTMENU: UINT = 0x007B; | |
1186 | pub const WM_STYLECHANGING: UINT = 0x007C; | |
1187 | pub const WM_STYLECHANGED: UINT = 0x007D; | |
1188 | pub const WM_DISPLAYCHANGE: UINT = 0x007E; | |
1189 | pub const WM_GETICON: UINT = 0x007F; | |
1190 | pub const WM_SETICON: UINT = 0x0080; | |
1191 | pub const WM_NCCREATE: UINT = 0x0081; | |
1192 | pub const WM_NCDESTROY: UINT = 0x0082; | |
1193 | pub const WM_NCCALCSIZE: UINT = 0x0083; | |
1194 | pub const WM_NCHITTEST: UINT = 0x0084; | |
1195 | pub const WM_NCPAINT: UINT = 0x0085; | |
1196 | pub const WM_NCACTIVATE: UINT = 0x0086; | |
1197 | pub const WM_GETDLGCODE: UINT = 0x0087; | |
1198 | pub const WM_SYNCPAINT: UINT = 0x0088; | |
1199 | pub const WM_NCMOUSEMOVE: UINT = 0x00A0; | |
1200 | pub const WM_NCLBUTTONDOWN: UINT = 0x00A1; | |
1201 | pub const WM_NCLBUTTONUP: UINT = 0x00A2; | |
1202 | pub const WM_NCLBUTTONDBLCLK: UINT = 0x00A3; | |
1203 | pub const WM_NCRBUTTONDOWN: UINT = 0x00A4; | |
1204 | pub const WM_NCRBUTTONUP: UINT = 0x00A5; | |
1205 | pub const WM_NCRBUTTONDBLCLK: UINT = 0x00A6; | |
1206 | pub const WM_NCMBUTTONDOWN: UINT = 0x00A7; | |
1207 | pub const WM_NCMBUTTONUP: UINT = 0x00A8; | |
1208 | pub const WM_NCMBUTTONDBLCLK: UINT = 0x00A9; | |
1209 | pub const WM_NCXBUTTONDOWN: UINT = 0x00AB; | |
1210 | pub const WM_NCXBUTTONUP: UINT = 0x00AC; | |
1211 | pub const WM_NCXBUTTONDBLCLK: UINT = 0x00AD; | |
1212 | pub const WM_INPUT_DEVICE_CHANGE: UINT = 0x00FE; | |
1213 | pub const WM_INPUT: UINT = 0x00FF; | |
1214 | pub const WM_KEYFIRST: UINT = 0x0100; | |
1215 | pub const WM_KEYDOWN: UINT = 0x0100; | |
1216 | pub const WM_KEYUP: UINT = 0x0101; | |
1217 | pub const WM_CHAR: UINT = 0x0102; | |
1218 | pub const WM_DEADCHAR: UINT = 0x0103; | |
1219 | pub const WM_SYSKEYDOWN: UINT = 0x0104; | |
1220 | pub const WM_SYSKEYUP: UINT = 0x0105; | |
1221 | pub const WM_SYSCHAR: UINT = 0x0106; | |
1222 | pub const WM_SYSDEADCHAR: UINT = 0x0107; | |
1223 | pub const WM_UNICHAR: UINT = 0x0109; | |
1224 | pub const WM_KEYLAST: UINT = 0x0109; | |
1225 | pub const UNICODE_NOCHAR: WPARAM = 0xFFFF; | |
1226 | pub const WM_IME_STARTCOMPOSITION: UINT = 0x010D; | |
1227 | pub const WM_IME_ENDCOMPOSITION: UINT = 0x010E; | |
1228 | pub const WM_IME_COMPOSITION: UINT = 0x010F; | |
1229 | pub const WM_IME_KEYLAST: UINT = 0x010F; | |
1230 | pub const WM_INITDIALOG: UINT = 0x0110; | |
1231 | pub const WM_COMMAND: UINT = 0x0111; | |
1232 | pub const WM_SYSCOMMAND: UINT = 0x0112; | |
1233 | pub const WM_TIMER: UINT = 0x0113; | |
1234 | pub const WM_HSCROLL: UINT = 0x0114; | |
1235 | pub const WM_VSCROLL: UINT = 0x0115; | |
1236 | pub const WM_INITMENU: UINT = 0x0116; | |
1237 | pub const WM_INITMENUPOPUP: UINT = 0x0117; | |
1238 | pub const WM_GESTURE: UINT = 0x0119; | |
1239 | pub const WM_GESTURENOTIFY: UINT = 0x011A; | |
1240 | pub const WM_MENUSELECT: UINT = 0x011F; | |
1241 | pub const WM_MENUCHAR: UINT = 0x0120; | |
1242 | pub const WM_ENTERIDLE: UINT = 0x0121; | |
1243 | pub const WM_MENURBUTTONUP: UINT = 0x0122; | |
1244 | pub const WM_MENUDRAG: UINT = 0x0123; | |
1245 | pub const WM_MENUGETOBJECT: UINT = 0x0124; | |
1246 | pub const WM_UNINITMENUPOPUP: UINT = 0x0125; | |
1247 | pub const WM_MENUCOMMAND: UINT = 0x0126; | |
1248 | pub const WM_CHANGEUISTATE: UINT = 0x0127; | |
1249 | pub const WM_UPDATEUISTATE: UINT = 0x0128; | |
1250 | pub const WM_QUERYUISTATE: UINT = 0x0129; | |
1251 | pub const UIS_SET: WORD = 1; | |
1252 | pub const UIS_CLEAR: WORD = 2; | |
1253 | pub const UIS_INITIALIZE: WORD = 3; | |
1254 | pub const UISF_HIDEFOCUS: WORD = 0x1; | |
1255 | pub const UISF_HIDEACCEL: WORD = 0x2; | |
1256 | pub const UISF_ACTIVE: WORD = 0x4; | |
1257 | pub const WM_CTLCOLORMSGBOX: UINT = 0x0132; | |
1258 | pub const WM_CTLCOLOREDIT: UINT = 0x0133; | |
1259 | pub const WM_CTLCOLORLISTBOX: UINT = 0x0134; | |
1260 | pub const WM_CTLCOLORBTN: UINT = 0x0135; | |
1261 | pub const WM_CTLCOLORDLG: UINT = 0x0136; | |
1262 | pub const WM_CTLCOLORSCROLLBAR: UINT = 0x0137; | |
1263 | pub const WM_CTLCOLORSTATIC: UINT = 0x0138; | |
1264 | pub const MN_GETHMENU: UINT = 0x01E1; | |
1265 | pub const WM_MOUSEFIRST: UINT = 0x0200; | |
1266 | pub const WM_MOUSEMOVE: UINT = 0x0200; | |
1267 | pub const WM_LBUTTONDOWN: UINT = 0x0201; | |
1268 | pub const WM_LBUTTONUP: UINT = 0x0202; | |
1269 | pub const WM_LBUTTONDBLCLK: UINT = 0x0203; | |
1270 | pub const WM_RBUTTONDOWN: UINT = 0x0204; | |
1271 | pub const WM_RBUTTONUP: UINT = 0x0205; | |
1272 | pub const WM_RBUTTONDBLCLK: UINT = 0x0206; | |
1273 | pub const WM_MBUTTONDOWN: UINT = 0x0207; | |
1274 | pub const WM_MBUTTONUP: UINT = 0x0208; | |
1275 | pub const WM_MBUTTONDBLCLK: UINT = 0x0209; | |
1276 | pub const WM_MOUSEWHEEL: UINT = 0x020A; | |
1277 | pub const WM_XBUTTONDOWN: UINT = 0x020B; | |
1278 | pub const WM_XBUTTONUP: UINT = 0x020C; | |
1279 | pub const WM_XBUTTONDBLCLK: UINT = 0x020D; | |
1280 | pub const WM_MOUSEHWHEEL: UINT = 0x020E; | |
1281 | pub const WM_MOUSELAST: UINT = 0x020E; | |
1282 | pub const WHEEL_DELTA: c_short = 120; | |
1283 | #[inline] | |
1284 | pub fn GET_WHEEL_DELTA_WPARAM(wParam: WPARAM) -> c_short { | |
1285 | HIWORD(wParam as DWORD) as c_short | |
1286 | } | |
1287 | pub const WHEEL_PAGESCROLL: UINT = UINT_MAX; | |
1288 | #[inline] | |
1289 | pub fn GET_KEYSTATE_WPARAM(wParam: WPARAM) -> WORD { | |
1290 | LOWORD(wParam as DWORD) | |
1291 | } | |
1292 | #[inline] | |
1293 | pub fn GET_NCHITTEST_WPARAM(wParam: WPARAM) -> c_short { | |
1294 | LOWORD(wParam as DWORD) as c_short | |
1295 | } | |
1296 | #[inline] | |
1297 | pub fn GET_XBUTTON_WPARAM(wParam: WPARAM) -> WORD { | |
1298 | HIWORD(wParam as DWORD) | |
1299 | } | |
1300 | pub const XBUTTON1: WORD = 0x0001; | |
1301 | pub const XBUTTON2: WORD = 0x0002; | |
1302 | pub const WM_PARENTNOTIFY: UINT = 0x0210; | |
1303 | pub const WM_ENTERMENULOOP: UINT = 0x0211; | |
1304 | pub const WM_EXITMENULOOP: UINT = 0x0212; | |
1305 | pub const WM_NEXTMENU: UINT = 0x0213; | |
1306 | pub const WM_SIZING: UINT = 0x0214; | |
1307 | pub const WM_CAPTURECHANGED: UINT = 0x0215; | |
1308 | pub const WM_MOVING: UINT = 0x0216; | |
1309 | pub const WM_POWERBROADCAST: UINT = 0x0218; | |
1310 | pub const PBT_APMQUERYSUSPEND: WPARAM = 0x0000; | |
1311 | pub const PBT_APMQUERYSTANDBY: WPARAM = 0x0001; | |
1312 | pub const PBT_APMQUERYSUSPENDFAILED: WPARAM = 0x0002; | |
1313 | pub const PBT_APMQUERYSTANDBYFAILED: WPARAM = 0x0003; | |
1314 | pub const PBT_APMSUSPEND: WPARAM = 0x0004; | |
1315 | pub const PBT_APMSTANDBY: WPARAM = 0x0005; | |
1316 | pub const PBT_APMRESUMECRITICAL: WPARAM = 0x0006; | |
1317 | pub const PBT_APMRESUMESUSPEND: WPARAM = 0x0007; | |
1318 | pub const PBT_APMRESUMESTANDBY: WPARAM = 0x0008; | |
1319 | pub const PBTF_APMRESUMEFROMFAILURE: LPARAM = 0x00000001; | |
1320 | pub const PBT_APMBATTERYLOW: WPARAM = 0x0009; | |
1321 | pub const PBT_APMPOWERSTATUSCHANGE: WPARAM = 0x000A; | |
1322 | pub const PBT_APMOEMEVENT: WPARAM = 0x000B; | |
1323 | pub const PBT_APMRESUMEAUTOMATIC: WPARAM = 0x0012; | |
1324 | pub const PBT_POWERSETTINGCHANGE: WPARAM = 0x8013; | |
1325 | STRUCT!{struct POWERBROADCAST_SETTING { | |
1326 | PowerSetting: GUID, | |
1327 | DataLength: DWORD, | |
1328 | Data: [UCHAR; 1], | |
1329 | }} | |
1330 | pub type PPOWERBROADCAST_SETTING = *mut POWERBROADCAST_SETTING; | |
1331 | pub const WM_DEVICECHANGE: UINT = 0x0219; | |
1332 | pub const WM_MDICREATE: UINT = 0x0220; | |
1333 | pub const WM_MDIDESTROY: UINT = 0x0221; | |
1334 | pub const WM_MDIACTIVATE: UINT = 0x0222; | |
1335 | pub const WM_MDIRESTORE: UINT = 0x0223; | |
1336 | pub const WM_MDINEXT: UINT = 0x0224; | |
1337 | pub const WM_MDIMAXIMIZE: UINT = 0x0225; | |
1338 | pub const WM_MDITILE: UINT = 0x0226; | |
1339 | pub const WM_MDICASCADE: UINT = 0x0227; | |
1340 | pub const WM_MDIICONARRANGE: UINT = 0x0228; | |
1341 | pub const WM_MDIGETACTIVE: UINT = 0x0229; | |
1342 | pub const WM_MDISETMENU: UINT = 0x0230; | |
1343 | pub const WM_ENTERSIZEMOVE: UINT = 0x0231; | |
1344 | pub const WM_EXITSIZEMOVE: UINT = 0x0232; | |
1345 | pub const WM_DROPFILES: UINT = 0x0233; | |
1346 | pub const WM_MDIREFRESHMENU: UINT = 0x0234; | |
1347 | pub const WM_POINTERDEVICECHANGE: UINT = 0x238; | |
1348 | pub const WM_POINTERDEVICEINRANGE: UINT = 0x239; | |
1349 | pub const WM_POINTERDEVICEOUTOFRANGE: UINT = 0x23A; | |
1350 | pub const WM_TOUCH: UINT = 0x0240; | |
1351 | pub const WM_NCPOINTERUPDATE: UINT = 0x0241; | |
1352 | pub const WM_NCPOINTERDOWN: UINT = 0x0242; | |
1353 | pub const WM_NCPOINTERUP: UINT = 0x0243; | |
1354 | pub const WM_POINTERUPDATE: UINT = 0x0245; | |
1355 | pub const WM_POINTERDOWN: UINT = 0x0246; | |
1356 | pub const WM_POINTERUP: UINT = 0x0247; | |
1357 | pub const WM_POINTERENTER: UINT = 0x0249; | |
1358 | pub const WM_POINTERLEAVE: UINT = 0x024A; | |
1359 | pub const WM_POINTERACTIVATE: UINT = 0x024B; | |
1360 | pub const WM_POINTERCAPTURECHANGED: UINT = 0x024C; | |
1361 | pub const WM_TOUCHHITTESTING: UINT = 0x024D; | |
1362 | pub const WM_POINTERWHEEL: UINT = 0x024E; | |
1363 | pub const WM_POINTERHWHEEL: UINT = 0x024F; | |
1364 | pub const DM_POINTERHITTEST: UINT = 0x0250; | |
1365 | pub const WM_POINTERROUTEDTO: UINT = 0x0251; | |
1366 | pub const WM_POINTERROUTEDAWAY: UINT = 0x0252; | |
1367 | pub const WM_POINTERROUTEDRELEASED: UINT = 0x0253; | |
1368 | pub const WM_IME_SETCONTEXT: UINT = 0x0281; | |
1369 | pub const WM_IME_NOTIFY: UINT = 0x0282; | |
1370 | pub const WM_IME_CONTROL: UINT = 0x0283; | |
1371 | pub const WM_IME_COMPOSITIONFULL: UINT = 0x0284; | |
1372 | pub const WM_IME_SELECT: UINT = 0x0285; | |
1373 | pub const WM_IME_CHAR: UINT = 0x0286; | |
1374 | pub const WM_IME_REQUEST: UINT = 0x0288; | |
1375 | pub const WM_IME_KEYDOWN: UINT = 0x0290; | |
1376 | pub const WM_IME_KEYUP: UINT = 0x0291; | |
1377 | pub const WM_MOUSEHOVER: UINT = 0x02A1; | |
1378 | pub const WM_MOUSELEAVE: UINT = 0x02A3; | |
1379 | pub const WM_NCMOUSEHOVER: UINT = 0x02A0; | |
1380 | pub const WM_NCMOUSELEAVE: UINT = 0x02A2; | |
1381 | pub const WM_WTSSESSION_CHANGE: UINT = 0x02B1; | |
1382 | pub const WM_TABLET_FIRST: UINT = 0x02c0; | |
1383 | pub const WM_TABLET_LAST: UINT = 0x02df; | |
1384 | pub const WM_DPICHANGED: UINT = 0x02E0; | |
60c5eb7d XL |
1385 | pub const WM_DPICHANGED_BEFOREPARENT: UINT = 0x02E2; |
1386 | pub const WM_DPICHANGED_AFTERPARENT: UINT = 0x02E3; | |
1387 | pub const WM_GETDPISCALEDSIZE: UINT = 0x02E4; | |
ff7c6d11 XL |
1388 | pub const WM_CUT: UINT = 0x0300; |
1389 | pub const WM_COPY: UINT = 0x0301; | |
1390 | pub const WM_PASTE: UINT = 0x0302; | |
1391 | pub const WM_CLEAR: UINT = 0x0303; | |
1392 | pub const WM_UNDO: UINT = 0x0304; | |
1393 | pub const WM_RENDERFORMAT: UINT = 0x0305; | |
1394 | pub const WM_RENDERALLFORMATS: UINT = 0x0306; | |
1395 | pub const WM_DESTROYCLIPBOARD: UINT = 0x0307; | |
1396 | pub const WM_DRAWCLIPBOARD: UINT = 0x0308; | |
1397 | pub const WM_PAINTCLIPBOARD: UINT = 0x0309; | |
1398 | pub const WM_VSCROLLCLIPBOARD: UINT = 0x030A; | |
1399 | pub const WM_SIZECLIPBOARD: UINT = 0x030B; | |
1400 | pub const WM_ASKCBFORMATNAME: UINT = 0x030C; | |
1401 | pub const WM_CHANGECBCHAIN: UINT = 0x030D; | |
1402 | pub const WM_HSCROLLCLIPBOARD: UINT = 0x030E; | |
1403 | pub const WM_QUERYNEWPALETTE: UINT = 0x030F; | |
1404 | pub const WM_PALETTEISCHANGING: UINT = 0x0310; | |
1405 | pub const WM_PALETTECHANGED: UINT = 0x0311; | |
1406 | pub const WM_HOTKEY: UINT = 0x0312; | |
1407 | pub const WM_PRINT: UINT = 0x0317; | |
1408 | pub const WM_PRINTCLIENT: UINT = 0x0318; | |
1409 | pub const WM_APPCOMMAND: UINT = 0x0319; | |
1410 | pub const WM_THEMECHANGED: UINT = 0x031A; | |
1411 | pub const WM_CLIPBOARDUPDATE: UINT = 0x031D; | |
1412 | pub const WM_DWMCOMPOSITIONCHANGED: UINT = 0x031E; | |
1413 | pub const WM_DWMNCRENDERINGCHANGED: UINT = 0x031F; | |
1414 | pub const WM_DWMCOLORIZATIONCOLORCHANGED: UINT = 0x0320; | |
1415 | pub const WM_DWMWINDOWMAXIMIZEDCHANGE: UINT = 0x0321; | |
1416 | pub const WM_DWMSENDICONICTHUMBNAIL: UINT = 0x0323; | |
1417 | pub const WM_DWMSENDICONICLIVEPREVIEWBITMAP: UINT = 0x0326; | |
1418 | pub const WM_GETTITLEBARINFOEX: UINT = 0x033F; | |
1419 | pub const WM_HANDHELDFIRST: UINT = 0x0358; | |
1420 | pub const WM_HANDHELDLAST: UINT = 0x035F; | |
1421 | pub const WM_AFXFIRST: UINT = 0x0360; | |
1422 | pub const WM_AFXLAST: UINT = 0x037F; | |
1423 | pub const WM_PENWINFIRST: UINT = 0x0380; | |
1424 | pub const WM_PENWINLAST: UINT = 0x038F; | |
1425 | pub const WM_APP: UINT = 0x8000; | |
1426 | pub const WM_USER: UINT = 0x0400; | |
1427 | pub const WMSZ_LEFT: UINT = 1; | |
1428 | pub const WMSZ_RIGHT: UINT = 2; | |
1429 | pub const WMSZ_TOP: UINT = 3; | |
1430 | pub const WMSZ_TOPLEFT: UINT = 4; | |
1431 | pub const WMSZ_TOPRIGHT: UINT = 5; | |
1432 | pub const WMSZ_BOTTOM: UINT = 6; | |
1433 | pub const WMSZ_BOTTOMLEFT: UINT = 7; | |
1434 | pub const WMSZ_BOTTOMRIGHT: UINT = 8; | |
1435 | pub const HTERROR: LRESULT = (-2); | |
1436 | pub const HTTRANSPARENT: LRESULT = (-1); | |
1437 | pub const HTNOWHERE: LRESULT = 0; | |
1438 | pub const HTCLIENT: LRESULT = 1; | |
1439 | pub const HTCAPTION: LRESULT = 2; | |
1440 | pub const HTSYSMENU: LRESULT = 3; | |
1441 | pub const HTGROWBOX: LRESULT = 4; | |
1442 | pub const HTSIZE: LRESULT = HTGROWBOX; | |
1443 | pub const HTMENU: LRESULT = 5; | |
1444 | pub const HTHSCROLL: LRESULT = 6; | |
1445 | pub const HTVSCROLL: LRESULT = 7; | |
1446 | pub const HTMINBUTTON: LRESULT = 8; | |
1447 | pub const HTMAXBUTTON: LRESULT = 9; | |
1448 | pub const HTLEFT: LRESULT = 10; | |
1449 | pub const HTRIGHT: LRESULT = 11; | |
1450 | pub const HTTOP: LRESULT = 12; | |
1451 | pub const HTTOPLEFT: LRESULT = 13; | |
1452 | pub const HTTOPRIGHT: LRESULT = 14; | |
1453 | pub const HTBOTTOM: LRESULT = 15; | |
1454 | pub const HTBOTTOMLEFT: LRESULT = 16; | |
1455 | pub const HTBOTTOMRIGHT: LRESULT = 17; | |
1456 | pub const HTBORDER: LRESULT = 18; | |
1457 | pub const HTREDUCE: LRESULT = HTMINBUTTON; | |
1458 | pub const HTZOOM: LRESULT = HTMAXBUTTON; | |
1459 | pub const HTSIZEFIRST: LRESULT = HTLEFT; | |
1460 | pub const HTSIZELAST: LRESULT = HTBOTTOMRIGHT; | |
1461 | pub const HTOBJECT: LRESULT = 19; | |
1462 | pub const HTCLOSE: LRESULT = 20; | |
1463 | pub const HTHELP: LRESULT = 21; | |
1464 | pub const SMTO_NORMAL: UINT = 0x0000; | |
1465 | pub const SMTO_BLOCK: UINT = 0x0001; | |
1466 | pub const SMTO_ABORTIFHUNG: UINT = 0x0002; | |
1467 | pub const SMTO_NOTIMEOUTIFNOTHUNG: UINT = 0x0008; | |
1468 | pub const SMTO_ERRORONEXIT: UINT = 0x0020; | |
1469 | pub const MA_ACTIVATE: UINT = 1; | |
1470 | pub const MA_ACTIVATEANDEAT: UINT = 2; | |
1471 | pub const MA_NOACTIVATE: UINT = 3; | |
1472 | pub const MA_NOACTIVATEANDEAT: UINT = 4; | |
1473 | pub const ICON_SMALL: UINT = 0; | |
1474 | pub const ICON_BIG: UINT = 1; | |
1475 | pub const ICON_SMALL2: UINT = 2; | |
1476 | extern "system" { | |
1477 | pub fn RegisterWindowMessageA( | |
1478 | lpString: LPCSTR, | |
1479 | ) -> UINT; | |
1480 | pub fn RegisterWindowMessageW( | |
1481 | lpString: LPCWSTR, | |
1482 | ) -> UINT; | |
1483 | } | |
1484 | pub const SIZE_RESTORED: WPARAM = 0; | |
1485 | pub const SIZE_MINIMIZED: WPARAM = 1; | |
1486 | pub const SIZE_MAXIMIZED: WPARAM = 2; | |
1487 | pub const SIZE_MAXSHOW: WPARAM = 3; | |
1488 | pub const SIZE_MAXHIDE: WPARAM = 4; | |
1489 | pub const SIZENORMAL: WPARAM = SIZE_RESTORED; | |
1490 | pub const SIZEICONIC: WPARAM = SIZE_MINIMIZED; | |
1491 | pub const SIZEFULLSCREEN: WPARAM = SIZE_MAXIMIZED; | |
1492 | pub const SIZEZOOMSHOW: WPARAM = SIZE_MAXSHOW; | |
1493 | pub const SIZEZOOMHIDE: WPARAM = SIZE_MAXHIDE; | |
1494 | STRUCT!{struct WINDOWPOS { | |
1495 | hwnd: HWND, | |
1496 | hwndInsertAfter: HWND, | |
1497 | x: c_int, | |
1498 | y: c_int, | |
1499 | cx: c_int, | |
1500 | cy: c_int, | |
1501 | flags: UINT, | |
1502 | }} | |
1503 | pub type LPWINDOWPOS = *mut WINDOWPOS; | |
1504 | pub type PWINDOWPOS = *mut WINDOWPOS; | |
1505 | STRUCT!{struct NCCALCSIZE_PARAMS { | |
1506 | rgrc: [RECT; 3], | |
1507 | lppos: PWINDOWPOS, | |
1508 | }} | |
1509 | pub type LPNCCALCSIZE_PARAMS = *mut NCCALCSIZE_PARAMS; | |
1510 | pub const WVR_ALIGNTOP: LRESULT = 0x0010; | |
1511 | pub const WVR_ALIGNLEFT: LRESULT = 0x0020; | |
1512 | pub const WVR_ALIGNBOTTOM: LRESULT = 0x0040; | |
1513 | pub const WVR_ALIGNRIGHT: LRESULT = 0x0080; | |
1514 | pub const WVR_HREDRAW: LRESULT = 0x0100; | |
1515 | pub const WVR_VREDRAW: LRESULT = 0x0200; | |
1516 | pub const WVR_REDRAW: LRESULT = WVR_HREDRAW | WVR_VREDRAW; | |
1517 | pub const WVR_VALIDRECTS: LRESULT = 0x0400; | |
1518 | pub const MK_LBUTTON: WPARAM = 0x0001; | |
1519 | pub const MK_RBUTTON: WPARAM = 0x0002; | |
1520 | pub const MK_SHIFT: WPARAM = 0x0004; | |
1521 | pub const MK_CONTROL: WPARAM = 0x0008; | |
1522 | pub const MK_MBUTTON: WPARAM = 0x0010; | |
1523 | pub const MK_XBUTTON1: WPARAM = 0x0020; | |
1524 | pub const MK_XBUTTON2: WPARAM = 0x0040; | |
1525 | pub const TME_HOVER: DWORD = 0x00000001; | |
1526 | pub const TME_LEAVE: DWORD = 0x00000002; | |
1527 | pub const TME_NONCLIENT: DWORD = 0x00000010; | |
1528 | pub const TME_QUERY: DWORD = 0x40000000; | |
1529 | pub const TME_CANCEL: DWORD = 0x80000000; | |
1530 | pub const HOVER_DEFAULT: DWORD = 0xFFFFFFFF; | |
1531 | STRUCT!{struct TRACKMOUSEEVENT { | |
1532 | cbSize: DWORD, | |
1533 | dwFlags: DWORD, | |
1534 | hwndTrack: HWND, | |
1535 | dwHoverTime: DWORD, | |
1536 | }} | |
1537 | pub type LPTRACKMOUSEEVENT = *mut TRACKMOUSEEVENT; | |
1538 | extern "system" { | |
1539 | pub fn TrackMouseEvent( | |
1540 | lpEventTrack: LPTRACKMOUSEEVENT, | |
1541 | ) -> BOOL; | |
1542 | } | |
1543 | pub const WS_OVERLAPPED: DWORD = 0x00000000; | |
1544 | pub const WS_POPUP: DWORD = 0x80000000; | |
1545 | pub const WS_CHILD: DWORD = 0x40000000; | |
1546 | pub const WS_MINIMIZE: DWORD = 0x20000000; | |
1547 | pub const WS_VISIBLE: DWORD = 0x10000000; | |
1548 | pub const WS_DISABLED: DWORD = 0x08000000; | |
1549 | pub const WS_CLIPSIBLINGS: DWORD = 0x04000000; | |
1550 | pub const WS_CLIPCHILDREN: DWORD = 0x02000000; | |
1551 | pub const WS_MAXIMIZE: DWORD = 0x01000000; | |
1552 | pub const WS_CAPTION: DWORD = 0x00C00000; | |
1553 | pub const WS_BORDER: DWORD = 0x00800000; | |
1554 | pub const WS_DLGFRAME: DWORD = 0x00400000; | |
1555 | pub const WS_VSCROLL: DWORD = 0x00200000; | |
1556 | pub const WS_HSCROLL: DWORD = 0x00100000; | |
1557 | pub const WS_SYSMENU: DWORD = 0x00080000; | |
1558 | pub const WS_THICKFRAME: DWORD = 0x00040000; | |
1559 | pub const WS_GROUP: DWORD = 0x00020000; | |
1560 | pub const WS_TABSTOP: DWORD = 0x00010000; | |
1561 | pub const WS_MINIMIZEBOX: DWORD = 0x00020000; | |
1562 | pub const WS_MAXIMIZEBOX: DWORD = 0x00010000; | |
1563 | pub const WS_TILED: DWORD = WS_OVERLAPPED; | |
1564 | pub const WS_ICONIC: DWORD = WS_MINIMIZE; | |
1565 | pub const WS_SIZEBOX: DWORD = WS_THICKFRAME; | |
1566 | pub const WS_TILEDWINDOW: DWORD = WS_OVERLAPPEDWINDOW; | |
1567 | pub const WS_OVERLAPPEDWINDOW: DWORD = WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME | |
1568 | | WS_MINIMIZEBOX | WS_MAXIMIZEBOX; | |
1569 | pub const WS_POPUPWINDOW: DWORD = WS_POPUP | WS_BORDER | WS_SYSMENU; | |
1570 | pub const WS_CHILDWINDOW: DWORD = WS_CHILD; | |
1571 | pub const WS_EX_DLGMODALFRAME: DWORD = 0x00000001; | |
1572 | pub const WS_EX_NOPARENTNOTIFY: DWORD = 0x00000004; | |
1573 | pub const WS_EX_TOPMOST: DWORD = 0x00000008; | |
1574 | pub const WS_EX_ACCEPTFILES: DWORD = 0x00000010; | |
1575 | pub const WS_EX_TRANSPARENT: DWORD = 0x00000020; | |
1576 | pub const WS_EX_MDICHILD: DWORD = 0x00000040; | |
1577 | pub const WS_EX_TOOLWINDOW: DWORD = 0x00000080; | |
1578 | pub const WS_EX_WINDOWEDGE: DWORD = 0x00000100; | |
1579 | pub const WS_EX_CLIENTEDGE: DWORD = 0x00000200; | |
1580 | pub const WS_EX_CONTEXTHELP: DWORD = 0x00000400; | |
1581 | pub const WS_EX_RIGHT: DWORD = 0x00001000; | |
1582 | pub const WS_EX_LEFT: DWORD = 0x00000000; | |
1583 | pub const WS_EX_RTLREADING: DWORD = 0x00002000; | |
1584 | pub const WS_EX_LTRREADING: DWORD = 0x00000000; | |
1585 | pub const WS_EX_LEFTSCROLLBAR: DWORD = 0x00004000; | |
1586 | pub const WS_EX_RIGHTSCROLLBAR: DWORD = 0x00000000; | |
1587 | pub const WS_EX_CONTROLPARENT: DWORD = 0x00010000; | |
1588 | pub const WS_EX_STATICEDGE: DWORD = 0x00020000; | |
1589 | pub const WS_EX_APPWINDOW: DWORD = 0x00040000; | |
1590 | pub const WS_EX_OVERLAPPEDWINDOW: DWORD = WS_EX_WINDOWEDGE | WS_EX_CLIENTEDGE; | |
1591 | pub const WS_EX_PALETTEWINDOW: DWORD = WS_EX_WINDOWEDGE | WS_EX_TOOLWINDOW | WS_EX_TOPMOST; | |
1592 | pub const WS_EX_LAYERED: DWORD = 0x00080000; | |
1593 | pub const WS_EX_NOINHERITLAYOUT: DWORD = 0x00100000; | |
1594 | pub const WS_EX_NOREDIRECTIONBITMAP: DWORD = 0x00200000; | |
1595 | pub const WS_EX_LAYOUTRTL: DWORD = 0x00400000; | |
1596 | pub const WS_EX_COMPOSITED: DWORD = 0x02000000; | |
1597 | pub const WS_EX_NOACTIVATE: DWORD = 0x08000000; | |
1598 | pub const CS_VREDRAW: UINT = 0x0001; | |
1599 | pub const CS_HREDRAW: UINT = 0x0002; | |
1600 | pub const CS_DBLCLKS: UINT = 0x0008; | |
1601 | pub const CS_OWNDC: UINT = 0x0020; | |
1602 | pub const CS_CLASSDC: UINT = 0x0040; | |
1603 | pub const CS_PARENTDC: UINT = 0x0080; | |
1604 | pub const CS_NOCLOSE: UINT = 0x0200; | |
1605 | pub const CS_SAVEBITS: UINT = 0x0800; | |
1606 | pub const CS_BYTEALIGNCLIENT: UINT = 0x1000; | |
1607 | pub const CS_BYTEALIGNWINDOW: UINT = 0x2000; | |
1608 | pub const CS_GLOBALCLASS: UINT = 0x4000; | |
1609 | pub const CS_IME: UINT = 0x00010000; | |
1610 | pub const CS_DROPSHADOW: UINT = 0x00020000; | |
1611 | pub const PRF_CHECKVISIBLE: UINT = 0x00000001; | |
1612 | pub const PRF_NONCLIENT: UINT = 0x00000002; | |
1613 | pub const PRF_CLIENT: UINT = 0x00000004; | |
1614 | pub const PRF_ERASEBKGND: UINT = 0x00000008; | |
1615 | pub const PRF_CHILDREN: UINT = 0x00000010; | |
1616 | pub const PRF_OWNED: UINT = 0x00000020; | |
1617 | pub const BDR_RAISEDOUTER: UINT = 0x0001; | |
1618 | pub const BDR_SUNKENOUTER: UINT = 0x0002; | |
1619 | pub const BDR_RAISEDINNER: UINT = 0x0004; | |
1620 | pub const BDR_SUNKENINNER: UINT = 0x0008; | |
1621 | pub const BDR_OUTER: UINT = BDR_RAISEDOUTER | BDR_SUNKENOUTER; | |
1622 | pub const BDR_INNER: UINT = BDR_RAISEDINNER | BDR_SUNKENINNER; | |
1623 | pub const BDR_RAISED: UINT = BDR_RAISEDOUTER | BDR_RAISEDINNER; | |
1624 | pub const BDR_SUNKEN: UINT = BDR_SUNKENOUTER | BDR_SUNKENINNER; | |
1625 | pub const EDGE_RAISED: UINT = BDR_RAISEDOUTER | BDR_RAISEDINNER; | |
1626 | pub const EDGE_SUNKEN: UINT = BDR_SUNKENOUTER | BDR_SUNKENINNER; | |
1627 | pub const EDGE_ETCHED: UINT = BDR_SUNKENOUTER | BDR_RAISEDINNER; | |
1628 | pub const EDGE_BUMP: UINT = BDR_RAISEDOUTER | BDR_SUNKENINNER; | |
1629 | pub const BF_LEFT: UINT = 0x0001; | |
1630 | pub const BF_TOP: UINT = 0x0002; | |
1631 | pub const BF_RIGHT: UINT = 0x0004; | |
1632 | pub const BF_BOTTOM: UINT = 0x0008; | |
1633 | pub const BF_TOPLEFT: UINT = BF_TOP | BF_LEFT; | |
1634 | pub const BF_TOPRIGHT: UINT = BF_TOP | BF_RIGHT; | |
1635 | pub const BF_BOTTOMLEFT: UINT = BF_BOTTOM | BF_LEFT; | |
1636 | pub const BF_BOTTOMRIGHT: UINT = BF_BOTTOM | BF_RIGHT; | |
1637 | pub const BF_RECT: UINT = BF_LEFT | BF_TOP | BF_RIGHT | BF_BOTTOM; | |
1638 | pub const BF_DIAGONAL: UINT = 0x0010; | |
1639 | pub const BF_DIAGONAL_ENDTOPRIGHT: UINT = BF_DIAGONAL | BF_TOP | BF_RIGHT; | |
1640 | pub const BF_DIAGONAL_ENDTOPLEFT: UINT = BF_DIAGONAL | BF_TOP | BF_LEFT; | |
1641 | pub const BF_DIAGONAL_ENDBOTTOMLEFT: UINT = BF_DIAGONAL | BF_BOTTOM | BF_LEFT; | |
1642 | pub const BF_DIAGONAL_ENDBOTTOMRIGHT: UINT = BF_DIAGONAL | BF_BOTTOM | BF_RIGHT; | |
1643 | pub const BF_MIDDLE: UINT = 0x0800; | |
1644 | pub const BF_SOFT: UINT = 0x1000; | |
1645 | pub const BF_ADJUST: UINT = 0x2000; | |
1646 | pub const BF_FLAT: UINT = 0x4000; | |
1647 | pub const BF_MONO: UINT = 0x8000; | |
1648 | extern "system" { | |
1649 | pub fn DrawEdge( | |
1650 | hdc: HDC, | |
1651 | qrc: LPRECT, | |
1652 | edge: UINT, | |
1653 | grfFlags: UINT, | |
1654 | ) -> BOOL; | |
1655 | } | |
1656 | pub const DFC_CAPTION: UINT = 1; | |
1657 | pub const DFC_MENU: UINT = 2; | |
1658 | pub const DFC_SCROLL: UINT = 3; | |
1659 | pub const DFC_BUTTON: UINT = 4; | |
1660 | pub const DFC_POPUPMENU: UINT = 5; | |
1661 | pub const DFCS_CAPTIONCLOSE: UINT = 0x0000; | |
1662 | pub const DFCS_CAPTIONMIN: UINT = 0x0001; | |
1663 | pub const DFCS_CAPTIONMAX: UINT = 0x0002; | |
1664 | pub const DFCS_CAPTIONRESTORE: UINT = 0x0003; | |
1665 | pub const DFCS_CAPTIONHELP: UINT = 0x0004; | |
1666 | pub const DFCS_MENUARROW: UINT = 0x0000; | |
1667 | pub const DFCS_MENUCHECK: UINT = 0x0001; | |
1668 | pub const DFCS_MENUBULLET: UINT = 0x0002; | |
1669 | pub const DFCS_MENUARROWRIGHT: UINT = 0x0004; | |
1670 | pub const DFCS_SCROLLUP: UINT = 0x0000; | |
1671 | pub const DFCS_SCROLLDOWN: UINT = 0x0001; | |
1672 | pub const DFCS_SCROLLLEFT: UINT = 0x0002; | |
1673 | pub const DFCS_SCROLLRIGHT: UINT = 0x0003; | |
1674 | pub const DFCS_SCROLLCOMBOBOX: UINT = 0x0005; | |
1675 | pub const DFCS_SCROLLSIZEGRIP: UINT = 0x0008; | |
1676 | pub const DFCS_SCROLLSIZEGRIPRIGHT: UINT = 0x0010; | |
1677 | pub const DFCS_BUTTONCHECK: UINT = 0x0000; | |
1678 | pub const DFCS_BUTTONRADIOIMAGE: UINT = 0x0001; | |
1679 | pub const DFCS_BUTTONRADIOMASK: UINT = 0x0002; | |
1680 | pub const DFCS_BUTTONRADIO: UINT = 0x0004; | |
1681 | pub const DFCS_BUTTON3STATE: UINT = 0x0008; | |
1682 | pub const DFCS_BUTTONPUSH: UINT = 0x0010; | |
1683 | pub const DFCS_INACTIVE: UINT = 0x0100; | |
1684 | pub const DFCS_PUSHED: UINT = 0x0200; | |
1685 | pub const DFCS_CHECKED: UINT = 0x0400; | |
1686 | pub const DFCS_TRANSPARENT: UINT = 0x0800; | |
1687 | pub const DFCS_HOT: UINT = 0x1000; | |
1688 | pub const DFCS_ADJUSTRECT: UINT = 0x2000; | |
1689 | pub const DFCS_FLAT: UINT = 0x4000; | |
1690 | pub const DFCS_MONO: UINT = 0x8000; | |
1691 | extern "system" { | |
1692 | pub fn DrawFrameControl( | |
1693 | hdc: HDC, | |
1694 | lprc: LPRECT, | |
1695 | uType: UINT, | |
1696 | uState: UINT, | |
1697 | ) -> BOOL; | |
1698 | } | |
1699 | pub const DC_ACTIVE: UINT = 0x0001; | |
1700 | pub const DC_SMALLCAP: UINT = 0x0002; | |
1701 | pub const DC_ICON: UINT = 0x0004; | |
1702 | pub const DC_TEXT: UINT = 0x0008; | |
1703 | pub const DC_INBUTTON: UINT = 0x0010; | |
1704 | pub const DC_GRADIENT: UINT = 0x0020; | |
1705 | pub const DC_BUTTONS: UINT = 0x1000; | |
1706 | extern "system" { | |
1707 | pub fn DrawCaption( | |
1708 | hwnd: HWND, | |
1709 | hdc: HDC, | |
1710 | lprect: *const RECT, | |
1711 | flags: UINT, | |
1712 | ) -> BOOL; | |
1713 | } | |
1714 | pub const IDANI_OPEN: c_int = 1; | |
1715 | pub const IDANI_CAPTION: c_int = 3; | |
1716 | extern "system" { | |
1717 | pub fn DrawAnimatedRects( | |
1718 | hwnd: HWND, | |
1719 | idAni: c_int, | |
1720 | lprcFrom: *const RECT, | |
1721 | lprcTo: *const RECT, | |
1722 | ) -> BOOL; | |
1723 | } | |
1724 | pub const CF_TEXT: UINT = 1; | |
1725 | pub const CF_BITMAP: UINT = 2; | |
1726 | pub const CF_METAFILEPICT: UINT = 3; | |
1727 | pub const CF_SYLK: UINT = 4; | |
1728 | pub const CF_DIF: UINT = 5; | |
1729 | pub const CF_TIFF: UINT = 6; | |
1730 | pub const CF_OEMTEXT: UINT = 7; | |
1731 | pub const CF_DIB: UINT = 8; | |
1732 | pub const CF_PALETTE: UINT = 9; | |
1733 | pub const CF_PENDATA: UINT = 10; | |
1734 | pub const CF_RIFF: UINT = 11; | |
1735 | pub const CF_WAVE: UINT = 12; | |
1736 | pub const CF_UNICODETEXT: UINT = 13; | |
1737 | pub const CF_ENHMETAFILE: UINT = 14; | |
1738 | pub const CF_HDROP: UINT = 15; | |
1739 | pub const CF_LOCALE: UINT = 16; | |
1740 | pub const CF_DIBV5: UINT = 17; | |
1741 | pub const CF_MAX: UINT = 18; | |
1742 | pub const CF_OWNERDISPLAY: UINT = 0x0080; | |
1743 | pub const CF_DSPTEXT: UINT = 0x0081; | |
1744 | pub const CF_DSPBITMAP: UINT = 0x0082; | |
1745 | pub const CF_DSPMETAFILEPICT: UINT = 0x0083; | |
1746 | pub const CF_DSPENHMETAFILE: UINT = 0x008E; | |
1747 | pub const CF_PRIVATEFIRST: UINT = 0x0200; | |
1748 | pub const CF_PRIVATELAST: UINT = 0x02FF; | |
1749 | pub const CF_GDIOBJFIRST: UINT = 0x0300; | |
1750 | pub const CF_GDIOBJLAST: UINT = 0x03FF; | |
1751 | pub const FVIRTKEY: BYTE = TRUE as u8; | |
1752 | pub const FNOINVERT: BYTE = 0x02; | |
1753 | pub const FSHIFT: BYTE = 0x04; | |
1754 | pub const FCONTROL: BYTE = 0x08; | |
1755 | pub const FALT: BYTE = 0x10; | |
1756 | STRUCT!{struct ACCEL { | |
1757 | fVirt: BYTE, | |
1758 | key: WORD, | |
1759 | cmd: WORD, | |
1760 | }} | |
1761 | pub type LPACCEL = *mut ACCEL; | |
1762 | STRUCT!{struct PAINTSTRUCT { | |
1763 | hdc: HDC, | |
1764 | fErase: BOOL, | |
1765 | rcPaint: RECT, | |
1766 | fRestore: BOOL, | |
1767 | fIncUpdate: BOOL, | |
1768 | rgbReserved: [BYTE; 32], | |
1769 | }} | |
1770 | pub type PPAINTSTRUCT = *mut PAINTSTRUCT; | |
1771 | pub type NPPAINTSTRUCT = *mut PAINTSTRUCT; | |
1772 | pub type LPPAINTSTRUCT = *mut PAINTSTRUCT; | |
1773 | STRUCT!{struct CREATESTRUCTA { | |
1774 | lpCreateParams: LPVOID, | |
1775 | hInstance: HINSTANCE, | |
1776 | hMenu: HMENU, | |
1777 | hwndParent: HWND, | |
1778 | cy: c_int, | |
1779 | cx: c_int, | |
1780 | y: c_int, | |
1781 | x: c_int, | |
1782 | style: LONG, | |
1783 | lpszName: LPCSTR, | |
1784 | lpszClass: LPCSTR, | |
1785 | dwExStyle: DWORD, | |
1786 | }} | |
1787 | pub type LPCREATESTRUCTA = *mut CREATESTRUCTA; | |
1788 | STRUCT!{struct CREATESTRUCTW { | |
1789 | lpCreateParams: LPVOID, | |
1790 | hInstance: HINSTANCE, | |
1791 | hMenu: HMENU, | |
1792 | hwndParent: HWND, | |
1793 | cy: c_int, | |
1794 | cx: c_int, | |
1795 | y: c_int, | |
1796 | x: c_int, | |
1797 | style: LONG, | |
1798 | lpszName: LPCWSTR, | |
1799 | lpszClass: LPCWSTR, | |
1800 | dwExStyle: DWORD, | |
1801 | }} | |
1802 | pub type LPCREATESTRUCTW = *mut CREATESTRUCTW; | |
1803 | STRUCT!{struct WINDOWPLACEMENT { | |
1804 | length: UINT, | |
1805 | flags: UINT, | |
1806 | showCmd: UINT, | |
1807 | ptMinPosition: POINT, | |
1808 | ptMaxPosition: POINT, | |
1809 | rcNormalPosition: RECT, | |
1810 | }} | |
1811 | pub type PWINDOWPLACEMENT = *mut WINDOWPLACEMENT; | |
1812 | pub type LPWINDOWPLACEMENT = *mut WINDOWPLACEMENT; | |
1813 | pub const WPF_SETMINPOSITION: UINT = 0x0001; | |
1814 | pub const WPF_RESTORETOMAXIMIZED: UINT = 0x0002; | |
1815 | pub const WPF_ASYNCWINDOWPLACEMENT: UINT = 0x0004; | |
1816 | STRUCT!{struct NMHDR { | |
1817 | hwndFrom: HWND, | |
1818 | idFrom: UINT_PTR, | |
1819 | code: UINT, | |
1820 | }} | |
1821 | pub type LPNMHDR = *mut NMHDR; | |
1822 | STRUCT!{struct STYLESTRUCT { | |
1823 | styleOld: DWORD, | |
1824 | styleNew: DWORD, | |
1825 | }} | |
1826 | pub type LPSTYLESTRUCT = *mut STYLESTRUCT; | |
1827 | pub const ODT_MENU: UINT = 1; | |
1828 | pub const ODT_LISTBOX: UINT = 2; | |
1829 | pub const ODT_COMBOBOX: UINT = 3; | |
1830 | pub const ODT_BUTTON: UINT = 4; | |
1831 | pub const ODT_STATIC: UINT = 5; | |
1832 | pub const ODA_DRAWENTIRE: UINT = 0x0001; | |
1833 | pub const ODA_SELECT: UINT = 0x0002; | |
1834 | pub const ODA_FOCUS: UINT = 0x0004; | |
1835 | pub const ODS_SELECTED: UINT = 0x0001; | |
1836 | pub const ODS_GRAYED: UINT = 0x0002; | |
1837 | pub const ODS_DISABLED: UINT = 0x0004; | |
1838 | pub const ODS_CHECKED: UINT = 0x0008; | |
1839 | pub const ODS_FOCUS: UINT = 0x0010; | |
1840 | pub const ODS_DEFAULT: UINT = 0x0020; | |
1841 | pub const ODS_COMBOBOXEDIT: UINT = 0x1000; | |
1842 | pub const ODS_HOTLIGHT: UINT = 0x0040; | |
1843 | pub const ODS_INACTIVE: UINT = 0x0080; | |
1844 | pub const ODS_NOACCEL: UINT = 0x0100; | |
1845 | pub const ODS_NOFOCUSRECT: UINT = 0x0200; | |
1846 | STRUCT!{struct MEASUREITEMSTRUCT { | |
1847 | CtlType: UINT, | |
1848 | CtlID: UINT, | |
1849 | itemID: UINT, | |
1850 | itemWidth: UINT, | |
1851 | itemHeight: UINT, | |
1852 | itemData: ULONG_PTR, | |
1853 | }} | |
1854 | pub type PMEASUREITEMSTRUCT = *mut MEASUREITEMSTRUCT; | |
1855 | pub type LPMEASUREITEMSTRUCT = *mut MEASUREITEMSTRUCT; | |
1856 | STRUCT!{struct DRAWITEMSTRUCT { | |
1857 | CtlType: UINT, | |
1858 | CtlID: UINT, | |
1859 | itemID: UINT, | |
1860 | itemAction: UINT, | |
1861 | itemState: UINT, | |
1862 | hwndItem: HWND, | |
1863 | hDC: HDC, | |
1864 | rcItem: RECT, | |
1865 | itemData: ULONG_PTR, | |
1866 | }} | |
1867 | pub type PDRAWITEMSTRUCT = *mut DRAWITEMSTRUCT; | |
1868 | pub type LPDRAWITEMSTRUCT = *mut DRAWITEMSTRUCT; | |
1869 | STRUCT!{struct DELETEITEMSTRUCT { | |
1870 | CtlType: UINT, | |
1871 | CtlID: UINT, | |
1872 | itemID: UINT, | |
1873 | hwndItem: HWND, | |
1874 | itemData: ULONG_PTR, | |
1875 | }} | |
1876 | pub type PDELETEITEMSTRUCT = *mut DELETEITEMSTRUCT; | |
1877 | pub type LPDELETEITEMSTRUCT = *mut DELETEITEMSTRUCT; | |
1878 | STRUCT!{struct COMPAREITEMSTRUCT { | |
1879 | CtlType: UINT, | |
1880 | CtlID: UINT, | |
1881 | hwndItem: HWND, | |
1882 | itemID1: UINT, | |
1883 | itemData1: ULONG_PTR, | |
1884 | itemID2: UINT, | |
1885 | itemData2: ULONG_PTR, | |
1886 | dwLocaleId: DWORD, | |
1887 | }} | |
1888 | pub type PCOMPAREITEMSTRUCT = *mut COMPAREITEMSTRUCT; | |
1889 | pub type LPCOMPAREITEMSTRUCT = *mut COMPAREITEMSTRUCT; | |
1890 | extern "system" { | |
1891 | pub fn GetMessageA( | |
1892 | lpMsg: LPMSG, | |
1893 | hWnd: HWND, | |
1894 | wMsgFilterMin: UINT, | |
1895 | wMsgFilterMax: UINT, | |
1896 | ) -> BOOL; | |
1897 | pub fn GetMessageW( | |
1898 | lpMsg: LPMSG, | |
1899 | hWnd: HWND, | |
1900 | wMsgFilterMin: UINT, | |
1901 | wMsgFilterMax: UINT, | |
1902 | ) -> BOOL; | |
1903 | pub fn TranslateMessage( | |
1904 | lpmsg: *const MSG, | |
1905 | ) -> BOOL; | |
1906 | pub fn DispatchMessageA( | |
1907 | lpmsg: *const MSG, | |
1908 | ) -> LRESULT; | |
1909 | pub fn DispatchMessageW( | |
1910 | lpmsg: *const MSG, | |
1911 | ) -> LRESULT; | |
1912 | pub fn SetMessageQueue( | |
1913 | cMessagesMax: c_int, | |
1914 | ) -> BOOL; | |
1915 | pub fn PeekMessageA( | |
1916 | lpMsg: LPMSG, | |
1917 | hWnd: HWND, | |
1918 | wMsgFilterMin: UINT, | |
1919 | wMsgFilterMax: UINT, | |
1920 | wRemoveMsg: UINT, | |
1921 | ) -> BOOL; | |
1922 | pub fn PeekMessageW( | |
1923 | lpMsg: LPMSG, | |
1924 | hWnd: HWND, | |
1925 | wMsgFilterMin: UINT, | |
1926 | wMsgFilterMax: UINT, | |
1927 | wRemoveMsg: UINT, | |
1928 | ) -> BOOL; | |
1929 | } | |
1930 | pub const PM_NOREMOVE: UINT = 0x0000; | |
1931 | pub const PM_REMOVE: UINT = 0x0001; | |
1932 | pub const PM_NOYIELD: UINT = 0x0002; | |
1933 | pub const PM_QS_INPUT: UINT = QS_INPUT << 16; | |
1934 | pub const PM_QS_POSTMESSAGE: UINT = (QS_POSTMESSAGE | QS_HOTKEY | QS_TIMER) << 16; | |
1935 | pub const PM_QS_PAINT: UINT = QS_PAINT << 16; | |
1936 | pub const PM_QS_SENDMESSAGE: UINT = QS_SENDMESSAGE << 16; | |
1937 | extern "system" { | |
1938 | pub fn RegisterHotKey( | |
1939 | hwnd: HWND, | |
1940 | id: c_int, | |
1941 | fsModifiers: UINT, | |
1942 | vk: UINT, | |
1943 | ) -> BOOL; | |
1944 | pub fn UnregisterHotKey( | |
1945 | hWnd: HWND, | |
1946 | id: c_int, | |
1947 | ) -> BOOL; | |
1948 | } | |
1949 | pub const MOD_ALT: LPARAM = 0x0001; | |
1950 | pub const MOD_CONTROL: LPARAM = 0x0002; | |
1951 | pub const MOD_SHIFT: LPARAM = 0x0004; | |
1952 | pub const MOD_WIN: LPARAM = 0x0008; | |
1953 | pub const MOD_NOREPEAT: LPARAM = 0x4000; | |
1954 | pub const IDHOT_SNAPWINDOW: WPARAM = -1isize as usize; | |
1955 | pub const IDHOT_SNAPDESKTOP: WPARAM = -2isize as usize; | |
1956 | pub const ENDSESSION_CLOSEAPP: UINT = 0x00000001; | |
1957 | pub const ENDSESSION_CRITICAL: UINT = 0x40000000; | |
1958 | pub const ENDSESSION_LOGOFF: UINT = 0x80000000; | |
1959 | pub const EWX_LOGOFF: UINT = 0x00000000; | |
1960 | pub const EWX_SHUTDOWN: UINT = 0x00000001; | |
1961 | pub const EWX_REBOOT: UINT = 0x00000002; | |
1962 | pub const EWX_FORCE: UINT = 0x00000004; | |
1963 | pub const EWX_POWEROFF: UINT = 0x00000008; | |
1964 | pub const EWX_FORCEIFHUNG: UINT = 0x00000010; | |
1965 | pub const EWX_QUICKRESOLVE: UINT = 0x00000020; | |
1966 | pub const EWX_RESTARTAPPS: UINT = 0x00000040; | |
1967 | pub const EWX_HYBRID_SHUTDOWN: UINT = 0x00400000; | |
1968 | pub const EWX_BOOTOPTIONS: UINT = 0x01000000; | |
1969 | // ExitWindows | |
1970 | extern "system" { | |
1971 | pub fn ExitWindowsEx( | |
1972 | uFlags: UINT, | |
1973 | dwReason: DWORD, | |
1974 | ) -> BOOL; | |
1975 | pub fn SwapMouseButton( | |
1976 | fSwap: BOOL, | |
1977 | ) -> BOOL; | |
1978 | pub fn GetMessagePos() -> DWORD; | |
1979 | pub fn GetMessageTime() -> LONG; | |
1980 | pub fn GetMessageExtraInfo() -> LPARAM; | |
1981 | pub fn GetUnpredictedMessagePos() -> DWORD; | |
1982 | pub fn IsWow64Message() -> BOOL; | |
1983 | pub fn SetMessageExtraInfo( | |
1984 | lParam: LPARAM, | |
1985 | ) -> LPARAM; | |
1986 | pub fn SendMessageA( | |
1987 | hWnd: HWND, | |
1988 | Msg: UINT, | |
1989 | wParam: WPARAM, | |
1990 | lParam: LPARAM, | |
1991 | ) -> LRESULT; | |
1992 | pub fn SendMessageW( | |
1993 | hWnd: HWND, | |
1994 | Msg: UINT, | |
1995 | wParam: WPARAM, | |
1996 | lParam: LPARAM, | |
1997 | ) -> LRESULT; | |
1998 | pub fn SendMessageTimeoutA( | |
1999 | hWnd: HWND, | |
2000 | Msg: UINT, | |
2001 | wParam: WPARAM, | |
2002 | lParam: LPARAM, | |
2003 | fuFlags: UINT, | |
2004 | uTimeout: UINT, | |
2005 | lpdwResult: PDWORD_PTR, | |
2006 | ) -> LRESULT; | |
2007 | pub fn SendMessageTimeoutW( | |
2008 | hWnd: HWND, | |
2009 | Msg: UINT, | |
2010 | wParam: WPARAM, | |
2011 | lParam: LPARAM, | |
2012 | fuFlags: UINT, | |
2013 | uTimeout: UINT, | |
2014 | lpdwResult: PDWORD_PTR, | |
2015 | ) -> LRESULT; | |
2016 | pub fn SendNotifyMessageA( | |
2017 | hWnd: HWND, | |
2018 | msg: UINT, | |
2019 | wParam: WPARAM, | |
2020 | lParam: LPARAM, | |
2021 | ) -> BOOL; | |
2022 | pub fn SendNotifyMessageW( | |
2023 | hWnd: HWND, | |
2024 | msg: UINT, | |
2025 | wParam: WPARAM, | |
2026 | lParam: LPARAM, | |
2027 | ) -> BOOL; | |
2028 | pub fn SendMessageCallbackA( | |
2029 | hWnd: HWND, | |
2030 | Msg: UINT, | |
2031 | wParam: WPARAM, | |
2032 | lParam: LPARAM, | |
2033 | lpResultCallBack: SENDASYNCPROC, | |
2034 | dwData: ULONG_PTR, | |
2035 | ) -> BOOL; | |
2036 | pub fn SendMessageCallbackW( | |
2037 | hWnd: HWND, | |
2038 | Msg: UINT, | |
2039 | wParam: WPARAM, | |
2040 | lParam: LPARAM, | |
2041 | lpResultCallBack: SENDASYNCPROC, | |
2042 | dwData: ULONG_PTR, | |
2043 | ) -> BOOL; | |
2044 | } | |
2045 | STRUCT!{struct BSMINFO { | |
2046 | cbSize: UINT, | |
2047 | hdesk: HDESK, | |
2048 | hwnd: HWND, | |
2049 | luid: LUID, | |
2050 | }} | |
2051 | pub type PBSMINFO = *mut BSMINFO; | |
2052 | extern "system" { | |
2053 | pub fn BroadcastSystemMessageExA( | |
2054 | flags: DWORD, | |
2055 | lpInfo: LPDWORD, | |
2056 | Msg: UINT, | |
2057 | wParam: WPARAM, | |
2058 | lParam: LPARAM, | |
2059 | pbsmInfo: PBSMINFO, | |
2060 | ) -> c_long; | |
2061 | pub fn BroadcastSystemMessageExW( | |
2062 | flags: DWORD, | |
2063 | lpInfo: LPDWORD, | |
2064 | Msg: UINT, | |
2065 | wParam: WPARAM, | |
2066 | lParam: LPARAM, | |
2067 | pbsmInfo: PBSMINFO, | |
2068 | ) -> c_long; | |
2069 | pub fn BroadcastSystemMessageA( | |
2070 | flags: DWORD, | |
2071 | lpInfo: LPDWORD, | |
2072 | Msg: UINT, | |
2073 | wParam: WPARAM, | |
2074 | lParam: LPARAM, | |
2075 | ) -> LONG; | |
2076 | pub fn BroadcastSystemMessageW( | |
2077 | flags: DWORD, | |
2078 | lpInfo: LPDWORD, | |
2079 | Msg: UINT, | |
2080 | wParam: WPARAM, | |
2081 | lParam: LPARAM, | |
2082 | ) -> LONG; | |
2083 | } | |
2084 | pub const BSM_ALLCOMPONENTS: DWORD = 0x00000000; | |
2085 | pub const BSM_VXDS: DWORD = 0x00000001; | |
2086 | pub const BSM_NETDRIVER: DWORD = 0x00000002; | |
2087 | pub const BSM_INSTALLABLEDRIVERS: DWORD = 0x00000004; | |
2088 | pub const BSM_APPLICATIONS: DWORD = 0x00000008; | |
2089 | pub const BSM_ALLDESKTOPS: DWORD = 0x00000010; | |
2090 | pub const BSF_QUERY: DWORD = 0x00000001; | |
2091 | pub const BSF_IGNORECURRENTTASK: DWORD = 0x00000002; | |
2092 | pub const BSF_FLUSHDISK: DWORD = 0x00000004; | |
2093 | pub const BSF_NOHANG: DWORD = 0x00000008; | |
2094 | pub const BSF_POSTMESSAGE: DWORD = 0x00000010; | |
2095 | pub const BSF_FORCEIFHUNG: DWORD = 0x00000020; | |
2096 | pub const BSF_NOTIMEOUTIFNOTHUNG: DWORD = 0x00000040; | |
2097 | pub const BSF_ALLOWSFW: DWORD = 0x00000080; | |
2098 | pub const BSF_SENDNOTIFYMESSAGE: DWORD = 0x00000100; | |
2099 | pub const BSF_RETURNHDESK: DWORD = 0x00000200; | |
2100 | pub const BSF_LUID: DWORD = 0x00000400; | |
2101 | pub const BROADCAST_QUERY_DENY: DWORD = 0x424D5144; | |
2102 | pub type HDEVNOTIFY = PVOID; | |
2103 | pub type PHDEVNOTIFY = *mut HDEVNOTIFY; | |
2104 | pub const DEVICE_NOTIFY_WINDOW_HANDLE: DWORD = 0x00000000; | |
2105 | pub const DEVICE_NOTIFY_SERVICE_HANDLE: DWORD = 0x00000001; | |
2106 | pub const DEVICE_NOTIFY_ALL_INTERFACE_CLASSES: DWORD = 0x00000004; | |
2107 | extern "system" { | |
2108 | pub fn RegisterDeviceNotificationA( | |
2109 | hRecipient: HANDLE, | |
2110 | notificationFilter: LPVOID, | |
2111 | flags: DWORD, | |
2112 | ) -> HDEVNOTIFY; | |
2113 | pub fn RegisterDeviceNotificationW( | |
2114 | hRecipient: HANDLE, | |
2115 | notificationFilter: LPVOID, | |
2116 | flags: DWORD, | |
2117 | ) -> HDEVNOTIFY; | |
2118 | pub fn UnregisterDeviceNotification( | |
2119 | Handle: HDEVNOTIFY, | |
2120 | ) -> BOOL; | |
2121 | } | |
2122 | pub type HPOWERNOTIFY = PVOID; | |
2123 | pub type PHPOWERNOTIFY = *mut HPOWERNOTIFY; | |
2124 | extern "system" { | |
2125 | pub fn RegisterPowerSettingNotification( | |
2126 | hRecipient: HANDLE, | |
2127 | PowerSettingGuid: LPCGUID, | |
2128 | Flags: DWORD, | |
2129 | ) -> HPOWERNOTIFY; | |
2130 | pub fn UnregisterPowerSettingNotification( | |
2131 | Handle: HPOWERNOTIFY, | |
2132 | ) -> BOOL; | |
2133 | pub fn RegisterSuspendResumeNotification( | |
2134 | hRecipient: HANDLE, | |
2135 | Flags: DWORD, | |
2136 | ) -> HPOWERNOTIFY; | |
2137 | pub fn UnregisterSuspendResumeNotification( | |
2138 | Handle: HPOWERNOTIFY, | |
2139 | ) -> BOOL; | |
2140 | pub fn PostMessageA( | |
2141 | hWnd: HWND, | |
2142 | Msg: UINT, | |
2143 | wParam: WPARAM, | |
2144 | lParam: LPARAM, | |
2145 | ) -> BOOL; | |
2146 | pub fn PostMessageW( | |
2147 | hWnd: HWND, | |
2148 | Msg: UINT, | |
2149 | wParam: WPARAM, | |
2150 | lParam: LPARAM, | |
2151 | ) -> BOOL; | |
2152 | pub fn PostThreadMessageA( | |
2153 | idThread: DWORD, | |
2154 | msg: UINT, | |
2155 | wParam: WPARAM, | |
2156 | lParam: LPARAM, | |
2157 | ) -> BOOL; | |
2158 | pub fn PostThreadMessageW( | |
2159 | idThread: DWORD, | |
2160 | msg: UINT, | |
2161 | wParam: WPARAM, | |
2162 | lParam: LPARAM, | |
2163 | ) -> BOOL; | |
2164 | } | |
2165 | // PostAppMessageA | |
2166 | // PostAppMessageW | |
2167 | pub const HWND_BROADCAST: HWND = 0xffff as HWND; | |
2168 | pub const HWND_MESSAGE: HWND = -3isize as HWND; | |
2169 | extern "system" { | |
2170 | pub fn AttachThreadInput( | |
2171 | idAttach: DWORD, | |
2172 | idAttachTo: DWORD, | |
2173 | fAttach: BOOL, | |
2174 | ) -> BOOL; | |
2175 | pub fn ReplyMessage( | |
2176 | lResult: LRESULT, | |
2177 | ) -> BOOL; | |
2178 | pub fn WaitMessage() -> BOOL; | |
2179 | pub fn WaitForInputIdle( | |
2180 | hProcess: HANDLE, | |
2181 | dwMilliseconds: DWORD, | |
2182 | ) -> DWORD; | |
2183 | pub fn DefWindowProcA( | |
2184 | hWnd: HWND, | |
2185 | Msg: UINT, | |
2186 | wParam: WPARAM, | |
2187 | lParam: LPARAM, | |
2188 | ) -> LRESULT; | |
2189 | pub fn DefWindowProcW( | |
2190 | hWnd: HWND, | |
2191 | Msg: UINT, | |
2192 | wParam: WPARAM, | |
2193 | lParam: LPARAM, | |
2194 | ) -> LRESULT; | |
2195 | pub fn PostQuitMessage( | |
2196 | nExitCode: c_int, | |
2197 | ); | |
2198 | pub fn CallWindowProcA( | |
2199 | lpPrevWndFunc: WNDPROC, | |
2200 | hWnd: HWND, | |
2201 | Msg: UINT, | |
2202 | wParam: WPARAM, | |
2203 | lParam: LPARAM, | |
2204 | ) -> LRESULT; | |
2205 | pub fn CallWindowProcW( | |
2206 | lpPrevWndFunc: WNDPROC, | |
2207 | hWnd: HWND, | |
2208 | Msg: UINT, | |
2209 | wParam: WPARAM, | |
2210 | lParam: LPARAM, | |
2211 | ) -> LRESULT; | |
2212 | pub fn InSendMessage() -> BOOL; | |
2213 | pub fn InSendMessageEx( | |
2214 | lpReserved: LPVOID, | |
2215 | ) -> DWORD; | |
2216 | } | |
2217 | pub const ISMEX_NOSEND: DWORD = 0x00000000; | |
2218 | pub const ISMEX_SEND: DWORD = 0x00000001; | |
2219 | pub const ISMEX_NOTIFY: DWORD = 0x00000002; | |
2220 | pub const ISMEX_CALLBACK: DWORD = 0x00000004; | |
2221 | pub const ISMEX_REPLIED: DWORD = 0x00000008; | |
2222 | extern "system" { | |
2223 | pub fn GetDoubleClickTime() -> UINT; | |
2224 | pub fn SetDoubleClickTime( | |
2225 | uInterval: UINT, | |
2226 | ) -> BOOL; | |
2227 | pub fn RegisterClassA( | |
2228 | lpWndClass: *const WNDCLASSA, | |
2229 | ) -> ATOM; | |
2230 | pub fn RegisterClassW( | |
2231 | lpWndClass: *const WNDCLASSW, | |
2232 | ) -> ATOM; | |
2233 | pub fn UnregisterClassA( | |
2234 | lpClassName: LPCSTR, | |
2235 | hInstance: HINSTANCE, | |
2236 | ) -> BOOL; | |
2237 | pub fn UnregisterClassW( | |
2238 | lpClassName: LPCWSTR, | |
2239 | hInstance: HINSTANCE, | |
2240 | ) -> BOOL; | |
2241 | pub fn GetClassInfoA( | |
2242 | hInstance: HINSTANCE, | |
2243 | lpClassName: LPCSTR, | |
2244 | lpWndClass: LPWNDCLASSA, | |
2245 | ) -> BOOL; | |
2246 | pub fn GetClassInfoW( | |
2247 | hInstance: HINSTANCE, | |
2248 | lpClassName: LPCWSTR, | |
2249 | lpWndClass: LPWNDCLASSW, | |
2250 | ) -> BOOL; | |
2251 | pub fn RegisterClassExA( | |
2252 | lpWndClass: *const WNDCLASSEXA, | |
2253 | ) -> ATOM; | |
2254 | pub fn RegisterClassExW( | |
2255 | lpWndClass: *const WNDCLASSEXW, | |
2256 | ) -> ATOM; | |
2257 | pub fn GetClassInfoExA( | |
2258 | hinst: HINSTANCE, | |
2259 | lpszClass: LPCSTR, | |
2260 | lpwcx: LPWNDCLASSEXA, | |
2261 | ) -> BOOL; | |
2262 | pub fn GetClassInfoExW( | |
2263 | hinst: HINSTANCE, | |
2264 | lpszClass: LPCWSTR, | |
2265 | lpwcx: LPWNDCLASSEXW, | |
2266 | ) -> BOOL; | |
2267 | } | |
2268 | pub const CW_USEDEFAULT: c_int = 0x80000000; | |
2269 | pub const HWND_DESKTOP: HWND = 0 as HWND; | |
2270 | FN!{stdcall PREGISTERCLASSNAMEW( | |
2271 | LPCWSTR, | |
2272 | ) -> BOOLEAN} | |
2273 | extern "system" { | |
2274 | pub fn CreateWindowExA( | |
2275 | dwExStyle: DWORD, | |
2276 | lpClassName: LPCSTR, | |
2277 | lpWindowName: LPCSTR, | |
2278 | dwStyle: DWORD, | |
2279 | x: c_int, | |
2280 | y: c_int, | |
2281 | nWidth: c_int, | |
2282 | nHeight: c_int, | |
2283 | hWndParent: HWND, | |
2284 | hMenu: HMENU, | |
2285 | hInstance: HINSTANCE, | |
2286 | lpParam: LPVOID, | |
2287 | ) -> HWND; | |
2288 | pub fn CreateWindowExW( | |
2289 | dwExStyle: DWORD, | |
2290 | lpClassName: LPCWSTR, | |
2291 | lpWindowName: LPCWSTR, | |
2292 | dwStyle: DWORD, | |
2293 | x: c_int, | |
2294 | y: c_int, | |
2295 | nWidth: c_int, | |
2296 | nHeight: c_int, | |
2297 | hWndParent: HWND, | |
2298 | hMenu: HMENU, | |
2299 | hInstance: HINSTANCE, | |
2300 | lpParam: LPVOID, | |
2301 | ) -> HWND; | |
2302 | } | |
2303 | // CreateWindowA | |
2304 | // CreateWindowW | |
2305 | extern "system" { | |
2306 | pub fn IsWindow( | |
2307 | hWnd: HWND, | |
2308 | ) -> BOOL; | |
2309 | pub fn IsMenu( | |
2310 | hMenu: HMENU, | |
2311 | ) -> BOOL; | |
2312 | pub fn IsChild( | |
2313 | hWndParent: HWND, | |
2314 | hWnd: HWND, | |
2315 | ) -> BOOL; | |
2316 | pub fn DestroyWindow( | |
2317 | hWnd: HWND, | |
2318 | ) -> BOOL; | |
2319 | pub fn ShowWindow( | |
2320 | hWnd: HWND, | |
2321 | nCmdShow: c_int, | |
2322 | ) -> BOOL; | |
2323 | pub fn AnimateWindow( | |
2324 | hWnd: HWND, | |
2325 | dwTime: DWORD, | |
2326 | dwFlags: DWORD, | |
2327 | ) -> BOOL; | |
2328 | pub fn UpdateLayeredWindow( | |
2329 | hWnd: HWND, | |
2330 | hdcDst: HDC, | |
2331 | pptDst: *mut POINT, | |
2332 | psize: *mut SIZE, | |
2333 | hdcSrc: HDC, | |
2334 | pptSrc: *mut POINT, | |
2335 | crKey: COLORREF, | |
2336 | pblend: *mut BLENDFUNCTION, | |
2337 | dwFlags: DWORD, | |
2338 | ) -> BOOL; | |
2339 | } | |
2340 | STRUCT!{struct UPDATELAYEREDWINDOWINFO { | |
2341 | cbSize: DWORD, | |
2342 | hdcDst: HDC, | |
2343 | pptDst: *const POINT, | |
2344 | psize: *const SIZE, | |
2345 | hdcSrc: HDC, | |
2346 | pptSrc: *const POINT, | |
2347 | crKey: COLORREF, | |
2348 | pblend: *const BLENDFUNCTION, | |
2349 | dwFlags: DWORD, | |
2350 | prcDirty: *const RECT, | |
2351 | }} | |
2352 | pub type PUPDATELAYEREDWINDOWINFO = *mut UPDATELAYEREDWINDOWINFO; | |
2353 | extern "system" { | |
2354 | pub fn UpdateLayeredWindowIndirect( | |
2355 | hWnd: HWND, | |
2356 | pULWInfo: *mut UPDATELAYEREDWINDOWINFO, | |
2357 | ) -> BOOL; | |
2358 | pub fn GetLayeredWindowAttributes( | |
2359 | hwnd: HWND, | |
2360 | pcrKey: *mut COLORREF, | |
2361 | pbAlpha: *mut BYTE, | |
2362 | pdwFlags: *mut DWORD, | |
2363 | ) -> BOOL; | |
2364 | } | |
2365 | pub const PW_CLIENTONLY: DWORD = 0x00000001; | |
2366 | pub const PW_RENDERFULLCONTENT: DWORD = 0x00000002; | |
2367 | extern "system" { | |
2368 | pub fn PrintWindow( | |
2369 | hwnd: HWND, | |
2370 | hdcBlt: HDC, | |
2371 | nFlags: UINT, | |
2372 | ) -> BOOL; | |
2373 | pub fn SetLayeredWindowAttributes( | |
2374 | hwnd: HWND, | |
2375 | crKey: COLORREF, | |
2376 | bAlpha: BYTE, | |
2377 | dwFlags: DWORD, | |
2378 | ) -> BOOL; | |
2379 | } | |
2380 | pub const LWA_COLORKEY: DWORD = 0x00000001; | |
2381 | pub const LWA_ALPHA: DWORD = 0x00000002; | |
2382 | pub const ULW_COLORKEY: DWORD = 0x00000001; | |
2383 | pub const ULW_ALPHA: DWORD = 0x00000002; | |
2384 | pub const ULW_OPAQUE: DWORD = 0x00000004; | |
2385 | pub const ULW_EX_NORESIZE: DWORD = 0x00000008; | |
2386 | extern "system" { | |
2387 | pub fn ShowWindowAsync( | |
2388 | hWnd: HWND, | |
2389 | nCmdShow: c_int, | |
2390 | ) -> BOOL; | |
2391 | pub fn FlashWindow( | |
2392 | hwnd: HWND, | |
2393 | bInvert: BOOL, | |
2394 | ) -> BOOL; | |
2395 | } | |
2396 | STRUCT!{struct FLASHWINFO { | |
2397 | cbSize: UINT, | |
2398 | hwnd: HWND, | |
2399 | dwFlags: DWORD, | |
2400 | uCount: UINT, | |
2401 | dwTimeout: DWORD, | |
2402 | }} | |
2403 | pub type PFLASHWINFO = *mut FLASHWINFO; | |
2404 | extern "system" { | |
2405 | pub fn FlashWindowEx( | |
2406 | pfwi: PFLASHWINFO, | |
2407 | ) -> BOOL; | |
2408 | } | |
2409 | pub const FLASHW_STOP: DWORD = 0; | |
2410 | pub const FLASHW_CAPTION: DWORD = 0x00000001; | |
2411 | pub const FLASHW_TRAY: DWORD = 0x00000002; | |
2412 | pub const FLASHW_ALL: DWORD = FLASHW_CAPTION | FLASHW_TRAY; | |
2413 | pub const FLASHW_TIMER: DWORD = 0x00000004; | |
2414 | pub const FLASHW_TIMERNOFG: DWORD = 0x0000000C; | |
2415 | extern "system" { | |
2416 | pub fn ShowOwnedPopups( | |
2417 | hWnd: HWND, | |
2418 | fShow: BOOL, | |
2419 | ) -> BOOL; | |
2420 | pub fn OpenIcon( | |
2421 | hWnd: HWND, | |
2422 | ) -> BOOL; | |
2423 | pub fn CloseWindow( | |
2424 | hWnd: HWND, | |
2425 | ) -> BOOL; | |
2426 | pub fn MoveWindow( | |
2427 | hWnd: HWND, | |
2428 | X: c_int, | |
2429 | Y: c_int, | |
2430 | nWidth: c_int, | |
2431 | nHeight: c_int, | |
2432 | bRepaint: BOOL, | |
2433 | ) -> BOOL; | |
2434 | pub fn SetWindowPos( | |
2435 | hWnd: HWND, | |
2436 | hWndInsertAfter: HWND, | |
2437 | X: c_int, | |
2438 | Y: c_int, | |
2439 | cx: c_int, | |
2440 | cy: c_int, | |
2441 | uFlags: UINT, | |
2442 | ) -> BOOL; | |
2443 | pub fn GetWindowPlacement( | |
2444 | hWnd: HWND, | |
2445 | lpwndpl: *mut WINDOWPLACEMENT, | |
2446 | ) -> BOOL; | |
2447 | pub fn SetWindowPlacement( | |
2448 | hWnd: HWND, | |
2449 | lpwndpl: *const WINDOWPLACEMENT, | |
2450 | ) -> BOOL; | |
2451 | } | |
2452 | pub const WDA_NONE: DWORD = 0x00000000; | |
2453 | pub const WDA_MONITOR: DWORD = 0x00000001; | |
2454 | extern "system" { | |
2455 | pub fn GetWindowDisplayAffinity( | |
2456 | hWnd: HWND, | |
2457 | pdwAffinity: *mut DWORD, | |
2458 | ) -> BOOL; | |
2459 | pub fn SetWindowDisplayAffinity( | |
2460 | hWnd: HWND, | |
2461 | dwAffinity: DWORD, | |
2462 | ) -> BOOL; | |
2463 | pub fn BeginDeferWindowPos( | |
2464 | nNumWindows: c_int, | |
2465 | ) -> HDWP; | |
2466 | pub fn DeferWindowPos( | |
2467 | hWinPosInfo: HDWP, | |
2468 | hWnd: HWND, | |
2469 | hWndInserAfter: HWND, | |
2470 | x: c_int, | |
2471 | y: c_int, | |
2472 | cx: c_int, | |
2473 | cy: c_int, | |
2474 | uFlags: UINT, | |
2475 | ) -> HDWP; | |
2476 | pub fn EndDeferWindowPos( | |
2477 | hWinPosInfo: HDWP, | |
2478 | ) -> BOOL; | |
2479 | pub fn IsWindowVisible( | |
2480 | hWnd: HWND, | |
2481 | ) -> BOOL; | |
2482 | pub fn IsIconic( | |
2483 | hWnd: HWND, | |
2484 | ) -> BOOL; | |
2485 | pub fn AnyPopup() -> BOOL; | |
2486 | pub fn BringWindowToTop( | |
2487 | hWnd: HWND, | |
2488 | ) -> BOOL; | |
2489 | pub fn IsZoomed( | |
2490 | hwnd: HWND, | |
2491 | ) -> BOOL; | |
2492 | } | |
2493 | pub const SWP_NOSIZE: UINT = 0x0001; | |
2494 | pub const SWP_NOMOVE: UINT = 0x0002; | |
2495 | pub const SWP_NOZORDER: UINT = 0x0004; | |
2496 | pub const SWP_NOREDRAW: UINT = 0x0008; | |
2497 | pub const SWP_NOACTIVATE: UINT = 0x0010; | |
2498 | pub const SWP_FRAMECHANGED: UINT = 0x0020; | |
2499 | pub const SWP_SHOWWINDOW: UINT = 0x0040; | |
2500 | pub const SWP_HIDEWINDOW: UINT = 0x0080; | |
2501 | pub const SWP_NOCOPYBITS: UINT = 0x0100; | |
2502 | pub const SWP_NOOWNERZORDER: UINT = 0x0200; | |
2503 | pub const SWP_NOSENDCHANGING: UINT = 0x0400; | |
2504 | pub const SWP_DRAWFRAME: UINT = SWP_FRAMECHANGED; | |
2505 | pub const SWP_NOREPOSITION: UINT = SWP_NOOWNERZORDER; | |
2506 | pub const SWP_DEFERERASE: UINT = 0x2000; | |
2507 | pub const SWP_ASYNCWINDOWPOS: UINT = 0x4000; | |
2508 | pub const HWND_TOP: HWND = 0 as HWND; | |
2509 | pub const HWND_BOTTOM: HWND = 1 as HWND; | |
2510 | pub const HWND_TOPMOST: HWND = -1isize as HWND; | |
2511 | pub const HWND_NOTOPMOST: HWND = -2isize as HWND; | |
2512 | STRUCT!{struct DLGTEMPLATE { | |
2513 | style: DWORD, | |
2514 | dwExtendedStyle: DWORD, | |
2515 | cdit: WORD, | |
2516 | x: c_short, | |
2517 | y: c_short, | |
2518 | cx: c_short, | |
2519 | cy: c_short, | |
2520 | }} | |
2521 | pub type LPDLGTEMPLATEA = *mut DLGTEMPLATE; | |
2522 | pub type LPDLGTEMPLATEW = *mut DLGTEMPLATE; | |
2523 | pub type LPCDLGTEMPLATEA = *const DLGTEMPLATE; | |
2524 | pub type LPCDLGTEMPLATEW = *const DLGTEMPLATE; | |
2525 | STRUCT!{struct DLGITEMTEMPLATE { | |
2526 | style: DWORD, | |
2527 | dwExtendedStyle: DWORD, | |
2528 | x: c_short, | |
2529 | y: c_short, | |
2530 | cx: c_short, | |
2531 | cy: c_short, | |
2532 | id: WORD, | |
2533 | }} | |
2534 | pub type PDLGITEMTEMPLATEA = *mut DLGITEMTEMPLATE; | |
2535 | pub type PDLGITEMTEMPLATEW = *mut DLGITEMTEMPLATE; | |
2536 | pub type LPDLGITEMTEMPLATEA = *mut DLGITEMTEMPLATE; | |
2537 | pub type LPDLGITEMTEMPLATEW = *mut DLGITEMTEMPLATE; | |
2538 | extern "system" { | |
2539 | pub fn CreateDialogParamA( | |
2540 | hInstance: HINSTANCE, | |
2541 | lpTemplateName: LPCSTR, | |
2542 | hWndParent: HWND, | |
2543 | lpDialogFunc: DLGPROC, | |
2544 | dwInitParam: LPARAM, | |
2545 | ) -> HWND; | |
2546 | pub fn CreateDialogParamW( | |
2547 | hInstance: HINSTANCE, | |
2548 | lpTemplateName: LPCWSTR, | |
2549 | hWndParent: HWND, | |
2550 | lpDialogFunc: DLGPROC, | |
2551 | dwInitParam: LPARAM, | |
2552 | ) -> HWND; | |
2553 | pub fn CreateDialogIndirectParamA( | |
2554 | hInstance: HINSTANCE, | |
2555 | lpTemplate: LPCDLGTEMPLATEA, | |
2556 | hWndParent: HWND, | |
2557 | lpDialogFunc: DLGPROC, | |
2558 | dwInitParam: LPARAM, | |
2559 | ) -> HWND; | |
2560 | pub fn CreateDialogIndirectParamW( | |
2561 | hInstance: HINSTANCE, | |
2562 | lpTemplate: LPCDLGTEMPLATEW, | |
2563 | hWndParent: HWND, | |
2564 | lpDialogFunc: DLGPROC, | |
2565 | dwInitParam: LPARAM, | |
2566 | ) -> HWND; | |
2567 | } | |
2568 | // CreateDialogA | |
2569 | // CreateDialogW | |
2570 | // CreateDialogIndirectA | |
2571 | // CreateDialogIndirectW | |
2572 | extern "system" { | |
2573 | pub fn DialogBoxParamA( | |
2574 | hInstance: HINSTANCE, | |
2575 | lpTemplateName: LPCSTR, | |
2576 | hWndParent: HWND, | |
2577 | lpDialogFunc: DLGPROC, | |
2578 | dwInitParam: LPARAM, | |
2579 | ) -> INT_PTR; | |
2580 | pub fn DialogBoxParamW( | |
2581 | hInstance: HINSTANCE, | |
2582 | lpTemplateName: LPCWSTR, | |
2583 | hWndParent: HWND, | |
2584 | lpDialogFunc: DLGPROC, | |
2585 | dwInitParam: LPARAM, | |
2586 | ) -> INT_PTR; | |
2587 | pub fn DialogBoxIndirectParamA( | |
2588 | hInstance: HINSTANCE, | |
2589 | hDialogTemplate: LPCDLGTEMPLATEA, | |
2590 | hWndParent: HWND, | |
2591 | lpDialogFunc: DLGPROC, | |
2592 | dwInitParam: LPARAM, | |
2593 | ) -> INT_PTR; | |
2594 | pub fn DialogBoxIndirectParamW( | |
2595 | hInstance: HINSTANCE, | |
2596 | hDialogTemplate: LPCDLGTEMPLATEW, | |
2597 | hWndParent: HWND, | |
2598 | lpDialogFunc: DLGPROC, | |
2599 | dwInitParam: LPARAM, | |
2600 | ) -> INT_PTR; | |
2601 | } | |
2602 | // DialogBoxA | |
2603 | // DialogBoxW | |
2604 | // DialogBoxIndirectA | |
2605 | // DialogBoxIndirectW | |
2606 | extern "system" { | |
2607 | pub fn EndDialog( | |
2608 | hDlg: HWND, | |
2609 | nResult: INT_PTR, | |
2610 | ) -> BOOL; | |
2611 | pub fn GetDlgItem( | |
2612 | hDlg: HWND, | |
2613 | nIDDlgItem: c_int, | |
2614 | ) -> HWND; | |
2615 | pub fn SetDlgItemInt( | |
2616 | hDlg: HWND, | |
2617 | nIDDlgItem: c_int, | |
2618 | uValue: UINT, | |
2619 | bSigned: BOOL, | |
2620 | ) -> BOOL; | |
2621 | pub fn GetDlgItemInt( | |
2622 | hDlg: HWND, | |
2623 | nIDDlgItem: c_int, | |
2624 | lpTranslated: *mut BOOL, | |
2625 | bSigned: BOOL, | |
2626 | ) -> UINT; | |
2627 | pub fn SetDlgItemTextA( | |
2628 | hDlg: HWND, | |
2629 | nIDDlgItem: c_int, | |
2630 | lpString: LPCSTR, | |
2631 | ) -> BOOL; | |
2632 | pub fn SetDlgItemTextW( | |
2633 | hDlg: HWND, | |
2634 | nIDDlgItem: c_int, | |
2635 | lpString: LPCWSTR, | |
2636 | ) -> BOOL; | |
2637 | pub fn GetDlgItemTextA( | |
2638 | hDlg: HWND, | |
2639 | nIDDlgItem: c_int, | |
2640 | lpString: LPSTR, | |
2641 | nMaxCount: c_int, | |
2642 | ) -> UINT; | |
2643 | pub fn GetDlgItemTextW( | |
2644 | hDlg: HWND, | |
2645 | nIDDlgItem: c_int, | |
2646 | lpString: LPWSTR, | |
2647 | nMaxCount: c_int, | |
2648 | ) -> UINT; | |
2649 | pub fn CheckDlgButton( | |
2650 | hDlg: HWND, | |
2651 | nIDButton: c_int, | |
2652 | uCheck: UINT, | |
2653 | ) -> BOOL; | |
2654 | pub fn CheckRadioButton( | |
2655 | hDlg: HWND, | |
2656 | nIDFirstButton: c_int, | |
2657 | nIDLasatButton: c_int, | |
2658 | nIDCheckButton: c_int, | |
2659 | ) -> BOOL; | |
2660 | pub fn IsDlgButtonChecked( | |
2661 | hDlg: HWND, | |
2662 | nIDButton: c_int, | |
2663 | ) -> UINT; | |
2664 | pub fn SendDlgItemMessageA( | |
2665 | hDlg: HWND, | |
2666 | nIDDlgItem: c_int, | |
2667 | Msg: UINT, | |
2668 | wParam: WPARAM, | |
2669 | lParam: LPARAM, | |
2670 | ) -> LRESULT; | |
2671 | pub fn SendDlgItemMessageW( | |
2672 | hDlg: HWND, | |
2673 | nIDDlgItem: c_int, | |
2674 | Msg: UINT, | |
2675 | wParam: WPARAM, | |
2676 | lParam: LPARAM, | |
2677 | ) -> LRESULT; | |
2678 | pub fn GetNextDlgGroupItem( | |
2679 | hDlg: HWND, | |
2680 | hCtl: HWND, | |
2681 | bPrevious: BOOL, | |
2682 | ) -> HWND; | |
2683 | pub fn GetNextDlgTabItem( | |
2684 | hDlg: HWND, | |
2685 | hCtl: HWND, | |
2686 | bPrevious: BOOL, | |
2687 | ) -> HWND; | |
2688 | pub fn GetDlgCtrlID( | |
2689 | hwnd: HWND, | |
2690 | ) -> c_int; | |
2691 | pub fn GetDialogBaseUnits() -> LONG; | |
2692 | pub fn DefDlgProcA( | |
2693 | hDlg: HWND, | |
2694 | msg: UINT, | |
2695 | wParam: WPARAM, | |
2696 | lParam: LPARAM, | |
2697 | ) -> LRESULT; | |
2698 | pub fn DefDlgProcW( | |
2699 | hDlg: HWND, | |
2700 | msg: UINT, | |
2701 | wParam: WPARAM, | |
2702 | lParam: LPARAM, | |
2703 | ) -> LRESULT; | |
60c5eb7d XL |
2704 | } |
2705 | ENUM!{enum DIALOG_CONTROL_DPI_CHANGE_BEHAVIORS { | |
2706 | DCDC_DEFAULT = 0x0000, | |
2707 | DCDC_DISABLE_FONT_UPDATE = 0x0001, | |
2708 | DCDC_DISABLE_RELAYOUT = 0x0002, | |
2709 | }} | |
2710 | extern "system" { | |
2711 | pub fn SetDialogControlDpiChangeBehavior( | |
2712 | hwnd: HWND, | |
2713 | mask: DIALOG_CONTROL_DPI_CHANGE_BEHAVIORS, | |
2714 | values: DIALOG_CONTROL_DPI_CHANGE_BEHAVIORS, | |
2715 | ) -> BOOL; | |
2716 | pub fn GetDialogControlDpiChangeBehavior( | |
2717 | hwnd: HWND, | |
2718 | ) -> DIALOG_CONTROL_DPI_CHANGE_BEHAVIORS; | |
2719 | } | |
2720 | ENUM!{enum DIALOG_DPI_CHANGE_BEHAVIORS { | |
2721 | DDC_DEFAULT = 0x0000, | |
2722 | DDC_DISABLE_ALL = 0x0001, | |
2723 | DDC_DISABLE_RESIZE = 0x0002, | |
2724 | DDC_DISABLE_CONTROL_RELAYOUT = 0x0004, | |
2725 | }} | |
2726 | extern "system" { | |
2727 | pub fn SetDialogDpiChangeBehavior( | |
2728 | hDlg: HWND, | |
2729 | mask: DIALOG_DPI_CHANGE_BEHAVIORS, | |
2730 | values: DIALOG_DPI_CHANGE_BEHAVIORS, | |
2731 | ) -> BOOL; | |
2732 | pub fn GetDialogDpiChangeBehavior( | |
2733 | hDlg: HWND, | |
2734 | ) -> DIALOG_DPI_CHANGE_BEHAVIORS; | |
ff7c6d11 XL |
2735 | pub fn CallMsgFilterA( |
2736 | lpMsg: LPMSG, | |
2737 | nCode: c_int, | |
2738 | ) -> BOOL; | |
2739 | pub fn CallMsgFilterW( | |
2740 | lpMsg: LPMSG, | |
2741 | nCode: c_int, | |
2742 | ) -> BOOL; | |
2743 | pub fn OpenClipboard( | |
2744 | hWnd: HWND, | |
2745 | ) -> BOOL; | |
2746 | pub fn CloseClipboard() -> BOOL; | |
2747 | pub fn GetClipboardSequenceNumber() -> DWORD; | |
2748 | pub fn GetClipboardOwner() -> HWND; | |
2749 | pub fn SetClipboardViewer( | |
2750 | hWndNewViewer: HWND, | |
2751 | ) -> HWND; | |
2752 | pub fn GetClipboardViewer() -> HWND; | |
2753 | pub fn ChangeClipboardChain( | |
2754 | hwndRemove: HWND, | |
2755 | hwndNewNext: HWND, | |
2756 | ) -> BOOL; | |
2757 | pub fn SetClipboardData( | |
2758 | uFormat: UINT, | |
2759 | hMem: HANDLE, | |
2760 | ) -> HANDLE; | |
2761 | pub fn GetClipboardData( | |
2762 | uFormat: UINT, | |
2763 | ) -> HANDLE; | |
2764 | pub fn RegisterClipboardFormatA( | |
2765 | lpszFormat: LPCSTR, | |
2766 | ) -> UINT; | |
2767 | pub fn RegisterClipboardFormatW( | |
2768 | lpszFormat: LPCWSTR, | |
2769 | ) -> UINT; | |
2770 | pub fn CountClipboardFormats() -> c_int; | |
2771 | pub fn EnumClipboardFormats( | |
2772 | format: UINT, | |
2773 | ) -> UINT; | |
2774 | pub fn GetClipboardFormatNameA( | |
2775 | format: UINT, | |
2776 | lpszFormatName: LPSTR, | |
2777 | cchMaxCount: c_int, | |
2778 | ) -> c_int; | |
2779 | pub fn GetClipboardFormatNameW( | |
2780 | format: UINT, | |
2781 | lpszFormatName: LPWSTR, | |
2782 | cchMaxCount: c_int, | |
2783 | ) -> c_int; | |
2784 | pub fn EmptyClipboard() -> BOOL; | |
2785 | pub fn IsClipboardFormatAvailable( | |
2786 | format: UINT, | |
2787 | ) -> BOOL; | |
2788 | pub fn GetPriorityClipboardFormat( | |
2789 | paFormatPriorityList: *mut UINT, | |
2790 | cFormats: c_int, | |
2791 | ) -> c_int; | |
2792 | pub fn GetOpenClipboardWindow() -> HWND; | |
2793 | pub fn AddClipboardFormatListener( | |
2794 | hWnd: HWND, | |
2795 | ) -> BOOL; | |
2796 | pub fn RemoveClipboardFormatListener( | |
2797 | hWnd: HWND, | |
2798 | ) -> BOOL; | |
2799 | pub fn GetUpdatedClipboardFormats( | |
2800 | lpuiFormats: PUINT, | |
2801 | cFormats: UINT, | |
2802 | pcFormatsOUT: PUINT, | |
2803 | ) -> BOOL; | |
2804 | pub fn CharToOemA( | |
2805 | pSrc: LPCSTR, | |
2806 | pDst: LPSTR, | |
2807 | ) -> BOOL; | |
2808 | pub fn CharToOemW( | |
2809 | pSrc: LPCWSTR, | |
2810 | pDst: LPSTR, | |
2811 | ) -> BOOL; | |
2812 | pub fn OemToCharA( | |
2813 | pSrc: LPCSTR, | |
2814 | pDst: LPSTR, | |
2815 | ) -> BOOL; | |
2816 | pub fn OemToCharW( | |
2817 | pSrc: LPCSTR, | |
2818 | pDst: LPWSTR, | |
2819 | ) -> BOOL; | |
2820 | pub fn CharToOemBuffA( | |
2821 | lpszSrc: LPCSTR, | |
2822 | lpszDst: LPSTR, | |
2823 | cchDstLength: DWORD, | |
2824 | ) -> BOOL; | |
2825 | pub fn CharToOemBuffW( | |
2826 | lpszSrc: LPCWSTR, | |
2827 | lpszDst: LPSTR, | |
2828 | cchDstLength: DWORD, | |
2829 | ) -> BOOL; | |
2830 | pub fn OemToCharBuffA( | |
2831 | lpszSrc: LPCSTR, | |
2832 | lpszDst: LPSTR, | |
2833 | cchDstLength: DWORD, | |
2834 | ) -> BOOL; | |
2835 | pub fn OemToCharBuffW( | |
2836 | lpszSrc: LPCSTR, | |
2837 | lpszDst: LPWSTR, | |
2838 | cchDstLength: DWORD, | |
2839 | ) -> BOOL; | |
2840 | pub fn CharUpperA( | |
2841 | lpsz: LPSTR, | |
2842 | ) -> LPSTR; | |
2843 | pub fn CharUpperW( | |
2844 | lpsz: LPWSTR, | |
2845 | ) -> LPWSTR; | |
2846 | pub fn CharUpperBuffA( | |
2847 | lpsz: LPSTR, | |
2848 | cchLength: DWORD, | |
2849 | ) -> DWORD; | |
2850 | pub fn CharUpperBuffW( | |
2851 | lpsz: LPWSTR, | |
2852 | cchLength: DWORD, | |
2853 | ) -> DWORD; | |
2854 | pub fn CharLowerA( | |
2855 | lpsz: LPSTR, | |
2856 | ) -> LPSTR; | |
2857 | pub fn CharLowerW( | |
2858 | lpsz: LPWSTR, | |
2859 | ) -> LPWSTR; | |
2860 | pub fn CharLowerBuffA( | |
2861 | lpsz: LPSTR, | |
2862 | cchLength: DWORD, | |
2863 | ) -> DWORD; | |
2864 | pub fn CharLowerBuffW( | |
2865 | lpsz: LPWSTR, | |
2866 | cchLength: DWORD, | |
2867 | ) -> DWORD; | |
2868 | pub fn CharNextA( | |
2869 | lpsz: LPCSTR, | |
2870 | ) -> LPSTR; | |
2871 | pub fn CharNextW( | |
2872 | lpsz: LPCWSTR, | |
2873 | ) -> LPWSTR; | |
2874 | pub fn CharPrevA( | |
2875 | lpszStart: LPCSTR, | |
2876 | lpszCurrent: LPCSTR, | |
2877 | ) -> LPSTR; | |
2878 | pub fn CharPrevW( | |
2879 | lpszStart: LPCWSTR, | |
2880 | lpszCurrent: LPCWSTR, | |
2881 | ) -> LPWSTR; | |
2882 | pub fn CharNextExA( | |
2883 | codePage: WORD, | |
2884 | lpCurrentChar: LPSTR, | |
2885 | dwFlags: DWORD, | |
2886 | ) -> LPSTR; | |
2887 | pub fn CharPrevExA( | |
2888 | codePage: WORD, | |
2889 | lpStart: LPCSTR, | |
2890 | lpCurrentChar: LPCSTR, | |
2891 | dwFlags: DWORD, | |
2892 | ) -> LPSTR; | |
2893 | } | |
2894 | // AnsiToOem | |
2895 | // OemToAnsi | |
2896 | // AnsiToOemBuff | |
2897 | // OemToAnsiBuff | |
2898 | // AnsiUpper | |
2899 | // AnsiUpperBuff | |
2900 | // AnsiLower | |
2901 | // AnsiLowerBuff | |
2902 | // AnsiNext | |
2903 | // AnsiPrev | |
2904 | extern "system" { | |
2905 | pub fn IsCharAlphaA( | |
2906 | ch: CHAR, | |
2907 | ) -> BOOL; | |
2908 | pub fn IsCharAlphaW( | |
2909 | ch: WCHAR, | |
2910 | ) -> BOOL; | |
2911 | pub fn IsCharAlphaNumericA( | |
2912 | ch: CHAR, | |
2913 | ) -> BOOL; | |
2914 | pub fn IsCharAlphaNumericW( | |
2915 | ch: WCHAR, | |
2916 | ) -> BOOL; | |
2917 | pub fn IsCharUpperA( | |
2918 | ch: CHAR, | |
2919 | ) -> BOOL; | |
2920 | pub fn IsCharUpperW( | |
2921 | ch: WCHAR, | |
2922 | ) -> BOOL; | |
2923 | pub fn IsCharLowerA( | |
2924 | ch: CHAR, | |
2925 | ) -> BOOL; | |
2926 | pub fn IsCharLowerW( | |
2927 | ch: WCHAR, | |
2928 | ) -> BOOL; | |
2929 | pub fn SetFocus( | |
2930 | hWnd: HWND, | |
2931 | ) -> HWND; | |
2932 | pub fn GetActiveWindow() -> HWND; | |
2933 | pub fn GetFocus() -> HWND; | |
2934 | pub fn GetKBCodePage() -> UINT; | |
2935 | pub fn GetKeyState( | |
2936 | nVirtKey: c_int, | |
2937 | ) -> SHORT; | |
2938 | pub fn GetAsyncKeyState( | |
2939 | vKey: c_int, | |
2940 | ) -> SHORT; | |
2941 | pub fn GetKeyboardState( | |
2942 | lpKeyState: PBYTE, | |
2943 | ) -> BOOL; | |
2944 | pub fn SetKeyboardState( | |
2945 | lpKeyState: LPBYTE, | |
2946 | ) -> BOOL; | |
2947 | pub fn GetKeyNameTextA( | |
2948 | lparam: LONG, | |
2949 | lpString: LPSTR, | |
2950 | cchSize: c_int, | |
2951 | ) -> c_int; | |
2952 | pub fn GetKeyNameTextW( | |
2953 | lParam: LONG, | |
2954 | lpString: LPWSTR, | |
2955 | cchSize: c_int, | |
2956 | ) -> c_int; | |
2957 | pub fn GetKeyboardType( | |
2958 | nTypeFlag: c_int, | |
2959 | ) -> c_int; | |
2960 | pub fn ToAscii( | |
2961 | uVirtKey: UINT, | |
2962 | uScanCode: UINT, | |
2963 | lpKeyState: *const BYTE, | |
2964 | lpChar: LPWORD, | |
2965 | uFlags: UINT, | |
2966 | ) -> c_int; | |
2967 | pub fn ToAsciiEx( | |
2968 | uVirtKey: UINT, | |
2969 | uScanCode: UINT, | |
2970 | lpKeyState: *const BYTE, | |
2971 | lpChar: LPWORD, | |
2972 | uFlags: UINT, | |
2973 | dwhkl: HKL, | |
2974 | ) -> c_int; | |
2975 | pub fn ToUnicode( | |
2976 | wVirtKey: UINT, | |
2977 | wScanCode: UINT, | |
2978 | lpKeyState: *const BYTE, | |
2979 | lwszBuff: LPWSTR, | |
2980 | cchBuff: c_int, | |
2981 | wFlags: UINT, | |
2982 | ) -> c_int; | |
2983 | pub fn OemKeyScan( | |
2984 | wOemChar: WORD, | |
2985 | ) -> DWORD; | |
2986 | pub fn VkKeyScanA( | |
2987 | ch: CHAR, | |
2988 | ) -> SHORT; | |
2989 | pub fn VkKeyScanW( | |
2990 | ch: WCHAR, | |
2991 | ) -> SHORT; | |
2992 | pub fn VkKeyScanExA( | |
2993 | ch: CHAR, | |
2994 | dwhkl: HKL, | |
2995 | ) -> SHORT; | |
2996 | pub fn VkKeyScanExW( | |
2997 | ch: WCHAR, | |
2998 | dwhkl: HKL, | |
2999 | ) -> SHORT; | |
3000 | } | |
3001 | pub const KEYEVENTF_EXTENDEDKEY: DWORD = 0x0001; | |
3002 | pub const KEYEVENTF_KEYUP: DWORD = 0x0002; | |
3003 | pub const KEYEVENTF_UNICODE: DWORD = 0x0004; | |
3004 | pub const KEYEVENTF_SCANCODE: DWORD = 0x0008; | |
3005 | extern "system" { | |
3006 | pub fn keybd_event( | |
3007 | bVk: BYTE, | |
3008 | bScan: BYTE, | |
3009 | dwFlags: DWORD, | |
3010 | dwExtraInfo: ULONG_PTR, | |
3011 | ); | |
3012 | } | |
3013 | pub const MOUSEEVENTF_MOVE: DWORD = 0x0001; | |
3014 | pub const MOUSEEVENTF_LEFTDOWN: DWORD = 0x0002; | |
3015 | pub const MOUSEEVENTF_LEFTUP: DWORD = 0x0004; | |
3016 | pub const MOUSEEVENTF_RIGHTDOWN: DWORD = 0x0008; | |
3017 | pub const MOUSEEVENTF_RIGHTUP: DWORD = 0x0010; | |
3018 | pub const MOUSEEVENTF_MIDDLEDOWN: DWORD = 0x0020; | |
3019 | pub const MOUSEEVENTF_MIDDLEUP: DWORD = 0x0040; | |
3020 | pub const MOUSEEVENTF_XDOWN: DWORD = 0x0080; | |
3021 | pub const MOUSEEVENTF_XUP: DWORD = 0x0100; | |
3022 | pub const MOUSEEVENTF_WHEEL: DWORD = 0x0800; | |
3023 | pub const MOUSEEVENTF_HWHEEL: DWORD = 0x01000; | |
3024 | pub const MOUSEEVENTF_MOVE_NOCOALESCE: DWORD = 0x2000; | |
3025 | pub const MOUSEEVENTF_VIRTUALDESK: DWORD = 0x4000; | |
3026 | pub const MOUSEEVENTF_ABSOLUTE: DWORD = 0x8000; | |
3027 | extern "system" { | |
3028 | pub fn mouse_event( | |
3029 | dwFlags: DWORD, | |
3030 | dx: DWORD, | |
3031 | dy: DWORD, | |
3032 | dwData: DWORD, | |
3033 | dwExtraInfo: ULONG_PTR, | |
3034 | ); | |
3035 | } | |
3036 | STRUCT!{struct MOUSEINPUT { | |
3037 | dx: LONG, | |
3038 | dy: LONG, | |
3039 | mouseData: DWORD, | |
3040 | dwFlags: DWORD, | |
3041 | time: DWORD, | |
3042 | dwExtraInfo: ULONG_PTR, | |
3043 | }} | |
3044 | pub type PMOUSEINPUT = *mut MOUSEINPUT; | |
3045 | pub type LPMOUSEINPUT = *mut MOUSEINPUT; | |
3046 | STRUCT!{struct KEYBDINPUT { | |
3047 | wVk: WORD, | |
3048 | wScan: WORD, | |
3049 | dwFlags: DWORD, | |
3050 | time: DWORD, | |
3051 | dwExtraInfo: ULONG_PTR, | |
3052 | }} | |
3053 | pub type PKEYBDINPUT = *mut KEYBDINPUT; | |
3054 | pub type LPKEYBDINPUT = *mut KEYBDINPUT; | |
3055 | STRUCT!{struct HARDWAREINPUT { | |
3056 | uMsg: DWORD, | |
3057 | wParamL: WORD, | |
3058 | wParamH: WORD, | |
3059 | }} | |
3060 | pub type PHARDWAREINPUT = *mut HARDWAREINPUT; | |
3061 | pub type LPHARDWAREINPUT= *mut HARDWAREINPUT; | |
3062 | pub const INPUT_MOUSE: DWORD = 0; | |
3063 | pub const INPUT_KEYBOARD: DWORD = 1; | |
3064 | pub const INPUT_HARDWARE: DWORD = 2; | |
3065 | UNION!{union INPUT_u { | |
3066 | [u32; 6] [u64; 4], | |
3067 | mi mi_mut: MOUSEINPUT, | |
3068 | ki ki_mut: KEYBDINPUT, | |
3069 | hi hi_mut: HARDWAREINPUT, | |
3070 | }} | |
3071 | STRUCT!{struct INPUT { | |
3072 | type_: DWORD, | |
3073 | u: INPUT_u, | |
3074 | }} | |
3075 | pub type PINPUT = *mut INPUT; | |
3076 | pub type LPINPUT = *mut INPUT; | |
3077 | extern "system" { | |
3078 | pub fn SendInput( | |
3079 | cInputs: UINT, | |
3080 | pInputs: LPINPUT, | |
3081 | cbSize: c_int, | |
3082 | ) -> UINT; | |
3083 | } | |
0bf4aa26 | 3084 | DECLARE_HANDLE!{HTOUCHINPUT, HTOUCHINPUT__} |
ff7c6d11 XL |
3085 | STRUCT!{struct TOUCHINPUT { |
3086 | x: LONG, | |
3087 | y: LONG, | |
3088 | hSource: HANDLE, | |
3089 | dwID: DWORD, | |
3090 | dwFlags: DWORD, | |
3091 | dwMask: DWORD, | |
3092 | dwTime: DWORD, | |
3093 | dwExtraInfo: ULONG_PTR, | |
3094 | cxContact: DWORD, | |
3095 | cyContact: DWORD, | |
3096 | }} | |
3097 | pub type PTOUCHINPUT = *mut TOUCHINPUT; | |
3098 | pub type PCTOUCHINPUT = *const TOUCHINPUT; | |
3099 | // TOUCH_COORD_TO_PIXEL | |
3100 | pub const TOUCHEVENTF_MOVE: DWORD = 0x0001; | |
3101 | pub const TOUCHEVENTF_DOWN: DWORD = 0x0002; | |
3102 | pub const TOUCHEVENTF_UP: DWORD = 0x0004; | |
3103 | pub const TOUCHEVENTF_INRANGE: DWORD = 0x0008; | |
3104 | pub const TOUCHEVENTF_PRIMARY: DWORD = 0x0010; | |
3105 | pub const TOUCHEVENTF_NOCOALESCE: DWORD = 0x0020; | |
3106 | pub const TOUCHEVENTF_PEN: DWORD = 0x0040; | |
3107 | pub const TOUCHEVENTF_PALM: DWORD = 0x0080; | |
3108 | pub const TOUCHINPUTMASKF_TIMEFROMSYSTEM: DWORD = 0x0001; | |
3109 | pub const TOUCHINPUTMASKF_EXTRAINFO: DWORD = 0x0002; | |
3110 | pub const TOUCHINPUTMASKF_CONTACTAREA: DWORD = 0x0004; | |
3111 | extern "system" { | |
3112 | pub fn GetTouchInputInfo( | |
3113 | hTouchInput: HTOUCHINPUT, | |
3114 | cInputs: c_uint, | |
3115 | pInputs: PTOUCHINPUT, | |
3116 | cbSize: c_int, | |
3117 | ) -> BOOL; | |
3118 | pub fn CloseTouchInputHandle( | |
3119 | hTouchInput: HTOUCHINPUT, | |
3120 | ) -> BOOL; | |
3121 | } | |
3122 | pub const TWF_FINETOUCH: DWORD = 0x00000001; | |
3123 | pub const TWF_WANTPALM: DWORD = 0x00000002; | |
3124 | extern "system" { | |
3125 | pub fn RegisterTouchWindow( | |
3126 | hWnd: HWND, | |
3127 | flags: ULONG, | |
3128 | ) -> BOOL; | |
3129 | pub fn UnregisterTouchWindow( | |
3130 | hwnd: HWND, | |
3131 | ) -> BOOL; | |
3132 | pub fn IsTouchWindow( | |
3133 | hwnd: HWND, | |
3134 | pulFlags: PULONG, | |
3135 | ) -> BOOL; | |
3136 | } | |
3137 | ENUM!{enum POINTER_INPUT_TYPE { | |
3138 | PT_POINTER = 0x00000001, | |
3139 | PT_TOUCH = 0x00000002, | |
3140 | PT_PEN = 0x00000003, | |
3141 | PT_MOUSE = 0x00000004, | |
3142 | PT_TOUCHPAD = 0x00000005, | |
3143 | }} | |
3144 | ENUM!{enum POINTER_FLAGS { | |
3145 | POINTER_FLAG_NONE = 0x00000000, | |
3146 | POINTER_FLAG_NEW = 0x00000001, | |
3147 | POINTER_FLAG_INRANGE = 0x00000002, | |
3148 | POINTER_FLAG_INCONTACT = 0x00000004, | |
3149 | POINTER_FLAG_FIRSTBUTTON = 0x00000010, | |
3150 | POINTER_FLAG_SECONDBUTTON = 0x00000020, | |
3151 | POINTER_FLAG_THIRDBUTTON = 0x00000040, | |
3152 | POINTER_FLAG_FOURTHBUTTON = 0x00000080, | |
3153 | POINTER_FLAG_FIFTHBUTTON = 0x00000100, | |
3154 | POINTER_FLAG_PRIMARY = 0x00002000, | |
3155 | POINTER_FLAG_CONFIDENCE = 0x00004000, | |
3156 | POINTER_FLAG_CANCELED = 0x00008000, | |
3157 | POINTER_FLAG_DOWN = 0x00010000, | |
3158 | POINTER_FLAG_UPDATE = 0x00020000, | |
3159 | POINTER_FLAG_UP = 0x00040000, | |
3160 | POINTER_FLAG_WHEEL = 0x00080000, | |
3161 | POINTER_FLAG_HWHEEL = 0x00100000, | |
3162 | POINTER_FLAG_CAPTURECHANGED = 0x00200000, | |
3163 | POINTER_FLAG_HASTRANSFORM = 0x00400000, | |
3164 | }} | |
3165 | pub const POINTER_MOD_SHIFT: DWORD = 0x0004; | |
3166 | pub const POINTER_MOD_CTRL: DWORD = 0x0008; | |
3167 | ENUM!{enum POINTER_BUTTON_CHANGE_TYPE { | |
3168 | POINTER_CHANGE_NONE, | |
3169 | POINTER_CHANGE_FIRSTBUTTON_DOWN, | |
3170 | POINTER_CHANGE_FIRSTBUTTON_UP, | |
3171 | POINTER_CHANGE_SECONDBUTTON_DOWN, | |
3172 | POINTER_CHANGE_SECONDBUTTON_UP, | |
3173 | POINTER_CHANGE_THIRDBUTTON_DOWN, | |
3174 | POINTER_CHANGE_THIRDBUTTON_UP, | |
3175 | POINTER_CHANGE_FOURTHBUTTON_DOWN, | |
3176 | POINTER_CHANGE_FOURTHBUTTON_UP, | |
3177 | POINTER_CHANGE_FIFTHBUTTON_DOWN, | |
3178 | POINTER_CHANGE_FIFTHBUTTON_UP, | |
3179 | }} | |
3180 | STRUCT!{struct POINTER_INFO { | |
3181 | pointerType: POINTER_INPUT_TYPE, | |
3182 | pointerId: UINT32, | |
3183 | frameId: UINT32, | |
3184 | pointerFlags: POINTER_FLAGS, | |
3185 | sourceDevice: HANDLE, | |
3186 | hwndTarget: HWND, | |
3187 | ptPixelLocation: POINT, | |
3188 | ptHimetricLocation: POINT, | |
3189 | ptPixelLocationRaw: POINT, | |
3190 | ptHimetricLocationRaw: POINT, | |
3191 | dwTime: DWORD, | |
3192 | historyCount: UINT32, | |
3193 | InputData: INT32, | |
3194 | dwKeyStates: DWORD, | |
3195 | PerformanceCount: UINT64, | |
3196 | ButtonChangeType: POINTER_BUTTON_CHANGE_TYPE, | |
3197 | }} | |
3198 | ENUM!{enum TOUCH_FLAGS { | |
3199 | TOUCH_FLAG_NONE = 0x00000000, | |
3200 | }} | |
3201 | ENUM!{enum TOUCH_MASK { | |
3202 | TOUCH_MASK_NONE = 0x00000000, | |
3203 | TOUCH_MASK_CONTACTAREA = 0x00000001, | |
3204 | TOUCH_MASK_ORIENTATION = 0x00000002, | |
3205 | TOUCH_MASK_PRESSURE = 0x00000004, | |
3206 | }} | |
3207 | STRUCT!{struct POINTER_TOUCH_INFO { | |
3208 | pointerInfo: POINTER_INFO, | |
3209 | touchFlags: TOUCH_FLAGS, | |
3210 | touchMask: TOUCH_MASK, | |
3211 | rcContact: RECT, | |
3212 | rcContactRaw: RECT, | |
3213 | orientation: UINT32, | |
3214 | pressure: UINT32, | |
3215 | }} | |
3216 | ENUM!{enum PEN_FLAGS { | |
3217 | PEN_FLAG_NONE = 0x00000000, | |
3218 | PEN_FLAG_BARREL = 0x00000001, | |
3219 | PEN_FLAG_INVERTED = 0x00000002, | |
3220 | PEN_FLAG_ERASER = 0x00000004, | |
3221 | }} | |
3222 | ENUM!{enum PEN_MASK { | |
3223 | PEN_MASK_NONE = 0x00000000, | |
3224 | PEN_MASK_PRESSURE = 0x00000001, | |
3225 | PEN_MASK_ROTATION = 0x00000002, | |
3226 | PEN_MASK_TILT_X = 0x00000004, | |
3227 | PEN_MASK_TILT_Y = 0x00000008, | |
3228 | }} | |
3229 | STRUCT!{struct POINTER_PEN_INFO { | |
3230 | pointerInfo: POINTER_INFO, | |
3231 | penFlags: PEN_FLAGS, | |
3232 | penMask: PEN_MASK, | |
3233 | pressure: UINT32, | |
3234 | rotation: UINT32, | |
3235 | tiltX: INT32, | |
3236 | tiltY: INT32, | |
3237 | }} | |
3238 | pub const POINTER_MESSAGE_FLAG_NEW: DWORD = 0x00000001; | |
3239 | pub const POINTER_MESSAGE_FLAG_INRANGE: DWORD = 0x00000002; | |
3240 | pub const POINTER_MESSAGE_FLAG_INCONTACT: DWORD = 0x00000004; | |
3241 | pub const POINTER_MESSAGE_FLAG_FIRSTBUTTON: DWORD = 0x00000010; | |
3242 | pub const POINTER_MESSAGE_FLAG_SECONDBUTTON: DWORD = 0x00000020; | |
3243 | pub const POINTER_MESSAGE_FLAG_THIRDBUTTON: DWORD = 0x00000040; | |
3244 | pub const POINTER_MESSAGE_FLAG_FOURTHBUTTON: DWORD = 0x00000080; | |
3245 | pub const POINTER_MESSAGE_FLAG_FIFTHBUTTON: DWORD = 0x00000100; | |
3246 | pub const POINTER_MESSAGE_FLAG_PRIMARY: DWORD = 0x00002000; | |
3247 | pub const POINTER_MESSAGE_FLAG_CONFIDENCE: DWORD = 0x00004000; | |
3248 | pub const POINTER_MESSAGE_FLAG_CANCELED: DWORD = 0x00008000; | |
3249 | pub const PA_ACTIVATE: UINT = MA_ACTIVATE; | |
3250 | pub const PA_NOACTIVATE: UINT = MA_NOACTIVATE; | |
3251 | pub const MAX_TOUCH_COUNT: UINT32 = 256; | |
3252 | pub const TOUCH_FEEDBACK_DEFAULT: DWORD = 0x1; | |
3253 | pub const TOUCH_FEEDBACK_INDIRECT: DWORD = 0x2; | |
3254 | pub const TOUCH_FEEDBACK_NONE: DWORD = 0x3; | |
3255 | extern "system" { | |
3256 | pub fn InitializeTouchInjection( | |
3257 | maxCount: UINT32, | |
3258 | dwMode: DWORD, | |
3259 | ) -> BOOL; | |
3260 | pub fn InjectTouchInput( | |
3261 | count: UINT32, | |
3262 | contacts: *const POINTER_TOUCH_INFO, | |
3263 | ) -> BOOL; | |
3264 | } | |
3265 | STRUCT!{struct USAGE_PROPERTIES { | |
3266 | level: USHORT, | |
3267 | page: USHORT, | |
3268 | usage: USHORT, | |
3269 | logicalMinimum: INT32, | |
3270 | logicalMaximum: INT32, | |
3271 | unit: USHORT, | |
3272 | exponent: USHORT, | |
3273 | count: BYTE, | |
3274 | physicalMinimum: INT32, | |
3275 | physicalMaximum: INT32, | |
3276 | }} | |
3277 | pub type PUSAGE_PROPERTIES = *mut USAGE_PROPERTIES; | |
3278 | UNION!{union POINTER_TYPE_INFO_u { | |
3279 | [u64; 17] [u64; 18], | |
3280 | touchInfo touchInfo_mut: POINTER_TOUCH_INFO, | |
3281 | penInfo penInfo_mut: POINTER_PEN_INFO, | |
3282 | }} | |
3283 | STRUCT!{struct POINTER_TYPE_INFO { | |
3284 | type_: POINTER_INPUT_TYPE, | |
3285 | u: POINTER_TYPE_INFO_u, | |
3286 | }} | |
3287 | pub type PPOINTER_TYPE_INFO = *mut POINTER_TYPE_INFO; | |
3288 | STRUCT!{struct INPUT_INJECTION_VALUE { | |
3289 | page: USHORT, | |
3290 | usage: USHORT, | |
3291 | value: INT32, | |
3292 | index: USHORT, | |
3293 | }} | |
3294 | pub type PINPUT_INJECTION_VALUE = *mut INPUT_INJECTION_VALUE; | |
3295 | extern "system" { | |
3296 | pub fn GetPointerType( | |
3297 | pointerId: UINT32, | |
3298 | pointerType: *mut POINTER_INPUT_TYPE, | |
3299 | ) -> BOOL; | |
3300 | pub fn GetPointerCursorId( | |
3301 | pointerId: UINT32, | |
3302 | cursorId: *mut UINT32, | |
3303 | ) -> BOOL; | |
3304 | pub fn GetPointerInfo( | |
3305 | pointerId: UINT32, | |
3306 | pointerInfo: *mut POINTER_INFO, | |
3307 | ) -> BOOL; | |
3308 | pub fn GetPointerInfoHistory( | |
3309 | pointerId: UINT32, | |
3310 | entriesCount: *mut UINT32, | |
3311 | pointerInfo: *mut POINTER_INFO, | |
3312 | ) -> BOOL; | |
3313 | pub fn GetPointerFrameInfo( | |
3314 | pointerId: UINT32, | |
3315 | pointerCount: *mut UINT32, | |
3316 | pointerInfo: *mut POINTER_INFO, | |
3317 | ) -> BOOL; | |
3318 | pub fn GetPointerFrameInfoHistory( | |
3319 | pointerId: UINT32, | |
3320 | entriesCount: *mut UINT32, | |
3321 | pointerCount: *mut UINT32, | |
3322 | pointerInfo: *mut POINTER_INFO, | |
3323 | ) -> BOOL; | |
3324 | pub fn GetPointerTouchInfo( | |
3325 | pointerId: UINT32, | |
3326 | touchInfo: *mut POINTER_TOUCH_INFO, | |
3327 | ) -> BOOL; | |
3328 | pub fn GetPointerTouchInfoHistory( | |
3329 | pointerId: UINT32, | |
3330 | entriesCount: *mut UINT32, | |
3331 | touchInfo: *mut POINTER_TOUCH_INFO, | |
3332 | ) -> BOOL; | |
3333 | pub fn GetPointerFrameTouchInfo( | |
3334 | pointerId: UINT32, | |
3335 | pointerCount: *mut UINT32, | |
3336 | touchInfo: *mut POINTER_TOUCH_INFO, | |
3337 | ) -> BOOL; | |
3338 | pub fn GetPointerFrameTouchInfoHistory( | |
3339 | pointerId: UINT32, | |
3340 | entriesCount: *mut UINT32, | |
3341 | pointerCount: *mut UINT32, | |
3342 | touchInfo: *mut POINTER_TOUCH_INFO, | |
3343 | ) -> BOOL; | |
3344 | pub fn GetPointerPenInfo( | |
3345 | pointerId: UINT32, | |
3346 | penInfo: *mut POINTER_PEN_INFO, | |
3347 | ) -> BOOL; | |
3348 | pub fn GetPointerPenInfoHistory( | |
3349 | pointerId: UINT32, | |
3350 | entriesCount: *mut UINT32, | |
3351 | penInfo: *mut POINTER_PEN_INFO, | |
3352 | ) -> BOOL; | |
3353 | pub fn GetPointerFramePenInfo( | |
3354 | pointerId: UINT32, | |
3355 | pointerCount: *mut UINT32, | |
3356 | penInfo: *mut POINTER_PEN_INFO, | |
3357 | ) -> BOOL; | |
3358 | pub fn GetPointerFramePenInfoHistory( | |
3359 | pointerId: UINT32, | |
3360 | entriesCount: *mut UINT32, | |
3361 | pointerCount: *mut UINT32, | |
3362 | penInfo: *mut POINTER_PEN_INFO, | |
3363 | ) -> BOOL; | |
3364 | pub fn SkipPointerFrameMessages( | |
3365 | pointerId: UINT32, | |
3366 | ) -> BOOL; | |
3367 | pub fn RegisterPointerInputTarget( | |
3368 | hwnd: HWND, | |
3369 | pointerType: POINTER_INPUT_TYPE, | |
3370 | ) -> BOOL; | |
3371 | pub fn UnregisterPointerInputTarget( | |
3372 | hwnd: HWND, | |
3373 | pointerType: POINTER_INPUT_TYPE, | |
3374 | ) -> BOOL; | |
3375 | pub fn RegisterPointerInputTargetEx( | |
3376 | hwnd: HWND, | |
3377 | pointerType: POINTER_INPUT_TYPE, | |
3378 | fObserve: BOOL, | |
3379 | ) -> BOOL; | |
3380 | pub fn UnregisterPointerInputTargetEx( | |
3381 | hwnd: HWND, | |
3382 | pointerType: POINTER_INPUT_TYPE, | |
3383 | ) -> BOOL; | |
3384 | pub fn EnableMouseInPointer( | |
3385 | fEnable: BOOL, | |
3386 | ) -> BOOL; | |
3387 | pub fn IsMouseInPointerEnabled() -> BOOL; | |
3388 | } | |
3389 | pub const TOUCH_HIT_TESTING_DEFAULT: ULONG = 0x0; | |
3390 | pub const TOUCH_HIT_TESTING_CLIENT: ULONG = 0x1; | |
3391 | pub const TOUCH_HIT_TESTING_NONE: ULONG = 0x2; | |
3392 | extern "system" { | |
3393 | pub fn RegisterTouchHitTestingWindow( | |
3394 | hwnd: HWND, | |
3395 | value: ULONG, | |
3396 | ) -> BOOL; | |
3397 | } | |
3398 | STRUCT!{struct TOUCH_HIT_TESTING_PROXIMITY_EVALUATION { | |
3399 | score: UINT16, | |
3400 | adjustedPoint: POINT, | |
3401 | }} | |
3402 | pub type PTOUCH_HIT_TESTING_PROXIMITY_EVALUATION = *mut TOUCH_HIT_TESTING_PROXIMITY_EVALUATION; | |
3403 | STRUCT!{struct TOUCH_HIT_TESTING_INPUT { | |
3404 | pointerId: UINT32, | |
3405 | point: POINT, | |
3406 | boundingBox: RECT, | |
3407 | nonOccludedBoundingBox: RECT, | |
3408 | orientation: UINT32, | |
3409 | }} | |
3410 | pub type PTOUCH_HIT_TESTING_INPUT = *mut TOUCH_HIT_TESTING_INPUT; | |
3411 | pub const TOUCH_HIT_TESTING_PROXIMITY_CLOSEST: UINT16 = 0x0; | |
3412 | pub const TOUCH_HIT_TESTING_PROXIMITY_FARTHEST: UINT16 = 0xFFF; | |
3413 | extern "system" { | |
3414 | pub fn EvaluateProximityToRect( | |
3415 | controlBoundingBox: *const RECT, | |
3416 | pHitTestingInput: *const TOUCH_HIT_TESTING_INPUT, | |
3417 | pProximityEval: *mut TOUCH_HIT_TESTING_PROXIMITY_EVALUATION, | |
3418 | ) -> BOOL; | |
3419 | pub fn EvaluateProximityToPolygon( | |
3420 | numVertices: UINT32, | |
3421 | controlPolygon: *const POINT, | |
3422 | pHitTestingInput: *const TOUCH_HIT_TESTING_INPUT, | |
3423 | pProximityEval: *mut TOUCH_HIT_TESTING_PROXIMITY_EVALUATION, | |
3424 | ) -> BOOL; | |
3425 | pub fn PackTouchHitTestingProximityEvaluation( | |
3426 | pHitTestingInput: *const TOUCH_HIT_TESTING_INPUT, | |
3427 | pProximityEval: *const TOUCH_HIT_TESTING_PROXIMITY_EVALUATION, | |
3428 | ) -> LRESULT; | |
3429 | } | |
3430 | ENUM!{enum FEEDBACK_TYPE { | |
3431 | FEEDBACK_TOUCH_CONTACTVISUALIZATION = 1, | |
3432 | FEEDBACK_PEN_BARRELVISUALIZATION = 2, | |
3433 | FEEDBACK_PEN_TAP = 3, | |
3434 | FEEDBACK_PEN_DOUBLETAP = 4, | |
3435 | FEEDBACK_PEN_PRESSANDHOLD = 5, | |
3436 | FEEDBACK_PEN_RIGHTTAP = 6, | |
3437 | FEEDBACK_TOUCH_TAP = 7, | |
3438 | FEEDBACK_TOUCH_DOUBLETAP = 8, | |
3439 | FEEDBACK_TOUCH_PRESSANDHOLD = 9, | |
3440 | FEEDBACK_TOUCH_RIGHTTAP = 10, | |
3441 | FEEDBACK_GESTURE_PRESSANDTAP = 11, | |
3442 | FEEDBACK_MAX = 0xFFFFFFFF, | |
3443 | }} | |
3444 | pub const GWFS_INCLUDE_ANCESTORS: DWORD = 0x00000001; | |
3445 | extern "system" { | |
3446 | pub fn GetWindowFeedbackSetting( | |
3447 | hwnd: HWND, | |
3448 | feedback: FEEDBACK_TYPE, | |
3449 | dwFlags: DWORD, | |
3450 | pSize: *mut UINT32, | |
3451 | config: *mut VOID, | |
3452 | ) -> BOOL; | |
3453 | pub fn SetWindowFeedbackSetting( | |
3454 | hwnd: HWND, | |
3455 | feedback: FEEDBACK_TYPE, | |
3456 | dwFlags: DWORD, | |
3457 | size: UINT32, | |
3458 | configuration: *const VOID, | |
3459 | ) -> BOOL; | |
3460 | } | |
3461 | STRUCT!{struct INPUT_TRANSFORM { | |
3462 | m: [[f32; 4]; 4], | |
3463 | }} | |
3464 | extern "system" { | |
3465 | pub fn GetPointerInputTransform( | |
3466 | pointerId: UINT32, | |
3467 | historyCount: UINT32, | |
3468 | inputTransform: *mut INPUT_TRANSFORM, | |
3469 | ) -> BOOL; | |
3470 | } | |
3471 | STRUCT!{struct LASTINPUTINFO { | |
3472 | cbSize: UINT, | |
3473 | dwTime: DWORD, | |
3474 | }} | |
3475 | pub type PLASTINPUTINFO = *mut LASTINPUTINFO; | |
3476 | extern "system" { | |
3477 | pub fn GetLastInputInfo( | |
3478 | plii: PLASTINPUTINFO, | |
3479 | ) -> BOOL; | |
3480 | pub fn MapVirtualKeyA( | |
3481 | nCode: UINT, | |
3482 | uMapType: UINT, | |
3483 | ) -> UINT; | |
3484 | pub fn MapVirtualKeyW( | |
3485 | nCode: UINT, | |
3486 | uMapType: UINT, | |
3487 | ) -> UINT; | |
3488 | pub fn MapVirtualKeyExA( | |
3489 | nCode: UINT, | |
3490 | uMapType: UINT, | |
3491 | dwhkl: HKL, | |
3492 | ) -> UINT; | |
3493 | pub fn MapVirtualKeyExW( | |
3494 | nCode: UINT, | |
3495 | uMapType: UINT, | |
3496 | dwhkl: HKL, | |
3497 | ) -> UINT; | |
3498 | } | |
3499 | pub const MAPVK_VK_TO_VSC: UINT = 0; | |
3500 | pub const MAPVK_VSC_TO_VK: UINT = 1; | |
3501 | pub const MAPVK_VK_TO_CHAR: UINT = 2; | |
3502 | pub const MAPVK_VSC_TO_VK_EX: UINT = 3; | |
3503 | pub const MAPVK_VK_TO_VSC_EX: UINT = 4; | |
3504 | extern "system" { | |
3505 | pub fn GetInputState() -> BOOL; | |
3506 | pub fn GetQueueStatus( | |
3507 | flags: UINT, | |
3508 | ) -> DWORD; | |
3509 | pub fn GetCapture() -> HWND; | |
3510 | pub fn SetCapture( | |
3511 | hWnd: HWND, | |
3512 | ) -> HWND; | |
3513 | pub fn ReleaseCapture() -> BOOL; | |
3514 | pub fn MsgWaitForMultipleObjects( | |
3515 | nCount: DWORD, | |
3516 | pHandles: *const HANDLE, | |
3517 | fWaitAll: BOOL, | |
3518 | dwMilliseconds: DWORD, | |
3519 | dwWakeMask: DWORD, | |
3520 | ) -> DWORD; | |
3521 | pub fn MsgWaitForMultipleObjectsEx( | |
3522 | nCount: DWORD, | |
3523 | pHandles: *const HANDLE, | |
3524 | dwMilliseconds: DWORD, | |
3525 | dwWakeMask: DWORD, | |
3526 | dwFlags: DWORD, | |
3527 | ) -> DWORD; | |
3528 | } | |
3529 | pub const MWMO_WAITALL: UINT = 0x0001; | |
3530 | pub const MWMO_ALERTABLE: UINT = 0x0002; | |
3531 | pub const MWMO_INPUTAVAILABLE: UINT = 0x0004; | |
3532 | pub const QS_KEY: UINT = 0x0001; | |
3533 | pub const QS_MOUSEMOVE: UINT = 0x0002; | |
3534 | pub const QS_MOUSEBUTTON: UINT = 0x0004; | |
3535 | pub const QS_POSTMESSAGE: UINT = 0x0008; | |
3536 | pub const QS_TIMER: UINT = 0x0010; | |
3537 | pub const QS_PAINT: UINT = 0x0020; | |
3538 | pub const QS_SENDMESSAGE: UINT = 0x0040; | |
3539 | pub const QS_HOTKEY: UINT = 0x0080; | |
3540 | pub const QS_ALLPOSTMESSAGE: UINT = 0x0100; | |
3541 | pub const QS_RAWINPUT: UINT = 0x0400; | |
3542 | pub const QS_TOUCH: UINT = 0x0800; | |
3543 | pub const QS_POINTER: UINT = 0x1000; | |
3544 | pub const QS_MOUSE: UINT = QS_MOUSEMOVE | QS_MOUSEBUTTON; | |
3545 | pub const QS_INPUT: UINT = QS_MOUSE | QS_KEY | QS_RAWINPUT | QS_TOUCH | QS_POINTER; | |
3546 | pub const QS_ALLEVENTS: UINT = QS_INPUT | QS_POSTMESSAGE | QS_TIMER | QS_PAINT | QS_HOTKEY; | |
3547 | pub const QS_ALLINPUT: UINT = QS_INPUT | QS_POSTMESSAGE | QS_TIMER | QS_PAINT | QS_HOTKEY | |
3548 | | QS_SENDMESSAGE; | |
3549 | pub const USER_TIMER_MAXIMUM: UINT = 0x7FFFFFFF; | |
3550 | pub const USER_TIMER_MINIMUM: UINT = 0x0000000A; | |
3551 | extern "system" { | |
3552 | pub fn SetTimer( | |
3553 | hWnd: HWND, | |
3554 | nIDEvent: UINT_PTR, | |
3555 | uElapse: UINT, | |
3556 | lpTimerFunc: TIMERPROC, | |
3557 | ) -> UINT_PTR; | |
3558 | } | |
3559 | pub const TIMERV_DEFAULT_COALESCING: ULONG = 0; | |
3560 | pub const TIMERV_NO_COALESCING: ULONG = 0xFFFFFFFF; | |
3561 | pub const TIMERV_COALESCING_MIN: ULONG = 1; | |
3562 | pub const TIMERV_COALESCING_MAX: ULONG = 0x7FFFFFF5; | |
3563 | extern "system" { | |
3564 | pub fn SetCoalescableTimer( | |
3565 | hWnd: HWND, | |
3566 | nIDEvent: UINT_PTR, | |
3567 | uElapse: UINT, | |
3568 | lpTimerFunc: TIMERPROC, | |
3569 | uToleranceDelay: ULONG, | |
3570 | ) -> UINT_PTR; | |
3571 | pub fn KillTimer( | |
3572 | hWnd: HWND, | |
3573 | uIDEvent: UINT_PTR, | |
3574 | ) -> BOOL; | |
3575 | pub fn IsWindowUnicode( | |
3576 | hWnd: HWND, | |
3577 | ) -> BOOL; | |
3578 | pub fn EnableWindow( | |
3579 | hWnd: HWND, | |
3580 | bEnable: BOOL, | |
3581 | ) -> BOOL; | |
3582 | pub fn IsWindowEnabled( | |
3583 | hWnd: HWND, | |
3584 | ) -> BOOL; | |
3585 | pub fn LoadAcceleratorsA( | |
3586 | hInstance: HINSTANCE, | |
3587 | lpTableName: LPCSTR, | |
3588 | ) -> HACCEL; | |
3589 | pub fn LoadAcceleratorsW( | |
3590 | hInstance: HINSTANCE, | |
3591 | lpTableName: LPCWSTR, | |
3592 | ) -> HACCEL; | |
3593 | pub fn CreateAcceleratorTableA( | |
3594 | paccel: LPACCEL, | |
3595 | cAccel: c_int, | |
3596 | ) -> HACCEL; | |
3597 | pub fn CreateAcceleratorTableW( | |
3598 | paccel: LPACCEL, | |
3599 | cAccel: c_int, | |
3600 | ) -> HACCEL; | |
3601 | pub fn DestroyAcceleratorTable( | |
3602 | hAccel: HACCEL, | |
3603 | ) -> BOOL; | |
3604 | pub fn CopyAcceleratorTableA( | |
3605 | hAccelSrc: HACCEL, | |
3606 | lpAccelDst: LPACCEL, | |
3607 | cAccelEntries: c_int, | |
3608 | ) -> c_int; | |
3609 | pub fn CopyAcceleratorTableW( | |
3610 | hAccelSrc: HACCEL, | |
3611 | lpAccelDst: LPACCEL, | |
3612 | cAccelEntries: c_int, | |
3613 | ) -> c_int; | |
3614 | pub fn TranslateAcceleratorA( | |
3615 | hWnd: HWND, | |
3616 | hAccTable: HACCEL, | |
3617 | lpMsg: LPMSG, | |
3618 | ) -> c_int; | |
3619 | pub fn TranslateAcceleratorW( | |
3620 | hWnd: HWND, | |
3621 | hAccTable: HACCEL, | |
3622 | lpMsg: LPMSG, | |
3623 | ) -> c_int; | |
3624 | } | |
3625 | pub const SM_CXSCREEN: c_int = 0; | |
3626 | pub const SM_CYSCREEN: c_int = 1; | |
3627 | pub const SM_CXVSCROLL: c_int = 2; | |
3628 | pub const SM_CYHSCROLL: c_int = 3; | |
3629 | pub const SM_CYCAPTION: c_int = 4; | |
3630 | pub const SM_CXBORDER: c_int = 5; | |
3631 | pub const SM_CYBORDER: c_int = 6; | |
3632 | pub const SM_CXDLGFRAME: c_int = 7; | |
3633 | pub const SM_CYDLGFRAME: c_int = 8; | |
3634 | pub const SM_CYVTHUMB: c_int = 9; | |
3635 | pub const SM_CXHTHUMB: c_int = 10; | |
3636 | pub const SM_CXICON: c_int = 11; | |
3637 | pub const SM_CYICON: c_int = 12; | |
3638 | pub const SM_CXCURSOR: c_int = 13; | |
3639 | pub const SM_CYCURSOR: c_int = 14; | |
3640 | pub const SM_CYMENU: c_int = 15; | |
3641 | pub const SM_CXFULLSCREEN: c_int = 16; | |
3642 | pub const SM_CYFULLSCREEN: c_int = 17; | |
3643 | pub const SM_CYKANJIWINDOW: c_int = 18; | |
3644 | pub const SM_MOUSEPRESENT: c_int = 19; | |
3645 | pub const SM_CYVSCROLL: c_int = 20; | |
3646 | pub const SM_CXHSCROLL: c_int = 21; | |
3647 | pub const SM_DEBUG: c_int = 22; | |
3648 | pub const SM_SWAPBUTTON: c_int = 23; | |
3649 | pub const SM_RESERVED1: c_int = 24; | |
3650 | pub const SM_RESERVED2: c_int = 25; | |
3651 | pub const SM_RESERVED3: c_int = 26; | |
3652 | pub const SM_RESERVED4: c_int = 27; | |
3653 | pub const SM_CXMIN: c_int = 28; | |
3654 | pub const SM_CYMIN: c_int = 29; | |
3655 | pub const SM_CXSIZE: c_int = 30; | |
3656 | pub const SM_CYSIZE: c_int = 31; | |
3657 | pub const SM_CXFRAME: c_int = 32; | |
3658 | pub const SM_CYFRAME: c_int = 33; | |
3659 | pub const SM_CXMINTRACK: c_int = 34; | |
3660 | pub const SM_CYMINTRACK: c_int = 35; | |
3661 | pub const SM_CXDOUBLECLK: c_int = 36; | |
3662 | pub const SM_CYDOUBLECLK: c_int = 37; | |
3663 | pub const SM_CXICONSPACING: c_int = 38; | |
3664 | pub const SM_CYICONSPACING: c_int = 39; | |
3665 | pub const SM_MENUDROPALIGNMENT: c_int = 40; | |
3666 | pub const SM_PENWINDOWS: c_int = 41; | |
3667 | pub const SM_DBCSENABLED: c_int = 42; | |
3668 | pub const SM_CMOUSEBUTTONS: c_int = 43; | |
3669 | pub const SM_CXFIXEDFRAME: c_int = SM_CXDLGFRAME; | |
3670 | pub const SM_CYFIXEDFRAME: c_int = SM_CYDLGFRAME; | |
3671 | pub const SM_CXSIZEFRAME: c_int = SM_CXFRAME; | |
3672 | pub const SM_CYSIZEFRAME: c_int = SM_CYFRAME; | |
3673 | pub const SM_SECURE: c_int = 44; | |
3674 | pub const SM_CXEDGE: c_int = 45; | |
3675 | pub const SM_CYEDGE: c_int = 46; | |
3676 | pub const SM_CXMINSPACING: c_int = 47; | |
3677 | pub const SM_CYMINSPACING: c_int = 48; | |
3678 | pub const SM_CXSMICON: c_int = 49; | |
3679 | pub const SM_CYSMICON: c_int = 50; | |
3680 | pub const SM_CYSMCAPTION: c_int = 51; | |
3681 | pub const SM_CXSMSIZE: c_int = 52; | |
3682 | pub const SM_CYSMSIZE: c_int = 53; | |
3683 | pub const SM_CXMENUSIZE: c_int = 54; | |
3684 | pub const SM_CYMENUSIZE: c_int = 55; | |
3685 | pub const SM_ARRANGE: c_int = 56; | |
3686 | pub const SM_CXMINIMIZED: c_int = 57; | |
3687 | pub const SM_CYMINIMIZED: c_int = 58; | |
3688 | pub const SM_CXMAXTRACK: c_int = 59; | |
3689 | pub const SM_CYMAXTRACK: c_int = 60; | |
3690 | pub const SM_CXMAXIMIZED: c_int = 61; | |
3691 | pub const SM_CYMAXIMIZED: c_int = 62; | |
3692 | pub const SM_NETWORK: c_int = 63; | |
3693 | pub const SM_CLEANBOOT: c_int = 67; | |
3694 | pub const SM_CXDRAG: c_int = 68; | |
3695 | pub const SM_CYDRAG: c_int = 69; | |
3696 | pub const SM_SHOWSOUNDS: c_int = 70; | |
3697 | pub const SM_CXMENUCHECK: c_int = 71; | |
3698 | pub const SM_CYMENUCHECK: c_int = 72; | |
3699 | pub const SM_SLOWMACHINE: c_int = 73; | |
3700 | pub const SM_MIDEASTENABLED: c_int = 74; | |
3701 | pub const SM_MOUSEWHEELPRESENT: c_int = 75; | |
3702 | pub const SM_XVIRTUALSCREEN: c_int = 76; | |
3703 | pub const SM_YVIRTUALSCREEN: c_int = 77; | |
3704 | pub const SM_CXVIRTUALSCREEN: c_int = 78; | |
3705 | pub const SM_CYVIRTUALSCREEN: c_int = 79; | |
3706 | pub const SM_CMONITORS: c_int = 80; | |
3707 | pub const SM_SAMEDISPLAYFORMAT: c_int = 81; | |
3708 | pub const SM_IMMENABLED: c_int = 82; | |
3709 | pub const SM_CXFOCUSBORDER: c_int = 83; | |
3710 | pub const SM_CYFOCUSBORDER: c_int = 84; | |
3711 | pub const SM_TABLETPC: c_int = 86; | |
3712 | pub const SM_MEDIACENTER: c_int = 87; | |
3713 | pub const SM_STARTER: c_int = 88; | |
3714 | pub const SM_SERVERR2: c_int = 89; | |
3715 | pub const SM_MOUSEHORIZONTALWHEELPRESENT: c_int = 91; | |
3716 | pub const SM_CXPADDEDBORDER: c_int = 92; | |
3717 | pub const SM_DIGITIZER: c_int = 94; | |
3718 | pub const SM_MAXIMUMTOUCHES: c_int = 95; | |
3719 | pub const SM_CMETRICS: c_int = 97; | |
3720 | pub const SM_REMOTESESSION: c_int = 0x1000; | |
3721 | pub const SM_SHUTTINGDOWN: c_int = 0x2000; | |
3722 | pub const SM_REMOTECONTROL: c_int = 0x2001; | |
3723 | pub const SM_CARETBLINKINGENABLED: c_int = 0x2002; | |
3724 | pub const SM_CONVERTIBLESLATEMODE: c_int = 0x2003; | |
3725 | pub const SM_SYSTEMDOCKED: c_int = 0x2004; | |
3726 | extern "system" { | |
3727 | pub fn GetSystemMetrics( | |
3728 | nIndex: c_int, | |
3729 | ) -> c_int; | |
3730 | pub fn GetSystemMetricsForDpi( | |
3731 | nIndex: c_int, | |
3732 | dpi: UINT, | |
3733 | ) -> c_int; | |
3734 | pub fn LoadMenuA( | |
3735 | hInstance: HINSTANCE, | |
3736 | lpMenuName: LPCSTR, | |
3737 | ) -> HMENU; | |
3738 | pub fn LoadMenuW( | |
3739 | hInstance: HINSTANCE, | |
3740 | lpMenuName: LPCWSTR, | |
3741 | ) -> HMENU; | |
3742 | pub fn LoadMenuIndirectA( | |
3743 | lpMenuTemplate: *const MENUTEMPLATEA, | |
3744 | ) -> HMENU; | |
3745 | pub fn LoadMenuIndirectW( | |
3746 | lpMenuTemplate: *const MENUTEMPLATEW, | |
3747 | ) -> HMENU; | |
3748 | pub fn GetMenu( | |
3749 | hWnd: HWND, | |
3750 | ) -> HMENU; | |
3751 | pub fn SetMenu( | |
3752 | hWnd: HWND, | |
3753 | hMenu: HMENU, | |
3754 | ) -> BOOL; | |
3755 | pub fn ChangeMenuA( | |
3756 | hMenu: HMENU, | |
3757 | cmd: UINT, | |
3758 | lpszNewItem: LPCSTR, | |
3759 | cmdInsert: UINT, | |
3760 | flags: UINT, | |
3761 | ) -> BOOL; | |
3762 | pub fn ChangeMenuW( | |
3763 | hMenu: HMENU, | |
3764 | cmd: UINT, | |
3765 | lpszNewItem: LPCWSTR, | |
3766 | cmdInsert: UINT, | |
3767 | flags: UINT, | |
3768 | ) -> BOOL; | |
3769 | pub fn HiliteMenuItem( | |
3770 | hWnd: HWND, | |
3771 | hMenu: HMENU, | |
3772 | uIDHiliteItem: UINT, | |
3773 | uHilite: UINT, | |
3774 | ) -> BOOL; | |
3775 | pub fn GetMenuStringA( | |
3776 | hMenu: HMENU, | |
3777 | uIDItem: UINT, | |
3778 | lpString: LPSTR, | |
3779 | cchMax: c_int, | |
3780 | flags: UINT, | |
3781 | ) -> c_int; | |
3782 | pub fn GetMenuStringW( | |
3783 | hMenu: HMENU, | |
3784 | uIDItem: UINT, | |
3785 | lpString: LPWSTR, | |
3786 | cchMax: c_int, | |
3787 | flags: UINT, | |
3788 | ) -> c_int; | |
3789 | pub fn GetMenuState( | |
3790 | hMenu: HMENU, | |
3791 | uId: UINT, | |
3792 | uFlags: UINT, | |
3793 | ) -> UINT; | |
3794 | pub fn DrawMenuBar( | |
3795 | hwnd: HWND, | |
3796 | ) -> BOOL; | |
3797 | } | |
3798 | pub const PMB_ACTIVE: DWORD = 0x00000001; | |
3799 | extern "system" { | |
3800 | pub fn GetSystemMenu( | |
3801 | hWnd: HWND, | |
3802 | bRevert: BOOL, | |
3803 | ) -> HMENU; | |
3804 | pub fn CreateMenu() -> HMENU; | |
3805 | pub fn CreatePopupMenu() ->HMENU; | |
3806 | pub fn DestroyMenu( | |
3807 | hMenu: HMENU, | |
3808 | ) -> BOOL; | |
3809 | pub fn CheckMenuItem( | |
3810 | hMenu: HMENU, | |
3811 | uIDCheckItem: UINT, | |
3812 | uCheck: UINT, | |
3813 | ) -> DWORD; | |
3814 | pub fn EnableMenuItem( | |
3815 | hMenu: HMENU, | |
3816 | uIDEnableItem: UINT, | |
3817 | uEnable: UINT, | |
3818 | ) -> BOOL; | |
3819 | pub fn GetSubMenu( | |
3820 | hMenu: HMENU, | |
3821 | nPos: c_int, | |
3822 | ) -> HMENU; | |
3823 | pub fn GetMenuItemID( | |
3824 | hMenu: HMENU, | |
3825 | nPos: c_int, | |
3826 | ) -> UINT; | |
3827 | pub fn GetMenuItemCount( | |
3828 | hMenu: HMENU, | |
3829 | ) -> c_int; | |
3830 | pub fn InsertMenuA( | |
3831 | hMenu: HMENU, | |
3832 | uPosition: UINT, | |
3833 | uFlags: UINT, | |
3834 | uIDNewItem: UINT_PTR, | |
3835 | lpNewItem: LPCSTR, | |
3836 | ) -> BOOL; | |
3837 | pub fn InsertMenuW( | |
3838 | hMenu: HMENU, | |
3839 | uPosition: UINT, | |
3840 | uFlags: UINT, | |
3841 | uIDNewItem: UINT_PTR, | |
3842 | lpNewItem: LPCWSTR, | |
3843 | ) -> BOOL; | |
3844 | pub fn AppendMenuA( | |
3845 | hMenu: HMENU, | |
3846 | uFlags: UINT, | |
3847 | uIDNewItem: UINT_PTR, | |
3848 | lpNewItem: LPCSTR, | |
3849 | ) -> BOOL; | |
3850 | pub fn AppendMenuW( | |
3851 | hMenu: HMENU, | |
3852 | uFlags: UINT, | |
3853 | uIDNewItem: UINT_PTR, | |
3854 | lpNewItem: LPCWSTR, | |
3855 | ) -> BOOL; | |
3856 | pub fn ModifyMenuA( | |
3857 | hMnu: HMENU, | |
3858 | uPosition: UINT, | |
3859 | uFlags: UINT, | |
3860 | uIDNewItem: UINT_PTR, | |
3861 | lpNewItem: LPCSTR, | |
3862 | ) -> BOOL; | |
3863 | pub fn ModifyMenuW( | |
3864 | hMnu: HMENU, | |
3865 | uPosition: UINT, | |
3866 | uFlags: UINT, | |
3867 | uIDNewItem: UINT_PTR, | |
3868 | lpNewItem: LPCWSTR, | |
3869 | ) -> BOOL; | |
3870 | pub fn RemoveMenu( | |
3871 | hMenu: HMENU, | |
3872 | uPosition: UINT, | |
3873 | uFlags: UINT, | |
3874 | ) -> BOOL; | |
3875 | pub fn DeleteMenu( | |
3876 | hMenu: HMENU, | |
3877 | uPosition: UINT, | |
3878 | uFlags: UINT, | |
3879 | ) -> BOOL; | |
3880 | pub fn SetMenuItemBitmaps( | |
3881 | hMenu: HMENU, | |
3882 | uPosition: UINT, | |
3883 | uFlags: UINT, | |
3884 | hBitmapUnchecked: HBITMAP, | |
3885 | hBitmapChecked: HBITMAP, | |
3886 | ) -> BOOL; | |
3887 | pub fn GetMenuCheckMarkDimensions() -> LONG; | |
3888 | pub fn TrackPopupMenu( | |
3889 | hMenu: HMENU, | |
3890 | uFlags: UINT, | |
3891 | x: c_int, | |
3892 | y: c_int, | |
3893 | nReserved: c_int, | |
3894 | hWnd: HWND, | |
3895 | prcRect: *const RECT, | |
3896 | ) -> BOOL; | |
3897 | } | |
3898 | pub const MNC_IGNORE: DWORD = 0; | |
3899 | pub const MNC_CLOSE: DWORD = 1; | |
3900 | pub const MNC_EXECUTE: DWORD = 2; | |
3901 | pub const MNC_SELECT: DWORD = 3; | |
3902 | STRUCT!{struct TPMPARAMS { | |
3903 | cbSize: UINT, | |
3904 | rcExclude: RECT, | |
3905 | }} | |
3906 | pub type LPTPMPARAMS = *mut TPMPARAMS; | |
3907 | extern "system" { | |
3908 | pub fn TrackPopupMenuEx( | |
3909 | hMenu: HMENU, | |
3910 | uFlags: UINT, | |
3911 | x: INT, | |
3912 | y: INT, | |
3913 | hwnd: HWND, | |
3914 | lptpm: LPTPMPARAMS, | |
3915 | ) -> BOOL; | |
3916 | pub fn CalculatePopupWindowPosition( | |
3917 | anchorPoint: *const POINT, | |
3918 | windowSize: *const SIZE, | |
3919 | flags: UINT, | |
3920 | excludeRect: *mut RECT, | |
3921 | popupWindowPosition: *mut RECT, | |
3922 | ) -> BOOL; | |
3923 | } | |
3924 | pub const MNS_NOCHECK: DWORD = 0x80000000; | |
3925 | pub const MNS_MODELESS: DWORD = 0x40000000; | |
3926 | pub const MNS_DRAGDROP: DWORD = 0x20000000; | |
3927 | pub const MNS_AUTODISMISS: DWORD = 0x10000000; | |
3928 | pub const MNS_NOTIFYBYPOS: DWORD = 0x08000000; | |
3929 | pub const MNS_CHECKORBMP: DWORD = 0x04000000; | |
3930 | pub const MIM_MAXHEIGHT: DWORD = 0x00000001; | |
3931 | pub const MIM_BACKGROUND: DWORD = 0x00000002; | |
3932 | pub const MIM_HELPID: DWORD = 0x00000004; | |
3933 | pub const MIM_MENUDATA: DWORD = 0x00000008; | |
3934 | pub const MIM_STYLE: DWORD = 0x00000010; | |
3935 | pub const MIM_APPLYTOSUBMENUS: DWORD = 0x80000000; | |
3936 | STRUCT!{struct MENUINFO { | |
3937 | cbSize: DWORD, | |
3938 | fMask: DWORD, | |
3939 | dwStyle: DWORD, | |
3940 | cyMax: UINT, | |
3941 | hbrBack: HBRUSH, | |
3942 | dwContextHelpID: DWORD, | |
3943 | dwMenuData: ULONG_PTR, | |
3944 | }} | |
3945 | pub type LPMENUINFO = *mut MENUINFO; | |
3946 | pub type LPCMENUINFO = *const MENUINFO; | |
3947 | extern "system" { | |
3948 | pub fn GetMenuInfo( | |
3949 | hMenu: HMENU, | |
3950 | lpcmi: LPMENUINFO, | |
3951 | ) -> BOOL; | |
3952 | pub fn SetMenuInfo( | |
3953 | hMenu: HMENU, | |
3954 | lpcmi: LPCMENUINFO, | |
3955 | ) -> BOOL; | |
3956 | pub fn EndMenu( | |
3957 | hMenu: HMENU, | |
3958 | uFlags: UINT, | |
3959 | uIDNewItem: UINT_PTR, | |
3960 | lpNewItem: LPCSTR, | |
3961 | ) -> BOOL; | |
3962 | } | |
3963 | pub const MND_CONTINUE: DWORD = 0; | |
3964 | pub const MND_ENDMENU: DWORD = 1; | |
3965 | STRUCT!{struct MENUGETOBJECTINFO { | |
3966 | dwFlags: DWORD, | |
3967 | uPos: UINT, | |
3968 | hmenu: HMENU, | |
3969 | riid: PVOID, | |
3970 | pvObj: PVOID, | |
3971 | }} | |
3972 | pub type PMENUGETOBJECTINFO = *mut MENUGETOBJECTINFO; | |
3973 | pub const MNGOF_TOPGAP: DWORD = 0x00000001; | |
3974 | pub const MNGOF_BOTTOMGAP: DWORD = 0x00000002; | |
3975 | pub const MNGO_NOINTERFACE: DWORD = 0x00000000; | |
3976 | pub const MNGO_NOERROR: DWORD = 0x00000001; | |
3977 | pub const MIIM_STATE: DWORD = 0x00000001; | |
3978 | pub const MIIM_ID: DWORD = 0x00000002; | |
3979 | pub const MIIM_SUBMENU: DWORD = 0x00000004; | |
3980 | pub const MIIM_CHECKMARKS: DWORD = 0x00000008; | |
3981 | pub const MIIM_TYPE: DWORD = 0x00000010; | |
3982 | pub const MIIM_DATA: DWORD = 0x00000020; | |
3983 | pub const MIIM_STRING: DWORD = 0x00000040; | |
3984 | pub const MIIM_BITMAP: DWORD = 0x00000080; | |
3985 | pub const MIIM_FTYPE: DWORD = 0x00000100; | |
3986 | pub const HBMMENU_CALLBACK: HBITMAP = -1isize as HBITMAP; | |
3987 | pub const HBMMENU_SYSTEM: HBITMAP = 1 as HBITMAP; | |
3988 | pub const HBMMENU_MBAR_RESTORE: HBITMAP = 2 as HBITMAP; | |
3989 | pub const HBMMENU_MBAR_MINIMIZE: HBITMAP = 3 as HBITMAP; | |
3990 | pub const HBMMENU_MBAR_CLOSE: HBITMAP = 5 as HBITMAP; | |
3991 | pub const HBMMENU_MBAR_CLOSE_D: HBITMAP = 6 as HBITMAP; | |
3992 | pub const HBMMENU_MBAR_MINIMIZE_D: HBITMAP = 7 as HBITMAP; | |
3993 | pub const HBMMENU_POPUP_CLOSE: HBITMAP = 8 as HBITMAP; | |
3994 | pub const HBMMENU_POPUP_RESTORE: HBITMAP = 9 as HBITMAP; | |
3995 | pub const HBMMENU_POPUP_MAXIMIZE: HBITMAP = 10 as HBITMAP; | |
3996 | pub const HBMMENU_POPUP_MINIMIZE: HBITMAP = 11 as HBITMAP; | |
3997 | STRUCT!{struct MENUITEMINFOA { | |
3998 | cbSize: UINT, | |
3999 | fMask: UINT, | |
4000 | fType: UINT, | |
4001 | fState: UINT, | |
4002 | wID: UINT, | |
4003 | hSubMenu: HMENU, | |
4004 | hbmpChecked: HBITMAP, | |
4005 | hbmpUnchecked: HBITMAP, | |
4006 | dwItemData: ULONG_PTR, | |
4007 | dwTypeData: LPSTR, | |
4008 | cch: UINT, | |
4009 | hbmpItem: HBITMAP, | |
4010 | }} | |
4011 | pub type LPMENUITEMINFOA = *mut MENUITEMINFOA; | |
4012 | pub type LPCMENUITEMINFOA = *const MENUITEMINFOA; | |
4013 | STRUCT!{struct MENUITEMINFOW { | |
4014 | cbSize: UINT, | |
4015 | fMask: UINT, | |
4016 | fType: UINT, | |
4017 | fState: UINT, | |
4018 | wID: UINT, | |
4019 | hSubMenu: HMENU, | |
4020 | hbmpChecked: HBITMAP, | |
4021 | hbmpUnchecked: HBITMAP, | |
4022 | dwItemData: ULONG_PTR, | |
4023 | dwTypeData: LPWSTR, | |
4024 | cch: UINT, | |
4025 | hbmpItem: HBITMAP, | |
4026 | }} | |
4027 | pub type LPMENUITEMINFOW = *mut MENUITEMINFOW; | |
4028 | pub type LPCMENUITEMINFOW = *const MENUITEMINFOW; | |
4029 | extern "system" { | |
4030 | pub fn InsertMenuItemA( | |
4031 | hmenu: HMENU, | |
4032 | item: UINT, | |
4033 | fByPosition: BOOL, | |
4034 | lpmi: LPCMENUITEMINFOA, | |
4035 | ) -> BOOL; | |
4036 | pub fn InsertMenuItemW( | |
4037 | hmenu: HMENU, | |
4038 | item: UINT, | |
4039 | fByPosition: BOOL, | |
4040 | lpmi: LPCMENUITEMINFOW, | |
4041 | ) -> BOOL; | |
4042 | pub fn GetMenuItemInfoA( | |
4043 | hMenu: HMENU, | |
4044 | uItem: UINT, | |
4045 | fByPosition: BOOL, | |
60c5eb7d | 4046 | lpmii: LPMENUITEMINFOA, |
ff7c6d11 XL |
4047 | ) -> BOOL; |
4048 | pub fn GetMenuItemInfoW( | |
4049 | hMenu: HMENU, | |
4050 | uItem: UINT, | |
4051 | fByPosition: BOOL, | |
60c5eb7d | 4052 | lpmii: LPMENUITEMINFOW, |
ff7c6d11 XL |
4053 | ) -> BOOL; |
4054 | pub fn SetMenuItemInfoA( | |
4055 | hmenu: HMENU, | |
4056 | item: UINT, | |
4057 | fByPositon: BOOL, | |
4058 | lpmii: LPCMENUITEMINFOA, | |
4059 | ) -> BOOL; | |
4060 | pub fn SetMenuItemInfoW( | |
4061 | hmenu: HMENU, | |
4062 | item: UINT, | |
4063 | fByPositon: BOOL, | |
4064 | lpmii: LPCMENUITEMINFOW, | |
4065 | ) -> BOOL; | |
4066 | } | |
4067 | pub const GMDI_USEDISABLED: DWORD = 0x0001; | |
4068 | pub const GMDI_GOINTOPOPUPS: DWORD = 0x0002; | |
4069 | extern "system" { | |
4070 | pub fn GetMenuDefaultItem( | |
4071 | hMenu: HMENU, | |
4072 | fByPos: UINT, | |
4073 | gmdiFlags: UINT, | |
4074 | ) -> UINT; | |
4075 | pub fn SetMenuDefaultItem( | |
4076 | hMenu: HMENU, | |
4077 | uItem: UINT, | |
4078 | fByPos: UINT, | |
4079 | ) -> BOOL; | |
4080 | pub fn GetMenuItemRect( | |
4081 | hWnd: HWND, | |
4082 | hMenu: HMENU, | |
4083 | uItem: UINT, | |
4084 | lprcItem: LPRECT, | |
4085 | ) -> BOOL; | |
4086 | pub fn MenuItemFromPoint( | |
4087 | hWnd: HWND, | |
4088 | hMenu: HMENU, | |
4089 | ptScreen: POINT, | |
4090 | ) -> c_int; | |
4091 | } | |
4092 | pub const TPM_LEFTBUTTON: UINT = 0x0000; | |
4093 | pub const TPM_RIGHTBUTTON: UINT = 0x0002; | |
4094 | pub const TPM_LEFTALIGN: UINT = 0x0000; | |
4095 | pub const TPM_CENTERALIGN: UINT = 0x0004; | |
4096 | pub const TPM_RIGHTALIGN: UINT = 0x0008; | |
4097 | pub const TPM_TOPALIGN: UINT = 0x0000; | |
4098 | pub const TPM_VCENTERALIGN: UINT = 0x0010; | |
4099 | pub const TPM_BOTTOMALIGN: UINT = 0x0020; | |
4100 | pub const TPM_HORIZONTAL: UINT = 0x0000; | |
4101 | pub const TPM_VERTICAL: UINT = 0x0040; | |
4102 | pub const TPM_NONOTIFY: UINT = 0x0080; | |
4103 | pub const TPM_RETURNCMD: UINT = 0x0100; | |
4104 | pub const TPM_RECURSE: UINT = 0x0001; | |
4105 | pub const TPM_HORPOSANIMATION: UINT = 0x0400; | |
4106 | pub const TPM_HORNEGANIMATION: UINT = 0x0800; | |
4107 | pub const TPM_VERPOSANIMATION: UINT = 0x1000; | |
4108 | pub const TPM_VERNEGANIMATION: UINT = 0x2000; | |
4109 | pub const TPM_NOANIMATION: UINT = 0x4000; | |
4110 | pub const TPM_LAYOUTRTL: UINT = 0x8000; | |
4111 | pub const TPM_WORKAREA: UINT = 0x10000; | |
4112 | STRUCT!{struct DROPSTRUCT { | |
4113 | hwndSource: HWND, | |
4114 | hwndSink: HWND, | |
4115 | wFmt: DWORD, | |
4116 | dwData: ULONG_PTR, | |
4117 | ptDrop: POINT, | |
4118 | dwControlData: DWORD, | |
4119 | }} | |
4120 | pub type PDROPSTRUCT = *mut DROPSTRUCT; | |
4121 | pub type LPDROPSTRUCT = *mut DROPSTRUCT; | |
4122 | pub const DOF_EXECUTABLE: DWORD = 0x8001; | |
4123 | pub const DOF_DOCUMENT: DWORD = 0x8002; | |
4124 | pub const DOF_DIRECTORY: DWORD = 0x8003; | |
4125 | pub const DOF_MULTIPLE: DWORD = 0x8004; | |
4126 | pub const DOF_PROGMAN: DWORD = 0x0001; | |
4127 | pub const DOF_SHELLDATA: DWORD = 0x0002; | |
4128 | pub const DO_DROPFILE: DWORD = 0x454C4946; | |
4129 | pub const DO_PRINTFILE: DWORD = 0x544E5250; | |
4130 | extern "system" { | |
4131 | pub fn DragObject( | |
4132 | hwndParent: HWND, | |
4133 | hwndFrom: HWND, | |
4134 | fmt: UINT, | |
4135 | data: ULONG_PTR, | |
4136 | hcur: HCURSOR, | |
4137 | ) -> DWORD; | |
4138 | pub fn DragDetect( | |
4139 | hwnd: HWND, | |
4140 | pt: POINT, | |
4141 | ) -> BOOL; | |
4142 | pub fn DrawIcon( | |
4143 | hDC: HDC, | |
4144 | x: c_int, | |
4145 | y: c_int, | |
4146 | hIcon: HICON, | |
4147 | ) -> BOOL; | |
4148 | } | |
4149 | pub const DT_TOP: UINT = 0x00000000; | |
4150 | pub const DT_LEFT: UINT = 0x00000000; | |
4151 | pub const DT_CENTER: UINT = 0x00000001; | |
4152 | pub const DT_RIGHT: UINT = 0x00000002; | |
4153 | pub const DT_VCENTER: UINT = 0x00000004; | |
4154 | pub const DT_BOTTOM: UINT = 0x00000008; | |
4155 | pub const DT_WORDBREAK: UINT = 0x00000010; | |
4156 | pub const DT_SINGLELINE: UINT = 0x00000020; | |
4157 | pub const DT_EXPANDTABS: UINT = 0x00000040; | |
4158 | pub const DT_TABSTOP: UINT = 0x00000080; | |
4159 | pub const DT_NOCLIP: UINT = 0x00000100; | |
4160 | pub const DT_EXTERNALLEADING: UINT = 0x00000200; | |
4161 | pub const DT_CALCRECT: UINT = 0x00000400; | |
4162 | pub const DT_NOPREFIX: UINT = 0x00000800; | |
4163 | pub const DT_INTERNAL: UINT = 0x00001000; | |
4164 | pub const DT_EDITCONTROL: UINT = 0x00002000; | |
4165 | pub const DT_PATH_ELLIPSIS: UINT = 0x00004000; | |
4166 | pub const DT_END_ELLIPSIS: UINT = 0x00008000; | |
4167 | pub const DT_MODIFYSTRING: UINT = 0x00010000; | |
4168 | pub const DT_RTLREADING: UINT = 0x00020000; | |
4169 | pub const DT_WORD_ELLIPSIS: UINT = 0x00040000; | |
4170 | pub const DT_NOFULLWIDTHCHARBREAK: UINT = 0x00080000; | |
4171 | pub const DT_HIDEPREFIX: UINT = 0x00100000; | |
4172 | pub const DT_PREFIXONLY: UINT = 0x00200000; | |
4173 | STRUCT!{struct DRAWTEXTPARAMS { | |
4174 | cbSize: UINT, | |
4175 | iTabLength: c_int, | |
4176 | iLeftMargin: c_int, | |
4177 | iRightMargin: c_int, | |
4178 | uiLengthDrawn: UINT, | |
4179 | }} | |
4180 | pub type LPDRAWTEXTPARAMS = *mut DRAWTEXTPARAMS; | |
4181 | extern "system" { | |
4182 | pub fn DrawTextA( | |
4183 | hdc: HDC, | |
4184 | lpchText: LPCSTR, | |
4185 | cchText: c_int, | |
4186 | lprc: LPRECT, | |
4187 | format: UINT, | |
4188 | ) -> c_int; | |
4189 | pub fn DrawTextW( | |
4190 | hdc: HDC, | |
4191 | lpchText: LPCWSTR, | |
4192 | cchText: c_int, | |
4193 | lprc: LPRECT, | |
4194 | format: UINT, | |
4195 | ) -> c_int; | |
4196 | pub fn DrawTextExA( | |
4197 | hdc: HDC, | |
4198 | lpchText: LPCSTR, | |
4199 | cchText: c_int, | |
4200 | lprc: LPRECT, | |
4201 | format: UINT, | |
4202 | lpdtp: LPDRAWTEXTPARAMS, | |
4203 | ) -> c_int; | |
4204 | pub fn DrawTextExW( | |
4205 | hdc: HDC, | |
4206 | lpchText: LPCWSTR, | |
4207 | cchText: c_int, | |
4208 | lprc: LPRECT, | |
4209 | format: UINT, | |
4210 | lpdtp: LPDRAWTEXTPARAMS, | |
4211 | ) -> c_int; | |
4212 | pub fn GrayStringA( | |
4213 | hDC: HDC, | |
4214 | hBrush: HBRUSH, | |
4215 | lpOutputFunc: GRAYSTRINGPROC, | |
4216 | lpData: LPARAM, | |
4217 | nCount: c_int, | |
4218 | X: c_int, | |
4219 | Y: c_int, | |
4220 | nWidth: c_int, | |
4221 | nHeight: c_int, | |
4222 | ) -> BOOL; | |
4223 | pub fn GrayStringW( | |
4224 | hDC: HDC, | |
4225 | hBrush: HBRUSH, | |
4226 | lpOutputFunc: GRAYSTRINGPROC, | |
4227 | lpData: LPARAM, | |
4228 | nCount: c_int, | |
4229 | X: c_int, | |
4230 | Y: c_int, | |
4231 | nWidth: c_int, | |
4232 | nHeight: c_int, | |
4233 | ) -> BOOL; | |
4234 | } | |
4235 | pub const DST_COMPLEX: UINT = 0x0000; | |
4236 | pub const DST_TEXT: UINT = 0x0001; | |
4237 | pub const DST_PREFIXTEXT: UINT = 0x0002; | |
4238 | pub const DST_ICON: UINT = 0x0003; | |
4239 | pub const DST_BITMAP: UINT = 0x0004; | |
4240 | pub const DSS_NORMAL: UINT = 0x0000; | |
4241 | pub const DSS_UNION: UINT = 0x0010; | |
4242 | pub const DSS_DISABLED: UINT = 0x0020; | |
4243 | pub const DSS_MONO: UINT = 0x0080; | |
4244 | pub const DSS_HIDEPREFIX: UINT = 0x0200; | |
4245 | pub const DSS_PREFIXONLY: UINT = 0x0400; | |
4246 | pub const DSS_RIGHT: UINT = 0x8000; | |
4247 | extern "system" { | |
4248 | pub fn DrawStateA( | |
4249 | hdc: HDC, | |
4250 | hbrFore: HBRUSH, | |
4251 | qfnCallBack: DRAWSTATEPROC, | |
4252 | lData: LPARAM, | |
4253 | wData: WPARAM, | |
4254 | x: c_int, | |
4255 | y: c_int, | |
4256 | cx: c_int, | |
4257 | cy: c_int, | |
4258 | uFlags: UINT, | |
4259 | ) -> BOOL; | |
4260 | pub fn DrawStateW( | |
4261 | hdc: HDC, | |
4262 | hbrFore: HBRUSH, | |
4263 | qfnCallBack: DRAWSTATEPROC, | |
4264 | lData: LPARAM, | |
4265 | wData: WPARAM, | |
4266 | x: c_int, | |
4267 | y: c_int, | |
4268 | cx: c_int, | |
4269 | cy: c_int, | |
4270 | uFlags: UINT, | |
4271 | ) -> BOOL; | |
4272 | pub fn TabbedTextOutA( | |
4273 | hdc: HDC, | |
4274 | x: c_int, | |
4275 | y: c_int, | |
4276 | lpString: LPCSTR, | |
4277 | chCount: c_int, | |
4278 | nTabPositions: c_int, | |
4279 | lpnTabStopPositions: *const INT, | |
4280 | nTabOrigin: c_int, | |
4281 | ) -> LONG; | |
4282 | pub fn TabbedTextOutW( | |
4283 | hdc: HDC, | |
4284 | x: c_int, | |
4285 | y: c_int, | |
4286 | lpString: LPCWSTR, | |
4287 | chCount: c_int, | |
4288 | nTabPositions: c_int, | |
4289 | lpnTabStopPositions: *const INT, | |
4290 | nTabOrigin: c_int, | |
4291 | ) -> LONG; | |
4292 | pub fn GetTabbedTextExtentA( | |
4293 | hdc: HDC, | |
4294 | lpString: LPCSTR, | |
4295 | chCount: c_int, | |
4296 | nTabPositions: c_int, | |
4297 | lpnTabStopPositions: *const INT, | |
4298 | ) -> DWORD; | |
4299 | pub fn GetTabbedTextExtentW( | |
4300 | hdc: HDC, | |
4301 | lpString: LPCWSTR, | |
4302 | chCount: c_int, | |
4303 | nTabPositions: c_int, | |
4304 | lpnTabStopPositions: *const INT, | |
4305 | ) -> DWORD; | |
4306 | pub fn UpdateWindow( | |
4307 | hWnd: HWND, | |
4308 | ) -> BOOL; | |
4309 | pub fn SetActiveWindow( | |
4310 | hWnd: HWND, | |
4311 | ) -> HWND; | |
4312 | pub fn GetForegroundWindow() -> HWND; | |
4313 | pub fn PaintDesktop( | |
4314 | hdc: HDC, | |
4315 | ) -> BOOL; | |
4316 | pub fn SwitchToThisWindow( | |
4317 | hwnd: HWND, | |
4318 | fUnknown: BOOL, | |
4319 | ); | |
4320 | pub fn SetForegroundWindow( | |
4321 | hWnd: HWND, | |
4322 | ) -> BOOL; | |
4323 | pub fn AllowSetForegroundWindow( | |
4324 | dwProcessId: DWORD, | |
4325 | ) -> BOOL; | |
4326 | } | |
4327 | pub const ASFW_ANY: DWORD = -1i32 as u32; | |
4328 | extern "system" { | |
4329 | pub fn LockSetForegroundWindow( | |
4330 | uLockCode: UINT, | |
4331 | ) -> BOOL; | |
4332 | } | |
4333 | pub const LSFW_LOCK: UINT = 1; | |
4334 | pub const LSFW_UNLOCK: UINT = 2; | |
4335 | extern "system" { | |
4336 | pub fn WindowFromDC( | |
4337 | hDC: HDC, | |
4338 | ) -> HWND; | |
4339 | pub fn GetDC( | |
4340 | hWnd: HWND, | |
4341 | ) -> HDC; | |
4342 | pub fn GetDCEx( | |
4343 | hWnd: HWND, | |
4344 | hrgnClip: HRGN, | |
4345 | flags: DWORD, | |
4346 | ) -> HDC; | |
4347 | } | |
4348 | pub const DCX_WINDOW: DWORD = 0x00000001; | |
4349 | pub const DCX_CACHE: DWORD = 0x00000002; | |
4350 | pub const DCX_NORESETATTRS: DWORD = 0x00000004; | |
4351 | pub const DCX_CLIPCHILDREN: DWORD = 0x00000008; | |
4352 | pub const DCX_CLIPSIBLINGS: DWORD = 0x00000010; | |
4353 | pub const DCX_PARENTCLIP: DWORD = 0x00000020; | |
4354 | pub const DCX_EXCLUDERGN: DWORD = 0x00000040; | |
4355 | pub const DCX_INTERSECTRGN: DWORD = 0x00000080; | |
4356 | pub const DCX_EXCLUDEUPDATE: DWORD = 0x00000100; | |
4357 | pub const DCX_INTERSECTUPDATE: DWORD = 0x00000200; | |
4358 | pub const DCX_LOCKWINDOWUPDATE: DWORD = 0x00000400; | |
4359 | pub const DCX_VALIDATE: DWORD = 0x00200000; | |
4360 | extern "system" { | |
4361 | pub fn GetWindowDC( | |
4362 | hWnd: HWND, | |
4363 | ) -> HDC; | |
4364 | pub fn ReleaseDC( | |
4365 | hWnd: HWND, | |
4366 | hDC: HDC, | |
4367 | ) -> c_int; | |
4368 | pub fn BeginPaint( | |
4369 | hwnd: HWND, | |
4370 | lpPaint: LPPAINTSTRUCT, | |
4371 | ) -> HDC; | |
4372 | pub fn EndPaint( | |
4373 | hWnd: HWND, | |
4374 | lpPaint: *const PAINTSTRUCT, | |
4375 | ) -> BOOL; | |
4376 | pub fn GetUpdateRect( | |
4377 | hWnd: HWND, | |
4378 | lpRect: LPRECT, | |
4379 | bErase: BOOL, | |
4380 | ) -> BOOL; | |
4381 | pub fn GetUpdateRgn( | |
4382 | hWnd: HWND, | |
4383 | hRgn: HRGN, | |
4384 | bErase: BOOL, | |
4385 | ) -> c_int; | |
4386 | pub fn SetWindowRgn( | |
4387 | hWnd: HWND, | |
4388 | hRgn: HRGN, | |
4389 | bRedraw: BOOL, | |
4390 | ) -> c_int; | |
4391 | pub fn GetWindowRgn( | |
4392 | hWnd: HWND, | |
4393 | hRgn: HRGN, | |
4394 | ) -> c_int; | |
4395 | pub fn GetWindowRgnBox( | |
4396 | hWnd: HWND, | |
4397 | lprc: LPRECT, | |
4398 | ) -> c_int; | |
4399 | pub fn ExcludeUpdateRgn( | |
4400 | hDC: HDC, | |
4401 | hWnd: HWND, | |
4402 | ) -> c_int; | |
4403 | pub fn InvalidateRect( | |
4404 | hWnd: HWND, | |
4405 | lpRect: *const RECT, | |
4406 | bErase: BOOL, | |
4407 | ) -> BOOL; | |
4408 | pub fn ValidateRect( | |
4409 | hWnd: HWND, | |
4410 | lpRect: *const RECT, | |
4411 | ) -> BOOL; | |
4412 | pub fn InvalidateRgn( | |
4413 | hWnd: HWND, | |
4414 | hRgn: HRGN, | |
4415 | bErase: BOOL, | |
4416 | ) -> BOOL; | |
4417 | pub fn ValidateRgn( | |
4418 | hWnd: HWND, | |
4419 | hRgn: HRGN, | |
4420 | ) -> BOOL; | |
4421 | pub fn RedrawWindow( | |
4422 | hwnd: HWND, | |
4423 | lprcUpdate: *const RECT, | |
4424 | hrgnUpdate: HRGN, | |
4425 | flags: UINT, | |
4426 | ) -> BOOL; | |
4427 | } | |
4428 | pub const RDW_INVALIDATE: UINT = 0x0001; | |
4429 | pub const RDW_INTERNALPAINT: UINT = 0x0002; | |
4430 | pub const RDW_ERASE: UINT = 0x0004; | |
4431 | pub const RDW_VALIDATE: UINT = 0x0008; | |
4432 | pub const RDW_NOINTERNALPAINT: UINT = 0x0010; | |
4433 | pub const RDW_NOERASE: UINT = 0x0020; | |
4434 | pub const RDW_NOCHILDREN: UINT = 0x0040; | |
4435 | pub const RDW_ALLCHILDREN: UINT = 0x0080; | |
4436 | pub const RDW_UPDATENOW: UINT = 0x0100; | |
4437 | pub const RDW_ERASENOW: UINT = 0x0200; | |
4438 | pub const RDW_FRAME: UINT = 0x0400; | |
4439 | pub const RDW_NOFRAME: UINT = 0x0800; | |
4440 | extern "system" { | |
4441 | pub fn LockWindowUpdate( | |
4442 | hWndLock: HWND, | |
4443 | ) -> BOOL; | |
4444 | pub fn ScrollWindow( | |
4445 | hWnd: HWND, | |
4446 | xAmount: c_int, | |
4447 | yAmount: c_int, | |
4448 | lpRect: *const RECT, | |
4449 | lpClipRect: *const RECT, | |
4450 | ) -> BOOL; | |
4451 | pub fn ScrollDC( | |
4452 | hDC: HDC, | |
4453 | dx: c_int, | |
4454 | dy: c_int, | |
4455 | lprcScroll: *const RECT, | |
4456 | lprcClip: *const RECT, | |
4457 | hrgnUpdate: HRGN, | |
4458 | lprcUpdate: LPRECT, | |
4459 | ) -> BOOL; | |
4460 | pub fn ScrollWindowEx( | |
4461 | hWnd: HWND, | |
4462 | dx: c_int, | |
4463 | dy: c_int, | |
4464 | prcScroll: *const RECT, | |
4465 | prcClip: *const RECT, | |
4466 | hrgnUpdate: HRGN, | |
4467 | prcUpdate: LPRECT, | |
4468 | flags: UINT, | |
4469 | ) -> c_int; | |
4470 | } | |
4471 | pub const SW_SCROLLCHILDREN: UINT = 0x0001; | |
4472 | pub const SW_INVALIDATE: UINT = 0x0002; | |
4473 | pub const SW_ERASE: UINT = 0x0004; | |
4474 | pub const SW_SMOOTHSCROLL: UINT = 0x0010; | |
4475 | extern "system" { | |
4476 | pub fn SetScrollPos( | |
4477 | hWnd: HWND, | |
4478 | nBar: c_int, | |
4479 | nPos: c_int, | |
4480 | bRedraw: BOOL, | |
4481 | ) -> c_int; | |
4482 | pub fn GetScrollPos( | |
4483 | hWnd: HWND, | |
4484 | nBar: c_int, | |
4485 | ) -> c_int; | |
4486 | pub fn SetScrollRange( | |
4487 | hWnd: HWND, | |
4488 | nBar: c_int, | |
4489 | nMinPos: c_int, | |
4490 | nMaxPos: c_int, | |
4491 | bRedraw: BOOL, | |
4492 | ) -> BOOL; | |
4493 | pub fn GetScrollRange( | |
4494 | hWnd: HWND, | |
4495 | nBar: c_int, | |
4496 | lpMinPos: LPINT, | |
4497 | lpMaxPos: LPINT, | |
4498 | ) -> BOOL; | |
4499 | pub fn ShowScrollBar( | |
4500 | hWnd: HWND, | |
4501 | wBar: c_int, | |
4502 | bShow: BOOL, | |
4503 | ) -> BOOL; | |
4504 | pub fn EnableScrollBar( | |
4505 | hWnd: HWND, | |
4506 | wSBflags: UINT, | |
4507 | wArrows: UINT, | |
4508 | ) -> BOOL; | |
4509 | } | |
4510 | pub const ESB_ENABLE_BOTH: UINT = 0x0000; | |
4511 | pub const ESB_DISABLE_BOTH: UINT = 0x0003; | |
4512 | pub const ESB_DISABLE_LEFT: UINT = 0x0001; | |
4513 | pub const ESB_DISABLE_RIGHT: UINT = 0x0002; | |
4514 | pub const ESB_DISABLE_UP: UINT = 0x0001; | |
4515 | pub const ESB_DISABLE_DOWN: UINT = 0x0002; | |
4516 | pub const ESB_DISABLE_LTUP: UINT = ESB_DISABLE_LEFT; | |
4517 | pub const ESB_DISABLE_RTDN: UINT = ESB_DISABLE_RIGHT; | |
4518 | extern "system" { | |
4519 | pub fn SetPropA( | |
4520 | hWnd: HWND, | |
4521 | lpString: LPCSTR, | |
4522 | hData: HANDLE, | |
4523 | ) -> BOOL; | |
4524 | pub fn SetPropW( | |
4525 | hWnd: HWND, | |
4526 | lpString: LPCWSTR, | |
4527 | hData: HANDLE, | |
4528 | ) -> BOOL; | |
4529 | pub fn GetPropA( | |
4530 | hwnd: HWND, | |
4531 | lpString: LPCSTR, | |
4532 | ) -> HANDLE; | |
4533 | pub fn GetPropW( | |
4534 | hwnd: HWND, | |
4535 | lpString: LPCWSTR, | |
4536 | ) -> HANDLE; | |
4537 | pub fn RemovePropA( | |
4538 | hWnd: HWND, | |
4539 | lpStr: LPCSTR, | |
4540 | ) -> HANDLE; | |
4541 | pub fn RemovePropW( | |
4542 | hWnd: HWND, | |
4543 | lpStr: LPCWSTR, | |
4544 | ) -> HANDLE; | |
4545 | pub fn EnumPropsExA( | |
4546 | hWnd: HWND, | |
4547 | lpEnumFunc: PROPENUMPROCA, | |
4548 | lParam: LPARAM, | |
4549 | ) -> c_int; | |
4550 | pub fn EnumPropsExW( | |
4551 | hWnd: HWND, | |
4552 | lpEnumFunc: PROPENUMPROCW, | |
4553 | lParam: LPARAM, | |
4554 | ) -> c_int; | |
4555 | pub fn EnumPropsA( | |
4556 | hWnd: HWND, | |
4557 | lpEnumFunc: PROPENUMPROCA, | |
4558 | ) -> c_int; | |
4559 | pub fn EnumPropsW( | |
4560 | hWnd: HWND, | |
4561 | lpEnumFunc: PROPENUMPROCW, | |
4562 | ) -> c_int; | |
4563 | pub fn SetWindowTextA( | |
4564 | hWnd: HWND, | |
4565 | lpString: LPCSTR, | |
4566 | ) -> BOOL; | |
4567 | pub fn SetWindowTextW( | |
4568 | hWnd: HWND, | |
4569 | lpString: LPCWSTR, | |
4570 | ) -> BOOL; | |
4571 | pub fn GetWindowTextA( | |
4572 | hWnd: HWND, | |
4573 | lpString: LPSTR, | |
4574 | nMaxCount: c_int, | |
4575 | ) -> c_int; | |
4576 | pub fn GetWindowTextW( | |
4577 | hWnd: HWND, | |
4578 | lpString: LPWSTR, | |
4579 | nMaxCount: c_int, | |
4580 | ) -> c_int; | |
4581 | pub fn GetWindowTextLengthA( | |
4582 | hWnd: HWND, | |
4583 | ) -> c_int; | |
4584 | pub fn GetWindowTextLengthW( | |
4585 | hWnd: HWND, | |
4586 | ) -> c_int; | |
4587 | pub fn GetClientRect( | |
4588 | hWnd: HWND, | |
4589 | lpRect: LPRECT, | |
4590 | ) -> BOOL; | |
4591 | pub fn GetWindowRect( | |
4592 | hWnd: HWND, | |
4593 | lpRect: LPRECT, | |
4594 | ) -> BOOL; | |
4595 | pub fn AdjustWindowRect( | |
4596 | lpRect: LPRECT, | |
4597 | dwStyle: DWORD, | |
4598 | bMenu: BOOL, | |
4599 | ) -> BOOL; | |
4600 | pub fn AdjustWindowRectEx( | |
4601 | lpRect: LPRECT, | |
4602 | dwStyle: DWORD, | |
4603 | bMenu: BOOL, | |
4604 | dwExStyle: DWORD, | |
4605 | ) -> BOOL; | |
4606 | pub fn AdjustWindowRectExForDpi( | |
4607 | lpRect: LPRECT, | |
4608 | dwStyle: DWORD, | |
4609 | bMenu: BOOL, | |
4610 | dwExStyle: DWORD, | |
4611 | dpi: UINT, | |
4612 | ) -> BOOL; | |
4613 | } | |
4614 | pub const HELPINFO_WINDOW: UINT = 0x0001; | |
4615 | pub const HELPINFO_MENUITEM: UINT = 0x0002; | |
4616 | STRUCT!{struct HELPINFO { | |
4617 | cbSize: UINT, | |
4618 | iContextType: c_int, | |
4619 | iCtrlId: c_int, | |
4620 | hItemHandle: HANDLE, | |
4621 | dwContextId: DWORD, | |
4622 | MousePos: POINT, | |
4623 | }} | |
4624 | pub type LPHELPINFO = *mut HELPINFO; | |
4625 | extern "system" { | |
4626 | pub fn SetWindowContextHelpId( | |
4627 | _: HWND, | |
4628 | _: DWORD, | |
4629 | ) -> BOOL; | |
4630 | pub fn GetWindowContextHelpId( | |
4631 | _: HWND, | |
4632 | ) -> DWORD; | |
4633 | pub fn SetMenuContextHelpId( | |
4634 | _: HMENU, | |
4635 | _: DWORD, | |
4636 | ) -> BOOL; | |
4637 | pub fn GetMenuContextHelpId( | |
4638 | _: HMENU, | |
4639 | ) -> DWORD; | |
4640 | } | |
4641 | pub const MB_OK: UINT = 0x00000000; | |
4642 | pub const MB_OKCANCEL: UINT = 0x00000001; | |
4643 | pub const MB_ABORTRETRYIGNORE: UINT = 0x00000002; | |
4644 | pub const MB_YESNOCANCEL: UINT = 0x00000003; | |
4645 | pub const MB_YESNO: UINT = 0x00000004; | |
4646 | pub const MB_RETRYCANCEL: UINT = 0x00000005; | |
4647 | pub const MB_CANCELTRYCONTINUE: UINT = 0x00000006; | |
4648 | pub const MB_ICONHAND: UINT = 0x00000010; | |
4649 | pub const MB_ICONQUESTION: UINT = 0x00000020; | |
4650 | pub const MB_ICONEXCLAMATION: UINT = 0x00000030; | |
4651 | pub const MB_ICONASTERISK: UINT = 0x00000040; | |
4652 | pub const MB_USERICON: UINT = 0x00000080; | |
4653 | pub const MB_ICONWARNING: UINT = MB_ICONEXCLAMATION; | |
4654 | pub const MB_ICONERROR: UINT = MB_ICONHAND; | |
4655 | pub const MB_ICONINFORMATION: UINT = MB_ICONASTERISK; | |
4656 | pub const MB_ICONSTOP: UINT = MB_ICONHAND; | |
4657 | pub const MB_DEFBUTTON1: UINT = 0x00000000; | |
4658 | pub const MB_DEFBUTTON2: UINT = 0x00000100; | |
4659 | pub const MB_DEFBUTTON3: UINT = 0x00000200; | |
4660 | pub const MB_DEFBUTTON4: UINT = 0x00000300; | |
4661 | pub const MB_APPLMODAL: UINT = 0x00000000; | |
4662 | pub const MB_SYSTEMMODAL: UINT = 0x00001000; | |
4663 | pub const MB_TASKMODAL: UINT = 0x00002000; | |
4664 | pub const MB_HELP: UINT = 0x00004000; | |
4665 | pub const MB_NOFOCUS: UINT = 0x00008000; | |
4666 | pub const MB_SETFOREGROUND: UINT = 0x00010000; | |
4667 | pub const MB_DEFAULT_DESKTOP_ONLY: UINT = 0x00020000; | |
4668 | pub const MB_TOPMOST: UINT = 0x00040000; | |
4669 | pub const MB_RIGHT: UINT = 0x00080000; | |
4670 | pub const MB_RTLREADING: UINT = 0x00100000; | |
4671 | pub const MB_SERVICE_NOTIFICATION: UINT = 0x00200000; | |
4672 | pub const MB_SERVICE_NOTIFICATION_NT3X: UINT = 0x00040000; | |
4673 | pub const MB_TYPEMASK: UINT = 0x0000000F; | |
4674 | pub const MB_ICONMASK: UINT = 0x000000F0; | |
4675 | pub const MB_DEFMASK: UINT = 0x00000F00; | |
4676 | pub const MB_MODEMASK: UINT = 0x00003000; | |
4677 | pub const MB_MISCMASK: UINT = 0x0000C000; | |
4678 | extern "system" { | |
4679 | pub fn MessageBoxA( | |
4680 | hWnd: HWND, | |
4681 | lpText: LPCSTR, | |
4682 | lpCaption: LPCSTR, | |
4683 | uType: UINT, | |
4684 | ) -> c_int; | |
4685 | pub fn MessageBoxW( | |
4686 | hWnd: HWND, | |
4687 | lpText: LPCWSTR, | |
4688 | lpCaption: LPCWSTR, | |
4689 | uType: UINT, | |
4690 | ) -> c_int; | |
4691 | pub fn MessageBoxExA( | |
4692 | hWnd: HWND, | |
4693 | lpText: LPCSTR, | |
4694 | lpCaption: LPCSTR, | |
4695 | uType: UINT, | |
4696 | wLanguageId: WORD, | |
4697 | ) -> c_int; | |
4698 | pub fn MessageBoxExW( | |
4699 | hWnd: HWND, | |
4700 | lpText: LPCWSTR, | |
4701 | lpCaption: LPCWSTR, | |
4702 | uType: UINT, | |
4703 | wLanguageId: WORD, | |
4704 | ) -> c_int; | |
4705 | } | |
60c5eb7d XL |
4706 | FN!{stdcall MSGBOXCALLBACK( |
4707 | LPHELPINFO, | |
4708 | ) -> ()} | |
ff7c6d11 XL |
4709 | STRUCT!{struct MSGBOXPARAMSA { |
4710 | cbSize: UINT, | |
4711 | hwndOwner: HWND, | |
4712 | hInstance: HINSTANCE, | |
4713 | lpszText: LPCSTR, | |
4714 | lpszCaption: LPCSTR, | |
4715 | dwStyle: DWORD, | |
4716 | lpszIcon: LPCSTR, | |
4717 | dwContextHelpId: DWORD_PTR, | |
4718 | lpfnMsgBoxCallback: MSGBOXCALLBACK, | |
4719 | dwLanguageId: DWORD, | |
4720 | }} | |
4721 | pub type PMSGBOXPARAMSA = *mut MSGBOXPARAMSA; | |
4722 | pub type LPMSGBOXPARAMSA = *mut MSGBOXPARAMSA; | |
4723 | STRUCT!{struct MSGBOXPARAMSW { | |
4724 | cbSize: UINT, | |
4725 | hwndOwner: HWND, | |
4726 | hInstance: HINSTANCE, | |
4727 | lpszText: LPCWSTR, | |
4728 | lpszCaption: LPCWSTR, | |
4729 | dwStyle: DWORD, | |
4730 | lpszIcon: LPCWSTR, | |
4731 | dwContextHelpId: DWORD_PTR, | |
4732 | lpfnMsgBoxCallback: MSGBOXCALLBACK, | |
4733 | dwLanguageId: DWORD, | |
4734 | }} | |
4735 | pub type PMSGBOXPARAMSW = *mut MSGBOXPARAMSW; | |
4736 | pub type LPMSGBOXPARAMSW = *mut MSGBOXPARAMSW; | |
4737 | extern "system" { | |
4738 | pub fn MessageBoxIndirectA( | |
4739 | lpmbp: *const MSGBOXPARAMSA, | |
4740 | ) -> c_int; | |
4741 | pub fn MessageBoxIndirectW( | |
4742 | lpmbp: *const MSGBOXPARAMSW, | |
4743 | ) -> c_int; | |
4744 | pub fn MessageBeep( | |
4745 | uType: UINT, | |
4746 | ) -> BOOL; | |
4747 | pub fn ShowCursor( | |
4748 | bShow: BOOL, | |
4749 | ) -> c_int; | |
4750 | pub fn SetCursorPos( | |
4751 | X: c_int, | |
4752 | Y: c_int, | |
4753 | ) -> BOOL; | |
4754 | pub fn SetPhysicalCursorPos( | |
4755 | X: c_int, | |
4756 | Y: c_int, | |
4757 | ) -> BOOL; | |
4758 | pub fn SetCursor( | |
4759 | hCursor: HCURSOR, | |
4760 | ) -> HCURSOR; | |
4761 | pub fn GetCursorPos( | |
4762 | lpPoint: LPPOINT, | |
4763 | ) -> BOOL; | |
4764 | pub fn GetPhysicalCursorPos( | |
4765 | lpPoint: LPPOINT, | |
4766 | ) -> BOOL; | |
4767 | pub fn GetClipCursor( | |
4768 | lpRect: LPRECT, | |
4769 | ) -> BOOL; | |
4770 | pub fn GetCursor() -> HCURSOR; | |
4771 | pub fn CreateCaret( | |
4772 | hWnd: HWND, | |
4773 | hBitmap: HBITMAP, | |
4774 | nWidth: c_int, | |
4775 | nHeight: c_int, | |
4776 | ) -> BOOL; | |
4777 | pub fn GetCaretBlinkTime() -> UINT; | |
4778 | pub fn SetCaretBlinkTime( | |
4779 | uMSeconds: UINT, | |
4780 | ) -> BOOL; | |
4781 | pub fn DestroyCaret() -> BOOL; | |
4782 | pub fn HideCaret( | |
4783 | hWnd: HWND, | |
4784 | ) -> BOOL; | |
4785 | pub fn ShowCaret( | |
4786 | hWnd: HWND, | |
4787 | ) -> BOOL; | |
4788 | pub fn SetCaretPos( | |
4789 | X: c_int, | |
4790 | Y: c_int, | |
4791 | ) -> BOOL; | |
4792 | pub fn GetCaretPos( | |
4793 | lpPoint: LPPOINT, | |
4794 | ) -> BOOL; | |
4795 | pub fn ClientToScreen( | |
4796 | hWnd: HWND, | |
4797 | lpPoint: LPPOINT, | |
4798 | ) -> BOOL; | |
4799 | pub fn ScreenToClient( | |
4800 | hWnd: HWND, | |
4801 | lpPoint: LPPOINT, | |
4802 | ) -> BOOL; | |
4803 | pub fn LogicalToPhysicalPoint( | |
4804 | hWnd: HWND, | |
4805 | lpPoint: LPPOINT, | |
4806 | ) -> BOOL; | |
4807 | pub fn PhysicalToLogicalPoint( | |
4808 | hWnd: HWND, | |
4809 | lpPoint: LPPOINT, | |
4810 | ) -> BOOL; | |
4811 | pub fn LogicalToPhysicalPointForPerMonitorDPI( | |
4812 | hWnd: HWND, | |
4813 | lpPoint: LPPOINT, | |
4814 | ) -> BOOL; | |
4815 | pub fn PhysicalToLogicalPointForPerMonitorDPI( | |
4816 | hWnd: HWND, | |
4817 | lpPoint: LPPOINT, | |
4818 | ) -> BOOL; | |
4819 | pub fn MapWindowPoints( | |
4820 | hWndFrom: HWND, | |
4821 | hWndTo: HWND, | |
4822 | lpPoints: LPPOINT, | |
4823 | cPoints: UINT, | |
4824 | ) -> c_int; | |
4825 | pub fn WindowFromPoint( | |
4826 | Point: POINT, | |
4827 | ) -> HWND; | |
4828 | pub fn WindowFromPhysicalPoint( | |
4829 | Point: POINT, | |
4830 | ) -> HWND; | |
4831 | pub fn ChildWindowFromPoint( | |
4832 | hWndParent: HWND, | |
4833 | point: POINT, | |
4834 | ) -> HWND; | |
4835 | pub fn ClipCursor( | |
4836 | lpRect: *const RECT, | |
4837 | ) -> BOOL; | |
4838 | } | |
4839 | pub const CWP_ALL: UINT = 0x0000; | |
4840 | pub const CWP_SKIPINVISIBLE: UINT = 0x0001; | |
4841 | pub const CWP_SKIPDISABLED: UINT = 0x0002; | |
4842 | pub const CWP_SKIPTRANSPARENT: UINT = 0x0004; | |
4843 | extern "system" { | |
4844 | pub fn ChildWindowFromPointEx( | |
4845 | hwnd: HWND, | |
4846 | pt: POINT, | |
4847 | flags: UINT, | |
4848 | ) -> HWND; | |
4849 | } | |
4850 | pub const CTLCOLOR_MSGBOX: c_int = 0; | |
4851 | pub const CTLCOLOR_EDIT: c_int = 1; | |
4852 | pub const CTLCOLOR_LISTBOX: c_int = 2; | |
4853 | pub const CTLCOLOR_BTN: c_int = 3; | |
4854 | pub const CTLCOLOR_DLG: c_int = 4; | |
4855 | pub const CTLCOLOR_SCROLLBAR: c_int = 5; | |
4856 | pub const CTLCOLOR_STATIC: c_int = 6; | |
4857 | pub const CTLCOLOR_MAX: c_int = 7; | |
4858 | pub const COLOR_SCROLLBAR: c_int = 0; | |
4859 | pub const COLOR_BACKGROUND: c_int = 1; | |
4860 | pub const COLOR_ACTIVECAPTION: c_int = 2; | |
4861 | pub const COLOR_INACTIVECAPTION: c_int = 3; | |
4862 | pub const COLOR_MENU: c_int = 4; | |
4863 | pub const COLOR_WINDOW: c_int = 5; | |
4864 | pub const COLOR_WINDOWFRAME: c_int = 6; | |
4865 | pub const COLOR_MENUTEXT: c_int = 7; | |
4866 | pub const COLOR_WINDOWTEXT: c_int = 8; | |
4867 | pub const COLOR_CAPTIONTEXT: c_int = 9; | |
4868 | pub const COLOR_ACTIVEBORDER: c_int = 10; | |
4869 | pub const COLOR_INACTIVEBORDER: c_int = 11; | |
4870 | pub const COLOR_APPWORKSPACE: c_int = 12; | |
4871 | pub const COLOR_HIGHLIGHT: c_int = 13; | |
4872 | pub const COLOR_HIGHLIGHTTEXT: c_int = 14; | |
4873 | pub const COLOR_BTNFACE: c_int = 15; | |
4874 | pub const COLOR_BTNSHADOW: c_int = 16; | |
4875 | pub const COLOR_GRAYTEXT: c_int = 17; | |
4876 | pub const COLOR_BTNTEXT: c_int = 18; | |
4877 | pub const COLOR_INACTIVECAPTIONTEXT: c_int = 19; | |
4878 | pub const COLOR_BTNHIGHLIGHT: c_int = 20; | |
4879 | pub const COLOR_3DDKSHADOW: c_int = 21; | |
4880 | pub const COLOR_3DLIGHT: c_int = 22; | |
4881 | pub const COLOR_INFOTEXT: c_int = 23; | |
4882 | pub const COLOR_INFOBK: c_int = 24; | |
4883 | pub const COLOR_HOTLIGHT: c_int = 26; | |
4884 | pub const COLOR_GRADIENTACTIVECAPTION: c_int = 27; | |
4885 | pub const COLOR_GRADIENTINACTIVECAPTION: c_int = 28; | |
4886 | pub const COLOR_MENUHILIGHT: c_int = 29; | |
4887 | pub const COLOR_MENUBAR: c_int = 30; | |
4888 | pub const COLOR_DESKTOP: c_int = COLOR_BACKGROUND; | |
4889 | pub const COLOR_3DFACE: c_int = COLOR_BTNFACE; | |
4890 | pub const COLOR_3DSHADOW: c_int = COLOR_BTNSHADOW; | |
4891 | pub const COLOR_3DHIGHLIGHT: c_int = COLOR_BTNHIGHLIGHT; | |
4892 | pub const COLOR_3DHILIGHT: c_int = COLOR_BTNHIGHLIGHT; | |
4893 | pub const COLOR_BTNHILIGHT: c_int = COLOR_BTNHIGHLIGHT; | |
4894 | extern "system" { | |
4895 | pub fn GetSysColor( | |
4896 | nIndex: c_int, | |
4897 | ) -> DWORD; | |
4898 | pub fn GetSysColorBrush( | |
4899 | nIndex: c_int, | |
4900 | ) -> HBRUSH; | |
4901 | pub fn SetSysColors( | |
4902 | cElements: c_int, | |
4903 | lpaElements: *const INT, | |
4904 | lpaRgbValues: *const COLORREF, | |
4905 | ) -> BOOL; | |
4906 | pub fn DrawFocusRect( | |
4907 | hDC: HDC, | |
4908 | lprc: *const RECT, | |
4909 | ) -> BOOL; | |
4910 | pub fn FillRect( | |
4911 | hDC: HDC, | |
4912 | lprc: *const RECT, | |
4913 | hbr: HBRUSH, | |
4914 | ) -> c_int; | |
4915 | pub fn FrameRect( | |
4916 | hDC: HDC, | |
4917 | lprc: *const RECT, | |
4918 | hbr: HBRUSH, | |
4919 | ) -> c_int; | |
4920 | pub fn InvertRect( | |
4921 | hDC: HDC, | |
4922 | lprc: *const RECT, | |
4923 | ) -> BOOL; | |
4924 | pub fn SetRect( | |
4925 | lprc: LPRECT, | |
4926 | xLeft: c_int, | |
4927 | yTop: c_int, | |
4928 | xRight: c_int, | |
4929 | yBottom: c_int, | |
4930 | ) -> BOOL; | |
4931 | pub fn SetRectEmpty( | |
4932 | lprc: LPRECT, | |
4933 | ) -> BOOL; | |
4934 | pub fn CopyRect( | |
4935 | lprcDst: LPRECT, | |
4936 | lprcSrc: *const RECT, | |
4937 | ) -> BOOL; | |
4938 | pub fn InflateRect( | |
4939 | lprc: LPRECT, | |
4940 | dx: c_int, | |
4941 | dy: c_int, | |
4942 | ) -> BOOL; | |
4943 | pub fn IntersectRect( | |
4944 | lprcDst: LPRECT, | |
4945 | lprcSrc1: *const RECT, | |
4946 | lprcSrc2: *const RECT, | |
4947 | ) -> BOOL; | |
4948 | pub fn UnionRect( | |
4949 | lprcDst: LPRECT, | |
4950 | lprcSrc1: *const RECT, | |
4951 | lprcSrc2: *const RECT, | |
4952 | ) -> BOOL; | |
4953 | pub fn SubtractRect( | |
4954 | lprcDst: LPRECT, | |
4955 | lprcSrc1: *const RECT, | |
4956 | lprcSrc2: *const RECT, | |
4957 | ) -> BOOL; | |
4958 | pub fn OffsetRect( | |
4959 | lprc: LPRECT, | |
4960 | dx: c_int, | |
4961 | dy: c_int, | |
4962 | ) -> BOOL; | |
4963 | pub fn IsRectEmpty( | |
4964 | lprc: *const RECT, | |
4965 | ) -> BOOL; | |
4966 | pub fn EqualRect( | |
4967 | lprc1: *const RECT, | |
4968 | lprc2: *const RECT, | |
4969 | ) -> BOOL; | |
4970 | pub fn PtInRect( | |
4971 | lprc: *const RECT, | |
4972 | pt: POINT, | |
4973 | ) -> BOOL; | |
4974 | pub fn GetWindowWord( | |
4975 | hWnd: HWND, | |
4976 | nIndex: c_int, | |
4977 | ) -> WORD; | |
4978 | pub fn SetWindowWord( | |
4979 | hwnd: HWND, | |
4980 | nIndex: c_int, | |
4981 | wNewWord: WORD, | |
4982 | ) -> WORD; | |
4983 | pub fn GetWindowLongA( | |
4984 | hWnd: HWND, | |
4985 | nIndex: c_int, | |
4986 | ) -> LONG; | |
4987 | pub fn GetWindowLongW( | |
4988 | hWnd: HWND, | |
4989 | nIndex: c_int, | |
4990 | ) -> LONG; | |
4991 | pub fn SetWindowLongA( | |
4992 | hWnd: HWND, | |
4993 | nIndex: c_int, | |
4994 | dwNewLong: LONG, | |
4995 | ) -> LONG; | |
4996 | pub fn SetWindowLongW( | |
4997 | hWnd: HWND, | |
4998 | nIndex: c_int, | |
4999 | dwNewLong: LONG, | |
5000 | ) -> LONG; | |
60c5eb7d | 5001 | #[cfg(target_pointer_width = "64")] |
ff7c6d11 XL |
5002 | pub fn GetWindowLongPtrA( |
5003 | hWnd: HWND, | |
5004 | nIndex: c_int, | |
5005 | ) -> LONG_PTR; | |
60c5eb7d | 5006 | #[cfg(target_pointer_width = "64")] |
ff7c6d11 XL |
5007 | pub fn GetWindowLongPtrW( |
5008 | hWnd: HWND, | |
5009 | nIndex: c_int, | |
5010 | ) -> LONG_PTR; | |
60c5eb7d | 5011 | #[cfg(target_pointer_width = "64")] |
ff7c6d11 XL |
5012 | pub fn SetWindowLongPtrA( |
5013 | hWnd: HWND, | |
5014 | nIndex: c_int, | |
5015 | dwNewLong: LONG_PTR, | |
5016 | ) -> LONG_PTR; | |
60c5eb7d | 5017 | #[cfg(target_pointer_width = "64")] |
ff7c6d11 XL |
5018 | pub fn SetWindowLongPtrW( |
5019 | hWnd: HWND, | |
5020 | nIndex: c_int, | |
5021 | dwNewLong: LONG_PTR, | |
5022 | ) -> LONG_PTR; | |
5023 | } | |
60c5eb7d | 5024 | #[cfg(target_pointer_width = "32")] |
ff7c6d11 | 5025 | pub use self::GetWindowLongA as GetWindowLongPtrA; |
60c5eb7d | 5026 | #[cfg(target_pointer_width = "32")] |
ff7c6d11 | 5027 | pub use self::GetWindowLongW as GetWindowLongPtrW; |
60c5eb7d | 5028 | #[cfg(target_pointer_width = "32")] |
ff7c6d11 | 5029 | pub use self::SetWindowLongA as SetWindowLongPtrA; |
60c5eb7d | 5030 | #[cfg(target_pointer_width = "32")] |
ff7c6d11 XL |
5031 | pub use self::SetWindowLongW as SetWindowLongPtrW; |
5032 | extern "system" { | |
5033 | pub fn GetClassWord( | |
5034 | hWnd: HWND, | |
5035 | nIndex: c_int, | |
5036 | ) -> WORD; | |
5037 | pub fn SetClassWord( | |
5038 | hWnd: HWND, | |
5039 | nIndex: c_int, | |
5040 | wNewWord: WORD, | |
5041 | ) -> WORD; | |
5042 | pub fn GetClassLongA( | |
5043 | hWnd: HWND, | |
5044 | nIndex: c_int, | |
5045 | ) -> DWORD; | |
5046 | pub fn GetClassLongW( | |
5047 | hWnd: HWND, | |
5048 | nIndex: c_int, | |
5049 | ) -> DWORD; | |
5050 | pub fn SetClassLongA( | |
5051 | hWnd: HWND, | |
5052 | nIndex: c_int, | |
5053 | dwNewLong: LONG, | |
5054 | ) -> DWORD; | |
5055 | pub fn SetClassLongW( | |
5056 | hWnd: HWND, | |
5057 | nIndex: c_int, | |
5058 | dwNewLong: LONG, | |
5059 | ) -> DWORD; | |
60c5eb7d | 5060 | #[cfg(target_pointer_width = "64")] |
ff7c6d11 XL |
5061 | pub fn GetClassLongPtrA( |
5062 | hWnd: HWND, | |
5063 | nIndex: c_int, | |
5064 | ) -> ULONG_PTR; | |
60c5eb7d | 5065 | #[cfg(target_pointer_width = "64")] |
ff7c6d11 XL |
5066 | pub fn GetClassLongPtrW( |
5067 | hWnd: HWND, | |
5068 | nIndex: c_int, | |
5069 | ) -> ULONG_PTR; | |
60c5eb7d | 5070 | #[cfg(target_pointer_width = "64")] |
ff7c6d11 XL |
5071 | pub fn SetClassLongPtrA( |
5072 | hWnd: HWND, | |
5073 | nIndex: c_int, | |
5074 | dwNewLong: LONG_PTR, | |
5075 | ) -> ULONG_PTR; | |
60c5eb7d | 5076 | #[cfg(target_pointer_width = "64")] |
ff7c6d11 XL |
5077 | pub fn SetClassLongPtrW( |
5078 | hWnd: HWND, | |
5079 | nIndex: c_int, | |
5080 | dwNewLong: LONG_PTR, | |
5081 | ) -> ULONG_PTR; | |
5082 | } | |
60c5eb7d | 5083 | #[cfg(target_pointer_width = "32")] |
ff7c6d11 | 5084 | pub use self::GetClassLongA as GetClassLongPtrA; |
60c5eb7d | 5085 | #[cfg(target_pointer_width = "32")] |
ff7c6d11 | 5086 | pub use self::GetClassLongW as GetClassLongPtrW; |
60c5eb7d | 5087 | #[cfg(target_pointer_width = "32")] |
ff7c6d11 | 5088 | pub use self::SetClassLongA as SetClassLongPtrA; |
60c5eb7d | 5089 | #[cfg(target_pointer_width = "32")] |
ff7c6d11 XL |
5090 | pub use self::SetClassLongW as SetClassLongPtrW; |
5091 | extern "system" { | |
5092 | pub fn GetProcessDefaultLayout( | |
5093 | pdwDefaultLayout: *mut DWORD, | |
5094 | ) -> BOOL; | |
5095 | pub fn SetProcessDefaultLayout( | |
5096 | dwDefaultLayout: DWORD, | |
5097 | ) -> BOOL; | |
5098 | pub fn GetDesktopWindow() -> HWND; | |
5099 | pub fn GetParent( | |
5100 | hWnd: HWND, | |
5101 | ) -> HWND; | |
5102 | pub fn SetParent( | |
5103 | hWndChild: HWND, | |
5104 | hWndNewParent: HWND, | |
5105 | ) -> HWND; | |
5106 | pub fn EnumChildWindows( | |
5107 | hWndParent: HWND, | |
5108 | lpEnumFunc: WNDENUMPROC, | |
5109 | lParam: LPARAM, | |
5110 | ) -> BOOL; | |
5111 | pub fn FindWindowA( | |
5112 | lpClassName: LPCSTR, | |
5113 | lpWindowName: LPCSTR, | |
5114 | ) -> HWND; | |
5115 | pub fn FindWindowW( | |
5116 | lpClassName: LPCWSTR, | |
5117 | lpWindowName: LPCWSTR, | |
5118 | ) -> HWND; | |
5119 | pub fn FindWindowExA( | |
5120 | hWndParent: HWND, | |
5121 | hWndChildAfter: HWND, | |
5122 | lpszClass: LPCSTR, | |
5123 | lpszWindow: LPCSTR, | |
5124 | ) -> HWND; | |
5125 | pub fn FindWindowExW( | |
5126 | hWndParent: HWND, | |
5127 | hWndChildAfter: HWND, | |
5128 | lpszClass: LPCWSTR, | |
5129 | lpszWindow: LPCWSTR, | |
5130 | ) -> HWND; | |
5131 | pub fn GetShellWindow() -> HWND; | |
5132 | pub fn RegisterShellHookWindow( | |
5133 | hwnd: HWND, | |
5134 | ) -> BOOL; | |
5135 | pub fn DeregisterShellHookWindow( | |
5136 | hwnd: HWND, | |
5137 | ) -> BOOL; | |
5138 | pub fn EnumWindows( | |
5139 | lpEnumFunc: WNDENUMPROC, | |
5140 | lParam: LPARAM, | |
5141 | ) -> BOOL; | |
5142 | pub fn EnumThreadWindows( | |
5143 | dwThreadId: DWORD, | |
5144 | lpfn: WNDENUMPROC, | |
5145 | lParam: LPARAM, | |
5146 | ) -> BOOL; | |
5147 | } | |
5148 | // EnumTaskWindows | |
5149 | extern "system" { | |
5150 | pub fn GetClassNameA( | |
5151 | hWnd: HWND, | |
5152 | lpClassName: LPCSTR, | |
5153 | nMaxCount: c_int, | |
5154 | ) -> c_int; | |
5155 | pub fn GetClassNameW( | |
5156 | hWnd: HWND, | |
5157 | lpClassName: LPCWSTR, | |
5158 | nMaxCount: c_int, | |
5159 | ) -> c_int; | |
5160 | pub fn GetTopWindow( | |
5161 | hWnd: HWND, | |
5162 | ) -> HWND; | |
5163 | } | |
5164 | // GetNextWindow | |
5165 | // GetSysModalWindow | |
5166 | // SetSysModalWindow | |
5167 | extern "system" { | |
5168 | pub fn GetWindowThreadProcessId( | |
5169 | hWnd: HWND, | |
5170 | lpdwProcessId: LPDWORD, | |
5171 | ) -> DWORD; | |
5172 | pub fn IsGUIThread( | |
5173 | bConvert: BOOL, | |
5174 | ) -> BOOL; | |
5175 | pub fn GetLastActivePopup( | |
5176 | hWnd: HWND, | |
5177 | ) -> HWND; | |
5178 | } | |
5179 | pub const GW_HWNDFIRST: UINT = 0; | |
5180 | pub const GW_HWNDLAST: UINT = 1; | |
5181 | pub const GW_HWNDNEXT: UINT = 2; | |
5182 | pub const GW_HWNDPREV: UINT = 3; | |
5183 | pub const GW_OWNER: UINT = 4; | |
5184 | pub const GW_CHILD: UINT = 5; | |
5185 | pub const GW_ENABLEDPOPUP: UINT = 6; | |
5186 | pub const GW_MAX: UINT = 6; | |
5187 | extern "system" { | |
5188 | pub fn GetWindow( | |
5189 | hWnd: HWND, | |
5190 | uCmd: UINT, | |
5191 | ) -> HWND; | |
5192 | pub fn SetWindowsHookA( | |
5193 | nFilterType: c_int, | |
5194 | pfnFilterProc: HOOKPROC, | |
5195 | ) -> HHOOK; | |
5196 | pub fn SetWindowsHookW( | |
5197 | nFilterType: c_int, | |
5198 | pfnFilterProc: HOOKPROC, | |
5199 | ) -> HHOOK; | |
5200 | pub fn UnhookWindowsHook( | |
5201 | nFilterType: c_int, | |
5202 | pfnFilterProc: HOOKPROC, | |
5203 | ) -> BOOL; | |
5204 | pub fn SetWindowsHookExA( | |
5205 | idHook: c_int, | |
5206 | lpfn: HOOKPROC, | |
5207 | hmod: HINSTANCE, | |
5208 | dwThreadId: DWORD, | |
5209 | ) -> HHOOK; | |
5210 | pub fn SetWindowsHookExW( | |
5211 | idHook: c_int, | |
5212 | lpfn: HOOKPROC, | |
5213 | hmod: HINSTANCE, | |
5214 | dwThreadId: DWORD, | |
5215 | ) -> HHOOK; | |
5216 | pub fn UnhookWindowsHookEx( | |
5217 | hhk: HHOOK, | |
5218 | ) -> BOOL; | |
5219 | pub fn CallNextHookEx( | |
5220 | hhk: HHOOK, | |
5221 | nCode: c_int, | |
5222 | wParam: WPARAM, | |
5223 | lParam: LPARAM, | |
5224 | ) -> LRESULT; | |
5225 | } | |
5226 | // DefHookProc | |
5227 | pub const MF_INSERT: UINT = 0x00000000; | |
5228 | pub const MF_CHANGE: UINT = 0x00000080; | |
5229 | pub const MF_APPEND: UINT = 0x00000100; | |
5230 | pub const MF_DELETE: UINT = 0x00000200; | |
5231 | pub const MF_REMOVE: UINT = 0x00001000; | |
5232 | pub const MF_BYCOMMAND: UINT = 0x00000000; | |
5233 | pub const MF_BYPOSITION: UINT = 0x00000400; | |
5234 | pub const MF_SEPARATOR: UINT = 0x00000800; | |
5235 | pub const MF_ENABLED: UINT = 0x00000000; | |
5236 | pub const MF_GRAYED: UINT = 0x00000001; | |
5237 | pub const MF_DISABLED: UINT = 0x00000002; | |
5238 | pub const MF_UNCHECKED: UINT = 0x00000000; | |
5239 | pub const MF_CHECKED: UINT = 0x00000008; | |
5240 | pub const MF_USECHECKBITMAPS: UINT = 0x00000200; | |
5241 | pub const MF_STRING: UINT = 0x00000000; | |
5242 | pub const MF_BITMAP: UINT = 0x00000004; | |
5243 | pub const MF_OWNERDRAW: UINT = 0x00000100; | |
5244 | pub const MF_POPUP: UINT = 0x00000010; | |
5245 | pub const MF_MENUBARBREAK: UINT = 0x00000020; | |
5246 | pub const MF_MENUBREAK: UINT = 0x00000040; | |
5247 | pub const MF_UNHILITE: UINT = 0x00000000; | |
5248 | pub const MF_HILITE: UINT = 0x00000080; | |
5249 | pub const MF_DEFAULT: UINT = 0x00001000; | |
5250 | pub const MF_SYSMENU: UINT = 0x00002000; | |
5251 | pub const MF_HELP: UINT = 0x00004000; | |
5252 | pub const MF_RIGHTJUSTIFY: UINT = 0x00004000; | |
5253 | pub const MF_MOUSESELECT: UINT = 0x00008000; | |
5254 | pub const MF_END: UINT = 0x00000080; | |
5255 | pub const MFT_STRING: UINT = MF_STRING; | |
5256 | pub const MFT_BITMAP: UINT = MF_BITMAP; | |
5257 | pub const MFT_MENUBARBREAK: UINT = MF_MENUBARBREAK; | |
5258 | pub const MFT_MENUBREAK: UINT = MF_MENUBREAK; | |
5259 | pub const MFT_OWNERDRAW: UINT = MF_OWNERDRAW; | |
5260 | pub const MFT_RADIOCHECK: UINT = 0x00000200; | |
5261 | pub const MFT_SEPARATOR: UINT = MF_SEPARATOR; | |
5262 | pub const MFT_RIGHTORDER: UINT = 0x00002000; | |
5263 | pub const MFT_RIGHTJUSTIFY: UINT = MF_RIGHTJUSTIFY; | |
5264 | pub const MFS_GRAYED: UINT = 0x00000003; | |
5265 | pub const MFS_DISABLED: UINT = MFS_GRAYED; | |
5266 | pub const MFS_CHECKED: UINT = MF_CHECKED; | |
5267 | pub const MFS_HILITE: UINT = MF_HILITE; | |
5268 | pub const MFS_ENABLED: UINT = MF_ENABLED; | |
5269 | pub const MFS_UNCHECKED: UINT = MF_UNCHECKED; | |
5270 | pub const MFS_UNHILITE: UINT = MF_UNHILITE; | |
5271 | pub const MFS_DEFAULT: UINT = MF_DEFAULT; | |
5272 | extern "system" { | |
5273 | pub fn CheckMenuRadioItem( | |
5274 | hMenu: HMENU, | |
5275 | first: UINT, | |
5276 | last: UINT, | |
5277 | check: UINT, | |
5278 | flags: UINT, | |
5279 | ) -> BOOL; | |
5280 | } | |
60c5eb7d XL |
5281 | //10225 |
5282 | pub const SC_SIZE: WPARAM = 0xF000; | |
5283 | pub const SC_MOVE: WPARAM = 0xF010; | |
5284 | pub const SC_MINIMIZE: WPARAM = 0xF020; | |
5285 | pub const SC_MAXIMIZE: WPARAM = 0xF030; | |
5286 | pub const SC_NEXTWINDOW: WPARAM = 0xF040; | |
5287 | pub const SC_PREVWINDOW: WPARAM = 0xF050; | |
5288 | pub const SC_CLOSE: WPARAM = 0xF060; | |
5289 | pub const SC_VSCROLL: WPARAM = 0xF070; | |
5290 | pub const SC_HSCROLL: WPARAM = 0xF080; | |
5291 | pub const SC_MOUSEMENU: WPARAM = 0xF090; | |
5292 | pub const SC_KEYMENU: WPARAM = 0xF100; | |
5293 | pub const SC_ARRANGE: WPARAM = 0xF110; | |
5294 | pub const SC_RESTORE: WPARAM = 0xF120; | |
5295 | pub const SC_TASKLIST: WPARAM = 0xF130; | |
5296 | pub const SC_SCREENSAVE: WPARAM = 0xF140; | |
5297 | pub const SC_HOTKEY: WPARAM = 0xF150; | |
5298 | pub const SC_DEFAULT: WPARAM = 0xF160; | |
5299 | pub const SC_MONITORPOWER: WPARAM = 0xF170; | |
5300 | pub const SC_CONTEXTHELP: WPARAM = 0xF180; | |
5301 | pub const SC_SEPARATOR: WPARAM = 0xF00F; | |
5302 | //10269 | |
5303 | extern "system" { | |
5304 | pub fn LoadBitmapA( | |
5305 | hInstance: HINSTANCE, | |
5306 | lpBitmapName: LPCSTR, | |
5307 | ) -> HBITMAP; | |
5308 | pub fn LoadBitmapW( | |
5309 | hInstance: HINSTANCE, | |
5310 | lpBitmapName: LPCWSTR, | |
5311 | ) -> HBITMAP; | |
5312 | pub fn LoadCursorA( | |
5313 | hInstance: HINSTANCE, | |
5314 | lpCursorName: LPCSTR, | |
5315 | ) -> HCURSOR; | |
5316 | pub fn LoadCursorW( | |
5317 | hInstance: HINSTANCE, | |
5318 | lpCursorName: LPCWSTR, | |
5319 | ) -> HCURSOR; | |
5320 | pub fn LoadCursorFromFileA( | |
5321 | lpFileName: LPCSTR, | |
5322 | ) -> HCURSOR; | |
5323 | pub fn LoadCursorFromFileW( | |
5324 | lpFileName: LPCWSTR, | |
5325 | ) -> HCURSOR; | |
5326 | pub fn CreateCursor( | |
5327 | hInst: HINSTANCE, | |
5328 | xHotSpot: c_int, | |
5329 | yHotSpot: c_int, | |
5330 | nWidth: c_int, | |
5331 | nHeight: c_int, | |
5332 | pvAndPlane: *const VOID, | |
5333 | pvXORPlane: *const VOID, | |
5334 | ) -> HCURSOR; | |
5335 | pub fn DestroyCursor( | |
5336 | hCursor: HCURSOR, | |
5337 | ) -> BOOL; | |
5338 | } | |
5339 | //10355 | |
5340 | pub const IDC_ARROW: LPCWSTR = 32512 as LPCWSTR; | |
5341 | pub const IDC_IBEAM: LPCWSTR = 32513 as LPCWSTR; | |
5342 | pub const IDC_WAIT: LPCWSTR = 32514 as LPCWSTR; | |
5343 | pub const IDC_CROSS: LPCWSTR = 32515 as LPCWSTR; | |
5344 | pub const IDC_UPARROW: LPCWSTR = 32516 as LPCWSTR; | |
5345 | pub const IDC_SIZE: LPCWSTR = 32640 as LPCWSTR; | |
5346 | pub const IDC_ICON: LPCWSTR = 32641 as LPCWSTR; | |
5347 | pub const IDC_SIZENWSE: LPCWSTR = 32642 as LPCWSTR; | |
5348 | pub const IDC_SIZENESW: LPCWSTR = 32643 as LPCWSTR; | |
5349 | pub const IDC_SIZEWE: LPCWSTR = 32644 as LPCWSTR; | |
5350 | pub const IDC_SIZENS: LPCWSTR = 32645 as LPCWSTR; | |
5351 | pub const IDC_SIZEALL: LPCWSTR = 32646 as LPCWSTR; | |
5352 | pub const IDC_NO: LPCWSTR = 32648 as LPCWSTR; | |
5353 | pub const IDC_HAND: LPCWSTR = 32649 as LPCWSTR; | |
5354 | pub const IDC_APPSTARTING: LPCWSTR = 32650 as LPCWSTR; | |
5355 | pub const IDC_HELP: LPCWSTR = 32651 as LPCWSTR; | |
5356 | extern "system" { | |
5357 | pub fn SetSystemCursor( | |
5358 | hcur: HCURSOR, | |
5359 | id: DWORD, | |
5360 | ) -> BOOL; | |
5361 | } | |
5362 | STRUCT!{struct ICONINFO { | |
5363 | fIcon: BOOL, | |
5364 | xHotspot: DWORD, | |
5365 | yHotspot: DWORD, | |
5366 | hbmMask: HBITMAP, | |
5367 | hbmColor: HBITMAP, | |
5368 | }} | |
5369 | pub type PICONINFO = *mut ICONINFO; | |
5370 | extern "system" { | |
5371 | pub fn LoadIconA( | |
5372 | hInstance: HINSTANCE, | |
5373 | lpIconName: LPCSTR, | |
5374 | ) -> HICON; | |
5375 | pub fn LoadIconW( | |
5376 | hInstance: HINSTANCE, | |
5377 | lpIconName: LPCWSTR, | |
5378 | ) -> HICON; | |
5379 | } | |
5380 | //10449 | |
5381 | extern "system" { | |
5382 | pub fn CreateIcon( | |
5383 | hInstance: HINSTANCE, | |
5384 | nWidth: c_int, | |
5385 | nHeight: c_int, | |
5386 | cPlanes: BYTE, | |
5387 | cBitsPixel: BYTE, | |
5388 | lpbANDbits: *const BYTE, | |
5389 | lpbXORbits: *const BYTE, | |
5390 | ) -> HICON; | |
5391 | pub fn DestroyIcon( | |
5392 | hIcon: HICON, | |
5393 | ) -> BOOL; | |
5394 | pub fn LookupIconIdFromDirectory( | |
5395 | presbits: PBYTE, | |
5396 | fIcon: BOOL, | |
5397 | ) -> c_int; | |
5398 | pub fn LookupIconIdFromDirectoryEx( | |
5399 | presbits: PBYTE, | |
5400 | fIcon: BOOL, | |
5401 | cxDesired: c_int, | |
5402 | cyDesired: c_int, | |
5403 | Flags: UINT, | |
5404 | ) -> c_int; | |
5405 | pub fn CreateIconFromResource( | |
5406 | presbits: PBYTE, | |
5407 | dwResSize: DWORD, | |
5408 | fIcon: BOOL, | |
5409 | dwVer: DWORD, | |
5410 | ) -> HICON; | |
5411 | pub fn CreateIconFromResourceEx( | |
5412 | presbits: PBYTE, | |
5413 | dwResSize: DWORD, | |
5414 | fIcon: BOOL, | |
5415 | dwVer: DWORD, | |
5416 | cxDesired: c_int, | |
5417 | cyDesired: c_int, | |
5418 | Flags: UINT, | |
5419 | ) -> HICON; | |
5420 | } | |
5421 | //10524 | |
5422 | pub const IMAGE_BITMAP: UINT = 0; | |
5423 | pub const IMAGE_ICON: UINT = 1; | |
5424 | pub const IMAGE_CURSOR: UINT = 2; | |
5425 | pub const IMAGE_ENHMETAFILE: UINT = 3; | |
5426 | pub const LR_DEFAULTCOLOR: UINT = 0x00000000; | |
5427 | pub const LR_MONOCHROME: UINT = 0x00000001; | |
5428 | pub const LR_COLOR: UINT = 0x00000002; | |
5429 | pub const LR_COPYRETURNORG: UINT = 0x00000004; | |
5430 | pub const LR_COPYDELETEORG: UINT = 0x00000008; | |
5431 | pub const LR_LOADFROMFILE: UINT = 0x00000010; | |
5432 | pub const LR_LOADTRANSPARENT: UINT = 0x00000020; | |
5433 | pub const LR_DEFAULTSIZE: UINT = 0x00000040; | |
5434 | pub const LR_VGACOLOR: UINT = 0x00000080; | |
5435 | pub const LR_LOADMAP3DCOLORS: UINT = 0x00001000; | |
5436 | pub const LR_CREATEDIBSECTION: UINT = 0x00002000; | |
5437 | pub const LR_COPYFROMRESOURCE: UINT = 0x00004000; | |
5438 | pub const LR_SHARED: UINT = 0x00008000; | |
5439 | extern "system" { | |
5440 | pub fn LoadImageA( | |
5441 | hInst: HINSTANCE, | |
5442 | name: LPCSTR, | |
5443 | type_: UINT, | |
5444 | cx: c_int, | |
5445 | cy: c_int, | |
5446 | fuLoad: UINT, | |
5447 | ) -> HANDLE; | |
5448 | pub fn LoadImageW( | |
5449 | hInst: HINSTANCE, | |
5450 | name: LPCWSTR, | |
5451 | type_: UINT, | |
5452 | cx: c_int, | |
5453 | cy: c_int, | |
5454 | fuLoad: UINT, | |
5455 | ) -> HANDLE; | |
5456 | pub fn CopyImage( | |
5457 | h: HANDLE, | |
5458 | type_: UINT, | |
5459 | cx: c_int, | |
5460 | cy: c_int, | |
5461 | flags: UINT, | |
5462 | ) -> HANDLE; | |
5463 | } | |
5464 | //10592 | |
5465 | extern "system" { | |
5466 | pub fn DrawIconEx( | |
5467 | hdc: HDC, | |
5468 | xLeft: c_int, | |
5469 | yTop: c_int, | |
5470 | hIcon: HICON, | |
5471 | cxWidth: c_int, | |
5472 | cyWidth: c_int, | |
5473 | istepIfAniCur: UINT, | |
5474 | hbrFlickerFreeDraw: HBRUSH, | |
5475 | diFlags: UINT, | |
5476 | ) -> BOOL; | |
5477 | pub fn CreateIconIndirect( | |
5478 | piconinfo: PICONINFO, | |
5479 | ) -> HICON; | |
5480 | pub fn CopyIcon( | |
5481 | hIcon: HICON, | |
5482 | ) -> HICON; | |
5483 | pub fn GetIconInfo( | |
5484 | hIcon: HICON, | |
5485 | piconinfo: PICONINFO, | |
5486 | ) -> BOOL; | |
5487 | } | |
5488 | //10781 | |
5489 | pub const IDI_APPLICATION: LPCWSTR = 32512 as LPCWSTR; | |
5490 | pub const IDI_HAND: LPCWSTR = 32513 as LPCWSTR; | |
5491 | pub const IDI_QUESTION: LPCWSTR = 32514 as LPCWSTR; | |
5492 | pub const IDI_EXCLAMATION: LPCWSTR = 32515 as LPCWSTR; | |
5493 | pub const IDI_ASTERISK: LPCWSTR = 32516 as LPCWSTR; | |
5494 | pub const IDI_WINLOGO: LPCWSTR = 32517 as LPCWSTR; | |
5495 | pub const IDI_SHIELD: LPCWSTR = 32518 as LPCWSTR; | |
5496 | pub const IDI_WARNING: LPCWSTR = IDI_EXCLAMATION; | |
5497 | pub const IDI_ERROR: LPCWSTR = IDI_HAND; | |
5498 | pub const IDI_INFORMATION: LPCWSTR = IDI_ASTERISK; | |
5499 | //10853 | |
ff7c6d11 XL |
5500 | pub const IDOK: c_int = 1; |
5501 | pub const IDCANCEL: c_int = 2; | |
5502 | pub const IDABORT: c_int = 3; | |
5503 | pub const IDRETRY: c_int = 4; | |
5504 | pub const IDIGNORE: c_int = 5; | |
5505 | pub const IDYES: c_int = 6; | |
5506 | pub const IDNO: c_int = 7; | |
5507 | pub const IDCLOSE: c_int = 8; | |
5508 | pub const IDHELP: c_int = 9; | |
5509 | pub const IDTRYAGAIN: c_int = 10; | |
5510 | pub const IDCONTINUE: c_int = 11; | |
5511 | pub const IDTIMEOUT: c_int = 32000; | |
ff7c6d11 XL |
5512 | pub const ES_LEFT: DWORD = 0x0000; |
5513 | pub const ES_CENTER: DWORD = 0x0001; | |
5514 | pub const ES_RIGHT: DWORD = 0x0002; | |
5515 | pub const ES_MULTILINE: DWORD = 0x0004; | |
5516 | pub const ES_UPPERCASE: DWORD = 0x0008; | |
5517 | pub const ES_LOWERCASE: DWORD = 0x0010; | |
5518 | pub const ES_PASSWORD: DWORD = 0x0020; | |
5519 | pub const ES_AUTOVSCROLL: DWORD = 0x0040; | |
5520 | pub const ES_AUTOHSCROLL: DWORD = 0x0080; | |
5521 | pub const ES_NOHIDESEL: DWORD = 0x0100; | |
5522 | pub const ES_OEMCONVERT: DWORD = 0x0400; | |
5523 | pub const ES_READONLY: DWORD = 0x0800; | |
5524 | pub const ES_WANTRETURN: DWORD = 0x1000; | |
5525 | pub const ES_NUMBER: DWORD = 0x2000; | |
ff7c6d11 XL |
5526 | pub const EN_SETFOCUS: WORD = 0x0100; |
5527 | pub const EN_KILLFOCUS: WORD = 0x0200; | |
5528 | pub const EN_CHANGE: WORD = 0x0300; | |
5529 | pub const EN_UPDATE: WORD = 0x0400; | |
5530 | pub const EN_ERRSPACE: WORD = 0x0500; | |
5531 | pub const EN_MAXTEXT: WORD = 0x0501; | |
5532 | pub const EN_HSCROLL: WORD = 0x0601; | |
5533 | pub const EN_VSCROLL: WORD = 0x0602; | |
5534 | pub const EN_ALIGN_LTR_EC: WORD = 0x0700; | |
5535 | pub const EN_ALIGN_RTL_EC: WORD = 0x0701; | |
ff7c6d11 XL |
5536 | pub const EC_LEFTMARGIN: WORD = 0x0001; |
5537 | pub const EC_RIGHTMARGIN: WORD = 0x0002; | |
5538 | pub const EC_USEFONTINFO: WORD = 0xffff; | |
ff7c6d11 | 5539 | pub const EMSIS_COMPOSITIONSTRING: WORD = 0x0001; |
ff7c6d11 XL |
5540 | pub const EIMES_GETCOMPSTRATONCE: WORD = 0x0001; |
5541 | pub const EIMES_CANCELCOMPSTRINFOCUS: WORD = 0x0002; | |
5542 | pub const EIMES_COMPLETECOMPSTRKILLFOCUS: WORD = 0x0004; | |
ff7c6d11 XL |
5543 | pub const EM_GETSEL: WORD = 0x00B0; |
5544 | pub const EM_SETSEL: WORD = 0x00B1; | |
5545 | pub const EM_GETRECT: WORD = 0x00B2; | |
5546 | pub const EM_SETRECT: WORD = 0x00B3; | |
5547 | pub const EM_SETRECTNP: WORD = 0x00B4; | |
5548 | pub const EM_SCROLL: WORD = 0x00B5; | |
5549 | pub const EM_LINESCROLL: WORD = 0x00B6; | |
5550 | pub const EM_SCROLLCARET: WORD = 0x00B7; | |
5551 | pub const EM_GETMODIFY: WORD = 0x00B8; | |
5552 | pub const EM_SETMODIFY: WORD = 0x00B9; | |
5553 | pub const EM_GETLINECOUNT: WORD = 0x00BA; | |
5554 | pub const EM_LINEINDEX: WORD = 0x00BB; | |
5555 | pub const EM_SETHANDLE: WORD = 0x00BC; | |
5556 | pub const EM_GETHANDLE: WORD = 0x00BD; | |
5557 | pub const EM_GETTHUMB: WORD = 0x00BE; | |
5558 | pub const EM_LINELENGTH: WORD = 0x00C1; | |
5559 | pub const EM_REPLACESEL: WORD = 0x00C2; | |
5560 | pub const EM_GETLINE: WORD = 0x00C4; | |
5561 | pub const EM_LIMITTEXT: WORD = 0x00C5; | |
5562 | pub const EM_CANUNDO: WORD = 0x00C6; | |
5563 | pub const EM_UNDO: WORD = 0x00C7; | |
5564 | pub const EM_FMTLINES: WORD = 0x00C8; | |
5565 | pub const EM_LINEFROMCHAR: WORD = 0x00C9; | |
5566 | pub const EM_SETTABSTOPS: WORD = 0x00CB; | |
5567 | pub const EM_SETPASSWORDCHAR: WORD = 0x00CC; | |
5568 | pub const EM_EMPTYUNDOBUFFER: WORD = 0x00CD; | |
5569 | pub const EM_GETFIRSTVISIBLELINE: WORD = 0x00CE; | |
5570 | pub const EM_SETREADONLY: WORD = 0x00CF; | |
5571 | pub const EM_SETWORDBREAKPROC: WORD = 0x00D0; | |
5572 | pub const EM_GETWORDBREAKPROC: WORD = 0x00D1; | |
5573 | pub const EM_GETPASSWORDCHAR: WORD = 0x00D2; | |
5574 | pub const EM_SETMARGINS: WORD = 0x00D3; | |
5575 | pub const EM_GETMARGINS: WORD = 0x00D4; | |
5576 | pub const EM_SETLIMITTEXT: WORD = EM_LIMITTEXT; | |
5577 | pub const EM_GETLIMITTEXT: WORD = 0x00D5; | |
5578 | pub const EM_POSFROMCHAR: WORD = 0x00D6; | |
5579 | pub const EM_CHARFROMPOS: WORD = 0x00D7; | |
5580 | pub const EM_SETIMESTATUS: WORD = 0x00D8; | |
5581 | pub const EM_GETIMESTATUS: WORD = 0x00D9; | |
ff7c6d11 XL |
5582 | pub const WB_LEFT: WORD = 0; |
5583 | pub const WB_RIGHT: WORD = 1; | |
5584 | pub const WB_ISDELIMITER: WORD = 2; | |
5585 | pub const BN_CLICKED: WORD = 0; | |
5586 | pub const BN_PAINT: WORD = 1; | |
5587 | pub const BN_HILITE: WORD = 2; | |
5588 | pub const BN_UNHILITE: WORD = 3; | |
5589 | pub const BN_DISABLE: WORD = 4; | |
5590 | pub const BN_DOUBLECLICKED: WORD = 5; | |
5591 | pub const BN_PUSHED: WORD = BN_HILITE; | |
5592 | pub const BN_UNPUSHED: WORD = BN_UNHILITE; | |
5593 | pub const BN_DBLCLK: WORD = BN_DOUBLECLICKED; | |
5594 | pub const BN_SETFOCUS: WORD = 6; | |
5595 | pub const BN_KILLFOCUS: WORD = 7; | |
5596 | pub const BS_PUSHBUTTON: DWORD = 0x00000000; | |
5597 | pub const BS_DEFPUSHBUTTON: DWORD = 0x00000001; | |
5598 | pub const BS_CHECKBOX: DWORD = 0x00000002; | |
5599 | pub const BS_AUTOCHECKBOX: DWORD = 0x00000003; | |
5600 | pub const BS_RADIOBUTTON: DWORD = 0x00000004; | |
5601 | pub const BS_3STATE: DWORD = 0x00000005; | |
5602 | pub const BS_AUTO3STATE: DWORD = 0x00000006; | |
5603 | pub const BS_GROUPBOX: DWORD = 0x00000007; | |
5604 | pub const BS_USERBUTTON: DWORD = 0x00000008; | |
5605 | pub const BS_AUTORADIOBUTTON: DWORD = 0x00000009; | |
5606 | pub const BS_PUSHBOX: DWORD = 0x0000000A; | |
5607 | pub const BS_OWNERDRAW: DWORD = 0x0000000B; | |
5608 | pub const BS_TYPEMASK: DWORD = 0x0000000F; | |
5609 | pub const BS_LEFTTEXT: DWORD = 0x00000020; | |
5610 | pub const BS_TEXT: DWORD = 0x00000000; | |
5611 | pub const BS_ICON: DWORD = 0x00000040; | |
5612 | pub const BS_BITMAP: DWORD = 0x00000080; | |
5613 | pub const BS_LEFT: DWORD = 0x00000100; | |
5614 | pub const BS_RIGHT: DWORD = 0x00000200; | |
5615 | pub const BS_CENTER: DWORD = 0x00000300; | |
5616 | pub const BS_TOP: DWORD = 0x00000400; | |
5617 | pub const BS_BOTTOM: DWORD = 0x00000800; | |
5618 | pub const BS_VCENTER: DWORD = 0x00000C00; | |
5619 | pub const BS_PUSHLIKE: DWORD = 0x00001000; | |
5620 | pub const BS_MULTILINE: DWORD = 0x00002000; | |
5621 | pub const BS_NOTIFY: DWORD = 0x00004000; | |
5622 | pub const BS_FLAT: DWORD = 0x00008000; | |
5623 | pub const BS_RIGHTBUTTON: DWORD = BS_LEFTTEXT; | |
5624 | pub const BM_GETCHECK: UINT = 0x00F0; | |
5625 | pub const BM_SETCHECK: UINT = 0x00F1; | |
5626 | pub const BM_GETSTATE: UINT = 0x00F2; | |
5627 | pub const BM_SETSTATE: UINT = 0x00F3; | |
5628 | pub const BM_SETSTYLE: UINT = 0x00F4; | |
5629 | pub const BM_CLICK: UINT = 0x00F5; | |
5630 | pub const BM_GETIMAGE: UINT = 0x00F6; | |
5631 | pub const BM_SETIMAGE: UINT = 0x00F7; | |
5632 | pub const BM_SETDONTCLICK: UINT = 0x00F8; | |
5633 | pub const BST_UNCHECKED: WPARAM = 0x0000; | |
5634 | pub const BST_CHECKED: WPARAM = 0x0001; | |
5635 | pub const BST_INDETERMINATE: WPARAM = 0x0002; | |
5636 | pub const BST_PUSHED: LRESULT = 0x0004; | |
5637 | pub const BST_FOCUS: LRESULT = 0x0008; | |
5638 | pub const SS_LEFT: DWORD = 0x00000000; | |
5639 | pub const SS_CENTER: DWORD = 0x00000001; | |
5640 | pub const SS_RIGHT: DWORD = 0x00000002; | |
5641 | pub const SS_ICON: DWORD = 0x00000003; | |
5642 | pub const SS_BLACKRECT: DWORD = 0x00000004; | |
5643 | pub const SS_GRAYRECT: DWORD = 0x00000005; | |
5644 | pub const SS_WHITERECT: DWORD = 0x00000006; | |
5645 | pub const SS_BLACKFRAME: DWORD = 0x00000007; | |
5646 | pub const SS_GRAYFRAME: DWORD = 0x00000008; | |
5647 | pub const SS_WHITEFRAME: DWORD = 0x00000009; | |
5648 | pub const SS_USERITEM: DWORD = 0x0000000A; | |
5649 | pub const SS_SIMPLE: DWORD = 0x0000000B; | |
5650 | pub const SS_LEFTNOWORDWRAP: DWORD = 0x0000000C; | |
5651 | pub const SS_OWNERDRAW: DWORD = 0x0000000D; | |
5652 | pub const SS_BITMAP: DWORD = 0x0000000E; | |
5653 | pub const SS_ENHMETAFILE: DWORD = 0x0000000F; | |
5654 | pub const SS_ETCHEDHORZ: DWORD = 0x00000010; | |
5655 | pub const SS_ETCHEDVERT: DWORD = 0x00000011; | |
5656 | pub const SS_ETCHEDFRAME: DWORD = 0x00000012; | |
5657 | pub const SS_TYPEMASK: DWORD = 0x0000001F; | |
5658 | pub const SS_REALSIZECONTROL: DWORD = 0x00000040; | |
5659 | pub const SS_NOPREFIX: DWORD = 0x00000080; | |
5660 | pub const SS_NOTIFY: DWORD = 0x00000100; | |
5661 | pub const SS_CENTERIMAGE: DWORD = 0x00000200; | |
5662 | pub const SS_RIGHTJUST: DWORD = 0x00000400; | |
5663 | pub const SS_REALSIZEIMAGE: DWORD = 0x00000800; | |
5664 | pub const SS_SUNKEN: DWORD = 0x00001000; | |
5665 | pub const SS_EDITCONTROL: DWORD = 0x00002000; | |
5666 | pub const SS_ENDELLIPSIS: DWORD = 0x00004000; | |
5667 | pub const SS_PATHELLIPSIS: DWORD = 0x00008000; | |
5668 | pub const SS_WORDELLIPSIS: DWORD = 0x0000C000; | |
5669 | pub const SS_ELLIPSISMASK: DWORD = 0x0000C000; | |
5670 | pub const STM_SETICON: UINT = 0x0170; | |
5671 | pub const STM_GETICON: UINT = 0x0171; | |
5672 | pub const STM_SETIMAGE: UINT = 0x0172; | |
5673 | pub const STM_GETIMAGE: UINT = 0x0173; | |
5674 | pub const STN_CLICKED: WORD = 0; | |
5675 | pub const STN_DBLCLK: WORD = 1; | |
5676 | pub const STN_ENABLE: WORD = 2; | |
5677 | pub const STN_DISABLE: WORD = 3; | |
5678 | pub const STM_MSGMAX: WORD = 0x0174; | |
60c5eb7d | 5679 | //11194 |
ff7c6d11 XL |
5680 | extern "system" { |
5681 | pub fn IsDialogMessageA( | |
5682 | hDlg: HWND, | |
5683 | lpMsg: LPMSG, | |
5684 | ) -> BOOL; | |
5685 | pub fn IsDialogMessageW( | |
5686 | hDlg: HWND, | |
5687 | lpMsg: LPMSG, | |
5688 | ) -> BOOL; | |
5689 | pub fn MapDialogRect( | |
5690 | hDlg: HWND, | |
5691 | lpRect: LPRECT, | |
5692 | ) -> BOOL; | |
5693 | pub fn DlgDirListA( | |
5694 | hDlg: HWND, | |
5695 | lpPathSpec: LPSTR, | |
5696 | nIDListBox: c_int, | |
5697 | nIDStaticPath: c_int, | |
5698 | uFileType: UINT, | |
5699 | ) -> c_int; | |
5700 | pub fn DlgDirListW( | |
5701 | hDlg: HWND, | |
5702 | lpPathSpec: LPWSTR, | |
5703 | nIDListBox: c_int, | |
5704 | nIDStaticPath: c_int, | |
5705 | uFileType: UINT, | |
5706 | ) -> c_int; | |
60c5eb7d XL |
5707 | } |
5708 | //11265 | |
5709 | extern "system" { | |
ff7c6d11 XL |
5710 | pub fn DlgDirSelectExA( |
5711 | hwndDlg: HWND, | |
5712 | lpString: LPSTR, | |
5713 | chCount: c_int, | |
5714 | idListBox: c_int, | |
5715 | ) -> BOOL; | |
5716 | pub fn DlgDirSelectExW( | |
5717 | hwndDlg: HWND, | |
5718 | lpString: LPWSTR, | |
5719 | chCount: c_int, | |
5720 | idListBox: c_int, | |
5721 | ) -> BOOL; | |
5722 | pub fn DlgDirListComboBoxA( | |
5723 | hDlg: HWND, | |
5724 | lpPathSpec: LPSTR, | |
5725 | nIDComboBox: c_int, | |
5726 | nIDStaticPath: c_int, | |
5727 | uFiletype: UINT, | |
5728 | ) -> c_int; | |
5729 | pub fn DlgDirListComboBoxW( | |
5730 | hDlg: HWND, | |
5731 | lpPathSpec: LPWSTR, | |
5732 | nIDComboBox: c_int, | |
5733 | nIDStaticPath: c_int, | |
5734 | uFiletype: UINT, | |
5735 | ) -> c_int; | |
5736 | pub fn DlgDirSelectComboBoxExA( | |
5737 | hwndDlg: HWND, | |
5738 | lpString: LPSTR, | |
5739 | cchOut: c_int, | |
5740 | idComboBox: c_int, | |
5741 | ) -> BOOL; | |
5742 | pub fn DlgDirSelectComboBoxExW( | |
5743 | hwndDlg: HWND, | |
5744 | lpString: LPWSTR, | |
5745 | cchOut: c_int, | |
5746 | idComboBox: c_int, | |
5747 | ) -> BOOL; | |
5748 | } | |
5749 | pub const DS_ABSALIGN: DWORD = 0x01; | |
5750 | pub const DS_SYSMODAL: DWORD = 0x02; | |
5751 | pub const DS_LOCALEDIT: DWORD = 0x20; | |
5752 | pub const DS_SETFONT: DWORD = 0x40; | |
5753 | pub const DS_MODALFRAME: DWORD = 0x80; | |
5754 | pub const DS_NOIDLEMSG: DWORD = 0x100; | |
5755 | pub const DS_SETFOREGROUND: DWORD = 0x200; | |
5756 | pub const DS_3DLOOK: DWORD = 0x0004; | |
5757 | pub const DS_FIXEDSYS: DWORD = 0x0008; | |
5758 | pub const DS_NOFAILCREATE: DWORD = 0x0010; | |
5759 | pub const DS_CONTROL: DWORD = 0x0400; | |
5760 | pub const DS_CENTER: DWORD = 0x0800; | |
5761 | pub const DS_CENTERMOUSE: DWORD = 0x1000; | |
5762 | pub const DS_CONTEXTHELP: DWORD = 0x2000; | |
5763 | pub const DS_SHELLFONT: DWORD = DS_SETFONT | DS_FIXEDSYS; | |
5764 | pub const DS_USEPIXELS: DWORD = 0x8000; | |
5765 | pub const DM_GETDEFID: UINT = WM_USER + 0; | |
5766 | pub const DM_SETDEFID: UINT = WM_USER + 1; | |
5767 | pub const DM_REPOSITION: UINT = WM_USER + 2; | |
5768 | pub const DC_HASDEFID: WORD = 0x534B; | |
5769 | pub const DLGC_WANTARROWS: LRESULT = 0x0001; | |
5770 | pub const DLGC_WANTTAB: LRESULT = 0x0002; | |
5771 | pub const DLGC_WANTALLKEYS: LRESULT = 0x0004; | |
5772 | pub const DLGC_WANTMESSAGE: LRESULT = 0x0004; | |
5773 | pub const DLGC_HASSETSEL: LRESULT = 0x0008; | |
5774 | pub const DLGC_DEFPUSHBUTTON: LRESULT = 0x0010; | |
5775 | pub const DLGC_UNDEFPUSHBUTTON: LRESULT = 0x0020; | |
5776 | pub const DLGC_RADIOBUTTON: LRESULT = 0x0040; | |
5777 | pub const DLGC_WANTCHARS: LRESULT = 0x0080; | |
5778 | pub const DLGC_STATIC: LRESULT = 0x0100; | |
5779 | pub const DLGC_BUTTON: LRESULT = 0x2000; | |
5780 | pub const LB_OKAY: LRESULT = 0; | |
5781 | pub const LB_ERR: LRESULT = -1; | |
5782 | pub const LB_ERRSPACE: LRESULT = -2; | |
5783 | pub const LBN_ERRSPACE: WORD = -2i16 as u16; | |
5784 | pub const LBN_SELCHANGE: WORD = 1; | |
5785 | pub const LBN_DBLCLK: WORD = 2; | |
5786 | pub const LBN_SELCANCEL: WORD = 3; | |
5787 | pub const LBN_SETFOCUS: WORD = 4; | |
5788 | pub const LBN_KILLFOCUS: WORD = 5; | |
5789 | pub const LB_ADDSTRING: UINT = 0x0180; | |
5790 | pub const LB_INSERTSTRING: UINT = 0x0181; | |
5791 | pub const LB_DELETESTRING: UINT = 0x0182; | |
5792 | pub const LB_SELITEMRANGEEX: UINT = 0x0183; | |
5793 | pub const LB_RESETCONTENT: UINT = 0x0184; | |
5794 | pub const LB_SETSEL: UINT = 0x0185; | |
5795 | pub const LB_SETCURSEL: UINT = 0x0186; | |
5796 | pub const LB_GETSEL: UINT = 0x0187; | |
5797 | pub const LB_GETCURSEL: UINT = 0x0188; | |
5798 | pub const LB_GETTEXT: UINT = 0x0189; | |
5799 | pub const LB_GETTEXTLEN: UINT = 0x018A; | |
5800 | pub const LB_GETCOUNT: UINT = 0x018B; | |
5801 | pub const LB_SELECTSTRING: UINT = 0x018C; | |
5802 | pub const LB_DIR: UINT = 0x018D; | |
5803 | pub const LB_GETTOPINDEX: UINT = 0x018E; | |
5804 | pub const LB_FINDSTRING: UINT = 0x018F; | |
5805 | pub const LB_GETSELCOUNT: UINT = 0x0190; | |
5806 | pub const LB_GETSELITEMS: UINT = 0x0191; | |
5807 | pub const LB_SETTABSTOPS: UINT = 0x0192; | |
5808 | pub const LB_GETHORIZONTALEXTENT: UINT = 0x0193; | |
5809 | pub const LB_SETHORIZONTALEXTENT: UINT = 0x0194; | |
5810 | pub const LB_SETCOLUMNWIDTH: UINT = 0x0195; | |
5811 | pub const LB_ADDFILE: UINT = 0x0196; | |
5812 | pub const LB_SETTOPINDEX: UINT = 0x0197; | |
5813 | pub const LB_GETITEMRECT: UINT = 0x0198; | |
5814 | pub const LB_GETITEMDATA: UINT = 0x0199; | |
5815 | pub const LB_SETITEMDATA: UINT = 0x019A; | |
5816 | pub const LB_SELITEMRANGE: UINT = 0x019B; | |
5817 | pub const LB_SETANCHORINDEX: UINT = 0x019C; | |
5818 | pub const LB_GETANCHORINDEX: UINT = 0x019D; | |
5819 | pub const LB_SETCARETINDEX: UINT = 0x019E; | |
5820 | pub const LB_GETCARETINDEX: UINT = 0x019F; | |
5821 | pub const LB_SETITEMHEIGHT: UINT = 0x01A0; | |
5822 | pub const LB_GETITEMHEIGHT: UINT = 0x01A1; | |
5823 | pub const LB_FINDSTRINGEXACT: UINT = 0x01A2; | |
5824 | pub const LB_SETLOCALE: UINT = 0x01A5; | |
5825 | pub const LB_GETLOCALE: UINT = 0x01A6; | |
5826 | pub const LB_SETCOUNT: UINT = 0x01A7; | |
5827 | pub const LB_INITSTORAGE: UINT = 0x01A8; | |
5828 | pub const LB_ITEMFROMPOINT: UINT = 0x01A9; | |
5829 | pub const LB_MULTIPLEADDSTRING: UINT = 0x01B1; | |
5830 | pub const LB_GETLISTBOXINFO: UINT = 0x01B2; | |
5831 | pub const LB_MSGMAX: UINT = 0x01B3; | |
5832 | pub const LBS_NOTIFY: DWORD = 0x0001; | |
5833 | pub const LBS_SORT: DWORD = 0x0002; | |
5834 | pub const LBS_NOREDRAW: DWORD = 0x0004; | |
5835 | pub const LBS_MULTIPLESEL: DWORD = 0x0008; | |
5836 | pub const LBS_OWNERDRAWFIXED: DWORD = 0x0010; | |
5837 | pub const LBS_OWNERDRAWVARIABLE: DWORD = 0x0020; | |
5838 | pub const LBS_HASSTRINGS: DWORD = 0x0040; | |
5839 | pub const LBS_USETABSTOPS: DWORD = 0x0080; | |
5840 | pub const LBS_NOINTEGRALHEIGHT: DWORD = 0x0100; | |
5841 | pub const LBS_MULTICOLUMN: DWORD = 0x0200; | |
5842 | pub const LBS_WANTKEYBOARDINPUT: DWORD = 0x0400; | |
5843 | pub const LBS_EXTENDEDSEL: DWORD = 0x0800; | |
5844 | pub const LBS_DISABLENOSCROLL: DWORD = 0x1000; | |
5845 | pub const LBS_NODATA: DWORD = 0x2000; | |
5846 | pub const LBS_NOSEL: DWORD = 0x4000; | |
5847 | pub const LBS_COMBOBOX: DWORD = 0x8000; | |
5848 | pub const LBS_STANDARD: DWORD = LBS_NOTIFY | LBS_SORT | WS_VSCROLL | WS_BORDER; | |
5849 | pub const CB_OKAY: LRESULT = 0; | |
5850 | pub const CB_ERR: LRESULT = -1; | |
5851 | pub const CB_ERRSPACE: LRESULT = -2; | |
5852 | pub const CBN_ERRSPACE: WORD = -1i16 as u16; | |
5853 | pub const CBN_SELCHANGE: WORD = 1; | |
5854 | pub const CBN_DBLCLK: WORD = 2; | |
5855 | pub const CBN_SETFOCUS: WORD = 3; | |
5856 | pub const CBN_KILLFOCUS: WORD = 4; | |
5857 | pub const CBN_EDITCHANGE: WORD = 5; | |
5858 | pub const CBN_EDITUPDATE: WORD = 6; | |
5859 | pub const CBN_DROPDOWN: WORD = 7; | |
5860 | pub const CBN_CLOSEUP: WORD = 8; | |
5861 | pub const CBN_SELENDOK: WORD = 9; | |
5862 | pub const CBN_SELENDCANCEL: WORD = 10; | |
5863 | pub const CBS_SIMPLE: DWORD = 0x0001; | |
5864 | pub const CBS_DROPDOWN: DWORD = 0x0002; | |
5865 | pub const CBS_DROPDOWNLIST: DWORD = 0x0003; | |
5866 | pub const CBS_OWNERDRAWFIXED: DWORD = 0x0010; | |
5867 | pub const CBS_OWNERDRAWVARIABLE: DWORD = 0x0020; | |
5868 | pub const CBS_AUTOHSCROLL: DWORD = 0x0040; | |
5869 | pub const CBS_OEMCONVERT: DWORD = 0x0080; | |
5870 | pub const CBS_SORT: DWORD = 0x0100; | |
5871 | pub const CBS_HASSTRINGS: DWORD = 0x0200; | |
5872 | pub const CBS_NOINTEGRALHEIGHT: DWORD = 0x0400; | |
5873 | pub const CBS_DISABLENOSCROLL: DWORD = 0x0800; | |
5874 | pub const CBS_UPPERCASE: DWORD = 0x2000; | |
5875 | pub const CBS_LOWERCASE: DWORD = 0x4000; | |
60c5eb7d XL |
5876 | //11571 |
5877 | pub const CB_GETEDITSEL: UINT = 0x0140; | |
5878 | pub const CB_LIMITTEXT: UINT = 0x0141; | |
5879 | pub const CB_SETEDITSEL: UINT = 0x0142; | |
5880 | pub const CB_ADDSTRING: UINT = 0x0143; | |
5881 | pub const CB_DELETESTRING: UINT = 0x0144; | |
5882 | pub const CB_DIR: UINT = 0x0145; | |
5883 | pub const CB_GETCOUNT: UINT = 0x0146; | |
5884 | pub const CB_GETCURSEL: UINT = 0x0147; | |
5885 | pub const CB_GETLBTEXT: UINT = 0x0148; | |
5886 | pub const CB_GETLBTEXTLEN: UINT = 0x0149; | |
5887 | pub const CB_INSERTSTRING: UINT = 0x014A; | |
5888 | pub const CB_RESETCONTENT: UINT = 0x014B; | |
5889 | pub const CB_FINDSTRING: UINT = 0x014C; | |
5890 | pub const CB_SELECTSTRING: UINT = 0x014D; | |
5891 | pub const CB_SETCURSEL: UINT = 0x014E; | |
5892 | pub const CB_SHOWDROPDOWN: UINT = 0x014F; | |
5893 | pub const CB_GETITEMDATA: UINT = 0x0150; | |
5894 | pub const CB_SETITEMDATA: UINT = 0x0151; | |
5895 | pub const CB_GETDROPPEDCONTROLRECT: UINT = 0x0152; | |
5896 | pub const CB_SETITEMHEIGHT: UINT = 0x0153; | |
5897 | pub const CB_GETITEMHEIGHT: UINT = 0x0154; | |
5898 | pub const CB_SETEXTENDEDUI: UINT = 0x0155; | |
5899 | pub const CB_GETEXTENDEDUI: UINT = 0x0156; | |
5900 | pub const CB_GETDROPPEDSTATE: UINT = 0x0157; | |
5901 | pub const CB_FINDSTRINGEXACT: UINT = 0x0158; | |
5902 | pub const CB_SETLOCALE: UINT = 0x0159; | |
5903 | pub const CB_GETLOCALE: UINT = 0x015A; | |
5904 | pub const CB_GETTOPINDEX: UINT = 0x015b; | |
5905 | pub const CB_SETTOPINDEX: UINT = 0x015c; | |
5906 | pub const CB_GETHORIZONTALEXTENT: UINT = 0x015d; | |
5907 | pub const CB_SETHORIZONTALEXTENT: UINT = 0x015e; | |
5908 | pub const CB_GETDROPPEDWIDTH: UINT = 0x015f; | |
5909 | pub const CB_SETDROPPEDWIDTH: UINT = 0x0160; | |
5910 | pub const CB_INITSTORAGE: UINT = 0x0161; | |
5911 | pub const CB_MULTIPLEADDSTRING: UINT = 0x0163; | |
5912 | pub const CB_GETCOMBOBOXINFO: UINT = 0x0164; | |
5913 | pub const CB_MSGMAX: UINT = 0x0165; | |
5914 | pub const SBS_HORZ: DWORD = 0x0000; | |
5915 | pub const SBS_VERT: DWORD = 0x0001; | |
5916 | pub const SBS_TOPALIGN: DWORD = 0x0002; | |
5917 | pub const SBS_LEFTALIGN: DWORD = 0x0002; | |
5918 | pub const SBS_BOTTOMALIGN: DWORD = 0x0004; | |
5919 | pub const SBS_RIGHTALIGN: DWORD = 0x0004; | |
5920 | pub const SBS_SIZEBOXTOPLEFTALIGN: DWORD = 0x0002; | |
5921 | pub const SBS_SIZEBOXBOTTOMRIGHTALIGN: DWORD = 0x0004; | |
5922 | pub const SBS_SIZEBOX: DWORD = 0x0008; | |
5923 | pub const SBS_SIZEGRIP: DWORD = 0x0010; | |
5924 | pub const SBM_SETPOS: UINT = 0x00E0; | |
5925 | pub const SBM_GETPOS: UINT = 0x00E1; | |
5926 | pub const SBM_SETRANGE: UINT = 0x00E2; | |
5927 | pub const SBM_SETRANGEREDRAW: UINT = 0x00E6; | |
5928 | pub const SBM_GETRANGE: UINT = 0x00E3; | |
ff7c6d11 XL |
5929 | pub const SBM_ENABLE_ARROWS: UINT = 0x00E4; |
5930 | pub const SBM_SETSCROLLINFO: UINT = 0x00E9; | |
5931 | pub const SBM_GETSCROLLINFO: UINT = 0x00EA; | |
5932 | pub const SBM_GETSCROLLBARINFO: UINT = 0x00EB; | |
5933 | pub const SIF_RANGE: UINT = 0x0001; | |
5934 | pub const SIF_PAGE: UINT = 0x0002; | |
5935 | pub const SIF_POS: UINT = 0x0004; | |
5936 | pub const SIF_DISABLENOSCROLL: UINT = 0x0008; | |
5937 | pub const SIF_TRACKPOS: UINT = 0x0010; | |
5938 | pub const SIF_ALL: UINT = SIF_RANGE | SIF_PAGE | SIF_POS | SIF_TRACKPOS; | |
5939 | STRUCT!{struct SCROLLINFO { | |
5940 | cbSize: UINT, | |
5941 | fMask: UINT, | |
5942 | nMin: c_int, | |
5943 | nMax: c_int, | |
5944 | nPage: UINT, | |
5945 | nPos: c_int, | |
5946 | nTrackPos: c_int, | |
5947 | }} | |
5948 | pub type LPSCROLLINFO = *mut SCROLLINFO; | |
5949 | pub type LPCSCROLLINFO = *const SCROLLINFO; | |
5950 | extern "system" { | |
5951 | pub fn SetScrollInfo( | |
5952 | hwnd: HWND, | |
5953 | nBar: c_int, | |
5954 | lpsi: *const SCROLLINFO, | |
5955 | redraw: BOOL, | |
5956 | ) -> c_int; | |
5957 | pub fn GetScrollInfo( | |
5958 | hwnd: HWND, | |
5959 | nBar: c_int, | |
5960 | lpsi: *mut SCROLLINFO, | |
5961 | ) -> BOOL; | |
5962 | } | |
ff7c6d11 XL |
5963 | pub const MDITILE_VERTICAL: UINT = 0x0000; |
5964 | pub const MDITILE_HORIZONTAL: UINT = 0x0001; | |
5965 | pub const MDITILE_SKIPDISABLED: UINT = 0x0002; | |
5966 | pub const MDITILE_ZORDER: UINT = 0x0004; | |
60c5eb7d | 5967 | //11776 |
ff7c6d11 XL |
5968 | extern "system" { |
5969 | pub fn DefFrameProcA( | |
5970 | hwnd: HWND, | |
5971 | hwndMDIClient: HWND, | |
5972 | uMsg: UINT, | |
5973 | wParam: WPARAM, | |
5974 | lParam: LPARAM, | |
5975 | ) -> LRESULT; | |
5976 | pub fn DefFrameProcW( | |
5977 | hwnd: HWND, | |
5978 | hwndMDIClient: HWND, | |
5979 | uMsg: UINT, | |
5980 | wParam: WPARAM, | |
5981 | lParam: LPARAM, | |
5982 | ) -> LRESULT; | |
5983 | pub fn DefMDIChildProcA( | |
5984 | hwnd: HWND, | |
5985 | uMsg: UINT, | |
5986 | wParam: WPARAM, | |
5987 | lParam: LPARAM, | |
5988 | ) -> LRESULT; | |
5989 | pub fn DefMDIChildProcW( | |
5990 | hwnd: HWND, | |
5991 | uMsg: UINT, | |
5992 | wParam: WPARAM, | |
5993 | lParam: LPARAM, | |
5994 | ) -> LRESULT; | |
5995 | pub fn ArrangeIconicWindows( | |
5996 | hWnd: HWND, | |
5997 | ) -> UINT; | |
5998 | pub fn CreateMDIWindowA( | |
5999 | lpClassName: LPCSTR, | |
6000 | lpWindowName: LPCSTR, | |
6001 | dwStyle: DWORD, | |
6002 | X: c_int, | |
6003 | Y: c_int, | |
6004 | nWidth: c_int, | |
6005 | nHeight: c_int, | |
6006 | hWndParent: HWND, | |
6007 | hInstance: HINSTANCE, | |
6008 | lParam: LPARAM, | |
6009 | ) -> HWND; | |
6010 | pub fn CreateMDIWindowW( | |
6011 | lpClassName: LPCWSTR, | |
6012 | lpWindowName: LPCWSTR, | |
6013 | dwStyle: DWORD, | |
6014 | X: c_int, | |
6015 | Y: c_int, | |
6016 | nWidth: c_int, | |
6017 | nHeight: c_int, | |
6018 | hWndParent: HWND, | |
6019 | hInstance: HINSTANCE, | |
6020 | lParam: LPARAM, | |
6021 | ) -> HWND; | |
6022 | pub fn CascadeWindows( | |
6023 | hwndParent: HWND, | |
6024 | wHow: UINT, | |
6025 | lpRect: *const RECT, | |
6026 | cKids: UINT, | |
6027 | lpKids: *const HWND, | |
6028 | ) -> WORD; | |
6029 | } | |
60c5eb7d | 6030 | //12016 |
ff7c6d11 XL |
6031 | extern "system" { |
6032 | pub fn WinHelpA( | |
6033 | hWndMain: HWND, | |
6034 | lpszHelp: LPCSTR, | |
6035 | uCommand: UINT, | |
6036 | dwData: ULONG_PTR, | |
6037 | ) -> BOOL; | |
6038 | pub fn WinHelpW( | |
6039 | hWndMain: HWND, | |
6040 | lpszHelp: LPCWSTR, | |
6041 | uCommand: UINT, | |
6042 | dwData: ULONG_PTR, | |
6043 | ) -> BOOL; | |
ff7c6d11 | 6044 | } |
60c5eb7d | 6045 | //12083 |
ff7c6d11 XL |
6046 | pub const SPI_GETBEEP: UINT = 0x0001; |
6047 | pub const SPI_SETBEEP: UINT = 0x0002; | |
6048 | pub const SPI_GETMOUSE: UINT = 0x0003; | |
6049 | pub const SPI_SETMOUSE: UINT = 0x0004; | |
6050 | pub const SPI_GETBORDER: UINT = 0x0005; | |
6051 | pub const SPI_SETBORDER: UINT = 0x0006; | |
6052 | pub const SPI_GETKEYBOARDSPEED: UINT = 0x000A; | |
6053 | pub const SPI_SETKEYBOARDSPEED: UINT = 0x000B; | |
6054 | pub const SPI_LANGDRIVER: UINT = 0x000C; | |
6055 | pub const SPI_ICONHORIZONTALSPACING: UINT = 0x000D; | |
6056 | pub const SPI_GETSCREENSAVETIMEOUT: UINT = 0x000E; | |
6057 | pub const SPI_SETSCREENSAVETIMEOUT: UINT = 0x000F; | |
6058 | pub const SPI_GETSCREENSAVEACTIVE: UINT = 0x0010; | |
6059 | pub const SPI_SETSCREENSAVEACTIVE: UINT = 0x0011; | |
6060 | pub const SPI_GETGRIDGRANULARITY: UINT = 0x0012; | |
6061 | pub const SPI_SETGRIDGRANULARITY: UINT = 0x0013; | |
6062 | pub const SPI_SETDESKWALLPAPER: UINT = 0x0014; | |
6063 | pub const SPI_SETDESKPATTERN: UINT = 0x0015; | |
6064 | pub const SPI_GETKEYBOARDDELAY: UINT = 0x0016; | |
6065 | pub const SPI_SETKEYBOARDDELAY: UINT = 0x0017; | |
6066 | pub const SPI_ICONVERTICALSPACING: UINT = 0x0018; | |
6067 | pub const SPI_GETICONTITLEWRAP: UINT = 0x0019; | |
6068 | pub const SPI_SETICONTITLEWRAP: UINT = 0x001A; | |
6069 | pub const SPI_GETMENUDROPALIGNMENT: UINT = 0x001B; | |
6070 | pub const SPI_SETMENUDROPALIGNMENT: UINT = 0x001C; | |
6071 | pub const SPI_SETDOUBLECLKWIDTH: UINT = 0x001D; | |
6072 | pub const SPI_SETDOUBLECLKHEIGHT: UINT = 0x001E; | |
6073 | pub const SPI_GETICONTITLELOGFONT: UINT = 0x001F; | |
6074 | pub const SPI_SETDOUBLECLICKTIME: UINT = 0x0020; | |
6075 | pub const SPI_SETMOUSEBUTTONSWAP: UINT = 0x0021; | |
6076 | pub const SPI_SETICONTITLELOGFONT: UINT = 0x0022; | |
6077 | pub const SPI_GETFASTTASKSWITCH: UINT = 0x0023; | |
6078 | pub const SPI_SETFASTTASKSWITCH: UINT = 0x0024; | |
6079 | pub const SPI_SETDRAGFULLWINDOWS: UINT = 0x0025; | |
6080 | pub const SPI_GETDRAGFULLWINDOWS: UINT = 0x0026; | |
6081 | pub const SPI_GETNONCLIENTMETRICS: UINT = 0x0029; | |
6082 | pub const SPI_SETNONCLIENTMETRICS: UINT = 0x002A; | |
6083 | pub const SPI_GETMINIMIZEDMETRICS: UINT = 0x002B; | |
6084 | pub const SPI_SETMINIMIZEDMETRICS: UINT = 0x002C; | |
6085 | pub const SPI_GETICONMETRICS: UINT = 0x002D; | |
6086 | pub const SPI_SETICONMETRICS: UINT = 0x002E; | |
6087 | pub const SPI_SETWORKAREA: UINT = 0x002F; | |
6088 | pub const SPI_GETWORKAREA: UINT = 0x0030; | |
6089 | pub const SPI_SETPENWINDOWS: UINT = 0x0031; | |
6090 | pub const SPI_GETHIGHCONTRAST: UINT = 0x0042; | |
6091 | pub const SPI_SETHIGHCONTRAST: UINT = 0x0043; | |
6092 | pub const SPI_GETKEYBOARDPREF: UINT = 0x0044; | |
6093 | pub const SPI_SETKEYBOARDPREF: UINT = 0x0045; | |
6094 | pub const SPI_GETSCREENREADER: UINT = 0x0046; | |
6095 | pub const SPI_SETSCREENREADER: UINT = 0x0047; | |
6096 | pub const SPI_GETANIMATION: UINT = 0x0048; | |
6097 | pub const SPI_SETANIMATION: UINT = 0x0049; | |
6098 | pub const SPI_GETFONTSMOOTHING: UINT = 0x004A; | |
6099 | pub const SPI_SETFONTSMOOTHING: UINT = 0x004B; | |
6100 | pub const SPI_SETDRAGWIDTH: UINT = 0x004C; | |
6101 | pub const SPI_SETDRAGHEIGHT: UINT = 0x004D; | |
6102 | pub const SPI_SETHANDHELD: UINT = 0x004E; | |
6103 | pub const SPI_GETLOWPOWERTIMEOUT: UINT = 0x004F; | |
6104 | pub const SPI_GETPOWEROFFTIMEOUT: UINT = 0x0050; | |
6105 | pub const SPI_SETLOWPOWERTIMEOUT: UINT = 0x0051; | |
6106 | pub const SPI_SETPOWEROFFTIMEOUT: UINT = 0x0052; | |
6107 | pub const SPI_GETLOWPOWERACTIVE: UINT = 0x0053; | |
6108 | pub const SPI_GETPOWEROFFACTIVE: UINT = 0x0054; | |
6109 | pub const SPI_SETLOWPOWERACTIVE: UINT = 0x0055; | |
6110 | pub const SPI_SETPOWEROFFACTIVE: UINT = 0x0056; | |
6111 | pub const SPI_SETCURSORS: UINT = 0x0057; | |
6112 | pub const SPI_SETICONS: UINT = 0x0058; | |
6113 | pub const SPI_GETDEFAULTINPUTLANG: UINT = 0x0059; | |
6114 | pub const SPI_SETDEFAULTINPUTLANG: UINT = 0x005A; | |
6115 | pub const SPI_SETLANGTOGGLE: UINT = 0x005B; | |
6116 | pub const SPI_GETWINDOWSEXTENSION: UINT = 0x005C; | |
6117 | pub const SPI_SETMOUSETRAILS: UINT = 0x005D; | |
6118 | pub const SPI_GETMOUSETRAILS: UINT = 0x005E; | |
6119 | pub const SPI_SETSCREENSAVERRUNNING: UINT = 0x0061; | |
6120 | pub const SPI_SCREENSAVERRUNNING: UINT = SPI_SETSCREENSAVERRUNNING; | |
6121 | pub const SPI_GETFILTERKEYS: UINT = 0x0032; | |
6122 | pub const SPI_SETFILTERKEYS: UINT = 0x0033; | |
6123 | pub const SPI_GETTOGGLEKEYS: UINT = 0x0034; | |
6124 | pub const SPI_SETTOGGLEKEYS: UINT = 0x0035; | |
6125 | pub const SPI_GETMOUSEKEYS: UINT = 0x0036; | |
6126 | pub const SPI_SETMOUSEKEYS: UINT = 0x0037; | |
6127 | pub const SPI_GETSHOWSOUNDS: UINT = 0x0038; | |
6128 | pub const SPI_SETSHOWSOUNDS: UINT = 0x0039; | |
6129 | pub const SPI_GETSTICKYKEYS: UINT = 0x003A; | |
6130 | pub const SPI_SETSTICKYKEYS: UINT = 0x003B; | |
6131 | pub const SPI_GETACCESSTIMEOUT: UINT = 0x003C; | |
6132 | pub const SPI_SETACCESSTIMEOUT: UINT = 0x003D; | |
6133 | pub const SPI_GETSERIALKEYS: UINT = 0x003E; | |
6134 | pub const SPI_SETSERIALKEYS: UINT = 0x003F; | |
6135 | pub const SPI_GETSOUNDSENTRY: UINT = 0x0040; | |
6136 | pub const SPI_SETSOUNDSENTRY: UINT = 0x0041; | |
6137 | pub const SPI_GETSNAPTODEFBUTTON: UINT = 0x005F; | |
6138 | pub const SPI_SETSNAPTODEFBUTTON: UINT = 0x0060; | |
6139 | pub const SPI_GETMOUSEHOVERWIDTH: UINT = 0x0062; | |
6140 | pub const SPI_SETMOUSEHOVERWIDTH: UINT = 0x0063; | |
6141 | pub const SPI_GETMOUSEHOVERHEIGHT: UINT = 0x0064; | |
6142 | pub const SPI_SETMOUSEHOVERHEIGHT: UINT = 0x0065; | |
6143 | pub const SPI_GETMOUSEHOVERTIME: UINT = 0x0066; | |
6144 | pub const SPI_SETMOUSEHOVERTIME: UINT = 0x0067; | |
6145 | pub const SPI_GETWHEELSCROLLLINES: UINT = 0x0068; | |
6146 | pub const SPI_SETWHEELSCROLLLINES: UINT = 0x0069; | |
6147 | pub const SPI_GETMENUSHOWDELAY: UINT = 0x006A; | |
6148 | pub const SPI_SETMENUSHOWDELAY: UINT = 0x006B; | |
6149 | pub const SPI_GETWHEELSCROLLCHARS: UINT = 0x006C; | |
6150 | pub const SPI_SETWHEELSCROLLCHARS: UINT = 0x006D; | |
6151 | pub const SPI_GETSHOWIMEUI: UINT = 0x006E; | |
6152 | pub const SPI_SETSHOWIMEUI: UINT = 0x006F; | |
6153 | pub const SPI_GETMOUSESPEED: UINT = 0x0070; | |
6154 | pub const SPI_SETMOUSESPEED: UINT = 0x0071; | |
6155 | pub const SPI_GETSCREENSAVERRUNNING: UINT = 0x0072; | |
6156 | pub const SPI_GETDESKWALLPAPER: UINT = 0x0073; | |
6157 | pub const SPI_GETAUDIODESCRIPTION: UINT = 0x0074; | |
6158 | pub const SPI_SETAUDIODESCRIPTION: UINT = 0x0075; | |
6159 | pub const SPI_GETSCREENSAVESECURE: UINT = 0x0076; | |
6160 | pub const SPI_SETSCREENSAVESECURE: UINT = 0x0077; | |
6161 | pub const SPI_GETHUNGAPPTIMEOUT: UINT = 0x0078; | |
6162 | pub const SPI_SETHUNGAPPTIMEOUT: UINT = 0x0079; | |
6163 | pub const SPI_GETWAITTOKILLTIMEOUT: UINT = 0x007A; | |
6164 | pub const SPI_SETWAITTOKILLTIMEOUT: UINT = 0x007B; | |
6165 | pub const SPI_GETWAITTOKILLSERVICETIMEOUT: UINT = 0x007C; | |
6166 | pub const SPI_SETWAITTOKILLSERVICETIMEOUT: UINT = 0x007D; | |
6167 | pub const SPI_GETMOUSEDOCKTHRESHOLD: UINT = 0x007E; | |
6168 | pub const SPI_SETMOUSEDOCKTHRESHOLD: UINT = 0x007F; | |
6169 | pub const SPI_GETPENDOCKTHRESHOLD: UINT = 0x0080; | |
6170 | pub const SPI_SETPENDOCKTHRESHOLD: UINT = 0x0081; | |
6171 | pub const SPI_GETWINARRANGING: UINT = 0x0082; | |
6172 | pub const SPI_SETWINARRANGING: UINT = 0x0083; | |
6173 | pub const SPI_GETMOUSEDRAGOUTTHRESHOLD: UINT = 0x0084; | |
6174 | pub const SPI_SETMOUSEDRAGOUTTHRESHOLD: UINT = 0x0085; | |
6175 | pub const SPI_GETPENDRAGOUTTHRESHOLD: UINT = 0x0086; | |
6176 | pub const SPI_SETPENDRAGOUTTHRESHOLD: UINT = 0x0087; | |
6177 | pub const SPI_GETMOUSESIDEMOVETHRESHOLD: UINT = 0x0088; | |
6178 | pub const SPI_SETMOUSESIDEMOVETHRESHOLD: UINT = 0x0089; | |
6179 | pub const SPI_GETPENSIDEMOVETHRESHOLD: UINT = 0x008A; | |
6180 | pub const SPI_SETPENSIDEMOVETHRESHOLD: UINT = 0x008B; | |
6181 | pub const SPI_GETDRAGFROMMAXIMIZE: UINT = 0x008C; | |
6182 | pub const SPI_SETDRAGFROMMAXIMIZE: UINT = 0x008D; | |
6183 | pub const SPI_GETSNAPSIZING: UINT = 0x008E; | |
6184 | pub const SPI_SETSNAPSIZING: UINT = 0x008F; | |
6185 | pub const SPI_GETDOCKMOVING: UINT = 0x0090; | |
6186 | pub const SPI_SETDOCKMOVING: UINT = 0x0091; | |
6187 | pub const SPI_GETACTIVEWINDOWTRACKING: UINT = 0x1000; | |
6188 | pub const SPI_SETACTIVEWINDOWTRACKING: UINT = 0x1001; | |
6189 | pub const SPI_GETMENUANIMATION: UINT = 0x1002; | |
6190 | pub const SPI_SETMENUANIMATION: UINT = 0x1003; | |
6191 | pub const SPI_GETCOMBOBOXANIMATION: UINT = 0x1004; | |
6192 | pub const SPI_SETCOMBOBOXANIMATION: UINT = 0x1005; | |
6193 | pub const SPI_GETLISTBOXSMOOTHSCROLLING: UINT = 0x1006; | |
6194 | pub const SPI_SETLISTBOXSMOOTHSCROLLING: UINT = 0x1007; | |
6195 | pub const SPI_GETGRADIENTCAPTIONS: UINT = 0x1008; | |
6196 | pub const SPI_SETGRADIENTCAPTIONS: UINT = 0x1009; | |
6197 | pub const SPI_GETKEYBOARDCUES: UINT = 0x100A; | |
6198 | pub const SPI_SETKEYBOARDCUES: UINT = 0x100B; | |
6199 | pub const SPI_GETMENUUNDERLINES: UINT = SPI_GETKEYBOARDCUES; | |
6200 | pub const SPI_SETMENUUNDERLINES: UINT = SPI_SETKEYBOARDCUES; | |
6201 | pub const SPI_GETACTIVEWNDTRKZORDER: UINT = 0x100C; | |
6202 | pub const SPI_SETACTIVEWNDTRKZORDER: UINT = 0x100D; | |
6203 | pub const SPI_GETHOTTRACKING: UINT = 0x100E; | |
6204 | pub const SPI_SETHOTTRACKING: UINT = 0x100F; | |
6205 | pub const SPI_GETMENUFADE: UINT = 0x1012; | |
6206 | pub const SPI_SETMENUFADE: UINT = 0x1013; | |
6207 | pub const SPI_GETSELECTIONFADE: UINT = 0x1014; | |
6208 | pub const SPI_SETSELECTIONFADE: UINT = 0x1015; | |
6209 | pub const SPI_GETTOOLTIPANIMATION: UINT = 0x1016; | |
6210 | pub const SPI_SETTOOLTIPANIMATION: UINT = 0x1017; | |
6211 | pub const SPI_GETTOOLTIPFADE: UINT = 0x1018; | |
6212 | pub const SPI_SETTOOLTIPFADE: UINT = 0x1019; | |
6213 | pub const SPI_GETCURSORSHADOW: UINT = 0x101A; | |
6214 | pub const SPI_SETCURSORSHADOW: UINT = 0x101B; | |
6215 | pub const SPI_GETMOUSESONAR: UINT = 0x101C; | |
6216 | pub const SPI_SETMOUSESONAR: UINT = 0x101D; | |
6217 | pub const SPI_GETMOUSECLICKLOCK: UINT = 0x101E; | |
6218 | pub const SPI_SETMOUSECLICKLOCK: UINT = 0x101F; | |
6219 | pub const SPI_GETMOUSEVANISH: UINT = 0x1020; | |
6220 | pub const SPI_SETMOUSEVANISH: UINT = 0x1021; | |
6221 | pub const SPI_GETFLATMENU: UINT = 0x1022; | |
6222 | pub const SPI_SETFLATMENU: UINT = 0x1023; | |
6223 | pub const SPI_GETDROPSHADOW: UINT = 0x1024; | |
6224 | pub const SPI_SETDROPSHADOW: UINT = 0x1025; | |
6225 | pub const SPI_GETBLOCKSENDINPUTRESETS: UINT = 0x1026; | |
6226 | pub const SPI_SETBLOCKSENDINPUTRESETS: UINT = 0x1027; | |
6227 | pub const SPI_GETUIEFFECTS: UINT = 0x103E; | |
6228 | pub const SPI_SETUIEFFECTS: UINT = 0x103F; | |
6229 | pub const SPI_GETDISABLEOVERLAPPEDCONTENT: UINT = 0x1040; | |
6230 | pub const SPI_SETDISABLEOVERLAPPEDCONTENT: UINT = 0x1041; | |
6231 | pub const SPI_GETCLIENTAREAANIMATION: UINT = 0x1042; | |
6232 | pub const SPI_SETCLIENTAREAANIMATION: UINT = 0x1043; | |
6233 | pub const SPI_GETCLEARTYPE: UINT = 0x1048; | |
6234 | pub const SPI_SETCLEARTYPE: UINT = 0x1049; | |
6235 | pub const SPI_GETSPEECHRECOGNITION: UINT = 0x104A; | |
6236 | pub const SPI_SETSPEECHRECOGNITION: UINT = 0x104B; | |
6237 | pub const SPI_GETFOREGROUNDLOCKTIMEOUT: UINT = 0x2000; | |
6238 | pub const SPI_SETFOREGROUNDLOCKTIMEOUT: UINT = 0x2001; | |
6239 | pub const SPI_GETACTIVEWNDTRKTIMEOUT: UINT = 0x2002; | |
6240 | pub const SPI_SETACTIVEWNDTRKTIMEOUT: UINT = 0x2003; | |
6241 | pub const SPI_GETFOREGROUNDFLASHCOUNT: UINT = 0x2004; | |
6242 | pub const SPI_SETFOREGROUNDFLASHCOUNT: UINT = 0x2005; | |
6243 | pub const SPI_GETCARETWIDTH: UINT = 0x2006; | |
6244 | pub const SPI_SETCARETWIDTH: UINT = 0x2007; | |
6245 | pub const SPI_GETMOUSECLICKLOCKTIME: UINT = 0x2008; | |
6246 | pub const SPI_SETMOUSECLICKLOCKTIME: UINT = 0x2009; | |
60c5eb7d XL |
6247 | pub const SPI_GETFONTSMOOTHINGTYPE: UINT = 0x200A; |
6248 | pub const SPI_SETFONTSMOOTHINGTYPE: UINT = 0x200B; | |
6249 | pub const FE_FONTSMOOTHINGSTANDARD: UINT = 0x0001; | |
6250 | pub const FE_FONTSMOOTHINGCLEARTYPE: UINT = 0x0002; | |
6251 | pub const SPI_GETFONTSMOOTHINGCONTRAST: UINT = 0x200C; | |
6252 | pub const SPI_SETFONTSMOOTHINGCONTRAST: UINT = 0x200D; | |
6253 | pub const SPI_GETFOCUSBORDERWIDTH: UINT = 0x200E; | |
6254 | pub const SPI_SETFOCUSBORDERWIDTH: UINT = 0x200F; | |
6255 | pub const SPI_GETFOCUSBORDERHEIGHT: UINT = 0x2010; | |
6256 | pub const SPI_SETFOCUSBORDERHEIGHT: UINT = 0x2011; | |
6257 | pub const SPI_GETFONTSMOOTHINGORIENTATION: UINT = 0x2012; | |
6258 | pub const SPI_SETFONTSMOOTHINGORIENTATION: UINT = 0x2013; | |
6259 | pub const FE_FONTSMOOTHINGORIENTATIONBGR: UINT = 0x0000; | |
6260 | pub const FE_FONTSMOOTHINGORIENTATIONRGB: UINT = 0x0001; | |
6261 | pub const SPI_GETMINIMUMHITRADIUS: UINT = 0x2014; | |
6262 | pub const SPI_SETMINIMUMHITRADIUS: UINT = 0x2015; | |
6263 | pub const SPI_GETMESSAGEDURATION: UINT = 0x2016; | |
6264 | pub const SPI_SETMESSAGEDURATION: UINT = 0x2017; | |
6265 | //12472 | |
6266 | pub const SPIF_UPDATEINIFILE: UINT = 0x0001; | |
6267 | pub const SPIF_SENDWININICHANGE: UINT = 0x0002; | |
6268 | pub const SPIF_SENDCHANGE: UINT = SPIF_SENDWININICHANGE; | |
6269 | //12484 | |
ff7c6d11 XL |
6270 | STRUCT!{struct NONCLIENTMETRICSA { |
6271 | cbSize: UINT, | |
6272 | iBorderWidth: c_int, | |
6273 | iScrollWidth: c_int, | |
6274 | iScrollHeight: c_int, | |
6275 | iCaptionWidth: c_int, | |
6276 | iCaptionHeight: c_int, | |
6277 | lfCaptionFont: LOGFONTA, | |
6278 | iSmCaptionWidth: c_int, | |
6279 | iSmCaptionHeight: c_int, | |
6280 | lfSmCaptionFont: LOGFONTA, | |
6281 | iMenuWidth: c_int, | |
6282 | iMenuHeight: c_int, | |
6283 | lfMenuFont: LOGFONTA, | |
6284 | lfStatusFont: LOGFONTA, | |
6285 | lfMessageFont: LOGFONTA, | |
6286 | iPaddedBorderWidth: c_int, | |
6287 | }} | |
6288 | pub type LPNONCLIENTMETRICSA = *mut NONCLIENTMETRICSA; | |
6289 | STRUCT!{struct NONCLIENTMETRICSW { | |
6290 | cbSize: UINT, | |
6291 | iBorderWidth: c_int, | |
6292 | iScrollWidth: c_int, | |
6293 | iScrollHeight: c_int, | |
6294 | iCaptionWidth: c_int, | |
6295 | iCaptionHeight: c_int, | |
6296 | lfCaptionFont: LOGFONTW, | |
6297 | iSmCaptionWidth: c_int, | |
6298 | iSmCaptionHeight: c_int, | |
6299 | lfSmCaptionFont: LOGFONTW, | |
6300 | iMenuWidth: c_int, | |
6301 | iMenuHeight: c_int, | |
6302 | lfMenuFont: LOGFONTW, | |
6303 | lfStatusFont: LOGFONTW, | |
6304 | lfMessageFont: LOGFONTW, | |
6305 | iPaddedBorderWidth: c_int, | |
6306 | }} | |
6307 | pub type LPNONCLIENTMETRICSW = *mut NONCLIENTMETRICSW; | |
60c5eb7d XL |
6308 | //12598 |
6309 | STRUCT!{struct ANIMATIONINFO { | |
6310 | cbSize: UINT, | |
6311 | iMinAnimate: c_int, | |
6312 | }} | |
6313 | pub type LPANIMATIONINFO = *mut ANIMATIONINFO; | |
6314 | //12672 | |
6315 | pub const CDS_UPDATEREGISTRY: DWORD = 0x00000001; | |
6316 | pub const CDS_TEST: DWORD = 0x00000002; | |
6317 | pub const CDS_FULLSCREEN: DWORD = 0x00000004; | |
6318 | pub const CDS_GLOBAL: DWORD = 0x00000008; | |
6319 | pub const CDS_SET_PRIMARY: DWORD = 0x00000010; | |
6320 | pub const CDS_VIDEOPARAMETERS: DWORD = 0x00000020; | |
6321 | pub const CDS_ENABLE_UNSAFE_MODES: DWORD = 0x00000100; | |
6322 | pub const CDS_DISABLE_UNSAFE_MODES: DWORD = 0x00000200; | |
6323 | pub const CDS_RESET: DWORD = 0x40000000; | |
6324 | pub const CDS_RESET_EX: DWORD = 0x20000000; | |
6325 | pub const CDS_NORESET: DWORD = 0x10000000; | |
6326 | pub const DISP_CHANGE_SUCCESSFUL: LONG = 0; | |
6327 | pub const DISP_CHANGE_RESTART: LONG = 1; | |
6328 | pub const DISP_CHANGE_FAILED: LONG = -1; | |
6329 | pub const DISP_CHANGE_BADMODE: LONG = -2; | |
6330 | pub const DISP_CHANGE_NOTUPDATED: LONG = -3; | |
6331 | pub const DISP_CHANGE_BADFLAGS: LONG = -4; | |
6332 | pub const DISP_CHANGE_BADPARAM: LONG = -5; | |
6333 | pub const DISP_CHANGE_BADDUALVIEW: LONG = -6; | |
6334 | extern "system" { | |
6335 | pub fn ChangeDisplaySettingsA( | |
6336 | lpDevMode: *mut DEVMODEA, | |
6337 | dwFlags: DWORD, | |
6338 | ) -> LONG; | |
6339 | pub fn ChangeDisplaySettingsW( | |
6340 | lpDevMode: *mut DEVMODEW, | |
6341 | dwFlags: DWORD, | |
6342 | ) -> LONG; | |
6343 | pub fn ChangeDisplaySettingsExA( | |
6344 | lpszDeviceName: LPCSTR, | |
6345 | lpDevMode: *mut DEVMODEA, | |
6346 | hwnd: HWND, | |
6347 | dwFlags: DWORD, | |
6348 | lParam: LPVOID, | |
6349 | ) -> LONG; | |
6350 | pub fn ChangeDisplaySettingsExW( | |
6351 | lpszDeviceName: LPCWSTR, | |
6352 | lpDevMode: *mut DEVMODEW, | |
6353 | hwnd: HWND, | |
6354 | dwFlags: DWORD, | |
6355 | lParam: LPVOID, | |
6356 | ) -> LONG; | |
6357 | } | |
6358 | pub const ENUM_CURRENT_SETTINGS: DWORD = 0xFFFFFFFF; | |
6359 | pub const ENUM_REGISTRY_SETTINGS: DWORD = 0xFFFFFFFE; | |
6360 | extern "system" { | |
6361 | pub fn EnumDisplaySettingsA( | |
6362 | lpszDeviceName: LPCSTR, | |
6363 | iModeNum: DWORD, | |
6364 | lpDevMode: *mut DEVMODEA, | |
6365 | ) -> BOOL; | |
6366 | pub fn EnumDisplaySettingsW( | |
6367 | lpszDeviceName: LPCWSTR, | |
6368 | iModeNum: DWORD, | |
6369 | lpDevMode: *mut DEVMODEW, | |
6370 | ) -> BOOL; | |
6371 | pub fn EnumDisplaySettingsExA( | |
6372 | lpszDeviceName: LPCSTR, | |
6373 | iModeNum: DWORD, | |
6374 | lpDevMode: *mut DEVMODEA, | |
6375 | dwFlags: DWORD, | |
6376 | ) -> BOOL; | |
6377 | pub fn EnumDisplaySettingsExW( | |
6378 | lpszDeviceName: LPCWSTR, | |
6379 | iModeNum: DWORD, | |
6380 | lpDevMode: *mut DEVMODEW, | |
6381 | dwFlags: DWORD, | |
6382 | ) -> BOOL; | |
6383 | } | |
6384 | pub const EDS_RAWMODE: DWORD = 0x00000002; | |
6385 | pub const EDS_ROTATEDMODE: DWORD = 0x00000004; | |
6386 | extern "system" { | |
6387 | pub fn EnumDisplayDevicesA( | |
6388 | lpDevice: LPCSTR, | |
6389 | iDevNum: DWORD, | |
6390 | lpDisplayDevice: PDISPLAY_DEVICEA, | |
6391 | dwFlags: DWORD, | |
6392 | ) -> BOOL; | |
6393 | pub fn EnumDisplayDevicesW( | |
6394 | lpDevice: LPCWSTR, | |
6395 | iDevNum: DWORD, | |
6396 | lpDisplayDevice: PDISPLAY_DEVICEW, | |
6397 | dwFlags: DWORD, | |
6398 | ) -> BOOL; | |
6399 | } | |
6400 | pub const EDD_GET_DEVICE_INTERFACE_NAME: DWORD = 0x00000001; | |
6401 | extern "system" { | |
6402 | pub fn SystemParametersInfoA( | |
6403 | uiAction: UINT, | |
6404 | uiParam: UINT, | |
6405 | pvParam: PVOID, | |
6406 | fWinIni: UINT, | |
6407 | ) -> BOOL; | |
6408 | pub fn SystemParametersInfoW( | |
6409 | uiAction: UINT, | |
6410 | uiParam: UINT, | |
6411 | pvParam: PVOID, | |
6412 | fWinIni: UINT, | |
6413 | ) -> BOOL; | |
6414 | pub fn SystemParametersInfoForDpi( | |
6415 | uiAction: UINT, | |
6416 | uiParam: UINT, | |
6417 | pvParam: PVOID, | |
6418 | fWinIni: UINT, | |
6419 | dpi: UINT, | |
6420 | ) -> BOOL; | |
6421 | } | |
6422 | //13191 | |
ff7c6d11 XL |
6423 | extern "system" { |
6424 | pub fn SetLastErrorEx( | |
6425 | dwErrCode: DWORD, | |
6426 | dwType: DWORD, | |
6427 | ); | |
6428 | pub fn InternalGetWindowText( | |
6429 | hWnd: HWND, | |
6430 | pString: LPWSTR, | |
6431 | cchMaxCount: c_int, | |
6432 | ) -> c_int; | |
6433 | pub fn EndTask( | |
6434 | hWnd: HWND, | |
6435 | fShutDown: BOOL, | |
6436 | fForce: BOOL, | |
6437 | ) -> BOOL; | |
6438 | pub fn CancelShutdown() -> BOOL; | |
6439 | } | |
6440 | pub const MONITOR_DEFAULTTONULL: DWORD = 0x00000000; | |
6441 | pub const MONITOR_DEFAULTTOPRIMARY: DWORD = 0x00000001; | |
6442 | pub const MONITOR_DEFAULTTONEAREST: DWORD = 0x00000002; | |
ff7c6d11 XL |
6443 | extern "system" { |
6444 | pub fn MonitorFromPoint( | |
6445 | pt: POINT, | |
6446 | dwFlags: DWORD, | |
6447 | ) -> HMONITOR; | |
6448 | pub fn MonitorFromRect( | |
6449 | lprc: LPCRECT, | |
6450 | dwFlags: DWORD, | |
6451 | ) -> HMONITOR; | |
6452 | pub fn MonitorFromWindow( | |
6453 | hwnd: HWND, | |
6454 | dwFlags: DWORD, | |
6455 | ) -> HMONITOR; | |
6456 | } | |
6457 | pub const MONITORINFOF_PRIMARY: DWORD = 1; | |
6458 | pub const CCHDEVICENAME: usize = 32; | |
6459 | STRUCT!{struct MONITORINFO { | |
6460 | cbSize: DWORD, | |
6461 | rcMonitor: RECT, | |
6462 | rcWork: RECT, | |
6463 | dwFlags: DWORD, | |
6464 | }} | |
6465 | pub type LPMONITORINFO = *mut MONITORINFO; | |
6466 | STRUCT!{struct MONITORINFOEXA { | |
6467 | cbSize: DWORD, | |
6468 | rcMonitor: RECT, | |
6469 | rcWork: RECT, | |
6470 | dwFlags: DWORD, | |
6471 | szDevice: [CHAR; CCHDEVICENAME], | |
6472 | }} | |
6473 | pub type LPMONITORINFOEXA = *mut MONITORINFOEXA; | |
6474 | STRUCT!{struct MONITORINFOEXW { | |
6475 | cbSize: DWORD, | |
6476 | rcMonitor: RECT, | |
6477 | rcWork: RECT, | |
6478 | dwFlags: DWORD, | |
6479 | szDevice: [WCHAR; CCHDEVICENAME], | |
6480 | }} | |
6481 | pub type LPMONITORINFOEXW = *mut MONITORINFOEXW; | |
ff7c6d11 XL |
6482 | extern "system" { |
6483 | pub fn GetMonitorInfoA( | |
6484 | hMonitor: HMONITOR, | |
6485 | lpmi: LPMONITORINFO, | |
6486 | ) -> BOOL; | |
6487 | pub fn GetMonitorInfoW( | |
6488 | hMonitor: HMONITOR, | |
6489 | lpmi: LPMONITORINFO, | |
6490 | ) -> BOOL; | |
6491 | } | |
6492 | FN!{stdcall MONITORENUMPROC( | |
6493 | HMONITOR, | |
6494 | HDC, | |
6495 | LPRECT, | |
6496 | LPARAM, | |
6497 | ) -> BOOL} | |
6498 | extern "system" { | |
6499 | pub fn EnumDisplayMonitors( | |
6500 | hdc: HDC, | |
6501 | lprcClip: LPCRECT, | |
6502 | lpfnEnum: MONITORENUMPROC, | |
6503 | dwData: LPARAM, | |
6504 | ) -> BOOL; | |
6505 | pub fn NotifyWinEvent( | |
6506 | event: DWORD, | |
6507 | hwnd: HWND, | |
6508 | idObject: LONG, | |
6509 | idChild: LONG, | |
6510 | ); | |
60c5eb7d XL |
6511 | } |
6512 | FN!{stdcall WINEVENTPROC( | |
6513 | HWINEVENTHOOK, | |
6514 | DWORD, | |
6515 | HWND, | |
6516 | LONG, | |
6517 | LONG, | |
6518 | DWORD, | |
6519 | DWORD, | |
6520 | ) -> ()} | |
6521 | extern "system" { | |
ff7c6d11 XL |
6522 | pub fn SetWinEventHook( |
6523 | eventMin: DWORD, | |
6524 | eventMax: DWORD, | |
6525 | hmodWinEventProc: HMODULE, | |
6526 | pfnWinEventProc: WINEVENTPROC, | |
6527 | idProcess: DWORD, | |
6528 | idThread: DWORD, | |
6529 | dwFlags: DWORD, | |
6530 | ) -> HWINEVENTHOOK; | |
6531 | pub fn IsWinEventHookInstalled( | |
6532 | event: DWORD, | |
6533 | ) -> BOOL; | |
0bf4aa26 XL |
6534 | } |
6535 | pub const WINEVENT_OUTOFCONTEXT: UINT = 0x0000; | |
6536 | pub const WINEVENT_SKIPOWNTHREAD: UINT = 0x0001; | |
6537 | pub const WINEVENT_SKIPOWNPROCESS: UINT = 0x0002; | |
6538 | pub const WINEVENT_INCONTEXT: UINT = 0x0004; | |
6539 | extern "system" { | |
ff7c6d11 XL |
6540 | pub fn UnhookWinEvent( |
6541 | hWinEventHook: HWINEVENTHOOK, | |
6542 | ) -> BOOL; | |
0bf4aa26 XL |
6543 | } |
6544 | pub const CHILDID_SELF: LONG = 0; | |
6545 | pub const INDEXID_OBJECT: LONG = 0; | |
6546 | pub const INDEXID_CONTAINER: LONG = 0; | |
6547 | pub const OBJID_WINDOW: LONG = 0x0000; | |
6548 | pub const OBJID_SYSMENU: LONG = 0xFFFFFFFF; | |
6549 | pub const OBJID_TITLEBAR: LONG = 0xFFFFFFFE; | |
6550 | pub const OBJID_MENU: LONG = 0xFFFFFFFD; | |
6551 | pub const OBJID_CLIENT: LONG = 0xFFFFFFFC; | |
6552 | pub const OBJID_VSCROLL: LONG = 0xFFFFFFFB; | |
6553 | pub const OBJID_HSCROLL: LONG = 0xFFFFFFFA; | |
6554 | pub const OBJID_SIZEGRIP: LONG = 0xFFFFFFF9; | |
6555 | pub const OBJID_CARET: LONG = 0xFFFFFFF8; | |
6556 | pub const OBJID_CURSOR: LONG = 0xFFFFFFF7; | |
6557 | pub const OBJID_ALERT: LONG = 0xFFFFFFF6; | |
6558 | pub const OBJID_SOUND: LONG = 0xFFFFFFF5; | |
6559 | pub const OBJID_QUERYCLASSNAMEIDX: LONG = 0xFFFFFFF4; | |
6560 | pub const OBJID_NATIVEOM: LONG = 0xFFFFFFF0; | |
6561 | pub const EVENT_MIN: UINT = 0x0001; | |
6562 | pub const EVENT_MAX: UINT = 0x7FFFFFFF; | |
6563 | pub const EVENT_SYSTEM_SOUND: UINT = 0x0001; | |
6564 | pub const EVENT_SYSTEM_ALERT: UINT = 0x0002; | |
6565 | pub const EVENT_SYSTEM_FOREGROUND: UINT = 0x0003; | |
6566 | pub const EVENT_SYSTEM_MENUSTART: UINT = 0x0004; | |
6567 | pub const EVENT_SYSTEM_MENUEND: UINT = 0x0005; | |
6568 | pub const EVENT_SYSTEM_MENUPOPUPSTART: UINT = 0x0006; | |
6569 | pub const EVENT_SYSTEM_MENUPOPUPEND: UINT = 0x0007; | |
6570 | pub const EVENT_SYSTEM_CAPTURESTART: UINT = 0x0008; | |
6571 | pub const EVENT_SYSTEM_CAPTUREEND: UINT = 0x0009; | |
6572 | pub const EVENT_SYSTEM_MOVESIZESTART: UINT = 0x000A; | |
6573 | pub const EVENT_SYSTEM_MOVESIZEEND: UINT = 0x000B; | |
6574 | pub const EVENT_SYSTEM_CONTEXTHELPSTART: UINT = 0x000C; | |
6575 | pub const EVENT_SYSTEM_CONTEXTHELPEND: UINT = 0x000D; | |
6576 | pub const EVENT_SYSTEM_DRAGDROPSTART: UINT = 0x000E; | |
6577 | pub const EVENT_SYSTEM_DRAGDROPEND: UINT = 0x000F; | |
6578 | pub const EVENT_SYSTEM_DIALOGSTART: UINT = 0x0010; | |
6579 | pub const EVENT_SYSTEM_DIALOGEND: UINT = 0x0011; | |
6580 | pub const EVENT_SYSTEM_SCROLLINGSTART: UINT = 0x0012; | |
6581 | pub const EVENT_SYSTEM_SCROLLINGEND: UINT = 0x0013; | |
6582 | pub const EVENT_SYSTEM_SWITCHSTART: UINT = 0x0014; | |
6583 | pub const EVENT_SYSTEM_SWITCHEND: UINT = 0x0015; | |
6584 | pub const EVENT_SYSTEM_MINIMIZESTART: UINT = 0x0016; | |
6585 | pub const EVENT_SYSTEM_MINIMIZEEND: UINT = 0x0017; | |
6586 | pub const EVENT_SYSTEM_DESKTOPSWITCH: UINT = 0x0020; | |
6587 | pub const EVENT_SYSTEM_SWITCHER_APPGRABBED: UINT = 0x0024; | |
6588 | pub const EVENT_SYSTEM_SWITCHER_APPOVERTARGET: UINT = 0x0025; | |
6589 | pub const EVENT_SYSTEM_SWITCHER_APPDROPPED: UINT = 0x0026; | |
6590 | pub const EVENT_SYSTEM_SWITCHER_CANCELLED: UINT = 0x0027; | |
6591 | pub const EVENT_SYSTEM_IME_KEY_NOTIFICATION: UINT = 0x0029; | |
6592 | pub const EVENT_SYSTEM_END: UINT = 0x00FF; | |
6593 | pub const EVENT_OEM_DEFINED_START: UINT = 0x0101; | |
6594 | pub const EVENT_OEM_DEFINED_END: UINT = 0x01FF; | |
6595 | pub const EVENT_UIA_EVENTID_START: UINT = 0x4E00; | |
6596 | pub const EVENT_UIA_EVENTID_END: UINT = 0x4EFF; | |
6597 | pub const EVENT_UIA_PROPID_START: UINT = 0x7500; | |
6598 | pub const EVENT_UIA_PROPID_END: UINT = 0x75FF; | |
6599 | pub const EVENT_CONSOLE_CARET: UINT = 0x4001; | |
6600 | pub const EVENT_CONSOLE_UPDATE_REGION: UINT = 0x4002; | |
6601 | pub const EVENT_CONSOLE_UPDATE_SIMPLE: UINT = 0x4003; | |
6602 | pub const EVENT_CONSOLE_UPDATE_SCROLL: UINT = 0x4004; | |
6603 | pub const EVENT_CONSOLE_LAYOUT: UINT = 0x4005; | |
6604 | pub const EVENT_CONSOLE_START_APPLICATION: UINT = 0x4006; | |
6605 | pub const EVENT_CONSOLE_END_APPLICATION: UINT = 0x4007; | |
60c5eb7d | 6606 | #[cfg(target_pointer_width = "64")] |
0bf4aa26 | 6607 | pub const CONSOLE_APPLICATION_16BIT: LONG = 0x0000; |
60c5eb7d | 6608 | #[cfg(target_pointer_width = "32")] |
0bf4aa26 XL |
6609 | pub const CONSOLE_APPLICATION_16BIT: LONG = 0x0001; |
6610 | pub const CONSOLE_CARET_SELECTION: LONG = 0x0001; | |
6611 | pub const CONSOLE_CARET_VISIBLE: LONG = 0x0002; | |
6612 | pub const EVENT_CONSOLE_END: UINT = 0x40FF; | |
6613 | pub const EVENT_OBJECT_CREATE: UINT = 0x8000; | |
6614 | pub const EVENT_OBJECT_DESTROY: UINT = 0x8001; | |
6615 | pub const EVENT_OBJECT_SHOW: UINT = 0x8002; | |
6616 | pub const EVENT_OBJECT_HIDE: UINT = 0x8003; | |
6617 | pub const EVENT_OBJECT_REORDER: UINT = 0x8004; | |
6618 | pub const EVENT_OBJECT_FOCUS: UINT = 0x8005; | |
6619 | pub const EVENT_OBJECT_SELECTION: UINT = 0x8006; | |
6620 | pub const EVENT_OBJECT_SELECTIONADD: UINT = 0x8007; | |
6621 | pub const EVENT_OBJECT_SELECTIONREMOVE: UINT = 0x8008; | |
6622 | pub const EVENT_OBJECT_SELECTIONWITHIN: UINT = 0x8009; | |
6623 | pub const EVENT_OBJECT_STATECHANGE: UINT = 0x800A; | |
6624 | pub const EVENT_OBJECT_LOCATIONCHANGE: UINT = 0x800B; | |
6625 | pub const EVENT_OBJECT_NAMECHANGE: UINT = 0x800C; | |
6626 | pub const EVENT_OBJECT_DESCRIPTIONCHANGE: UINT = 0x800D; | |
6627 | pub const EVENT_OBJECT_VALUECHANGE: UINT = 0x800E; | |
6628 | pub const EVENT_OBJECT_PARENTCHANGE: UINT = 0x800F; | |
6629 | pub const EVENT_OBJECT_HELPCHANGE: UINT = 0x8010; | |
6630 | pub const EVENT_OBJECT_DEFACTIONCHANGE: UINT = 0x8011; | |
6631 | pub const EVENT_OBJECT_ACCELERATORCHANGE: UINT = 0x8012; | |
6632 | pub const EVENT_OBJECT_INVOKED: UINT = 0x8013; | |
6633 | pub const EVENT_OBJECT_TEXTSELECTIONCHANGED: UINT = 0x8014; | |
6634 | pub const EVENT_OBJECT_CONTENTSCROLLED: UINT = 0x8015; | |
6635 | pub const EVENT_SYSTEM_ARRANGMENTPREVIEW: UINT = 0x8016; | |
6636 | pub const EVENT_OBJECT_CLOAKED: UINT = 0x8017; | |
6637 | pub const EVENT_OBJECT_UNCLOAKED: UINT = 0x8018; | |
6638 | pub const EVENT_OBJECT_LIVEREGIONCHANGED: UINT = 0x8019; | |
6639 | pub const EVENT_OBJECT_HOSTEDOBJECTSINVALIDATED: UINT = 0x8020; | |
6640 | pub const EVENT_OBJECT_DRAGSTART: UINT = 0x8021; | |
6641 | pub const EVENT_OBJECT_DRAGCANCEL: UINT = 0x8022; | |
6642 | pub const EVENT_OBJECT_DRAGCOMPLETE: UINT = 0x8023; | |
6643 | pub const EVENT_OBJECT_DRAGENTER: UINT = 0x8024; | |
6644 | pub const EVENT_OBJECT_DRAGLEAVE: UINT = 0x8025; | |
6645 | pub const EVENT_OBJECT_DRAGDROPPED: UINT = 0x8026; | |
6646 | pub const EVENT_OBJECT_IME_SHOW: UINT = 0x8027; | |
6647 | pub const EVENT_OBJECT_IME_HIDE: UINT = 0x8028; | |
6648 | pub const EVENT_OBJECT_IME_CHANGE: UINT = 0x8029; | |
6649 | pub const EVENT_OBJECT_TEXTEDIT_CONVERSIONTARGETCHANGED: UINT = 0x8030; | |
6650 | pub const EVENT_OBJECT_END: UINT = 0x80FF; | |
6651 | pub const EVENT_AIA_START: UINT = 0xA000; | |
6652 | pub const EVENT_AIA_END: UINT = 0xAFFF; | |
6653 | pub const ALERT_SYSTEM_INFORMATIONAL: LONG = 1; | |
6654 | pub const ALERT_SYSTEM_WARNING: LONG = 2; | |
6655 | pub const ALERT_SYSTEM_ERROR: LONG = 3; | |
6656 | pub const ALERT_SYSTEM_QUERY: LONG = 4; | |
6657 | pub const ALERT_SYSTEM_CRITICAL: LONG = 5; | |
6658 | pub const CALERT_SYSTEM: LONG = 6; | |
60c5eb7d XL |
6659 | STRUCT!{struct GUITHREADINFO { |
6660 | cbSize: DWORD, | |
6661 | flags: DWORD, | |
6662 | hwndActive: HWND, | |
6663 | hwndFocus: HWND, | |
6664 | hwndCapture: HWND, | |
6665 | hwndMenuOwner: HWND, | |
6666 | hwndMoveSize: HWND, | |
6667 | hwndCaret: HWND, | |
6668 | rcCaret: RECT, | |
6669 | }} | |
6670 | pub type PGUITHREADINFO = *mut GUITHREADINFO; | |
6671 | pub type LPGUITHREADINFO = *mut GUITHREADINFO; | |
6672 | pub const GUI_CARETBLINKING: DWORD = 0x00000001; | |
6673 | pub const GUI_INMOVESIZE: DWORD = 0x00000002; | |
6674 | pub const GUI_INMENUMODE: DWORD = 0x00000004; | |
6675 | pub const GUI_SYSTEMMENUMODE: DWORD = 0x00000008; | |
6676 | pub const GUI_POPUPMENUMODE: DWORD = 0x00000010; | |
6677 | #[cfg(target_arch = "x86_64")] | |
6678 | pub const GUI_16BITTASK: DWORD = 0x00000000; | |
6679 | #[cfg(target_arch = "x86")] | |
6680 | pub const GUI_16BITTASK: DWORD = 0x00000020; | |
0bf4aa26 | 6681 | extern "system" { |
60c5eb7d XL |
6682 | pub fn GetGUIThreadInfo( |
6683 | idThread: DWORD, | |
6684 | pgui: PGUITHREADINFO, | |
6685 | ) -> BOOL; | |
ff7c6d11 XL |
6686 | pub fn BlockInput( |
6687 | fBlockIt: BOOL, | |
6688 | ) -> BOOL; | |
60c5eb7d XL |
6689 | } |
6690 | pub const USER_DEFAULT_SCREEN_DPI: LONG = 96; | |
6691 | extern "system" { | |
6692 | pub fn SetProcessDPIAware() -> BOOL; | |
ff7c6d11 | 6693 | pub fn IsProcessDPIAware() -> BOOL; |
60c5eb7d XL |
6694 | pub fn SetThreadDpiAwarenessContext( |
6695 | dpiContext: DPI_AWARENESS_CONTEXT, | |
6696 | ) -> DPI_AWARENESS_CONTEXT; | |
6697 | pub fn GetThreadDpiAwarenessContext() -> DPI_AWARENESS_CONTEXT; | |
6698 | pub fn GetWindowDpiAwarenessContext( | |
6699 | hwnd: HWND, | |
6700 | ) -> DPI_AWARENESS_CONTEXT; | |
6701 | pub fn GetAwarenessFromDpiAwarenessContext( | |
6702 | value: DPI_AWARENESS_CONTEXT, | |
6703 | ) -> DPI_AWARENESS; | |
6704 | pub fn GetDpiFromDpiAwarenessContext( | |
6705 | value: DPI_AWARENESS_CONTEXT, | |
6706 | ) -> UINT; | |
6707 | pub fn AreDpiAwarenessContextsEqual( | |
6708 | dpiContextA: DPI_AWARENESS_CONTEXT, | |
6709 | dpiContextB: DPI_AWARENESS_CONTEXT, | |
6710 | ) -> BOOL; | |
6711 | pub fn IsValidDpiAwarenessContext( | |
6712 | value: DPI_AWARENESS_CONTEXT, | |
6713 | ) -> BOOL; | |
6714 | pub fn GetDpiForWindow( | |
6715 | hwnd: HWND, | |
6716 | ) -> UINT; | |
6717 | pub fn GetDpiForSystem() -> UINT; | |
6718 | pub fn GetSystemDpiForProcess( | |
6719 | hProcess: HANDLE, | |
6720 | ) -> UINT; | |
6721 | pub fn EnableNonClientDpiScaling( | |
6722 | hwnd: HWND, | |
6723 | ) -> BOOL; | |
6724 | pub fn SetProcessDpiAwarenessContext( | |
6725 | value: DPI_AWARENESS_CONTEXT, | |
6726 | ) -> BOOL; | |
6727 | pub fn SetThreadDpiHostingBehavior( | |
6728 | value: DPI_HOSTING_BEHAVIOR, | |
6729 | ) -> DPI_HOSTING_BEHAVIOR; | |
6730 | pub fn GetThreadDpiHostingBehavior() -> DPI_HOSTING_BEHAVIOR; | |
6731 | pub fn GetWindowDpiHostingBehavior( | |
6732 | hwnd: HWND, | |
6733 | ) -> DPI_HOSTING_BEHAVIOR; | |
ff7c6d11 XL |
6734 | pub fn GetWindowModuleFileNameA( |
6735 | hWnd: HWND, | |
6736 | lpszFileName: LPCSTR, | |
6737 | cchFileNameMax: UINT, | |
6738 | ) -> UINT; | |
6739 | pub fn GetWindowModuleFileNameW( | |
6740 | hWnd: HWND, | |
6741 | lpszFileName: LPWSTR, | |
6742 | cchFileNameMax: UINT, | |
6743 | ) -> UINT; | |
60c5eb7d XL |
6744 | } |
6745 | pub const STATE_SYSTEM_UNAVAILABLE: DWORD = 0x00000001; | |
6746 | pub const STATE_SYSTEM_SELECTED: DWORD = 0x00000002; | |
6747 | pub const STATE_SYSTEM_FOCUSED: DWORD = 0x00000004; | |
6748 | pub const STATE_SYSTEM_PRESSED: DWORD = 0x00000008; | |
6749 | pub const STATE_SYSTEM_CHECKED: DWORD = 0x00000010; | |
6750 | pub const STATE_SYSTEM_MIXED: DWORD = 0x00000020; | |
6751 | pub const STATE_SYSTEM_INDETERMINATE: DWORD = STATE_SYSTEM_MIXED; | |
6752 | pub const STATE_SYSTEM_READONLY: DWORD = 0x00000040; | |
6753 | pub const STATE_SYSTEM_HOTTRACKED: DWORD = 0x00000080; | |
6754 | pub const STATE_SYSTEM_DEFAULT: DWORD = 0x00000100; | |
6755 | pub const STATE_SYSTEM_EXPANDED: DWORD = 0x00000200; | |
6756 | pub const STATE_SYSTEM_COLLAPSED: DWORD = 0x00000400; | |
6757 | pub const STATE_SYSTEM_BUSY: DWORD = 0x00000800; | |
6758 | pub const STATE_SYSTEM_FLOATING: DWORD = 0x00001000; | |
6759 | pub const STATE_SYSTEM_MARQUEED: DWORD = 0x00002000; | |
6760 | pub const STATE_SYSTEM_ANIMATED: DWORD = 0x00004000; | |
6761 | pub const STATE_SYSTEM_INVISIBLE: DWORD = 0x00008000; | |
6762 | pub const STATE_SYSTEM_OFFSCREEN: DWORD = 0x00010000; | |
6763 | pub const STATE_SYSTEM_SIZEABLE: DWORD = 0x00020000; | |
6764 | pub const STATE_SYSTEM_MOVEABLE: DWORD = 0x00040000; | |
6765 | pub const STATE_SYSTEM_SELFVOICING: DWORD = 0x00080000; | |
6766 | pub const STATE_SYSTEM_FOCUSABLE: DWORD = 0x00100000; | |
6767 | pub const STATE_SYSTEM_SELECTABLE: DWORD = 0x00200000; | |
6768 | pub const STATE_SYSTEM_LINKED: DWORD = 0x00400000; | |
6769 | pub const STATE_SYSTEM_TRAVERSED: DWORD = 0x00800000; | |
6770 | pub const STATE_SYSTEM_MULTISELECTABLE: DWORD = 0x01000000; | |
6771 | pub const STATE_SYSTEM_EXTSELECTABLE: DWORD = 0x02000000; | |
6772 | pub const STATE_SYSTEM_ALERT_LOW: DWORD = 0x04000000; | |
6773 | pub const STATE_SYSTEM_ALERT_MEDIUM: DWORD = 0x08000000; | |
6774 | pub const STATE_SYSTEM_ALERT_HIGH: DWORD = 0x10000000; | |
6775 | pub const STATE_SYSTEM_PROTECTED: DWORD = 0x20000000; | |
6776 | pub const STATE_SYSTEM_VALID: DWORD = 0x3fffffff; | |
6777 | pub const CCHILDREN_TITLEBAR: usize = 5; | |
6778 | pub const CCHILDREN_SCROLLBAR: usize = 5; | |
6779 | STRUCT!{struct CURSORINFO { | |
6780 | cbSize: DWORD, | |
6781 | flags: DWORD, | |
6782 | hCursor: HCURSOR, | |
6783 | ptScreenPos: POINT, | |
6784 | }} | |
6785 | pub type PCURSORINFO = *mut CURSORINFO; | |
6786 | pub type LPCURSORINFO = *mut CURSORINFO; | |
6787 | pub const CURSOR_SHOWING: DWORD = 0x00000001; | |
6788 | pub const CURSOR_SUPPRESSED: DWORD = 0x00000002; | |
6789 | extern "system" { | |
6790 | pub fn GetCursorInfo( | |
6791 | pci: PCURSORINFO, | |
6792 | ) -> BOOL; | |
6793 | } | |
6794 | STRUCT!{struct WINDOWINFO { | |
6795 | cbSize: DWORD, | |
6796 | rcWindow: RECT, | |
6797 | rcClient: RECT, | |
6798 | dwStyle: DWORD, | |
6799 | dwExStyle: DWORD, | |
6800 | dwWindowStatus: DWORD, | |
6801 | cxWindowBorders: UINT, | |
6802 | cyWindowBorders: UINT, | |
6803 | atomWindowType: ATOM, | |
6804 | wCreatorVersion: WORD, | |
6805 | }} | |
6806 | pub type PWINDOWINFO = *mut WINDOWINFO; | |
6807 | pub type LPWINDOWINFO = *mut WINDOWINFO; | |
6808 | pub const WS_ACTIVECAPTION: DWORD = 0x0001; | |
6809 | extern "system" { | |
6810 | pub fn GetWindowInfo( | |
6811 | hwnd: HWND, | |
6812 | pwi: PWINDOWINFO, | |
6813 | ) -> BOOL; | |
6814 | } | |
6815 | STRUCT!{struct TITLEBARINFO { | |
6816 | cbSize: DWORD, | |
6817 | rcTitleBar: RECT, | |
6818 | rgstate: [DWORD; CCHILDREN_TITLEBAR + 1], | |
6819 | }} | |
6820 | pub type PTITLEBARINFO = *mut TITLEBARINFO; | |
6821 | pub type LPTITLEBARINFO = *mut TITLEBARINFO; | |
6822 | extern "system" { | |
6823 | pub fn GetTitleBarInfo( | |
6824 | hwnd: HWND, | |
6825 | pti: PTITLEBARINFO, | |
6826 | ) -> BOOL; | |
6827 | } | |
6828 | STRUCT!{struct TITLEBARINFOEX { | |
6829 | cbSize: DWORD, | |
6830 | rcTitleBar: RECT, | |
6831 | rgstate: [DWORD; CCHILDREN_TITLEBAR + 1], | |
6832 | rgrect: [RECT; CCHILDREN_TITLEBAR + 1], | |
6833 | }} | |
6834 | pub type PTITLEBARINFOEX = *mut TITLEBARINFOEX; | |
6835 | pub type LPTITLEBARINFOEX = *mut TITLEBARINFOEX; | |
6836 | STRUCT!{struct MENUBARINFO { | |
6837 | cbSize: DWORD, | |
6838 | rcBar: RECT, | |
6839 | hMenu: HMENU, | |
6840 | hwndMenu: HWND, | |
6841 | BitFields: BOOL, | |
6842 | }} | |
6843 | BITFIELD!{MENUBARINFO BitFields: BOOL [ | |
6844 | fBarFocused set_fBarFocused[0..1], | |
6845 | fFocused set_fFocused[1..2], | |
6846 | ]} | |
6847 | pub type PMENUBARINFO = *mut MENUBARINFO; | |
6848 | pub type LPMENUBARINFO = *mut MENUBARINFO; | |
6849 | extern "system" { | |
6850 | pub fn GetMenuBarInfo( | |
6851 | hwnd: HWND, | |
6852 | idObject: LONG, | |
6853 | idItem: LONG, | |
6854 | pmbi: PMENUBARINFO, | |
6855 | ) -> BOOL; | |
6856 | } | |
6857 | STRUCT!{struct SCROLLBARINFO { | |
6858 | cbSize: DWORD, | |
6859 | rcScrollBar: RECT, | |
6860 | dxyLineButton: c_int, | |
6861 | xyThumbTop: c_int, | |
6862 | xyThumbBottom: c_int, | |
6863 | reserved: c_int, | |
6864 | rgstate: [DWORD; CCHILDREN_SCROLLBAR + 1], | |
6865 | }} | |
6866 | pub type PSCROLLBARINFO = *mut SCROLLBARINFO; | |
6867 | pub type LPSCROLLBARINFO = *mut SCROLLBARINFO; | |
6868 | extern "system" { | |
6869 | pub fn GetScrollBarInfo( | |
6870 | hwnd: HWND, | |
6871 | idObject: LONG, | |
6872 | psbi: PSCROLLBARINFO, | |
6873 | ) -> BOOL; | |
6874 | } | |
6875 | STRUCT!{struct COMBOBOXINFO { | |
6876 | cbSize: DWORD, | |
6877 | rcItem: RECT, | |
6878 | rcButton: RECT, | |
6879 | stateButton: DWORD, | |
6880 | hwndCombo: HWND, | |
6881 | hwndItem: HWND, | |
6882 | hwndList: HWND, | |
6883 | }} | |
6884 | pub type PCOMBOBOXINFO = *mut COMBOBOXINFO; | |
6885 | pub type LPCOMBOBOXINFO = *mut COMBOBOXINFO; | |
6886 | extern "system" { | |
6887 | pub fn GetComboBoxInfo( | |
6888 | hwndCombo: HWND, | |
6889 | pcbi: PCOMBOBOXINFO, | |
6890 | ) -> BOOL; | |
6891 | } | |
6892 | pub const GA_PARENT: UINT = 1; | |
6893 | pub const GA_ROOT: UINT = 2; | |
6894 | pub const GA_ROOTOWNER: UINT = 3; | |
6895 | extern "system" { | |
ff7c6d11 XL |
6896 | pub fn GetAncestor( |
6897 | hWnd: HWND, | |
6898 | gaFlags: UINT, | |
6899 | ) -> HWND; | |
6900 | pub fn RealChildWindowFromPoint( | |
6901 | hwndParent: HWND, | |
6902 | ptParentClientCoords: POINT, | |
6903 | ) -> HWND; | |
6904 | pub fn RealGetWindowClassA( | |
6905 | hwnd: HWND, | |
6906 | ptszClassName: LPSTR, | |
6907 | cchClassNameMax: UINT, | |
6908 | ) -> UINT; | |
6909 | pub fn RealGetWindowClassW( | |
6910 | hwnd: HWND, | |
6911 | ptszClassName: LPWSTR, | |
6912 | cchClassNameMax: UINT, | |
6913 | ) -> UINT; | |
60c5eb7d XL |
6914 | } |
6915 | STRUCT!{struct ALTTABINFO { | |
6916 | cbSize: DWORD, | |
6917 | cItems: c_int, | |
6918 | cColumns: c_int, | |
6919 | cRows: c_int, | |
6920 | iColFocus: c_int, | |
6921 | iRowFocus: c_int, | |
6922 | cxItem: c_int, | |
6923 | cyItem: c_int, | |
6924 | ptStart: POINT, | |
6925 | }} | |
6926 | pub type PALTTABINFO = *mut ALTTABINFO; | |
6927 | pub type LPALTTABINFO = *mut ALTTABINFO; | |
6928 | extern "system" { | |
6929 | pub fn GetAltTabInfoA( | |
6930 | hwnd: HWND, | |
6931 | iItem: c_int, | |
6932 | pati: PALTTABINFO, | |
6933 | pszItemText: LPSTR, | |
6934 | cchItemText: UINT, | |
6935 | ) -> BOOL; | |
6936 | pub fn GetAltTabInfoW( | |
6937 | hwnd: HWND, | |
6938 | iItem: c_int, | |
6939 | pati: PALTTABINFO, | |
6940 | pszItemText: LPWSTR, | |
6941 | cchItemText: UINT, | |
6942 | ) -> BOOL; | |
6943 | pub fn GetListBoxInfo( | |
6944 | hwnd: HWND, | |
6945 | ) -> DWORD; | |
ff7c6d11 XL |
6946 | pub fn LockWorkStation() -> BOOL; |
6947 | pub fn UserHandleGrantAccess( | |
6948 | hUserHandle: HANDLE, | |
6949 | hJob: HANDLE, | |
6950 | bGrant: BOOL, | |
6951 | ) -> BOOL; | |
6952 | } | |
0bf4aa26 | 6953 | DECLARE_HANDLE!{HRAWINPUT, HRAWINPUT__} |
ff7c6d11 XL |
6954 | #[inline] |
6955 | pub fn GET_RAWINPUT_CODE_WPARAM(wParam: WPARAM) -> WPARAM { wParam & 0xff } | |
6956 | pub const RIM_INPUT: WPARAM = 0; | |
6957 | pub const RIM_INPUTSINK: WPARAM = 1; | |
6958 | STRUCT!{struct RAWINPUTHEADER { | |
6959 | dwType: DWORD, | |
6960 | dwSize: DWORD, | |
6961 | hDevice: HANDLE, | |
6962 | wParam: WPARAM, | |
6963 | }} | |
6964 | pub type PRAWINPUTHEADER = *mut RAWINPUTHEADER; | |
6965 | pub type LPRAWINPUTHEADER = *mut RAWINPUTHEADER; | |
6966 | pub const RIM_TYPEMOUSE: DWORD = 0; | |
6967 | pub const RIM_TYPEKEYBOARD: DWORD = 1; | |
6968 | pub const RIM_TYPEHID: DWORD = 2; | |
6969 | STRUCT!{struct RAWMOUSE { | |
6970 | usFlags: USHORT, | |
6971 | memory_padding: USHORT, // 16bit Padding for 32bit align in following union | |
6972 | usButtonFlags: USHORT, | |
6973 | usButtonData: USHORT, | |
6974 | ulRawButtons: ULONG, | |
6975 | lLastX: LONG, | |
6976 | lLastY: LONG, | |
6977 | ulExtraInformation: ULONG, | |
6978 | }} | |
6979 | pub type PRAWMOUSE = *mut RAWMOUSE; | |
6980 | pub type LPRAWMOUSE = *mut RAWMOUSE; | |
6981 | pub const RI_MOUSE_LEFT_BUTTON_DOWN: USHORT = 0x0001; | |
6982 | pub const RI_MOUSE_LEFT_BUTTON_UP: USHORT = 0x0002; | |
6983 | pub const RI_MOUSE_RIGHT_BUTTON_DOWN: USHORT = 0x0004; | |
6984 | pub const RI_MOUSE_RIGHT_BUTTON_UP: USHORT = 0x0008; | |
6985 | pub const RI_MOUSE_MIDDLE_BUTTON_DOWN: USHORT = 0x0010; | |
6986 | pub const RI_MOUSE_MIDDLE_BUTTON_UP: USHORT = 0x0020; | |
6987 | pub const RI_MOUSE_BUTTON_1_DOWN: USHORT = RI_MOUSE_LEFT_BUTTON_DOWN; | |
6988 | pub const RI_MOUSE_BUTTON_1_UP: USHORT = RI_MOUSE_LEFT_BUTTON_UP; | |
6989 | pub const RI_MOUSE_BUTTON_2_DOWN: USHORT = RI_MOUSE_RIGHT_BUTTON_DOWN; | |
6990 | pub const RI_MOUSE_BUTTON_2_UP: USHORT = RI_MOUSE_RIGHT_BUTTON_UP; | |
6991 | pub const RI_MOUSE_BUTTON_3_DOWN: USHORT = RI_MOUSE_MIDDLE_BUTTON_DOWN; | |
6992 | pub const RI_MOUSE_BUTTON_3_UP: USHORT = RI_MOUSE_MIDDLE_BUTTON_UP; | |
6993 | pub const RI_MOUSE_BUTTON_4_DOWN: USHORT = 0x0040; | |
6994 | pub const RI_MOUSE_BUTTON_4_UP: USHORT = 0x0080; | |
6995 | pub const RI_MOUSE_BUTTON_5_DOWN: USHORT = 0x0100; | |
6996 | pub const RI_MOUSE_BUTTON_5_UP: USHORT = 0x0200; | |
6997 | pub const RI_MOUSE_WHEEL: USHORT = 0x0400; | |
6998 | pub const MOUSE_MOVE_RELATIVE: USHORT = 0; | |
6999 | pub const MOUSE_MOVE_ABSOLUTE: USHORT = 1; | |
7000 | pub const MOUSE_VIRTUAL_DESKTOP: USHORT = 0x02; | |
7001 | pub const MOUSE_ATTRIBUTES_CHANGED: USHORT = 0x04; | |
7002 | pub const MOUSE_MOVE_NOCOALESCE: USHORT = 0x08; | |
7003 | STRUCT!{struct RAWKEYBOARD { | |
7004 | MakeCode: USHORT, | |
7005 | Flags: USHORT, | |
7006 | Reserved: USHORT, | |
7007 | VKey: USHORT, | |
7008 | Message: UINT, | |
7009 | ExtraInformation: ULONG, | |
7010 | }} | |
7011 | pub type PRAWKEYBOARD = *mut RAWKEYBOARD; | |
7012 | pub type LPRAWKEYBOARD = *mut RAWKEYBOARD; | |
7013 | pub const KEYBOARD_OVERRUN_MAKE_CODE: DWORD = 0xFF; | |
7014 | pub const RI_KEY_MAKE: DWORD = 0; | |
7015 | pub const RI_KEY_BREAK: DWORD = 1; | |
7016 | pub const RI_KEY_E0: DWORD = 2; | |
7017 | pub const RI_KEY_E1: DWORD = 4; | |
7018 | pub const RI_KEY_TERMSRV_SET_LED: DWORD = 8; | |
7019 | pub const RI_KEY_TERMSRV_SHADOW: DWORD = 0x10; | |
7020 | STRUCT!{struct RAWHID { | |
7021 | dwSizeHid: DWORD, | |
7022 | dwCount: DWORD, | |
8faf50e0 | 7023 | bRawData: [BYTE; 1], |
ff7c6d11 XL |
7024 | }} |
7025 | pub type PRAWHID = *mut RAWHID; | |
7026 | pub type LPRAWHID = *mut RAWHID; | |
7027 | UNION!{union RAWINPUT_data { | |
7028 | [u32; 6], | |
7029 | mouse mouse_mut: RAWMOUSE, | |
7030 | keyboard keyboard_mut: RAWKEYBOARD, | |
7031 | hid hid_mut: RAWHID, | |
7032 | }} | |
7033 | STRUCT!{struct RAWINPUT { | |
7034 | header: RAWINPUTHEADER, | |
7035 | data: RAWINPUT_data, | |
7036 | }} | |
7037 | pub type PRAWINPUT = *mut RAWINPUT; | |
7038 | pub type LPRAWINPUT = *mut RAWINPUT; | |
7039 | pub const RID_INPUT: DWORD = 0x10000003; | |
7040 | pub const RID_HEADER: DWORD = 0x10000005; | |
7041 | extern "system" { | |
7042 | pub fn GetRawInputData( | |
7043 | hRawInput: HRAWINPUT, | |
7044 | uiCommand: UINT, | |
7045 | pData: LPVOID, | |
7046 | pcbSize: PUINT, | |
7047 | cbSizeHeader: UINT, | |
7048 | ) -> UINT; | |
7049 | } | |
7050 | pub const RIDI_PREPARSEDDATA: DWORD = 0x20000005; | |
7051 | pub const RIDI_DEVICENAME: DWORD = 0x20000007; | |
7052 | pub const RIDI_DEVICEINFO: DWORD = 0x2000000b; | |
7053 | STRUCT!{struct RID_DEVICE_INFO_MOUSE { | |
7054 | dwId: DWORD, | |
7055 | dwNumberOfButtons: DWORD, | |
7056 | dwSampleRate: DWORD, | |
7057 | fHasHorizontalWheel: BOOL, | |
7058 | }} | |
7059 | pub type PRID_DEVICE_INFO_MOUSE = *mut RID_DEVICE_INFO_MOUSE; | |
7060 | STRUCT!{struct RID_DEVICE_INFO_KEYBOARD { | |
7061 | dwType: DWORD, | |
7062 | dwSubType: DWORD, | |
7063 | dwKeyboardMode: DWORD, | |
7064 | dwNumberOfFunctionKeys: DWORD, | |
7065 | dwNumberOfIndicators: DWORD, | |
7066 | dwNumberOfKeysTotal: DWORD, | |
7067 | }} | |
7068 | pub type PRID_DEVICE_INFO_KEYBOARD = *mut RID_DEVICE_INFO_KEYBOARD; | |
7069 | STRUCT!{struct RID_DEVICE_INFO_HID { | |
7070 | dwVendorId: DWORD, | |
7071 | dwProductId: DWORD, | |
7072 | dwVersionNumber: DWORD, | |
7073 | usUsagePage: USHORT, | |
7074 | usUsage: USHORT, | |
7075 | }} | |
7076 | pub type PRID_DEVICE_INFO_HID = *mut RID_DEVICE_INFO_HID; | |
7077 | UNION!{union RID_DEVICE_INFO_u { | |
7078 | [u32; 6], | |
7079 | mouse mouse_mut: RID_DEVICE_INFO_MOUSE, | |
7080 | keyboard keyboard_mut: RID_DEVICE_INFO_KEYBOARD, | |
7081 | hid hid_mut: RID_DEVICE_INFO_HID, | |
7082 | }} | |
7083 | STRUCT!{struct RID_DEVICE_INFO { | |
7084 | cbSize: DWORD, | |
7085 | dwType: DWORD, | |
7086 | u: RID_DEVICE_INFO_u, | |
7087 | }} | |
7088 | pub type PRID_DEVICE_INFO = *mut RID_DEVICE_INFO; | |
7089 | pub type LPRID_DEVICE_INFO = *mut RID_DEVICE_INFO; | |
7090 | extern "system" { | |
7091 | pub fn GetRawInputDeviceInfoA( | |
7092 | hDevice: HANDLE, | |
7093 | uiCommand: UINT, | |
7094 | pData: LPVOID, | |
7095 | pcbSize: PUINT, | |
7096 | ) -> UINT; | |
7097 | pub fn GetRawInputDeviceInfoW( | |
7098 | hDevice: HANDLE, | |
7099 | uiCommand: UINT, | |
7100 | pData: LPVOID, | |
7101 | pcbSize: PUINT, | |
7102 | ) -> UINT; | |
7103 | pub fn GetRawInputBuffer( | |
7104 | pData: PRAWINPUT, | |
7105 | pcbSize: PUINT, | |
7106 | cbSizeHeader: UINT, | |
7107 | ) -> UINT; | |
7108 | } | |
7109 | STRUCT!{struct RAWINPUTDEVICE { | |
7110 | usUsagePage: USHORT, | |
7111 | usUsage: USHORT, | |
7112 | dwFlags: DWORD, | |
7113 | hwndTarget: HWND, | |
7114 | }} | |
7115 | pub type PRAWINPUTDEVICE = *mut RAWINPUTDEVICE; | |
7116 | pub type LPRAWINPUTDEVICE = *mut RAWINPUTDEVICE; | |
7117 | pub type PCRAWINPUTDEVICE = *const RAWINPUTDEVICE; | |
7118 | pub const RIDEV_REMOVE: DWORD = 0x00000001; | |
7119 | pub const RIDEV_EXCLUDE: DWORD = 0x00000010; | |
7120 | pub const RIDEV_PAGEONLY: DWORD = 0x00000020; | |
7121 | pub const RIDEV_NOLEGACY: DWORD = 0x00000030; | |
7122 | pub const RIDEV_INPUTSINK: DWORD = 0x00000100; | |
7123 | pub const RIDEV_CAPTUREMOUSE: DWORD = 0x00000200; | |
7124 | pub const RIDEV_NOHOTKEYS: DWORD = 0x00000200; | |
7125 | pub const RIDEV_APPKEYS: DWORD = 0x00000400; | |
7126 | pub const RIDEV_EXINPUTSINK: DWORD = 0x00001000; | |
7127 | pub const RIDEV_DEVNOTIFY: DWORD = 0x00002000; | |
7128 | pub const RIDEV_EXMODEMASK: DWORD = 0x000000F0; | |
7129 | pub const GIDC_ARRIVAL: DWORD = 1; | |
7130 | pub const GIDC_REMOVAL: DWORD = 2; | |
7131 | extern "system" { | |
7132 | pub fn RegisterRawInputDevices( | |
7133 | pRawInputDevices: PCRAWINPUTDEVICE, | |
7134 | uiNumDevices: UINT, | |
7135 | cbSize: UINT, | |
7136 | ) -> BOOL; | |
7137 | pub fn GetRegisteredRawInputDevices( | |
7138 | pRawInputDevices: PRAWINPUTDEVICE, | |
7139 | puiNumDevices: PUINT, | |
7140 | cbSize: UINT, | |
7141 | ) -> UINT; | |
7142 | } | |
7143 | STRUCT!{struct RAWINPUTDEVICELIST { | |
7144 | hDevice: HANDLE, | |
7145 | dwType: DWORD, | |
7146 | }} | |
7147 | pub type PRAWINPUTDEVICELIST = *mut RAWINPUTDEVICELIST; | |
7148 | extern "system" { | |
7149 | pub fn GetRawInputDeviceList( | |
7150 | pRawInputDeviceList: PRAWINPUTDEVICELIST, | |
7151 | puiNumDevices: PUINT, | |
7152 | cbSize: UINT, | |
7153 | ) -> UINT; | |
7154 | pub fn DefRawInputProc( | |
7155 | paRawInput: *mut PRAWINPUT, | |
7156 | nInput: INT, | |
7157 | cbSizeHeader: UINT, | |
7158 | ) -> LRESULT; | |
7159 | pub fn ChangeWindowMessageFilter( | |
7160 | message: UINT, | |
7161 | dwFlag: DWORD, | |
7162 | ) -> BOOL; | |
7163 | } | |
60c5eb7d | 7164 | //15165 |
ff7c6d11 XL |
7165 | STRUCT!{struct CHANGEFILTERSTRUCT { |
7166 | cbSize: DWORD, | |
7167 | ExtStatus: DWORD, | |
7168 | }} | |
7169 | extern "system" { | |
7170 | pub fn ChangeWindowMessageFilterEx( | |
7171 | hwnd: HWND, | |
7172 | message: UINT, | |
7173 | action: DWORD, | |
7174 | pChangeFilterStruct: PCHANGEFILTERSTRUCT, | |
7175 | ) -> BOOL; | |
7176 | } | |
7177 | pub type PCHANGEFILTERSTRUCT = *mut CHANGEFILTERSTRUCT; | |
60c5eb7d | 7178 | //15427 |
ff7c6d11 XL |
7179 | pub const NID_INTEGRATED_TOUCH: UINT = 0x00000001; |
7180 | pub const NID_EXTERNAL_TOUCH: UINT = 0x00000002; | |
7181 | pub const NID_INTEGRATED_PEN: UINT = 0x00000004; | |
7182 | pub const NID_EXTERNAL_PEN: UINT = 0x00000008; | |
7183 | pub const NID_MULTI_INPUT: UINT = 0x00000040; | |
7184 | pub const NID_READY: UINT = 0x00000080; | |
60c5eb7d XL |
7185 | pub const MAX_STR_BLOCKREASON: usize = 256; |
7186 | extern "system" { | |
7187 | pub fn ShutdownBlockReasonCreate( | |
7188 | hWnd: HWND, | |
7189 | pwszReason: LPCWSTR, | |
7190 | ) -> BOOL; | |
7191 | pub fn ShutdownBlockReasonQuery( | |
7192 | hWnd: HWND, | |
7193 | pwszBuff: LPWSTR, | |
7194 | pcchBuff: *mut DWORD, | |
7195 | ) -> BOOL; | |
7196 | pub fn ShutdownBlockReasonDestroy( | |
7197 | hWnd: HWND, | |
7198 | ) -> BOOL; | |
7199 | } | |
7200 | //15615 | |
ff7c6d11 | 7201 | extern "system" { |
ff7c6d11 XL |
7202 | pub fn IsImmersiveProcess( |
7203 | hProcess: HANDLE, | |
7204 | ) -> BOOL; | |
7205 | } |