1 // Copyright © 2015, Peter Atashian
2 // Licensed under the MIT License <LICENSE.md>
3 //! USER procedure declarations, constant definitions and macros
4 
5 // Edit Control Styles
6 //
7 pub const ES_LEFT: ::DWORD = 0x0000;
8 pub const ES_CENTER: ::DWORD = 0x0001;
9 pub const ES_RIGHT: ::DWORD = 0x0002;
10 pub const ES_MULTILINE: ::DWORD = 0x0004;
11 pub const ES_UPPERCASE: ::DWORD = 0x0008;
12 pub const ES_LOWERCASE: ::DWORD = 0x0010;
13 pub const ES_PASSWORD: ::DWORD = 0x0020;
14 pub const ES_AUTOVSCROLL: ::DWORD = 0x0040;
15 pub const ES_AUTOHSCROLL: ::DWORD = 0x0080;
16 pub const ES_NOHIDESEL: ::DWORD = 0x0100;
17 pub const ES_OEMCONVERT: ::DWORD = 0x0400;
18 pub const ES_READONLY: ::DWORD = 0x0800;
19 pub const ES_WANTRETURN: ::DWORD = 0x1000;
20 pub const ES_NUMBER: ::DWORD = 0x2000;
21 
22 // Edit Control Notification Codes
23 //
24 pub const EN_SETFOCUS: ::WORD = 0x0100;
25 pub const EN_KILLFOCUS: ::WORD = 0x0200;
26 pub const EN_CHANGE: ::WORD = 0x0300;
27 pub const EN_UPDATE: ::WORD = 0x0400;
28 pub const EN_ERRSPACE: ::WORD = 0x0500;
29 pub const EN_MAXTEXT: ::WORD = 0x0501;
30 pub const EN_HSCROLL: ::WORD = 0x0601;
31 pub const EN_VSCROLL: ::WORD = 0x0602;
32 
33 pub const EN_ALIGN_LTR_EC: ::WORD = 0x0700;
34 pub const EN_ALIGN_RTL_EC: ::WORD = 0x0701;
35 
36 // Edit control EM_SETMARGIN parameters
37 pub const EC_LEFTMARGIN: ::WORD = 0x0001;
38 pub const EC_RIGHTMARGIN: ::WORD = 0x0002;
39 pub const EC_USEFONTINFO: ::WORD = 0xffff;
40 
41 // wParam of EM_GET/SETIMESTATUS
42 pub const EMSIS_COMPOSITIONSTRING: ::WORD = 0x0001;
43 
44 // lParam for EMSIS_COMPOSITIONSTRING
45 pub const EIMES_GETCOMPSTRATONCE: ::WORD = 0x0001;
46 pub const EIMES_CANCELCOMPSTRINFOCUS: ::WORD = 0x0002;
47 pub const EIMES_COMPLETECOMPSTRKILLFOCUS: ::WORD = 0x0004;
48 
49 // Edit Control Messages
50 //
51 pub const EM_GETSEL: ::WORD = 0x00B0;
52 pub const EM_SETSEL: ::WORD = 0x00B1;
53 pub const EM_GETRECT: ::WORD = 0x00B2;
54 pub const EM_SETRECT: ::WORD = 0x00B3;
55 pub const EM_SETRECTNP: ::WORD = 0x00B4;
56 pub const EM_SCROLL: ::WORD = 0x00B5;
57 pub const EM_LINESCROLL: ::WORD = 0x00B6;
58 pub const EM_SCROLLCARET: ::WORD = 0x00B7;
59 pub const EM_GETMODIFY: ::WORD = 0x00B8;
60 pub const EM_SETMODIFY: ::WORD = 0x00B9;
61 pub const EM_GETLINECOUNT: ::WORD = 0x00BA;
62 pub const EM_LINEINDEX: ::WORD = 0x00BB;
63 pub const EM_SETHANDLE: ::WORD = 0x00BC;
64 pub const EM_GETHANDLE: ::WORD = 0x00BD;
65 pub const EM_GETTHUMB: ::WORD = 0x00BE;
66 pub const EM_LINELENGTH: ::WORD = 0x00C1;
67 pub const EM_REPLACESEL: ::WORD = 0x00C2;
68 pub const EM_GETLINE: ::WORD = 0x00C4;
69 pub const EM_LIMITTEXT: ::WORD = 0x00C5;
70 pub const EM_CANUNDO: ::WORD = 0x00C6;
71 pub const EM_UNDO: ::WORD = 0x00C7;
72 pub const EM_FMTLINES: ::WORD = 0x00C8;
73 pub const EM_LINEFROMCHAR: ::WORD = 0x00C9;
74 pub const EM_SETTABSTOPS: ::WORD = 0x00CB;
75 pub const EM_SETPASSWORDCHAR: ::WORD = 0x00CC;
76 pub const EM_EMPTYUNDOBUFFER: ::WORD = 0x00CD;
77 pub const EM_GETFIRSTVISIBLELINE: ::WORD = 0x00CE;
78 pub const EM_SETREADONLY: ::WORD = 0x00CF;
79 pub const EM_SETWORDBREAKPROC: ::WORD = 0x00D0;
80 pub const EM_GETWORDBREAKPROC: ::WORD = 0x00D1;
81 pub const EM_GETPASSWORDCHAR: ::WORD = 0x00D2;
82 
83 pub const EM_SETMARGINS: ::WORD = 0x00D3;
84 pub const EM_GETMARGINS: ::WORD = 0x00D4;
85 pub const EM_SETLIMITTEXT: ::WORD = EM_LIMITTEXT;
86 pub const EM_GETLIMITTEXT: ::WORD = 0x00D5;
87 pub const EM_POSFROMCHAR: ::WORD = 0x00D6;
88 pub const EM_CHARFROMPOS: ::WORD = 0x00D7;
89 
90 pub const EM_SETIMESTATUS: ::WORD = 0x00D8;
91 pub const EM_GETIMESTATUS: ::WORD = 0x00D9;
92 
93 // EDITWORDBREAKPROC code values
94 //
95 pub const WB_LEFT: ::WORD = 0;
96 pub const WB_RIGHT: ::WORD = 1;
97 pub const WB_ISDELIMITER: ::WORD = 2;
98 
99 pub const BN_CLICKED: ::WORD = 0;
100 pub const BN_PAINT: ::WORD = 1;
101 pub const BN_HILITE: ::WORD = 2;
102 pub const BN_UNHILITE: ::WORD = 3;
103 pub const BN_DISABLE: ::WORD = 4;
104 pub const BN_DOUBLECLICKED: ::WORD = 5;
105 pub const BN_PUSHED: ::WORD = BN_HILITE;
106 pub const BN_UNPUSHED: ::WORD = BN_UNHILITE;
107 pub const BN_DBLCLK: ::WORD = BN_DOUBLECLICKED;
108 pub const BN_SETFOCUS: ::WORD = 6;
109 pub const BN_KILLFOCUS: ::WORD = 7;
110 pub const BS_PUSHBUTTON: ::DWORD = 0x00000000;
111 pub const BS_DEFPUSHBUTTON: ::DWORD = 0x00000001;
112 pub const BS_CHECKBOX: ::DWORD = 0x00000002;
113 pub const BS_AUTOCHECKBOX: ::DWORD = 0x00000003;
114 pub const BS_RADIOBUTTON: ::DWORD = 0x00000004;
115 pub const BS_3STATE: ::DWORD = 0x00000005;
116 pub const BS_AUTO3STATE: ::DWORD = 0x00000006;
117 pub const BS_GROUPBOX: ::DWORD = 0x00000007;
118 pub const BS_USERBUTTON: ::DWORD = 0x00000008;
119 pub const BS_AUTORADIOBUTTON: ::DWORD = 0x00000009;
120 pub const BS_PUSHBOX: ::DWORD = 0x0000000A;
121 pub const BS_OWNERDRAW: ::DWORD = 0x0000000B;
122 pub const BS_TYPEMASK: ::DWORD = 0x0000000F;
123 pub const BS_LEFTTEXT: ::DWORD = 0x00000020;
124 pub const BS_TEXT: ::DWORD = 0x00000000;
125 pub const BS_ICON: ::DWORD = 0x00000040;
126 pub const BS_BITMAP: ::DWORD = 0x00000080;
127 pub const BS_LEFT: ::DWORD = 0x00000100;
128 pub const BS_RIGHT: ::DWORD = 0x00000200;
129 pub const BS_CENTER: ::DWORD = 0x00000300;
130 pub const BS_TOP: ::DWORD = 0x00000400;
131 pub const BS_BOTTOM: ::DWORD = 0x00000800;
132 pub const BS_VCENTER: ::DWORD = 0x00000C00;
133 pub const BS_PUSHLIKE: ::DWORD = 0x00001000;
134 pub const BS_MULTILINE: ::DWORD = 0x00002000;
135 pub const BS_NOTIFY: ::DWORD = 0x00004000;
136 pub const BS_FLAT: ::DWORD = 0x00008000;
137 pub const BS_RIGHTBUTTON: ::DWORD = BS_LEFTTEXT;
138 pub const CCHILDREN_SCROLLBAR: usize = 5;
139 pub const CDS_UPDATEREGISTRY: ::DWORD = 0x00000001;
140 pub const CDS_TEST: ::DWORD = 0x00000002;
141 pub const CDS_FULLSCREEN: ::DWORD = 0x00000004;
142 pub const CDS_GLOBAL: ::DWORD = 0x00000008;
143 pub const CDS_SET_PRIMARY: ::DWORD = 0x00000010;
144 pub const CDS_VIDEOPARAMETERS: ::DWORD = 0x00000020;
145 pub const CDS_ENABLE_UNSAFE_MODES: ::DWORD = 0x00000100;
146 pub const CDS_DISABLE_UNSAFE_MODES: ::DWORD = 0x00000200;
147 pub const CDS_RESET: ::DWORD = 0x40000000;
148 pub const CDS_RESET_EX: ::DWORD = 0x20000000;
149 pub const CDS_NORESET: ::DWORD = 0x10000000;
150 pub const CF_TEXT: ::UINT = 1;
151 pub const CF_BITMAP: ::UINT = 2;
152 pub const CF_METAFILEPICT: ::UINT = 3;
153 pub const CF_SYLK: ::UINT = 4;
154 pub const CF_DIF: ::UINT = 5;
155 pub const CF_TIFF: ::UINT = 6;
156 pub const CF_OEMTEXT: ::UINT = 7;
157 pub const CF_DIB: ::UINT = 8;
158 pub const CF_PALETTE: ::UINT = 9;
159 pub const CF_PENDATA: ::UINT = 10;
160 pub const CF_RIFF: ::UINT = 11;
161 pub const CF_WAVE: ::UINT = 12;
162 pub const CF_UNICODETEXT: ::UINT = 13;
163 pub const CF_ENHMETAFILE: ::UINT = 14;
164 pub const CF_HDROP: ::UINT = 15;
165 pub const CF_LOCALE: ::UINT = 16;
166 pub const CF_DIBV5: ::UINT = 17;
167 pub const CF_OWNERDISPLAY: ::UINT = 0x0080;
168 pub const CF_DSPTEXT: ::UINT = 0x0081;
169 pub const CF_DSPBITMAP: ::UINT = 0x0082;
170 pub const CF_DSPENHMETAFILE: ::UINT = 0x008E;
171 pub const CF_DSPMETAFILEPICT: ::UINT = 0x0083;
172 pub const CF_PRIVATEFIRST: ::UINT = 0x0200;
173 pub const CF_PRIVATELAST: ::UINT = 0x02FF;
174 pub const CF_GDIOBJFIRST: ::UINT = 0x0300;
175 pub const CF_GDIOBJLAST: ::UINT = 0x03FF;
176 pub const CS_VREDRAW: ::DWORD = 0x0001;
177 pub const CS_HREDRAW: ::DWORD = 0x0002;
178 pub const CS_DBLCLKS: ::DWORD = 0x0008;
179 pub const CS_OWNDC: ::DWORD = 0x0020;
180 pub const CS_CLASSDC: ::DWORD = 0x0040;
181 pub const CS_PARENTDC: ::DWORD = 0x0080;
182 pub const CS_NOCLOSE: ::DWORD = 0x0200;
183 pub const CS_SAVEBITS: ::DWORD = 0x0800;
184 pub const CS_BYTEALIGNCLIENT: ::DWORD = 0x1000;
185 pub const CS_BYTEALIGNWINDOW: ::DWORD = 0x2000;
186 pub const CS_GLOBALCLASS: ::DWORD = 0x4000;
187 pub const CS_IME: ::DWORD = 0x00010000;
188 pub const CS_DROPSHADOW: ::DWORD = 0x00020000;
189 pub const DFC_CAPTION: ::UINT = 1;
190 pub const DFC_MENU: ::UINT = 2;
191 pub const DFC_SCROLL: ::UINT = 3;
192 pub const DFC_BUTTON: ::UINT = 4;
193 pub const DFCS_CAPTIONCLOSE: ::UINT = 0x0000;
194 pub const DFCS_CAPTIONMIN: ::UINT = 0x0001;
195 pub const DFCS_CAPTIONMAX: ::UINT = 0x0002;
196 pub const DFCS_CAPTIONRESTORE: ::UINT = 0x0003;
197 pub const DFCS_CAPTIONHELP: ::UINT = 0x0004;
198 pub const DFCS_MENUARROW: ::UINT = 0x0000;
199 pub const DFCS_MENUCHECK: ::UINT = 0x0001;
200 pub const DFCS_MENUBULLET: ::UINT = 0x0002;
201 pub const DFCS_MENUARROWRIGHT: ::UINT = 0x0004;
202 pub const DFCS_SCROLLUP: ::UINT = 0x0000;
203 pub const DFCS_SCROLLDOWN: ::UINT = 0x0001;
204 pub const DFCS_SCROLLLEFT: ::UINT = 0x0002;
205 pub const DFCS_SCROLLRIGHT: ::UINT = 0x0003;
206 pub const DFCS_SCROLLCOMBOBOX: ::UINT = 0x0005;
207 pub const DFCS_SCROLLSIZEGRIP: ::UINT = 0x0008;
208 pub const DFCS_SCROLLSIZEGRIPRIGHT: ::UINT = 0x0010;
209 pub const DFCS_BUTTONCHECK: ::UINT = 0x0000;
210 pub const DFCS_BUTTONRADIOIMAGE: ::UINT = 0x0001;
211 pub const DFCS_BUTTONRADIOMASK: ::UINT = 0x0002;
212 pub const DFCS_BUTTONRADIO: ::UINT = 0x0004;
213 pub const DFCS_BUTTON3STATE: ::UINT = 0x0008;
214 pub const DFCS_BUTTONPUSH: ::UINT = 0x0010;
215 pub const DFCS_INACTIVE: ::UINT = 0x0100;
216 pub const DFCS_PUSHED: ::UINT = 0x0200;
217 pub const DFCS_CHECKED: ::UINT = 0x0400;
218 // if WINVER >= 0x0500
219 pub const DFCS_TRANSPARENT: ::UINT = 0x0800;
220 pub const DFCS_HOT: ::UINT = 0x1000;
221 // end if WINVER >= 0x0500
222 pub const DFCS_ADJUSTRECT: ::UINT = 0x2000;
223 pub const DFCS_FLAT: ::UINT = 0x4000;
224 pub const DFCS_MONO: ::UINT = 0x8000;
225 pub const CW_USEDEFAULT: ::c_int = 0x80000000u32 as ::c_int;
226 pub const DISP_CHANGE_SUCCESSFUL: ::LONG = 0;
227 pub const DISP_CHANGE_RESTART: ::LONG = 1;
228 pub const DISP_CHANGE_FAILED: ::LONG = -1;
229 pub const DISP_CHANGE_BADMODE: ::LONG = -2;
230 pub const DISP_CHANGE_NOTUPDATED: ::LONG = -3;
231 pub const DISP_CHANGE_BADFLAGS: ::LONG = -4;
232 pub const DISP_CHANGE_BADPARAM: ::LONG = -5;
233 pub const DISP_CHANGE_BADDUALVIEW: ::LONG = -6;
234 pub const EDD_GET_DEVICE_INTERFACE_NAME: ::DWORD = 0x00000001;
235 pub const ENUM_CURRENT_SETTINGS: ::DWORD = 0xFFFFFFFF;
236 pub const ENUM_REGISTRY_SETTINGS: ::DWORD = 0xFFFFFFFE;
237 pub const GW_HWNDFIRST: ::UINT = 0;
238 pub const GW_HWNDLAST: ::UINT = 1;
239 pub const GW_HWNDNEXT: ::UINT = 2;
240 pub const GW_HWNDPREV: ::UINT = 3;
241 pub const GW_OWNER: ::UINT = 4;
242 pub const GW_CHILD: ::UINT = 5;
243 pub const GW_ENABLEDPOPUP: ::UINT = 6;
244 pub const GW_MAX: ::UINT = 6;
245 pub const HTERROR: ::c_int = -2;
246 pub const HTTRANSPARENT: ::c_int = -1;
247 pub const HTNOWHERE: ::c_int = 0;
248 pub const HTCLIENT: ::c_int = 1;
249 pub const HTCAPTION: ::c_int = 2;
250 pub const HTSYSMENU: ::c_int = 3;
251 pub const HTGROWBOX: ::c_int = 4;
252 pub const HTSIZE: ::c_int = HTGROWBOX;
253 pub const HTMENU: ::c_int = 5;
254 pub const HTHSCROLL: ::c_int = 6;
255 pub const HTVSCROLL: ::c_int = 7;
256 pub const HTMINBUTTON: ::c_int = 8;
257 pub const HTMAXBUTTON: ::c_int = 9;
258 pub const HTLEFT: ::c_int = 10;
259 pub const HTRIGHT: ::c_int = 11;
260 pub const HTTOP: ::c_int = 12;
261 pub const HTTOPLEFT: ::c_int = 13;
262 pub const HTTOPRIGHT: ::c_int = 14;
263 pub const HTBOTTOM: ::c_int = 15;
264 pub const HTBOTTOMLEFT: ::c_int = 16;
265 pub const HTBOTTOMRIGHT: ::c_int = 17;
266 pub const HTBORDER: ::c_int = 18;
267 pub const HTREDUCE: ::c_int = HTMINBUTTON;
268 pub const HTZOOM: ::c_int = HTMAXBUTTON;
269 pub const HTSIZEFIRST: ::c_int = HTLEFT;
270 pub const HTSIZELAST: ::c_int = HTBOTTOMRIGHT;
271 pub const HTOBJECT: ::c_int = 19;
272 pub const HTCLOSE: ::c_int = 20;
273 pub const HTHELP: ::c_int = 21;
274 pub const LSFW_LOCK: ::UINT = 1;
275 pub const LSFW_UNLOCK: ::UINT = 2;
276 pub const MDITILE_VERTICAL: ::UINT = 0x0000;
277 pub const MDITILE_HORIZONTAL: ::UINT = 0x0001;
278 pub const MDITILE_SKIPDISABLED: ::UINT = 0x0002;
279 pub const MDITILE_ZORDER: ::UINT = 0x0004;
280 pub const MB_OK: ::DWORD = 0x00000000;
281 pub const MB_OKCANCEL: ::DWORD = 0x00000001;
282 pub const MB_ABORTRETRYIGNORE: ::DWORD = 0x00000002;
283 pub const MB_YESNOCANCEL: ::DWORD = 0x00000003;
284 pub const MB_YESNO: ::DWORD = 0x00000004;
285 pub const MB_RETRYCANCEL: ::DWORD = 0x00000005;
286 pub const MB_CANCELTRYCONTINUE: ::DWORD = 0x00000006;
287 pub const MB_ICONHAND: ::DWORD = 0x00000010;
288 pub const MB_ICONQUESTION: ::DWORD = 0x00000020;
289 pub const MB_ICONEXCLAMATION: ::DWORD = 0x00000030;
290 pub const MB_ICONASTERISK: ::DWORD = 0x00000040;
291 pub const MB_USERICON: ::DWORD = 0x00000080;
292 pub const MB_ICONWARNING: ::DWORD = MB_ICONEXCLAMATION;
293 pub const MB_ICONERROR: ::DWORD = MB_ICONHAND;
294 pub const MB_ICONINFORMATION: ::DWORD = MB_ICONASTERISK;
295 pub const MB_ICONSTOP: ::DWORD = MB_ICONHAND;
296 pub const MB_DEFBUTTON1: ::DWORD = 0x00000000;
297 pub const MB_DEFBUTTON2: ::DWORD = 0x00000100;
298 pub const MB_DEFBUTTON3: ::DWORD = 0x00000200;
299 pub const MB_DEFBUTTON4: ::DWORD = 0x00000300;
300 pub const MB_APPLMODAL: ::DWORD = 0x00000000;
301 pub const MB_SYSTEMMODAL: ::DWORD = 0x00001000;
302 pub const MB_TASKMODAL: ::DWORD = 0x00002000;
303 pub const MB_HELP: ::DWORD = 0x00004000;
304 pub const MB_NOFOCUS: ::DWORD = 0x00008000;
305 pub const MB_SETFOREGROUND: ::DWORD = 0x00010000;
306 pub const MB_DEFAULT_DESKTOP_ONLY: ::DWORD = 0x00020000;
307 pub const MB_TOPMOST: ::DWORD = 0x00040000;
308 pub const MB_RIGHT: ::DWORD = 0x00080000;
309 pub const MB_RTLREADING: ::DWORD = 0x00100000;
310 pub const MB_SERVICE_NOTIFICATION: ::DWORD = 0x00200000;
311 pub const MB_SERVICE_NOTIFICATION_NT3X: ::DWORD = 0x00040000;
312 pub const MB_TYPEMASK: ::DWORD = 0x0000000F;
313 pub const MB_ICONMASK: ::DWORD = 0x000000F0;
314 pub const MB_DEFMASK: ::DWORD = 0x00000F00;
315 pub const MB_MODEMASK: ::DWORD = 0x00003000;
316 pub const MB_MISCMASK: ::DWORD = 0x0000C000;
317 pub const MF_BITMAP: ::UINT = 0x00000004;
318 pub const MF_CHECKED: ::UINT = 0x00000008;
319 pub const MF_DISABLED: ::UINT = 0x00000002;
320 pub const MF_ENABLED: ::UINT = 0x00000000;
321 pub const MF_GRAYED: ::UINT = 0x00000001;
322 pub const MF_MENUBARBREAK: ::UINT = 0x00000020;
323 pub const MF_MENUBREAK: ::UINT = 0x00000040;
324 pub const MF_OWNERDRAW: ::UINT = 0x00000100;
325 pub const MF_POPUP: ::UINT = 0x00000010;
326 pub const MF_SEPARATOR: ::UINT = 0x00000800;
327 pub const MF_STRING: ::UINT = 0x00000000;
328 pub const MF_UNCHECKED: ::UINT = 0x00000000;
329 pub const SB_HORZ: ::c_int = 0;
330 pub const SB_VERT: ::c_int = 1;
331 pub const SB_CTL: ::c_int = 2;
332 pub const SB_BOTH: ::c_int = 3;
333 pub const SW_HIDE: ::c_int = 0;
334 pub const SW_SHOWNORMAL: ::c_int = 1;
335 pub const SW_NORMAL: ::c_int = 1;
336 pub const SW_SHOWMINIMIZED: ::c_int = 2;
337 pub const SW_SHOWMAXIMIZED: ::c_int = 3;
338 pub const SW_MAXIMIZE: ::c_int = 3;
339 pub const SW_SHOWNOACTIVATE: ::c_int = 4;
340 pub const SW_SHOW: ::c_int = 5;
341 pub const SW_MINIMIZE: ::c_int = 6;
342 pub const SW_SHOWMINNOACTIVE: ::c_int = 7;
343 pub const SW_SHOWNA: ::c_int = 8;
344 pub const SW_RESTORE: ::c_int = 9;
345 pub const SW_SHOWDEFAULT: ::c_int = 10;
346 pub const SW_FORCEMINIMIZE: ::c_int = 11;
347 pub const SW_MAX: ::c_int = 11;
348 pub const SWP_NOSIZE: ::UINT = 0x0001;
349 pub const SWP_NOMOVE: ::UINT = 0x0002;
350 pub const SWP_NOZORDER: ::UINT = 0x0004;
351 pub const SWP_NOREDRAW: ::UINT = 0x0008;
352 pub const SWP_NOACTIVATE: ::UINT = 0x0010;
353 pub const SWP_FRAMECHANGED: ::UINT = 0x0020;
354 pub const SWP_SHOWWINDOW: ::UINT = 0x0040;
355 pub const SWP_HIDEWINDOW: ::UINT = 0x0080;
356 pub const SWP_NOCOPYBITS: ::UINT = 0x0100;
357 pub const SWP_NOOWNERZORDER: ::UINT = 0x0200;
358 pub const SWP_NOSENDCHANGING: ::UINT = 0x0400;
359 pub const SWP_DRAWFRAME: ::UINT = SWP_FRAMECHANGED;
360 pub const SWP_NOREPOSITION: ::UINT = SWP_NOOWNERZORDER;
361 pub const SWP_DEFERERASE: ::UINT = 0x2000;
362 pub const SWP_ASYNCWINDOWPOS: ::UINT = 0x4000;
363 pub const VK_LBUTTON: ::c_int = 0x01;
364 pub const VK_RBUTTON: ::c_int = 0x02;
365 pub const VK_CANCEL: ::c_int = 0x03;
366 pub const VK_MBUTTON: ::c_int = 0x04;
367 pub const VK_XBUTTON1: ::c_int = 0x05;
368 pub const VK_XBUTTON2: ::c_int = 0x06;
369 pub const VK_BACK: ::c_int = 0x08;
370 pub const VK_TAB: ::c_int = 0x09;
371 pub const VK_CLEAR: ::c_int = 0x0C;
372 pub const VK_RETURN: ::c_int = 0x0D;
373 pub const VK_SHIFT: ::c_int = 0x10;
374 pub const VK_CONTROL: ::c_int = 0x11;
375 pub const VK_MENU: ::c_int = 0x12;
376 pub const VK_PAUSE: ::c_int = 0x13;
377 pub const VK_CAPITAL: ::c_int = 0x14;
378 pub const VK_KANA: ::c_int = 0x15;
379 pub const VK_HANGUEL: ::c_int = 0x15;
380 pub const VK_HANGUL: ::c_int = 0x15;
381 pub const VK_JUNJA: ::c_int = 0x17;
382 pub const VK_FINAL: ::c_int = 0x18;
383 pub const VK_HANJA: ::c_int = 0x19;
384 pub const VK_KANJI: ::c_int = 0x19;
385 pub const VK_ESCAPE: ::c_int = 0x1B;
386 pub const VK_CONVERT: ::c_int = 0x1C;
387 pub const VK_NONCONVERT: ::c_int = 0x1D;
388 pub const VK_ACCEPT: ::c_int = 0x1E;
389 pub const VK_MODECHANGE: ::c_int = 0x1F;
390 pub const VK_SPACE: ::c_int = 0x20;
391 pub const VK_PRIOR: ::c_int = 0x21;
392 pub const VK_NEXT: ::c_int = 0x22;
393 pub const VK_END: ::c_int = 0x23;
394 pub const VK_HOME: ::c_int = 0x24;
395 pub const VK_LEFT: ::c_int = 0x25;
396 pub const VK_UP: ::c_int = 0x26;
397 pub const VK_RIGHT: ::c_int = 0x27;
398 pub const VK_DOWN: ::c_int = 0x28;
399 pub const VK_SELECT: ::c_int = 0x29;
400 pub const VK_PRINT: ::c_int = 0x2A;
401 pub const VK_EXECUTE: ::c_int = 0x2B;
402 pub const VK_SNAPSHOT: ::c_int = 0x2C;
403 pub const VK_INSERT: ::c_int = 0x2D;
404 pub const VK_DELETE: ::c_int = 0x2E;
405 pub const VK_HELP: ::c_int = 0x2F;
406 pub const VK_LWIN: ::c_int = 0x5B;
407 pub const VK_RWIN: ::c_int = 0x5C;
408 pub const VK_APPS: ::c_int = 0x5D;
409 pub const VK_SLEEP: ::c_int = 0x5F;
410 pub const VK_NUMPAD0: ::c_int = 0x60;
411 pub const VK_NUMPAD1: ::c_int = 0x61;
412 pub const VK_NUMPAD2: ::c_int = 0x62;
413 pub const VK_NUMPAD3: ::c_int = 0x63;
414 pub const VK_NUMPAD4: ::c_int = 0x64;
415 pub const VK_NUMPAD5: ::c_int = 0x65;
416 pub const VK_NUMPAD6: ::c_int = 0x66;
417 pub const VK_NUMPAD7: ::c_int = 0x67;
418 pub const VK_NUMPAD8: ::c_int = 0x68;
419 pub const VK_NUMPAD9: ::c_int = 0x69;
420 pub const VK_MULTIPLY: ::c_int = 0x6A;
421 pub const VK_ADD: ::c_int = 0x6B;
422 pub const VK_SEPARATOR: ::c_int = 0x6C;
423 pub const VK_SUBTRACT: ::c_int = 0x6D;
424 pub const VK_DECIMAL: ::c_int = 0x6E;
425 pub const VK_DIVIDE: ::c_int = 0x6F;
426 pub const VK_F1: ::c_int = 0x70;
427 pub const VK_F2: ::c_int = 0x71;
428 pub const VK_F3: ::c_int = 0x72;
429 pub const VK_F4: ::c_int = 0x73;
430 pub const VK_F5: ::c_int = 0x74;
431 pub const VK_F6: ::c_int = 0x75;
432 pub const VK_F7: ::c_int = 0x76;
433 pub const VK_F8: ::c_int = 0x77;
434 pub const VK_F9: ::c_int = 0x78;
435 pub const VK_F10: ::c_int = 0x79;
436 pub const VK_F11: ::c_int = 0x7A;
437 pub const VK_F12: ::c_int = 0x7B;
438 pub const VK_F13: ::c_int = 0x7C;
439 pub const VK_F14: ::c_int = 0x7D;
440 pub const VK_F15: ::c_int = 0x7E;
441 pub const VK_F16: ::c_int = 0x7F;
442 pub const VK_F17: ::c_int = 0x80;
443 pub const VK_F18: ::c_int = 0x81;
444 pub const VK_F19: ::c_int = 0x82;
445 pub const VK_F20: ::c_int = 0x83;
446 pub const VK_F21: ::c_int = 0x84;
447 pub const VK_F22: ::c_int = 0x85;
448 pub const VK_F23: ::c_int = 0x86;
449 pub const VK_F24: ::c_int = 0x87;
450 pub const VK_NUMLOCK: ::c_int = 0x90;
451 pub const VK_SCROLL: ::c_int = 0x91;
452 pub const VK_OEM_NEC_EQUAL: ::c_int = 0x92;
453 pub const VK_OEM_FJ_JISHO: ::c_int = 0x92;
454 pub const VK_OEM_FJ_MASSHOU: ::c_int = 0x93;
455 pub const VK_OEM_FJ_TOUROKU: ::c_int = 0x94;
456 pub const VK_OEM_FJ_LOYA: ::c_int = 0x95;
457 pub const VK_OEM_FJ_ROYA: ::c_int = 0x96;
458 pub const VK_LSHIFT: ::c_int = 0xA0;
459 pub const VK_RSHIFT: ::c_int = 0xA1;
460 pub const VK_LCONTROL: ::c_int = 0xA2;
461 pub const VK_RCONTROL: ::c_int = 0xA3;
462 pub const VK_LMENU: ::c_int = 0xA4;
463 pub const VK_RMENU: ::c_int = 0xA5;
464 pub const VK_BROWSER_BACK: ::c_int = 0xA6;
465 pub const VK_BROWSER_FORWARD: ::c_int = 0xA7;
466 pub const VK_BROWSER_REFRESH: ::c_int = 0xA8;
467 pub const VK_BROWSER_STOP: ::c_int = 0xA9;
468 pub const VK_BROWSER_SEARCH: ::c_int = 0xAA;
469 pub const VK_BROWSER_FAVORITES: ::c_int = 0xAB;
470 pub const VK_BROWSER_HOME: ::c_int = 0xAC;
471 pub const VK_VOLUME_MUTE: ::c_int = 0xAD;
472 pub const VK_VOLUME_DOWN: ::c_int = 0xAE;
473 pub const VK_VOLUME_UP: ::c_int = 0xAF;
474 pub const VK_MEDIA_NEXT_TRACK: ::c_int = 0xB0;
475 pub const VK_MEDIA_PREV_TRACK: ::c_int = 0xB1;
476 pub const VK_MEDIA_STOP: ::c_int = 0xB2;
477 pub const VK_MEDIA_PLAY_PAUSE: ::c_int = 0xB3;
478 pub const VK_LAUNCH_MAIL: ::c_int = 0xB4;
479 pub const VK_LAUNCH_MEDIA_SELECT: ::c_int = 0xB5;
480 pub const VK_LAUNCH_APP1: ::c_int = 0xB6;
481 pub const VK_LAUNCH_APP2: ::c_int = 0xB7;
482 pub const VK_OEM_1: ::c_int = 0xBA;
483 pub const VK_OEM_PLUS: ::c_int = 0xBB;
484 pub const VK_OEM_COMMA: ::c_int = 0xBC;
485 pub const VK_OEM_MINUS: ::c_int = 0xBD;
486 pub const VK_OEM_PERIOD: ::c_int = 0xBE;
487 pub const VK_OEM_2: ::c_int = 0xBF;
488 pub const VK_OEM_3: ::c_int = 0xC0;
489 pub const VK_OEM_4: ::c_int = 0xDB;
490 pub const VK_OEM_5: ::c_int = 0xDC;
491 pub const VK_OEM_6: ::c_int = 0xDD;
492 pub const VK_OEM_7: ::c_int = 0xDE;
493 pub const VK_OEM_8: ::c_int = 0xDF;
494 pub const VK_OEM_AX: ::c_int = 0xE1;
495 pub const VK_OEM_102: ::c_int = 0xE2;
496 pub const VK_ICO_HELP: ::c_int = 0xE3;
497 pub const VK_ICO_00: ::c_int = 0xE4;
498 pub const VK_PROCESSKEY: ::c_int = 0xE5;
499 pub const VK_ICO_CLEAR: ::c_int = 0xE6;
500 pub const VK_PACKET: ::c_int = 0xE7;
501 pub const VK_OEM_RESET: ::c_int = 0xE9;
502 pub const VK_OEM_JUMP: ::c_int = 0xEA;
503 pub const VK_OEM_PA1: ::c_int = 0xEB;
504 pub const VK_OEM_PA2: ::c_int = 0xEC;
505 pub const VK_OEM_PA3: ::c_int = 0xED;
506 pub const VK_OEM_WSCTRL: ::c_int = 0xEE;
507 pub const VK_OEM_CUSEL: ::c_int = 0xEF;
508 pub const VK_OEM_ATTN: ::c_int = 0xF0;
509 pub const VK_OEM_FINISH: ::c_int = 0xF1;
510 pub const VK_OEM_COPY: ::c_int = 0xF2;
511 pub const VK_OEM_AUTO: ::c_int = 0xF3;
512 pub const VK_OEM_ENLW: ::c_int = 0xF4;
513 pub const VK_OEM_BACKTAB: ::c_int = 0xF5;
514 pub const VK_ATTN: ::c_int = 0xF6;
515 pub const VK_CRSEL: ::c_int = 0xF7;
516 pub const VK_EXSEL: ::c_int = 0xF8;
517 pub const VK_EREOF: ::c_int = 0xF9;
518 pub const VK_PLAY: ::c_int = 0xFA;
519 pub const VK_ZOOM: ::c_int = 0xFB;
520 pub const VK_NONAME: ::c_int = 0xFC;
521 pub const VK_PA1: ::c_int = 0xFD;
522 pub const VK_OEM_CLEAR: ::c_int = 0xFE;
523 // if _WIN32_WINNT >= 0x0500
524 pub const APPCOMMAND_BROWSER_BACKWARD: ::c_short = 1;
525 pub const APPCOMMAND_BROWSER_FORWARD: ::c_short = 2;
526 pub const APPCOMMAND_BROWSER_REFRESH: ::c_short = 3;
527 pub const APPCOMMAND_BROWSER_STOP: ::c_short = 4;
528 pub const APPCOMMAND_BROWSER_SEARCH: ::c_short = 5;
529 pub const APPCOMMAND_BROWSER_FAVORITES: ::c_short = 6;
530 pub const APPCOMMAND_BROWSER_HOME: ::c_short = 7;
531 pub const APPCOMMAND_VOLUME_MUTE: ::c_short = 8;
532 pub const APPCOMMAND_VOLUME_DOWN: ::c_short = 9;
533 pub const APPCOMMAND_VOLUME_UP: ::c_short = 10;
534 pub const APPCOMMAND_MEDIA_NEXTTRACK: ::c_short = 11;
535 pub const APPCOMMAND_MEDIA_PREVIOUSTRACK: ::c_short = 12;
536 pub const APPCOMMAND_MEDIA_STOP: ::c_short = 13;
537 pub const APPCOMMAND_MEDIA_PLAY_PAUSE: ::c_short = 14;
538 pub const APPCOMMAND_LAUNCH_MAIL: ::c_short = 15;
539 pub const APPCOMMAND_LAUNCH_MEDIA_SELECT: ::c_short = 16;
540 pub const APPCOMMAND_LAUNCH_APP1: ::c_short = 17;
541 pub const APPCOMMAND_LAUNCH_APP2: ::c_short = 18;
542 pub const APPCOMMAND_BASS_DOWN: ::c_short = 19;
543 pub const APPCOMMAND_BASS_BOOST: ::c_short = 20;
544 pub const APPCOMMAND_BASS_UP: ::c_short = 21;
545 pub const APPCOMMAND_TREBLE_DOWN: ::c_short = 22;
546 pub const APPCOMMAND_TREBLE_UP: ::c_short = 23;
547 // if _WIN32_WINNT >= 0x0501
548 pub const APPCOMMAND_MICROPHONE_VOLUME_MUTE: ::c_short = 24;
549 pub const APPCOMMAND_MICROPHONE_VOLUME_DOWN: ::c_short = 25;
550 pub const APPCOMMAND_MICROPHONE_VOLUME_UP: ::c_short = 26;
551 pub const APPCOMMAND_HELP: ::c_short = 27;
552 pub const APPCOMMAND_FIND: ::c_short = 28;
553 pub const APPCOMMAND_NEW: ::c_short = 29;
554 pub const APPCOMMAND_OPEN: ::c_short = 30;
555 pub const APPCOMMAND_CLOSE: ::c_short = 31;
556 pub const APPCOMMAND_SAVE: ::c_short = 32;
557 pub const APPCOMMAND_PRINT: ::c_short = 33;
558 pub const APPCOMMAND_UNDO: ::c_short = 34;
559 pub const APPCOMMAND_REDO: ::c_short = 35;
560 pub const APPCOMMAND_COPY: ::c_short = 36;
561 pub const APPCOMMAND_CUT: ::c_short = 37;
562 pub const APPCOMMAND_PASTE: ::c_short = 38;
563 pub const APPCOMMAND_REPLY_TO_MAIL: ::c_short = 39;
564 pub const APPCOMMAND_FORWARD_MAIL: ::c_short = 40;
565 pub const APPCOMMAND_SEND_MAIL: ::c_short = 41;
566 pub const APPCOMMAND_SPELL_CHECK: ::c_short = 42;
567 pub const APPCOMMAND_DICTATE_OR_COMMAND_CONTROL_TOGGLE: ::c_short = 43;
568 pub const APPCOMMAND_MIC_ON_OFF_TOGGLE: ::c_short = 44;
569 pub const APPCOMMAND_CORRECTION_LIST: ::c_short = 45;
570 pub const APPCOMMAND_MEDIA_PLAY: ::c_short = 46;
571 pub const APPCOMMAND_MEDIA_PAUSE: ::c_short = 47;
572 pub const APPCOMMAND_MEDIA_RECORD: ::c_short = 48;
573 pub const APPCOMMAND_MEDIA_FAST_FORWARD: ::c_short = 49;
574 pub const APPCOMMAND_MEDIA_REWIND: ::c_short = 50;
575 pub const APPCOMMAND_MEDIA_CHANNEL_UP: ::c_short = 51;
576 pub const APPCOMMAND_MEDIA_CHANNEL_DOWN: ::c_short = 52;
577 // end if _WIN32_WINNT >= 0x0501
578 // if _WIN32_WINNT >= 0x0600
579 pub const APPCOMMAND_DELETE: ::c_short = 53;
580 pub const APPCOMMAND_DWM_FLIP3D: ::c_short = 54;
581 // end if _WIN32_WINNT >= 0x0600
582 pub const WM_NULL: ::UINT = 0x0000;
583 pub const WM_CREATE: ::UINT = 0x0001;
584 pub const WM_DESTROY: ::UINT = 0x0002;
585 pub const WM_MOVE: ::UINT = 0x0003;
586 pub const WM_SIZE: ::UINT = 0x0005;
587 pub const WM_ACTIVATE: ::UINT = 0x0006;
588 pub const WM_SETFOCUS: ::UINT = 0x0007;
589 pub const WM_KILLFOCUS: ::UINT = 0x0008;
590 pub const WM_ENABLE: ::UINT = 0x000A;
591 pub const WM_SETREDRAW: ::UINT = 0x000B;
592 pub const WM_SETTEXT: ::UINT = 0x000C;
593 pub const WM_GETTEXT: ::UINT = 0x000D;
594 pub const WM_GETTEXTLENGTH: ::UINT = 0x000E;
595 pub const WM_PAINT: ::UINT = 0x000F;
596 pub const WM_CLOSE: ::UINT = 0x0010;
597 pub const WM_QUERYENDSESSION: ::UINT = 0x0011;
598 pub const WM_QUERYOPEN: ::UINT = 0x0013;
599 pub const WM_ENDSESSION: ::UINT = 0x0016;
600 pub const WM_QUIT: ::UINT = 0x0012;
601 pub const WM_ERASEBKGND: ::UINT = 0x0014;
602 pub const WM_SYSCOLORCHANGE: ::UINT = 0x0015;
603 pub const WM_SHOWWINDOW: ::UINT = 0x0018;
604 pub const WM_WININICHANGE: ::UINT = 0x001A;
605 pub const WM_SETTINGCHANGE: ::UINT = WM_WININICHANGE;
606 pub const WM_DEVMODECHANGE: ::UINT = 0x001B;
607 pub const WM_ACTIVATEAPP: ::UINT = 0x001C;
608 pub const WM_FONTCHANGE: ::UINT = 0x001D;
609 pub const WM_TIMECHANGE: ::UINT = 0x001E;
610 pub const WM_CANCELMODE: ::UINT = 0x001F;
611 pub const WM_SETCURSOR: ::UINT = 0x0020;
612 pub const WM_MOUSEACTIVATE: ::UINT = 0x0021;
613 pub const WM_CHILDACTIVATE: ::UINT = 0x0022;
614 pub const WM_QUEUESYNC: ::UINT = 0x0023;
615 pub const WM_GETMINMAXINFO: ::UINT = 0x0024;
616 pub const WM_PAINTICON: ::UINT = 0x0026;
617 pub const WM_ICONERASEBKGND: ::UINT = 0x0027;
618 pub const WM_NEXTDLGCTL: ::UINT = 0x0028;
619 pub const WM_SPOOLERSTATUS: ::UINT = 0x002A;
620 pub const WM_DRAWITEM: ::UINT = 0x002B;
621 pub const WM_MEASUREITEM: ::UINT = 0x002C;
622 pub const WM_DELETEITEM: ::UINT = 0x002D;
623 pub const WM_VKEYTOITEM: ::UINT = 0x002E;
624 pub const WM_CHARTOITEM: ::UINT = 0x002F;
625 pub const WM_SETFONT: ::UINT = 0x0030;
626 pub const WM_GETFONT: ::UINT = 0x0031;
627 pub const WM_SETHOTKEY: ::UINT = 0x0032;
628 pub const WM_GETHOTKEY: ::UINT = 0x0033;
629 pub const WM_QUERYDRAGICON: ::UINT = 0x0037;
630 pub const WM_COMPAREITEM: ::UINT = 0x0039;
631 pub const WM_GETOBJECT: ::UINT = 0x003D;
632 pub const WM_COMPACTING: ::UINT = 0x0041;
633 pub const WM_COMMNOTIFY: ::UINT = 0x0044;
634 pub const WM_WINDOWPOSCHANGING: ::UINT = 0x0046;
635 pub const WM_WINDOWPOSCHANGED: ::UINT = 0x0047;
636 pub const WM_POWER: ::UINT = 0x0048;
637 pub const WM_COPYDATA: ::UINT = 0x004A;
638 pub const WM_CANCELJOURNAL: ::UINT = 0x004B;
639 pub const WM_NOTIFY: ::UINT = 0x004E;
640 pub const WM_INPUTLANGCHANGEREQUEST: ::UINT = 0x0050;
641 pub const WM_INPUTLANGCHANGE: ::UINT = 0x0051;
642 pub const WM_TCARD: ::UINT = 0x0052;
643 pub const WM_HELP: ::UINT = 0x0053;
644 pub const WM_USERCHANGED: ::UINT = 0x0054;
645 pub const WM_NOTIFYFORMAT: ::UINT = 0x0055;
646 pub const WM_CONTEXTMENU: ::UINT = 0x007B;
647 pub const WM_STYLECHANGING: ::UINT = 0x007C;
648 pub const WM_STYLECHANGED: ::UINT = 0x007D;
649 pub const WM_DISPLAYCHANGE: ::UINT = 0x007E;
650 pub const WM_GETICON: ::UINT = 0x007F;
651 pub const WM_SETICON: ::UINT = 0x0080;
652 pub const WM_NCCREATE: ::UINT = 0x0081;
653 pub const WM_NCDESTROY: ::UINT = 0x0082;
654 pub const WM_NCCALCSIZE: ::UINT = 0x0083;
655 pub const WM_NCHITTEST: ::UINT = 0x0084;
656 pub const WM_NCPAINT: ::UINT = 0x0085;
657 pub const WM_NCACTIVATE: ::UINT = 0x0086;
658 pub const WM_GETDLGCODE: ::UINT = 0x0087;
659 pub const WM_SYNCPAINT: ::UINT = 0x0088;
660 pub const WM_NCMOUSEMOVE: ::UINT = 0x00A0;
661 pub const WM_NCLBUTTONDOWN: ::UINT = 0x00A1;
662 pub const WM_NCLBUTTONUP: ::UINT = 0x00A2;
663 pub const WM_NCLBUTTONDBLCLK: ::UINT = 0x00A3;
664 pub const WM_NCRBUTTONDOWN: ::UINT = 0x00A4;
665 pub const WM_NCRBUTTONUP: ::UINT = 0x00A5;
666 pub const WM_NCRBUTTONDBLCLK: ::UINT = 0x00A6;
667 pub const WM_NCMBUTTONDOWN: ::UINT = 0x00A7;
668 pub const WM_NCMBUTTONUP: ::UINT = 0x00A8;
669 pub const WM_NCMBUTTONDBLCLK: ::UINT = 0x00A9;
670 pub const WM_NCXBUTTONDOWN: ::UINT = 0x00AB;
671 pub const WM_NCXBUTTONUP: ::UINT = 0x00AC;
672 pub const WM_NCXBUTTONDBLCLK: ::UINT = 0x00AD;
673 pub const WM_INPUT_DEVICE_CHANGE: ::UINT = 0x00FE;
674 pub const WM_INPUT: ::UINT = 0x00FF;
675 pub const WM_KEYFIRST: ::UINT = 0x0100;
676 pub const WM_KEYDOWN: ::UINT = 0x0100;
677 pub const WM_KEYUP: ::UINT = 0x0101;
678 pub const WM_CHAR: ::UINT = 0x0102;
679 pub const WM_DEADCHAR: ::UINT = 0x0103;
680 pub const WM_SYSKEYDOWN: ::UINT = 0x0104;
681 pub const WM_SYSKEYUP: ::UINT = 0x0105;
682 pub const WM_SYSCHAR: ::UINT = 0x0106;
683 pub const WM_SYSDEADCHAR: ::UINT = 0x0107;
684 pub const WM_UNICHAR: ::UINT = 0x0109;
685 pub const WM_KEYLAST: ::UINT = 0x0109;
686 pub const WM_IME_STARTCOMPOSITION: ::UINT = 0x010D;
687 pub const WM_IME_ENDCOMPOSITION: ::UINT = 0x010E;
688 pub const WM_IME_COMPOSITION: ::UINT = 0x010F;
689 pub const WM_IME_KEYLAST: ::UINT = 0x010F;
690 pub const WM_INITDIALOG: ::UINT = 0x0110;
691 pub const WM_COMMAND: ::UINT = 0x0111;
692 pub const WM_SYSCOMMAND: ::UINT = 0x0112;
693 pub const WM_TIMER: ::UINT = 0x0113;
694 pub const WM_HSCROLL: ::UINT = 0x0114;
695 pub const WM_VSCROLL: ::UINT = 0x0115;
696 pub const WM_INITMENU: ::UINT = 0x0116;
697 pub const WM_INITMENUPOPUP: ::UINT = 0x0117;
698 pub const WM_GESTURE: ::UINT = 0x0119;
699 pub const WM_GESTURENOTIFY: ::UINT = 0x011A;
700 pub const WM_MENUSELECT: ::UINT = 0x011F;
701 pub const WM_MENUCHAR: ::UINT = 0x0120;
702 pub const WM_ENTERIDLE: ::UINT = 0x0121;
703 pub const WM_MENURBUTTONUP: ::UINT = 0x0122;
704 pub const WM_MENUDRAG: ::UINT = 0x0123;
705 pub const WM_MENUGETOBJECT: ::UINT = 0x0124;
706 pub const WM_UNINITMENUPOPUP: ::UINT = 0x0125;
707 pub const WM_MENUCOMMAND: ::UINT = 0x0126;
708 pub const WM_CHANGEUISTATE: ::UINT = 0x0127;
709 pub const WM_UPDATEUISTATE: ::UINT = 0x0128;
710 pub const WM_QUERYUISTATE: ::UINT = 0x0129;
711 pub const WM_CTLCOLORMSGBOX: ::UINT = 0x0132;
712 pub const WM_CTLCOLOREDIT: ::UINT = 0x0133;
713 pub const WM_CTLCOLORLISTBOX: ::UINT = 0x0134;
714 pub const WM_CTLCOLORBTN: ::UINT = 0x0135;
715 pub const WM_CTLCOLORDLG: ::UINT = 0x0136;
716 pub const WM_CTLCOLORSCROLLBAR: ::UINT = 0x0137;
717 pub const WM_CTLCOLORSTATIC: ::UINT = 0x0138;
718 pub const WM_MOUSEFIRST: ::UINT = 0x0200;
719 pub const WM_MOUSEMOVE: ::UINT = 0x0200;
720 pub const WM_LBUTTONDOWN: ::UINT = 0x0201;
721 pub const WM_LBUTTONUP: ::UINT = 0x0202;
722 pub const WM_LBUTTONDBLCLK: ::UINT = 0x0203;
723 pub const WM_RBUTTONDOWN: ::UINT = 0x0204;
724 pub const WM_RBUTTONUP: ::UINT = 0x0205;
725 pub const WM_RBUTTONDBLCLK: ::UINT = 0x0206;
726 pub const WM_MBUTTONDOWN: ::UINT = 0x0207;
727 pub const WM_MBUTTONUP: ::UINT = 0x0208;
728 pub const WM_MBUTTONDBLCLK: ::UINT = 0x0209;
729 pub const WM_MOUSEWHEEL: ::UINT = 0x020A;
730 pub const WM_XBUTTONDOWN: ::UINT = 0x020B;
731 pub const WM_XBUTTONUP: ::UINT = 0x020C;
732 pub const WM_XBUTTONDBLCLK: ::UINT = 0x020D;
733 pub const WM_MOUSEHWHEEL: ::UINT = 0x020E;
734 pub const WM_MOUSELAST: ::UINT = 0x020E;
735 pub const WM_PARENTNOTIFY: ::UINT = 0x0210;
736 pub const WM_ENTERMENULOOP: ::UINT = 0x0211;
737 pub const WM_EXITMENULOOP: ::UINT = 0x0212;
738 pub const WM_NEXTMENU: ::UINT = 0x0213;
739 pub const WM_SIZING: ::UINT = 0x0214;
740 pub const WM_CAPTURECHANGED: ::UINT = 0x0215;
741 pub const WM_MOVING: ::UINT = 0x0216;
742 pub const WM_POWERBROADCAST: ::UINT = 0x0218;
743 pub const WM_DEVICECHANGE: ::UINT = 0x0219;
744 pub const WM_MDICREATE: ::UINT = 0x0220;
745 pub const WM_MDIDESTROY: ::UINT = 0x0221;
746 pub const WM_MDIACTIVATE: ::UINT = 0x0222;
747 pub const WM_MDIRESTORE: ::UINT = 0x0223;
748 pub const WM_MDINEXT: ::UINT = 0x0224;
749 pub const WM_MDIMAXIMIZE: ::UINT = 0x0225;
750 pub const WM_MDITILE: ::UINT = 0x0226;
751 pub const WM_MDICASCADE: ::UINT = 0x0227;
752 pub const WM_MDIICONARRANGE: ::UINT = 0x0228;
753 pub const WM_MDIGETACTIVE: ::UINT = 0x0229;
754 pub const WM_MDISETMENU: ::UINT = 0x0230;
755 pub const WM_ENTERSIZEMOVE: ::UINT = 0x0231;
756 pub const WM_EXITSIZEMOVE: ::UINT = 0x0232;
757 pub const WM_DROPFILES: ::UINT = 0x0233;
758 pub const WM_MDIREFRESHMENU: ::UINT = 0x0234;
759 pub const WM_POINTERDEVICECHANGE: ::UINT = 0x238;
760 pub const WM_POINTERDEVICEINRANGE: ::UINT = 0x239;
761 pub const WM_POINTERDEVICEOUTOFRANGE: ::UINT = 0x23A;
762 pub const WM_TOUCH: ::UINT = 0x0240;
763 pub const WM_NCPOINTERUPDATE: ::UINT = 0x0241;
764 pub const WM_NCPOINTERDOWN: ::UINT = 0x0242;
765 pub const WM_NCPOINTERUP: ::UINT = 0x0243;
766 pub const WM_POINTERUPDATE: ::UINT = 0x0245;
767 pub const WM_POINTERDOWN: ::UINT = 0x0246;
768 pub const WM_POINTERUP: ::UINT = 0x0247;
769 pub const WM_POINTERENTER: ::UINT = 0x0249;
770 pub const WM_POINTERLEAVE: ::UINT = 0x024A;
771 pub const WM_POINTERACTIVATE: ::UINT = 0x024B;
772 pub const WM_POINTERCAPTURECHANGED: ::UINT = 0x024C;
773 pub const WM_TOUCHHITTESTING: ::UINT = 0x024D;
774 pub const WM_POINTERWHEEL: ::UINT = 0x024E;
775 pub const WM_POINTERHWHEEL: ::UINT = 0x024F;
776 pub const WM_IME_SETCONTEXT: ::UINT = 0x0281;
777 pub const WM_IME_NOTIFY: ::UINT = 0x0282;
778 pub const WM_IME_CONTROL: ::UINT = 0x0283;
779 pub const WM_IME_COMPOSITIONFULL: ::UINT = 0x0284;
780 pub const WM_IME_SELECT: ::UINT = 0x0285;
781 pub const WM_IME_CHAR: ::UINT = 0x0286;
782 pub const WM_IME_REQUEST: ::UINT = 0x0288;
783 pub const WM_IME_KEYDOWN: ::UINT = 0x0290;
784 pub const WM_IME_KEYUP: ::UINT = 0x0291;
785 pub const WM_MOUSEHOVER: ::UINT = 0x02A1;
786 pub const WM_MOUSELEAVE: ::UINT = 0x02A3;
787 pub const WM_NCMOUSEHOVER: ::UINT = 0x02A0;
788 pub const WM_NCMOUSELEAVE: ::UINT = 0x02A2;
789 pub const WM_WTSSESSION_CHANGE: ::UINT = 0x02B1;
790 pub const WM_TABLET_FIRST: ::UINT = 0x02c0;
791 pub const WM_TABLET_LAST: ::UINT = 0x02df;
792 pub const WM_DPICHANGED: ::UINT = 0x02E0;
793 pub const WM_CUT: ::UINT = 0x0300;
794 pub const WM_COPY: ::UINT = 0x0301;
795 pub const WM_PASTE: ::UINT = 0x0302;
796 pub const WM_CLEAR: ::UINT = 0x0303;
797 pub const WM_UNDO: ::UINT = 0x0304;
798 pub const WM_RENDERFORMAT: ::UINT = 0x0305;
799 pub const WM_RENDERALLFORMATS: ::UINT = 0x0306;
800 pub const WM_DESTROYCLIPBOARD: ::UINT = 0x0307;
801 pub const WM_DRAWCLIPBOARD: ::UINT = 0x0308;
802 pub const WM_PAINTCLIPBOARD: ::UINT = 0x0309;
803 pub const WM_VSCROLLCLIPBOARD: ::UINT = 0x030A;
804 pub const WM_SIZECLIPBOARD: ::UINT = 0x030B;
805 pub const WM_ASKCBFORMATNAME: ::UINT = 0x030C;
806 pub const WM_CHANGECBCHAIN: ::UINT = 0x030D;
807 pub const WM_HSCROLLCLIPBOARD: ::UINT = 0x030E;
808 pub const WM_QUERYNEWPALETTE: ::UINT = 0x030F;
809 pub const WM_PALETTEISCHANGING: ::UINT = 0x0310;
810 pub const WM_PALETTECHANGED: ::UINT = 0x0311;
811 pub const WM_HOTKEY: ::UINT = 0x0312;
812 pub const WM_PRINT: ::UINT = 0x0317;
813 pub const WM_PRINTCLIENT: ::UINT = 0x0318;
814 pub const WM_APPCOMMAND: ::UINT = 0x0319;
815 pub const WM_THEMECHANGED: ::UINT = 0x031A;
816 pub const WM_CLIPBOARDUPDATE: ::UINT = 0x031D;
817 pub const WM_DWMCOMPOSITIONCHANGED: ::UINT = 0x031E;
818 pub const WM_DWMNCRENDERINGCHANGED: ::UINT = 0x031F;
819 pub const WM_DWMCOLORIZATIONCOLORCHANGED: ::UINT = 0x0320;
820 pub const WM_DWMWINDOWMAXIMIZEDCHANGE: ::UINT = 0x0321;
821 pub const WM_DWMSENDICONICTHUMBNAIL: ::UINT = 0x0323;
822 pub const WM_DWMSENDICONICLIVEPREVIEWBITMAP: ::UINT = 0x0326;
823 pub const WM_GETTITLEBARINFOEX: ::UINT = 0x033F;
824 pub const WM_HANDHELDFIRST: ::UINT = 0x0358;
825 pub const WM_HANDHELDLAST: ::UINT = 0x035F;
826 pub const WM_AFXFIRST: ::UINT = 0x0360;
827 pub const WM_AFXLAST: ::UINT = 0x037F;
828 pub const WM_PENWINFIRST: ::UINT = 0x0380;
829 pub const WM_PENWINLAST: ::UINT = 0x038F;
830 pub const WM_APP: ::UINT = 0x8000;
831 pub const WM_USER: ::UINT = 0x0400;
832 pub const WMSZ_LEFT: ::UINT = 1;
833 pub const WMSZ_RIGHT: ::UINT = 2;
834 pub const WMSZ_TOP: ::UINT = 3;
835 pub const WMSZ_TOPLEFT: ::UINT = 4;
836 pub const WMSZ_TOPRIGHT: ::UINT = 5;
837 pub const WMSZ_BOTTOM: ::UINT = 6;
838 pub const WMSZ_BOTTOMLEFT: ::UINT = 7;
839 pub const WMSZ_BOTTOMRIGHT: ::UINT = 8;
840 pub const SMTO_NORMAL: ::UINT = 0x0000;
841 pub const SMTO_BLOCK: ::UINT = 0x0001;
842 pub const SMTO_ABORTIFHUNG: ::UINT = 0x0002;
843 pub const SMTO_NOTIMEOUTIFNOTHUNG: ::UINT = 0x0008;
844 pub const SMTO_ERRORONEXIT: ::UINT = 0x0020;
845 pub const MA_ACTIVATE: ::UINT = 1;
846 pub const MA_ACTIVATEANDEAT: ::UINT = 2;
847 pub const MA_NOACTIVATE: ::UINT = 3;
848 pub const MA_NOACTIVATEANDEAT: ::UINT = 4;
849 pub const ICON_SMALL: ::UINT = 0;
850 pub const ICON_BIG: ::UINT = 1;
851 pub const ICON_SMALL2: ::UINT = 2;
852 pub const SIZE_RESTORED: ::UINT = 0;
853 pub const SIZE_MINIMIZED: ::UINT = 1;
854 pub const SIZE_MAXIMIZED: ::UINT = 2;
855 pub const SIZE_MAXSHOW: ::UINT = 3;
856 pub const SIZE_MAXHIDE: ::UINT = 4;
857 pub const SIZENORMAL: ::UINT = SIZE_RESTORED;
858 pub const SIZEICONIC: ::UINT = SIZE_MINIMIZED;
859 pub const SIZEFULLSCREEN: ::UINT = SIZE_MAXIMIZED;
860 pub const SIZEZOOMSHOW: ::UINT = SIZE_MAXSHOW;
861 pub const SIZEZOOMHIDE: ::UINT = SIZE_MAXHIDE;
862 STRUCT!{struct NCCALCSIZE_PARAMS {
863     rgrc: [::RECT; 3],
864     lppos: PWINDOWPOS,
865 }}
866 pub type PNCCALCSIZE_PARAMS = *mut NCCALCSIZE_PARAMS;
867 pub type NPNCCALCSIZE_PARAMS = *mut NCCALCSIZE_PARAMS;
868 pub type LPNCCALCSIZE_PARAMS = *mut NCCALCSIZE_PARAMS;
869 pub const WVR_ALIGNTOP: ::UINT = 0x0010;
870 pub const WVR_ALIGNLEFT: ::UINT = 0x0020;
871 pub const WVR_ALIGNBOTTOM: ::UINT = 0x0040;
872 pub const WVR_ALIGNRIGHT: ::UINT = 0x0080;
873 pub const WVR_HREDRAW: ::UINT = 0x0100;
874 pub const WVR_VREDRAW: ::UINT = 0x0200;
875 pub const WVR_REDRAW: ::UINT = WVR_HREDRAW | WVR_VREDRAW;
876 pub const WVR_VALIDRECTS: ::UINT = 0x0400;
877 pub const HOVER_DEFAULT: ::UINT = 0xFFFFFFFF;
878 pub const WS_OVERLAPPED: ::DWORD = 0x00000000;
879 pub const WS_POPUP: ::DWORD = 0x80000000;
880 pub const WS_CHILD: ::DWORD = 0x40000000;
881 pub const WS_MINIMIZE: ::DWORD = 0x20000000;
882 pub const WS_VISIBLE: ::DWORD = 0x10000000;
883 pub const WS_DISABLED: ::DWORD = 0x08000000;
884 pub const WS_CLIPSIBLINGS: ::DWORD = 0x04000000;
885 pub const WS_CLIPCHILDREN: ::DWORD = 0x02000000;
886 pub const WS_MAXIMIZE: ::DWORD = 0x01000000;
887 pub const WS_CAPTION: ::DWORD = 0x00C00000;
888 pub const WS_BORDER: ::DWORD = 0x00800000;
889 pub const WS_DLGFRAME: ::DWORD = 0x00400000;
890 pub const WS_VSCROLL: ::DWORD = 0x00200000;
891 pub const WS_HSCROLL: ::DWORD = 0x00100000;
892 pub const WS_SYSMENU: ::DWORD = 0x00080000;
893 pub const WS_THICKFRAME: ::DWORD = 0x00040000;
894 pub const WS_GROUP: ::DWORD = 0x00020000;
895 pub const WS_TABSTOP: ::DWORD = 0x00010000;
896 pub const WS_MINIMIZEBOX: ::DWORD = 0x00020000;
897 pub const WS_MAXIMIZEBOX: ::DWORD = 0x00010000;
898 pub const WS_TILED: ::DWORD = WS_OVERLAPPED;
899 pub const WS_ICONIC: ::DWORD = WS_MINIMIZE;
900 pub const WS_SIZEBOX: ::DWORD = WS_THICKFRAME;
901 pub const WS_TILEDWINDOW: ::DWORD = WS_OVERLAPPEDWINDOW;
902 pub const WS_OVERLAPPEDWINDOW: ::DWORD = WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME | WS_MINIMIZEBOX | WS_MAXIMIZEBOX;
903 pub const WS_POPUPWINDOW: ::DWORD = WS_POPUP | WS_BORDER | WS_SYSMENU;
904 pub const WS_CHILDWINDOW: ::DWORD = WS_CHILD;
905 pub const WS_EX_DLGMODALFRAME: ::DWORD = 0x00000001;
906 pub const WS_EX_NOPARENTNOTIFY: ::DWORD = 0x00000004;
907 pub const WS_EX_TOPMOST: ::DWORD = 0x00000008;
908 pub const WS_EX_ACCEPTFILES: ::DWORD = 0x00000010;
909 pub const WS_EX_TRANSPARENT: ::DWORD = 0x00000020;
910 pub const WS_EX_MDICHILD: ::DWORD = 0x00000040;
911 pub const WS_EX_TOOLWINDOW: ::DWORD = 0x00000080;
912 pub const WS_EX_WINDOWEDGE: ::DWORD = 0x00000100;
913 pub const WS_EX_CLIENTEDGE: ::DWORD = 0x00000200;
914 pub const WS_EX_CONTEXTHELP: ::DWORD = 0x00000400;
915 pub const WS_EX_RIGHT: ::DWORD = 0x00001000;
916 pub const WS_EX_LEFT: ::DWORD = 0x00000000;
917 pub const WS_EX_RTLREADING: ::DWORD = 0x00002000;
918 pub const WS_EX_LTRREADING: ::DWORD = 0x00000000;
919 pub const WS_EX_LEFTSCROLLBAR: ::DWORD = 0x00004000;
920 pub const WS_EX_RIGHTSCROLLBAR: ::DWORD = 0x00000000;
921 pub const WS_EX_CONTROLPARENT: ::DWORD = 0x00010000;
922 pub const WS_EX_STATICEDGE: ::DWORD = 0x00020000;
923 pub const WS_EX_APPWINDOW: ::DWORD = 0x00040000;
924 pub const WS_EX_OVERLAPPEDWINDOW: ::DWORD = WS_EX_WINDOWEDGE | WS_EX_CLIENTEDGE;
925 pub const WS_EX_PALETTEWINDOW: ::DWORD = WS_EX_WINDOWEDGE | WS_EX_TOOLWINDOW | WS_EX_TOPMOST;
926 pub const WS_EX_LAYERED: ::DWORD = 0x00080000;
927 pub const WS_EX_NOINHERITLAYOUT: ::DWORD = 0x00100000;
928 pub const WS_EX_NOREDIRECTIONBITMAP: ::DWORD = 0x00200000;
929 pub const WS_EX_LAYOUTRTL: ::DWORD = 0x00400000;
930 pub const WS_EX_COMPOSITED: ::DWORD = 0x02000000;
931 pub const WS_EX_NOACTIVATE: ::DWORD = 0x08000000;
932 pub type NAMEENUMPROCA = Option<unsafe extern "system" fn(::LPSTR, ::LPARAM) -> ::BOOL>;
933 pub type NAMEENUMPROCW = Option<unsafe extern "system" fn(::LPWSTR, ::LPARAM) -> ::BOOL>;
934 pub type DESKTOPENUMPROCA = NAMEENUMPROCA;
935 pub type DESKTOPENUMPROCW = NAMEENUMPROCW;
936 pub type WINSTAENUMPROCA = NAMEENUMPROCA;
937 pub type WINSTAENUMPROCW = NAMEENUMPROCW;
938 pub type WNDENUMPROC = Option<unsafe extern "system" fn(::HWND, ::LPARAM) -> ::BOOL>;
939 pub type WNDPROC = Option<unsafe extern "system" fn(
940     ::HWND, ::UINT, ::WPARAM, ::LPARAM,
941 ) -> ::LRESULT>;
942 pub type DLGPROC = Option<unsafe extern "system" fn(
943     ::HWND, ::UINT, ::WPARAM, ::LPARAM,
944 ) -> ::INT_PTR>;
945 pub type HOOKPROC = Option<unsafe extern "system" fn(
946     code: ::c_int, wParam: ::WPARAM, lParam: ::LPARAM,
947 ) -> ::LRESULT>;
948 pub type TimerProc = Option<unsafe extern "system" fn(
949     hwnd: ::HWND, uMsg: ::UINT, idEvent: ::UINT_PTR, dwTime: ::DWORD,
950 )>;
951 pub type DRAWSTATEPROC = Option<unsafe extern "system" fn(
952     ::HDC, ::LPARAM, ::WPARAM, ::c_int, ::c_int,
953 ) -> ::BOOL>;
954 pub type PROPENUMPROCA = Option<unsafe extern "system" fn(::HWND, ::LPCSTR, ::HANDLE) -> ::BOOL>;
955 pub type PROPENUMPROCW = Option<unsafe extern "system" fn(::HWND, ::LPCWSTR, ::HANDLE) -> ::BOOL>;
956 pub type GRAYSTRINGPROC = Option<unsafe extern "system" fn(::HDC, ::LPARAM, ::c_int) -> ::BOOL>;
957 pub type MSGBOXCALLBACK = Option<unsafe extern "system" fn(LPHELPINFO)>;
958 pub type WINEVENTPROC = Option<unsafe extern "system" fn(
959     ::HWINEVENTHOOK, ::DWORD, ::HWND, ::LONG, ::LONG, ::DWORD, ::DWORD,
960 )>;
961 pub type HDEVNOTIFY = ::PVOID;
962 pub type MENUTEMPLATEA = ::VOID;
963 pub type MENUTEMPLATEW = ::VOID;
964 STRUCT!{struct MSG {
965     hwnd: ::HWND,
966     message: ::UINT,
967     wParam: ::WPARAM,
968     lParam: ::LPARAM,
969     time: ::DWORD,
970     pt: ::POINT,
971 }}
972 pub type PMSG = *mut MSG;
973 pub type NPMSG = *mut MSG;
974 pub type LPMSG = *mut MSG;
975 STRUCT!{struct PAINTSTRUCT {
976     hdc: ::HDC,
977     fErase: ::BOOL,
978     rcPaint: ::RECT,
979     fRestore: ::BOOL,
980     fIncUpdate: ::BOOL,
981     rgbReserved: [::BYTE; 32],
982 }}
983 pub type PPAINTSTRUCT = *mut PAINTSTRUCT;
984 pub type NPPAINTSTRUCT = *mut PAINTSTRUCT;
985 pub type LPPAINTSTRUCT = *mut PAINTSTRUCT;
986 STRUCT!{struct WINDOWPLACEMENT {
987     length: ::UINT,
988     flags: ::UINT,
989     showCmd: ::UINT,
990     ptMinPosition: ::POINT,
991     ptMaxPosition: ::POINT,
992     rcNormalPosition: ::RECT,
993 }}
994 pub type PWINDOWPLACEMENT = *mut WINDOWPLACEMENT;
995 pub type LPWINDOWPLACEMENT = *mut WINDOWPLACEMENT;
996 STRUCT!{nodebug struct WNDCLASSEXW {
997     cbSize: ::UINT,
998     style: ::UINT,
999     lpfnWndProc: WNDPROC,
1000     cbClsExtra: ::c_int,
1001     cbWndExtra: ::c_int,
1002     hInstance: ::HINSTANCE,
1003     hIcon: ::HICON,
1004     hCursor: ::HCURSOR,
1005     hbrBackground: ::HBRUSH,
1006     lpszMenuName: ::LPCWSTR,
1007     lpszClassName: ::LPCWSTR,
1008     hIconSm: ::HICON,
1009 }}
1010 pub type PWNDCLASSEXW = *mut WNDCLASSEXW;
1011 pub type NPWNDCLASSEXW = *mut WNDCLASSEXW;
1012 pub type LPWNDCLASSEXW = *mut WNDCLASSEXW;
1013 STRUCT!{nodebug struct WNDCLASSW {
1014     style: ::UINT,
1015     lpfnWndProc: WNDPROC,
1016     cbClsExtra: ::c_int,
1017     cbWndExtra: ::c_int,
1018     hInstance: ::HINSTANCE,
1019     hIcon: ::HICON,
1020     hCursor: ::HCURSOR,
1021     hbrBackground: ::HBRUSH,
1022     lpszMenuName: ::LPCWSTR,
1023     lpszClassName: ::LPCWSTR,
1024 }}
1025 pub type PWNDCLASSW = *mut WNDCLASSW;
1026 pub type NPWNDCLASSW = *mut WNDCLASSW;
1027 pub type LPWNDCLASSW = *mut WNDCLASSW;
1028 STRUCT!{struct MINMAXINFO {
1029     ptReserved: ::POINT,
1030     ptMaxSize: ::POINT,
1031     ptMaxPosition: ::POINT,
1032     ptMinTrackSize: ::POINT,
1033     ptMaxTrackSize: ::POINT,
1034 }}
1035 STRUCT!{struct SCROLLBARINFO {
1036     cbSize: ::DWORD,
1037     rcScrollBar: ::RECT,
1038     dxyLineButton: ::c_int,
1039     xyThumbTop: ::c_int,
1040     xyThumbBottom: ::c_int,
1041     reserved: ::c_int,
1042     rgstate: [::DWORD; CCHILDREN_SCROLLBAR + 1],
1043 }}
1044 pub type PSCROLLBARINFO = *mut SCROLLBARINFO;
1045 pub type LPSCROLLBARINFO = *mut SCROLLBARINFO;
1046 STRUCT!{struct SCROLLINFO {
1047     cbSize: ::UINT,
1048     fMask: ::UINT,
1049     nMin: ::c_int,
1050     nMax: ::c_int,
1051     nPage: ::UINT,
1052     nPos: ::c_int,
1053     nTrackPos: ::c_int,
1054 }}
1055 pub type LPSCROLLINFO = *mut SCROLLINFO;
1056 pub type LPCSCROLLINFO = *const SCROLLINFO;
1057 STRUCT!{struct SIZE {
1058     cx: ::LONG,
1059     cy: ::LONG,
1060 }}
1061 pub type PSIZE = *mut SIZE;
1062 pub type LPSIZE = *mut SIZE;
1063 pub type SIZEL = SIZE;
1064 pub type PSIZEL = *mut SIZEL;
1065 pub type LPSIZEL = *mut SIZEL;
1066 //1913
1067 pub const UNICODE_NOCHAR: ::WPARAM = 0xffff;
1068 pub type HDWP = *mut ::HANDLE;
1069 //2193
1070 pub const WHEEL_DELTA: ::DWORD = 120;
1071 //2206
1072 pub const XBUTTON1: ::DWORD = 0x0001;
1073 pub const XBUTTON2: ::DWORD = 0x0002;
1074 //2392
1075 pub const MK_LBUTTON: ::WPARAM = 0x0001;
1076 pub const MK_RBUTTON: ::WPARAM = 0x0002;
1077 pub const MK_SHIFT: ::WPARAM = 0x0004;
1078 pub const MK_CONTROL: ::WPARAM = 0x0008;
1079 pub const MK_MBUTTON: ::WPARAM = 0x0010;
1080 pub const MK_XBUTTON1: ::WPARAM = 0x0020;
1081 pub const MK_XBUTTON2: ::WPARAM = 0x0040;
1082 //2408
1083 pub const TME_HOVER: ::DWORD = 0x0000_0001;
1084 pub const TME_LEAVE: ::DWORD = 0x0000_0002;
1085 pub const TME_NONCLIENT: ::DWORD = 0x0000_0010;
1086 pub const TME_QUERY: ::DWORD = 0x4000_0000;
1087 pub const TME_CANCEL: ::DWORD = 0x8000_0000;
1088 pub const HWND_BROADCAST: ::HWND = 0xFFFF as ::HWND;
1089 pub const HWND_MESSAGE: ::HWND = -3isize as ::HWND;
1090 STRUCT!{struct TRACKMOUSEEVENT {
1091     cbSize: ::DWORD,
1092     dwFlags: ::DWORD,
1093     hwndTrack: ::HWND,
1094     dwHoverTime: ::DWORD,
1095 }}
1096 pub type LPTRACKMOUSEEVENT = *mut TRACKMOUSEEVENT;
1097 //2575
1098 STRUCT!{nodebug struct WINDOWPOS {
1099     hwnd: ::HWND,
1100     hwndInsertAfter: ::HWND,
1101     x: ::c_int,
1102     y: ::c_int,
1103     cx: ::c_int,
1104     cy: ::c_int,
1105     flags: ::UINT,
1106 }}
1107 pub type LPWINDOWPOS = *mut WINDOWPOS;
1108 pub type PWINDOWPOS = *mut WINDOWPOS;
1109 //3082
1110 STRUCT!{struct CREATESTRUCTA {
1111     lpCreateParams: ::LPVOID,
1112     hInstance: ::HINSTANCE,
1113     hMenu: ::HMENU,
1114     hwndParent: ::HWND,
1115     cy: ::c_int,
1116     cx: ::c_int,
1117     y: ::c_int,
1118     x: ::c_int,
1119     style: ::LONG,
1120     lpszName: ::LPCSTR,
1121     lpszClass: ::LPCSTR,
1122     dwExStyle: ::DWORD,
1123 }}
1124 pub type LPCREATESTRUCTA = *mut CREATESTRUCTA;
1125 STRUCT!{struct CREATESTRUCTW {
1126     lpCreateParams: ::LPVOID,
1127     hInstance: ::HINSTANCE,
1128     hMenu: ::HMENU,
1129     hwndParent: ::HWND,
1130     cy: ::c_int,
1131     cx: ::c_int,
1132     y: ::c_int,
1133     x: ::c_int,
1134     style: ::LONG,
1135     lpszName: ::LPCWSTR,
1136     lpszClass: ::LPCWSTR,
1137     dwExStyle: ::DWORD,
1138 }}
1139 pub type LPCREATESTRUCTW = *mut CREATESTRUCTW;
1140 //3145
1141 STRUCT!{struct NMHDR {
1142     hwndFrom: ::HWND,
1143     idFrom: ::UINT_PTR,
1144     code: ::UINT,  // NM_ code
1145 }}
1146 pub type LPNMHDR = *mut NMHDR;
1147 //3400
1148 pub const PM_NOREMOVE: ::UINT = 0x0000;
1149 pub const PM_REMOVE: ::UINT = 0x0001;
1150 pub const PM_NOYIELD: ::UINT = 0x0002;
1151 pub const PM_QS_INPUT: ::UINT = QS_INPUT << 16;
1152 pub const PM_QS_POSTMESSAGE: ::UINT = (QS_POSTMESSAGE | QS_HOTKEY | QS_TIMER) << 16;
1153 pub const PM_QS_PAINT: ::UINT = QS_PAINT << 16;
1154 pub const PM_QS_SENDMESSAGE: ::UINT = QS_SENDMESSAGE << 16;
1155 //
1156 pub const LWA_COLORKEY: ::DWORD = 0x00000001;
1157 pub const LWA_ALPHA: ::DWORD = 0x00000002;
1158 //3469
1159 pub const EWX_LOGOFF: ::UINT = 0x00000000;
1160 pub const EWX_SHUTDOWN: ::UINT = 0x00000001;
1161 pub const EWX_REBOOT: ::UINT = 0x00000002;
1162 pub const EWX_FORCE: ::UINT = 0x00000004;
1163 pub const EWX_POWEROFF: ::UINT = 0x00000008;
1164 pub const EWX_FORCEIFHUNG: ::UINT = 0x00000010;
1165 pub const EWX_QUICKRESOLVE: ::UINT = 0x00000020;
1166 pub const EWX_RESTARTAPPS: ::UINT = 0x00000040;
1167 pub const EWX_HYBRID_SHUTDOWN: ::UINT = 0x00400000;
1168 pub const EWX_BOOTOPTIONS: ::UINT = 0x01000000;
1169 //4054 (Win 7 SDK)
1170 STRUCT!{struct FLASHWINFO {
1171     cbSize: ::UINT,
1172     hwnd: ::HWND,
1173     dwFlags: ::DWORD,
1174     uCount: ::UINT,
1175     dwTimeout: ::DWORD,
1176 }}
1177 pub type PFLASHWINFO = *mut FLASHWINFO;
1178 pub const FLASHW_STOP: ::DWORD = 0;
1179 pub const FLASHW_CAPTION: ::DWORD = 0x00000001;
1180 pub const FLASHW_TRAY: ::DWORD = 0x00000002;
1181 pub const FLASHW_ALL: ::DWORD = FLASHW_CAPTION | FLASHW_TRAY;
1182 pub const FLASHW_TIMER: ::DWORD = 0x00000004;
1183 pub const FLASHW_TIMERNOFG: ::DWORD = 0x0000000C;
1184 // 4674
1185 pub const HWND_TOP: ::HWND = 0 as ::HWND;
1186 pub const HWND_BOTTOM: ::HWND = 1 as ::HWND;
1187 pub const HWND_TOPMOST: ::HWND = -1isize as ::HWND;
1188 pub const HWND_NOTOPMOST: ::HWND = -2isize as ::HWND;
1189 //5499
1190 pub const MAPVK_VK_TO_VSC: ::UINT = 0;
1191 pub const MAPVK_VSC_TO_VK: ::UINT = 1;
1192 pub const MAPVK_VK_TO_CHAR: ::UINT = 2;
1193 pub const MAPVK_VSC_TO_VK_EX: ::UINT = 3;
1194 pub const MAPVK_VK_TO_VSC_EX: ::UINT = 4;
1195 //5741
1196 pub const KEYEVENTF_EXTENDEDKEY: ::DWORD = 0x0001;
1197 pub const KEYEVENTF_KEYUP: ::DWORD = 0x0002;
1198 pub const KEYEVENTF_UNICODE: ::DWORD = 0x0004;
1199 pub const KEYEVENTF_SCANCODE: ::DWORD = 0x0008;
1200 pub const MOUSEEVENTF_MOVE: ::DWORD = 0x0001;
1201 pub const MOUSEEVENTF_LEFTDOWN: ::DWORD = 0x0002;
1202 pub const MOUSEEVENTF_LEFTUP: ::DWORD = 0x0004;
1203 pub const MOUSEEVENTF_RIGHTDOWN: ::DWORD = 0x0008;
1204 pub const MOUSEEVENTF_RIGHTUP: ::DWORD = 0x0010;
1205 pub const MOUSEEVENTF_MIDDLEDOWN: ::DWORD = 0x0020;
1206 pub const MOUSEEVENTF_MIDDLEUP: ::DWORD = 0x0040;
1207 pub const MOUSEEVENTF_XDOWN: ::DWORD = 0x0080;
1208 pub const MOUSEEVENTF_XUP: ::DWORD = 0x0100;
1209 pub const MOUSEEVENTF_WHEEL: ::DWORD = 0x0800;
1210 pub const MOUSEEVENTF_HWHEEL: ::DWORD = 0x01000;
1211 pub const MOUSEEVENTF_MOVE_NOCOALESCE: ::DWORD = 0x2000;
1212 pub const MOUSEEVENTF_VIRTUALDESK: ::DWORD = 0x4000;
1213 pub const MOUSEEVENTF_ABSOLUTE: ::DWORD = 0x8000;
1214 STRUCT!{struct MOUSEINPUT {
1215     dx: ::LONG,
1216     dy: ::LONG,
1217     mouseData: ::DWORD,
1218     dwFlags: ::DWORD,
1219     time: ::DWORD,
1220     dwExtraInfo: ::ULONG_PTR,
1221 }}
1222 pub type PMOUSEINPUT = *mut MOUSEINPUT;
1223 pub type LPMOUSEINPUT = *mut MOUSEINPUT;
1224 STRUCT!{struct KEYBDINPUT {
1225     wVk: ::WORD,
1226     wScan: ::WORD,
1227     dwFlags: ::DWORD,
1228     time: ::DWORD,
1229     dwExtraInfo: ::ULONG_PTR,
1230 }}
1231 pub type PKEYBDINPUT = *mut KEYBDINPUT;
1232 pub type LPKEYBDINPUT = *mut KEYBDINPUT;
1233 STRUCT!{struct HARDWAREINPUT {
1234     uMsg: ::DWORD,
1235     wParamL: ::WORD,
1236     wParamH: ::WORD,
1237 }}
1238 pub type PHARDWAREINPUT = *mut HARDWAREINPUT;
1239 pub type LPHARDWAREINPUT= *mut HARDWAREINPUT;
1240 pub const INPUT_MOUSE: ::DWORD = 0;
1241 pub const INPUT_KEYBOARD: ::DWORD = 1;
1242 pub const INPUT_HARDWARE: ::DWORD = 2;
1243 #[cfg(target_arch = "x86")]
1244 STRUCT!{struct INPUT {
1245     type_: ::DWORD,
1246     u: [u32; 6],
1247 }}
1248 #[cfg(target_arch = "x86_64")]
1249 STRUCT!{struct INPUT {
1250     type_: ::DWORD,
1251     u: [u64; 4],
1252 }}
1253 UNION!{INPUT, u, mi, mi_mut, MOUSEINPUT}
1254 UNION!{INPUT, u, ki, ki_mut, KEYBDINPUT}
1255 UNION!{INPUT, u, hi, hi_mut, HARDWAREINPUT}
1256 pub type PINPUT = *mut INPUT;
1257 pub type LPINPUT = *mut INPUT;
1258 // if WINVER >= 0x0601
1259 DECLARE_HANDLE!(HTOUCHINPUT, HTOUCHINPUT__);
1260 STRUCT!{struct TOUCHINPUT {
1261     x: ::LONG,
1262     y: ::LONG,
1263     hSource: ::HANDLE,
1264     dwID: ::DWORD,
1265     dwFlags: ::DWORD,
1266     dwMask: ::DWORD,
1267     dwTime: ::DWORD,
1268     dwExtraInfo: ::ULONG_PTR,
1269     cxContact: ::DWORD,
1270     cyContact: ::DWORD,
1271 }}
1272 pub type PTOUCHINPUT = *mut TOUCHINPUT;
1273 pub type PCTOUCHINPUT = *const TOUCHINPUT;
1274 //Touch input flag values (TOUCHINPUT.dwFlags)
1275 pub const TOUCHEVENTF_MOVE: ::DWORD = 0x0001;
1276 pub const TOUCHEVENTF_DOWN: ::DWORD = 0x0002;
1277 pub const TOUCHEVENTF_UP: ::DWORD = 0x0004;
1278 pub const TOUCHEVENTF_INRANGE: ::DWORD = 0x0008;
1279 pub const TOUCHEVENTF_PRIMARY: ::DWORD = 0x0010;
1280 pub const TOUCHEVENTF_NOCOALESCE: ::DWORD = 0x0020;
1281 pub const TOUCHEVENTF_PEN: ::DWORD = 0x0040;
1282 pub const TOUCHEVENTF_PALM: ::DWORD = 0x0080;
1283 //Touch input mask values (TOUCHINPUT.dwMask)
1284 pub const TOUCHINPUTMASKF_TIMEFROMSYSTEM: ::DWORD = 0x0001;
1285 pub const TOUCHINPUTMASKF_EXTRAINFO: ::DWORD = 0x0002;
1286 pub const TOUCHINPUTMASKF_CONTACTAREA: ::DWORD = 0x0004;
1287 //RegisterTouchWindow flag values
1288 pub const TWF_FINETOUCH: ::ULONG = 0x00000001;
1289 pub const TWF_WANTPALM: ::ULONG = 0x00000002;
1290 // end if WINVER >= 0x0601
1291 //Indices for GetWindowLong etc.
1292 pub const GWL_EXSTYLE: ::c_int = -20;
1293 pub const GWL_STYLE: ::c_int = -16;
1294 pub const GWL_WNDPROC: ::c_int = -4;
1295 pub const GWLP_WNDPROC: ::c_int = -4;
1296 pub const GWL_HINSTANCE: ::c_int = -6;
1297 pub const GWLP_HINSTANCE: ::c_int = -6;
1298 pub const GWL_HWNDPARENT: ::c_int = -8;
1299 pub const GWLP_HWNDPARENT: ::c_int = -8;
1300 pub const GWL_ID: ::c_int = -12;
1301 pub const GWLP_ID: ::c_int = -12;
1302 pub const GWL_USERDATA: ::c_int = -21;
1303 pub const GWLP_USERDATA: ::c_int = -21;
1304 //5976
1305 ENUM!{enum POINTER_INPUT_TYPE {
1306     PT_POINTER = 0x00000001,
1307     PT_TOUCH = 0x00000002,
1308     PT_PEN = 0x00000003,
1309     PT_MOUSE = 0x00000004,
1310     PT_TOUCHPAD = 0x00000005,
1311 }}
1312 //6566
1313 // flags for MsgWaitForMultipleObjectsEx
1314 pub const MWMO_WAITALL: ::DWORD = 0x0001;
1315 pub const MWMO_ALERTABLE: ::DWORD = 0x0002;
1316 pub const MWMO_INPUTAVAILABLE: ::DWORD = 0x0004;
1317 //6573
1318 pub const QS_KEY: ::UINT = 0x0001;
1319 pub const QS_MOUSEMOVE: ::UINT = 0x0002;
1320 pub const QS_MOUSEBUTTON: ::UINT = 0x0004;
1321 pub const QS_POSTMESSAGE: ::UINT = 0x0008;
1322 pub const QS_TIMER: ::UINT = 0x0010;
1323 pub const QS_PAINT: ::UINT = 0x0020;
1324 pub const QS_SENDMESSAGE: ::UINT = 0x0040;
1325 pub const QS_HOTKEY: ::UINT = 0x0080;
1326 pub const QS_ALLPOSTMESSAGE: ::UINT = 0x0100;
1327 pub const QS_RAWINPUT: ::UINT = 0x0400;
1328 pub const QS_TOUCH: ::UINT = 0x0800;
1329 pub const QS_POINTER: ::UINT = 0x1000;
1330 pub const QS_MOUSE: ::UINT = QS_MOUSEMOVE | QS_MOUSEBUTTON;
1331 pub const QS_INPUT: ::UINT = QS_MOUSE | QS_KEY | QS_RAWINPUT | QS_TOUCH | QS_POINTER;
1332 pub const QS_ALLEVENTS: ::UINT = QS_INPUT | QS_POSTMESSAGE | QS_TIMER | QS_PAINT | QS_HOTKEY;
1333 pub const QS_ALLINPUT: ::UINT = QS_INPUT | QS_POSTMESSAGE | QS_TIMER
1334     | QS_PAINT | QS_HOTKEY | QS_SENDMESSAGE;
1335 //6789
1336 pub const SM_CXSCREEN: ::c_int = 0;
1337 pub const SM_CYSCREEN: ::c_int = 1;
1338 pub const SM_CXVSCROLL: ::c_int = 2;
1339 pub const SM_CYHSCROLL: ::c_int = 3;
1340 pub const SM_CYCAPTION: ::c_int = 4;
1341 pub const SM_CXBORDER: ::c_int = 5;
1342 pub const SM_CYBORDER: ::c_int = 6;
1343 pub const SM_CXDLGFRAME: ::c_int = 7;
1344 pub const SM_CYDLGFRAME: ::c_int = 8;
1345 pub const SM_CYVTHUMB: ::c_int = 9;
1346 pub const SM_CXHTHUMB: ::c_int = 10;
1347 pub const SM_CXICON: ::c_int = 11;
1348 pub const SM_CYICON: ::c_int = 12;
1349 pub const SM_CXCURSOR: ::c_int = 13;
1350 pub const SM_CYCURSOR: ::c_int = 14;
1351 pub const SM_CYMENU: ::c_int = 15;
1352 pub const SM_CXFULLSCREEN: ::c_int = 16;
1353 pub const SM_CYFULLSCREEN: ::c_int = 17;
1354 pub const SM_CYKANJIWINDOW: ::c_int = 18;
1355 pub const SM_MOUSEPRESENT: ::c_int = 19;
1356 pub const SM_CYVSCROLL: ::c_int = 20;
1357 pub const SM_CXHSCROLL: ::c_int = 21;
1358 pub const SM_DEBUG: ::c_int = 22;
1359 pub const SM_SWAPBUTTON: ::c_int = 23;
1360 pub const SM_RESERVED1: ::c_int = 24;
1361 pub const SM_RESERVED2: ::c_int = 25;
1362 pub const SM_RESERVED3: ::c_int = 26;
1363 pub const SM_RESERVED4: ::c_int = 27;
1364 pub const SM_CXMIN: ::c_int = 28;
1365 pub const SM_CYMIN: ::c_int = 29;
1366 pub const SM_CXSIZE: ::c_int = 30;
1367 pub const SM_CYSIZE: ::c_int = 31;
1368 pub const SM_CXFRAME: ::c_int = 32;
1369 pub const SM_CYFRAME: ::c_int = 33;
1370 pub const SM_CXMINTRACK: ::c_int = 34;
1371 pub const SM_CYMINTRACK: ::c_int = 35;
1372 pub const SM_CXDOUBLECLK: ::c_int = 36;
1373 pub const SM_CYDOUBLECLK: ::c_int = 37;
1374 pub const SM_CXICONSPACING: ::c_int = 38;
1375 pub const SM_CYICONSPACING: ::c_int = 39;
1376 pub const SM_MENUDROPALIGNMENT: ::c_int = 40;
1377 pub const SM_PENWINDOWS: ::c_int = 41;
1378 pub const SM_DBCSENABLED: ::c_int = 42;
1379 pub const SM_CMOUSEBUTTONS: ::c_int = 43;
1380 pub const SM_CXFIXEDFRAME: ::c_int = SM_CXDLGFRAME;
1381 pub const SM_CYFIXEDFRAME: ::c_int = SM_CYDLGFRAME;
1382 pub const SM_CXSIZEFRAME: ::c_int = SM_CXFRAME;
1383 pub const SM_CYSIZEFRAME: ::c_int = SM_CYFRAME;
1384 pub const SM_SECURE: ::c_int = 44;
1385 pub const SM_CXEDGE: ::c_int = 45;
1386 pub const SM_CYEDGE: ::c_int = 46;
1387 pub const SM_CXMINSPACING: ::c_int = 47;
1388 pub const SM_CYMINSPACING: ::c_int = 48;
1389 pub const SM_CXSMICON: ::c_int = 49;
1390 pub const SM_CYSMICON: ::c_int = 50;
1391 pub const SM_CYSMCAPTION: ::c_int = 51;
1392 pub const SM_CXSMSIZE: ::c_int = 52;
1393 pub const SM_CYSMSIZE: ::c_int = 53;
1394 pub const SM_CXMENUSIZE: ::c_int = 54;
1395 pub const SM_CYMENUSIZE: ::c_int = 55;
1396 pub const SM_ARRANGE: ::c_int = 56;
1397 pub const SM_CXMINIMIZED: ::c_int = 57;
1398 pub const SM_CYMINIMIZED: ::c_int = 58;
1399 pub const SM_CXMAXTRACK: ::c_int = 59;
1400 pub const SM_CYMAXTRACK: ::c_int = 60;
1401 pub const SM_CXMAXIMIZED: ::c_int = 61;
1402 pub const SM_CYMAXIMIZED: ::c_int = 62;
1403 pub const SM_NETWORK: ::c_int = 63;
1404 pub const SM_CLEANBOOT: ::c_int = 67;
1405 pub const SM_CXDRAG: ::c_int = 68;
1406 pub const SM_CYDRAG: ::c_int = 69;
1407 pub const SM_SHOWSOUNDS: ::c_int = 70;
1408 pub const SM_CXMENUCHECK: ::c_int = 71;
1409 pub const SM_CYMENUCHECK: ::c_int = 72;
1410 pub const SM_SLOWMACHINE: ::c_int = 73;
1411 pub const SM_MIDEASTENABLED: ::c_int = 74;
1412 pub const SM_MOUSEWHEELPRESENT: ::c_int = 75;
1413 pub const SM_XVIRTUALSCREEN: ::c_int = 76;
1414 pub const SM_YVIRTUALSCREEN: ::c_int = 77;
1415 pub const SM_CXVIRTUALSCREEN: ::c_int = 78;
1416 pub const SM_CYVIRTUALSCREEN: ::c_int = 79;
1417 pub const SM_CMONITORS: ::c_int = 80;
1418 pub const SM_SAMEDISPLAYFORMAT: ::c_int = 81;
1419 pub const SM_IMMENABLED: ::c_int = 82;
1420 pub const SM_CXFOCUSBORDER: ::c_int = 83;
1421 pub const SM_CYFOCUSBORDER: ::c_int = 84;
1422 pub const SM_TABLETPC: ::c_int = 86;
1423 pub const SM_MEDIACENTER: ::c_int = 87;
1424 pub const SM_STARTER: ::c_int = 88;
1425 pub const SM_SERVERR2: ::c_int = 89;
1426 pub const SM_MOUSEHORIZONTALWHEELPRESENT: ::c_int = 91;
1427 pub const SM_CXPADDEDBORDER: ::c_int = 92;
1428 pub const SM_DIGITIZER: ::c_int = 94;
1429 pub const SM_MAXIMUMTOUCHES: ::c_int = 95;
1430 pub const SM_CMETRICS: ::c_int = 97;
1431 pub const SM_REMOTESESSION: ::c_int = 0x1000;
1432 pub const SM_SHUTTINGDOWN: ::c_int = 0x2000;
1433 pub const SM_REMOTECONTROL: ::c_int = 0x2001;
1434 pub const SM_CARETBLINKINGENABLED: ::c_int = 0x2002;
1435 pub const SM_CONVERTIBLESLATEMODE: ::c_int = 0x2003;
1436 pub const SM_SYSTEMDOCKED: ::c_int = 0x2004;
1437 //8855 (Win 7 SDK)
1438 STRUCT!{struct ICONINFO {
1439     fIcon: ::BOOL,
1440     xHotspot: ::DWORD,
1441     yHotspot: ::DWORD,
1442     hbmMask: ::HBITMAP,
1443     hbmColor: ::HBITMAP,
1444 }}
1445 pub type PICONINFO = *mut ICONINFO;
1446 //9066
1447 // Color indexes for use in GetSysColor and SetSysColor
1448 // 0-18 (after incrementing) are also valid in RegisterClass's WNDCLASS
1449 pub const COLOR_SCROLLBAR: ::c_int = 0;
1450 pub const COLOR_BACKGROUND: ::c_int = 1;
1451 pub const COLOR_ACTIVECAPTION: ::c_int = 2;
1452 pub const COLOR_INACTIVECAPTION: ::c_int = 3;
1453 pub const COLOR_MENU: ::c_int = 4;
1454 pub const COLOR_WINDOW: ::c_int = 5;
1455 pub const COLOR_WINDOWFRAME: ::c_int = 6;
1456 pub const COLOR_MENUTEXT: ::c_int = 7;
1457 pub const COLOR_WINDOWTEXT: ::c_int = 8;
1458 pub const COLOR_CAPTIONTEXT: ::c_int = 9;
1459 pub const COLOR_ACTIVEBORDER: ::c_int = 10;
1460 pub const COLOR_INACTIVEBORDER: ::c_int = 11;
1461 pub const COLOR_APPWORKSPACE: ::c_int = 12;
1462 pub const COLOR_HIGHLIGHT: ::c_int = 13;
1463 pub const COLOR_HIGHLIGHTTEXT: ::c_int = 14;
1464 pub const COLOR_BTNFACE: ::c_int = 15;
1465 pub const COLOR_BTNSHADOW: ::c_int = 16;
1466 pub const COLOR_GRAYTEXT: ::c_int = 17;
1467 pub const COLOR_BTNTEXT: ::c_int = 18;
1468 pub const COLOR_INACTIVECAPTIONTEXT: ::c_int = 19;
1469 pub const COLOR_BTNHIGHLIGHT: ::c_int = 20;
1470 // Introduced in Windows 95 (winver 0x0400):
1471 pub const COLOR_3DDKSHADOW: ::c_int = 21;
1472 pub const COLOR_3DLIGHT: ::c_int = 22;
1473 pub const COLOR_INFOTEXT: ::c_int = 23;
1474 pub const COLOR_INFOBK: ::c_int = 24;
1475 pub const COLOR_DESKTOP: ::c_int = COLOR_BACKGROUND;
1476 pub const COLOR_3DFACE: ::c_int = COLOR_BTNFACE;
1477 pub const COLOR_3DSHADOW: ::c_int = COLOR_BTNSHADOW;
1478 pub const COLOR_3DHIGHLIGHT: ::c_int = COLOR_BTNHIGHLIGHT;
1479 pub const COLOR_3DHILIGHT: ::c_int = COLOR_BTNHIGHLIGHT;
1480 pub const COLOR_BTNHILIGHT: ::c_int = COLOR_BTNHIGHLIGHT;
1481 // Introduced in Windows 2000 (winver 0x0500)
1482 pub const COLOR_HOTLIGHT: ::c_int = 26;
1483 pub const COLOR_GRADIENTACTIVECAPTION: ::c_int = 27;
1484 pub const COLOR_GRADIENTINACTIVECAPTION: ::c_int = 28;
1485 // Introduced in Windows XP (winver 0x0501)
1486 pub const COLOR_MENUHILIGHT: ::c_int = 29;
1487 pub const COLOR_MENUBAR: ::c_int = 30;
1488 //10069
1489 pub const IDC_ARROW: ::LPCWSTR = 32512 as ::LPCWSTR;
1490 pub const IDC_IBEAM: ::LPCWSTR = 32513 as ::LPCWSTR;
1491 pub const IDC_WAIT: ::LPCWSTR = 32514 as ::LPCWSTR;
1492 pub const IDC_CROSS: ::LPCWSTR = 32515 as ::LPCWSTR;
1493 pub const IDC_UPARROW: ::LPCWSTR = 32516 as ::LPCWSTR;
1494 pub const IDC_SIZE: ::LPCWSTR = 32640 as ::LPCWSTR;
1495 pub const IDC_ICON: ::LPCWSTR = 32641 as ::LPCWSTR;
1496 pub const IDC_SIZENWSE: ::LPCWSTR = 32642 as ::LPCWSTR;
1497 pub const IDC_SIZENESW: ::LPCWSTR = 32643 as ::LPCWSTR;
1498 pub const IDC_SIZEWE: ::LPCWSTR = 32644 as ::LPCWSTR;
1499 pub const IDC_SIZENS: ::LPCWSTR = 32645 as ::LPCWSTR;
1500 pub const IDC_SIZEALL: ::LPCWSTR = 32646 as ::LPCWSTR;
1501 pub const IDC_NO: ::LPCWSTR = 32648 as ::LPCWSTR;
1502 pub const IDC_HAND: ::LPCWSTR = 32649 as ::LPCWSTR;
1503 pub const IDC_APPSTARTING: ::LPCWSTR = 32650 as ::LPCWSTR;
1504 pub const IDC_HELP: ::LPCWSTR = 32651 as ::LPCWSTR;
1505 //10492
1506 pub const IDI_APPLICATION: ::LPCWSTR = 32512 as ::LPCWSTR;
1507 pub const IDI_HAND: ::LPCWSTR = 32513 as ::LPCWSTR;
1508 pub const IDI_QUESTION: ::LPCWSTR = 32514 as ::LPCWSTR;
1509 pub const IDI_EXCLAMATION: ::LPCWSTR = 32515 as ::LPCWSTR;
1510 pub const IDI_ASTERISK: ::LPCWSTR = 32516 as ::LPCWSTR;
1511 pub const IDI_WINLOGO: ::LPCWSTR = 32517 as ::LPCWSTR;
1512 pub const IDI_SHIELD: ::LPCWSTR = 32518 as ::LPCWSTR;
1513 pub const IDI_WARNING: ::LPCWSTR = IDI_EXCLAMATION;
1514 pub const IDI_ERROR: ::LPCWSTR = IDI_HAND;
1515 pub const IDI_INFORMATION: ::LPCWSTR = IDI_ASTERISK;
1516 pub const SPI_GETBEEP: ::UINT = 0x0001;
1517 pub const SPI_SETBEEP: ::UINT = 0x0002;
1518 pub const SPI_GETMOUSE: ::UINT = 0x0003;
1519 pub const SPI_SETMOUSE: ::UINT = 0x0004;
1520 pub const SPI_GETBORDER: ::UINT = 0x0005;
1521 pub const SPI_SETBORDER: ::UINT = 0x0006;
1522 pub const SPI_GETKEYBOARDSPEED: ::UINT = 0x000A;
1523 pub const SPI_SETKEYBOARDSPEED: ::UINT = 0x000B;
1524 pub const SPI_LANGDRIVER: ::UINT = 0x000C;
1525 pub const SPI_ICONHORIZONTALSPACING: ::UINT = 0x000D;
1526 pub const SPI_GETSCREENSAVETIMEOUT: ::UINT = 0x000E;
1527 pub const SPI_SETSCREENSAVETIMEOUT: ::UINT = 0x000F;
1528 pub const SPI_GETSCREENSAVEACTIVE: ::UINT = 0x0010;
1529 pub const SPI_SETSCREENSAVEACTIVE: ::UINT = 0x0011;
1530 pub const SPI_GETGRIDGRANULARITY: ::UINT = 0x0012;
1531 pub const SPI_SETGRIDGRANULARITY: ::UINT = 0x0013;
1532 pub const SPI_SETDESKWALLPAPER: ::UINT = 0x0014;
1533 pub const SPI_SETDESKPATTERN: ::UINT = 0x0015;
1534 pub const SPI_GETKEYBOARDDELAY: ::UINT = 0x0016;
1535 pub const SPI_SETKEYBOARDDELAY: ::UINT = 0x0017;
1536 pub const SPI_ICONVERTICALSPACING: ::UINT = 0x0018;
1537 pub const SPI_GETICONTITLEWRAP: ::UINT = 0x0019;
1538 pub const SPI_SETICONTITLEWRAP: ::UINT = 0x001A;
1539 pub const SPI_GETMENUDROPALIGNMENT: ::UINT = 0x001B;
1540 pub const SPI_SETMENUDROPALIGNMENT: ::UINT = 0x001C;
1541 pub const SPI_SETDOUBLECLKWIDTH: ::UINT = 0x001D;
1542 pub const SPI_SETDOUBLECLKHEIGHT: ::UINT = 0x001E;
1543 pub const SPI_GETICONTITLELOGFONT: ::UINT = 0x001F;
1544 pub const SPI_SETDOUBLECLICKTIME: ::UINT = 0x0020;
1545 pub const SPI_SETMOUSEBUTTONSWAP: ::UINT = 0x0021;
1546 pub const SPI_SETICONTITLELOGFONT: ::UINT = 0x0022;
1547 pub const SPI_GETFASTTASKSWITCH: ::UINT = 0x0023;
1548 pub const SPI_SETFASTTASKSWITCH: ::UINT = 0x0024;
1549 pub const SPI_SETDRAGFULLWINDOWS: ::UINT = 0x0025;
1550 pub const SPI_GETDRAGFULLWINDOWS: ::UINT = 0x0026;
1551 pub const SPI_GETNONCLIENTMETRICS: ::UINT = 0x0029;
1552 pub const SPI_SETNONCLIENTMETRICS: ::UINT = 0x002A;
1553 pub const SPI_GETMINIMIZEDMETRICS: ::UINT = 0x002B;
1554 pub const SPI_SETMINIMIZEDMETRICS: ::UINT = 0x002C;
1555 pub const SPI_GETICONMETRICS: ::UINT = 0x002D;
1556 pub const SPI_SETICONMETRICS: ::UINT = 0x002E;
1557 pub const SPI_SETWORKAREA: ::UINT = 0x002F;
1558 pub const SPI_GETWORKAREA: ::UINT = 0x0030;
1559 pub const SPI_SETPENWINDOWS: ::UINT = 0x0031;
1560 pub const SPI_GETHIGHCONTRAST: ::UINT = 0x0042;
1561 pub const SPI_SETHIGHCONTRAST: ::UINT = 0x0043;
1562 pub const SPI_GETKEYBOARDPREF: ::UINT = 0x0044;
1563 pub const SPI_SETKEYBOARDPREF: ::UINT = 0x0045;
1564 pub const SPI_GETSCREENREADER: ::UINT = 0x0046;
1565 pub const SPI_SETSCREENREADER: ::UINT = 0x0047;
1566 pub const SPI_GETANIMATION: ::UINT = 0x0048;
1567 pub const SPI_SETANIMATION: ::UINT = 0x0049;
1568 pub const SPI_GETFONTSMOOTHING: ::UINT = 0x004A;
1569 pub const SPI_SETFONTSMOOTHING: ::UINT = 0x004B;
1570 pub const SPI_SETDRAGWIDTH: ::UINT = 0x004C;
1571 pub const SPI_SETDRAGHEIGHT: ::UINT = 0x004D;
1572 pub const SPI_SETHANDHELD: ::UINT = 0x004E;
1573 pub const SPI_GETLOWPOWERTIMEOUT: ::UINT = 0x004F;
1574 pub const SPI_GETPOWEROFFTIMEOUT: ::UINT = 0x0050;
1575 pub const SPI_SETLOWPOWERTIMEOUT: ::UINT = 0x0051;
1576 pub const SPI_SETPOWEROFFTIMEOUT: ::UINT = 0x0052;
1577 pub const SPI_GETLOWPOWERACTIVE: ::UINT = 0x0053;
1578 pub const SPI_GETPOWEROFFACTIVE: ::UINT = 0x0054;
1579 pub const SPI_SETLOWPOWERACTIVE: ::UINT = 0x0055;
1580 pub const SPI_SETPOWEROFFACTIVE: ::UINT = 0x0056;
1581 pub const SPI_SETCURSORS: ::UINT = 0x0057;
1582 pub const SPI_SETICONS: ::UINT = 0x0058;
1583 pub const SPI_GETDEFAULTINPUTLANG: ::UINT = 0x0059;
1584 pub const SPI_SETDEFAULTINPUTLANG: ::UINT = 0x005A;
1585 pub const SPI_SETLANGTOGGLE: ::UINT = 0x005B;
1586 pub const SPI_GETWINDOWSEXTENSION: ::UINT = 0x005C;
1587 pub const SPI_SETMOUSETRAILS: ::UINT = 0x005D;
1588 pub const SPI_GETMOUSETRAILS: ::UINT = 0x005E;
1589 pub const SPI_SETSCREENSAVERRUNNING: ::UINT = 0x0061;
1590 pub const SPI_SCREENSAVERRUNNING: ::UINT = SPI_SETSCREENSAVERRUNNING;
1591 pub const SPI_GETFILTERKEYS: ::UINT = 0x0032;
1592 pub const SPI_SETFILTERKEYS: ::UINT = 0x0033;
1593 pub const SPI_GETTOGGLEKEYS: ::UINT = 0x0034;
1594 pub const SPI_SETTOGGLEKEYS: ::UINT = 0x0035;
1595 pub const SPI_GETMOUSEKEYS: ::UINT = 0x0036;
1596 pub const SPI_SETMOUSEKEYS: ::UINT = 0x0037;
1597 pub const SPI_GETSHOWSOUNDS: ::UINT = 0x0038;
1598 pub const SPI_SETSHOWSOUNDS: ::UINT = 0x0039;
1599 pub const SPI_GETSTICKYKEYS: ::UINT = 0x003A;
1600 pub const SPI_SETSTICKYKEYS: ::UINT = 0x003B;
1601 pub const SPI_GETACCESSTIMEOUT: ::UINT = 0x003C;
1602 pub const SPI_SETACCESSTIMEOUT: ::UINT = 0x003D;
1603 pub const SPI_GETSERIALKEYS: ::UINT = 0x003E;
1604 pub const SPI_SETSERIALKEYS: ::UINT = 0x003F;
1605 pub const SPI_GETSOUNDSENTRY: ::UINT = 0x0040;
1606 pub const SPI_SETSOUNDSENTRY: ::UINT = 0x0041;
1607 pub const SPI_GETSNAPTODEFBUTTON: ::UINT = 0x005F;
1608 pub const SPI_SETSNAPTODEFBUTTON: ::UINT = 0x0060;
1609 pub const SPI_GETMOUSEHOVERWIDTH: ::UINT = 0x0062;
1610 pub const SPI_SETMOUSEHOVERWIDTH: ::UINT = 0x0063;
1611 pub const SPI_GETMOUSEHOVERHEIGHT: ::UINT = 0x0064;
1612 pub const SPI_SETMOUSEHOVERHEIGHT: ::UINT = 0x0065;
1613 pub const SPI_GETMOUSEHOVERTIME: ::UINT = 0x0066;
1614 pub const SPI_SETMOUSEHOVERTIME: ::UINT = 0x0067;
1615 pub const SPI_GETWHEELSCROLLLINES: ::UINT = 0x0068;
1616 pub const SPI_SETWHEELSCROLLLINES: ::UINT = 0x0069;
1617 pub const SPI_GETMENUSHOWDELAY: ::UINT = 0x006A;
1618 pub const SPI_SETMENUSHOWDELAY: ::UINT = 0x006B;
1619 pub const SPI_GETWHEELSCROLLCHARS: ::UINT = 0x006C;
1620 pub const SPI_SETWHEELSCROLLCHARS: ::UINT = 0x006D;
1621 pub const SPI_GETSHOWIMEUI: ::UINT = 0x006E;
1622 pub const SPI_SETSHOWIMEUI: ::UINT = 0x006F;
1623 pub const SPI_GETMOUSESPEED: ::UINT = 0x0070;
1624 pub const SPI_SETMOUSESPEED: ::UINT = 0x0071;
1625 pub const SPI_GETSCREENSAVERRUNNING: ::UINT = 0x0072;
1626 pub const SPI_GETDESKWALLPAPER: ::UINT = 0x0073;
1627 pub const SPI_GETAUDIODESCRIPTION: ::UINT = 0x0074;
1628 pub const SPI_SETAUDIODESCRIPTION: ::UINT = 0x0075;
1629 pub const SPI_GETSCREENSAVESECURE: ::UINT = 0x0076;
1630 pub const SPI_SETSCREENSAVESECURE: ::UINT = 0x0077;
1631 pub const SPI_GETHUNGAPPTIMEOUT: ::UINT = 0x0078;
1632 pub const SPI_SETHUNGAPPTIMEOUT: ::UINT = 0x0079;
1633 pub const SPI_GETWAITTOKILLTIMEOUT: ::UINT = 0x007A;
1634 pub const SPI_SETWAITTOKILLTIMEOUT: ::UINT = 0x007B;
1635 pub const SPI_GETWAITTOKILLSERVICETIMEOUT: ::UINT = 0x007C;
1636 pub const SPI_SETWAITTOKILLSERVICETIMEOUT: ::UINT = 0x007D;
1637 pub const SPI_GETMOUSEDOCKTHRESHOLD: ::UINT = 0x007E;
1638 pub const SPI_SETMOUSEDOCKTHRESHOLD: ::UINT = 0x007F;
1639 pub const SPI_GETPENDOCKTHRESHOLD: ::UINT = 0x0080;
1640 pub const SPI_SETPENDOCKTHRESHOLD: ::UINT = 0x0081;
1641 pub const SPI_GETWINARRANGING: ::UINT = 0x0082;
1642 pub const SPI_SETWINARRANGING: ::UINT = 0x0083;
1643 pub const SPI_GETMOUSEDRAGOUTTHRESHOLD: ::UINT = 0x0084;
1644 pub const SPI_SETMOUSEDRAGOUTTHRESHOLD: ::UINT = 0x0085;
1645 pub const SPI_GETPENDRAGOUTTHRESHOLD: ::UINT = 0x0086;
1646 pub const SPI_SETPENDRAGOUTTHRESHOLD: ::UINT = 0x0087;
1647 pub const SPI_GETMOUSESIDEMOVETHRESHOLD: ::UINT = 0x0088;
1648 pub const SPI_SETMOUSESIDEMOVETHRESHOLD: ::UINT = 0x0089;
1649 pub const SPI_GETPENSIDEMOVETHRESHOLD: ::UINT = 0x008A;
1650 pub const SPI_SETPENSIDEMOVETHRESHOLD: ::UINT = 0x008B;
1651 pub const SPI_GETDRAGFROMMAXIMIZE: ::UINT = 0x008C;
1652 pub const SPI_SETDRAGFROMMAXIMIZE: ::UINT = 0x008D;
1653 pub const SPI_GETSNAPSIZING: ::UINT = 0x008E;
1654 pub const SPI_SETSNAPSIZING: ::UINT = 0x008F;
1655 pub const SPI_GETDOCKMOVING: ::UINT = 0x0090;
1656 pub const SPI_SETDOCKMOVING: ::UINT = 0x0091;
1657 pub const SPI_GETACTIVEWINDOWTRACKING: ::UINT = 0x1000;
1658 pub const SPI_SETACTIVEWINDOWTRACKING: ::UINT = 0x1001;
1659 pub const SPI_GETMENUANIMATION: ::UINT = 0x1002;
1660 pub const SPI_SETMENUANIMATION: ::UINT = 0x1003;
1661 pub const SPI_GETCOMBOBOXANIMATION: ::UINT = 0x1004;
1662 pub const SPI_SETCOMBOBOXANIMATION: ::UINT = 0x1005;
1663 pub const SPI_GETLISTBOXSMOOTHSCROLLING: ::UINT = 0x1006;
1664 pub const SPI_SETLISTBOXSMOOTHSCROLLING: ::UINT = 0x1007;
1665 pub const SPI_GETGRADIENTCAPTIONS: ::UINT = 0x1008;
1666 pub const SPI_SETGRADIENTCAPTIONS: ::UINT = 0x1009;
1667 pub const SPI_GETKEYBOARDCUES: ::UINT = 0x100A;
1668 pub const SPI_SETKEYBOARDCUES: ::UINT = 0x100B;
1669 pub const SPI_GETMENUUNDERLINES: ::UINT = SPI_GETKEYBOARDCUES;
1670 pub const SPI_SETMENUUNDERLINES: ::UINT = SPI_SETKEYBOARDCUES;
1671 pub const SPI_GETACTIVEWNDTRKZORDER: ::UINT = 0x100C;
1672 pub const SPI_SETACTIVEWNDTRKZORDER: ::UINT = 0x100D;
1673 pub const SPI_GETHOTTRACKING: ::UINT = 0x100E;
1674 pub const SPI_SETHOTTRACKING: ::UINT = 0x100F;
1675 pub const SPI_GETMENUFADE: ::UINT = 0x1012;
1676 pub const SPI_SETMENUFADE: ::UINT = 0x1013;
1677 pub const SPI_GETSELECTIONFADE: ::UINT = 0x1014;
1678 pub const SPI_SETSELECTIONFADE: ::UINT = 0x1015;
1679 pub const SPI_GETTOOLTIPANIMATION: ::UINT = 0x1016;
1680 pub const SPI_SETTOOLTIPANIMATION: ::UINT = 0x1017;
1681 pub const SPI_GETTOOLTIPFADE: ::UINT = 0x1018;
1682 pub const SPI_SETTOOLTIPFADE: ::UINT = 0x1019;
1683 pub const SPI_GETCURSORSHADOW: ::UINT = 0x101A;
1684 pub const SPI_SETCURSORSHADOW: ::UINT = 0x101B;
1685 pub const SPI_GETMOUSESONAR: ::UINT = 0x101C;
1686 pub const SPI_SETMOUSESONAR: ::UINT = 0x101D;
1687 pub const SPI_GETMOUSECLICKLOCK: ::UINT = 0x101E;
1688 pub const SPI_SETMOUSECLICKLOCK: ::UINT = 0x101F;
1689 pub const SPI_GETMOUSEVANISH: ::UINT = 0x1020;
1690 pub const SPI_SETMOUSEVANISH: ::UINT = 0x1021;
1691 pub const SPI_GETFLATMENU: ::UINT = 0x1022;
1692 pub const SPI_SETFLATMENU: ::UINT = 0x1023;
1693 pub const SPI_GETDROPSHADOW: ::UINT = 0x1024;
1694 pub const SPI_SETDROPSHADOW: ::UINT = 0x1025;
1695 pub const SPI_GETBLOCKSENDINPUTRESETS: ::UINT = 0x1026;
1696 pub const SPI_SETBLOCKSENDINPUTRESETS: ::UINT = 0x1027;
1697 pub const SPI_GETUIEFFECTS: ::UINT = 0x103E;
1698 pub const SPI_SETUIEFFECTS: ::UINT = 0x103F;
1699 pub const SPI_GETDISABLEOVERLAPPEDCONTENT: ::UINT = 0x1040;
1700 pub const SPI_SETDISABLEOVERLAPPEDCONTENT: ::UINT = 0x1041;
1701 pub const SPI_GETCLIENTAREAANIMATION: ::UINT = 0x1042;
1702 pub const SPI_SETCLIENTAREAANIMATION: ::UINT = 0x1043;
1703 pub const SPI_GETCLEARTYPE: ::UINT = 0x1048;
1704 pub const SPI_SETCLEARTYPE: ::UINT = 0x1049;
1705 pub const SPI_GETSPEECHRECOGNITION: ::UINT = 0x104A;
1706 pub const SPI_SETSPEECHRECOGNITION: ::UINT = 0x104B;
1707 pub const SPI_GETFOREGROUNDLOCKTIMEOUT: ::UINT = 0x2000;
1708 pub const SPI_SETFOREGROUNDLOCKTIMEOUT: ::UINT = 0x2001;
1709 pub const SPI_GETACTIVEWNDTRKTIMEOUT: ::UINT = 0x2002;
1710 pub const SPI_SETACTIVEWNDTRKTIMEOUT: ::UINT = 0x2003;
1711 pub const SPI_GETFOREGROUNDFLASHCOUNT: ::UINT = 0x2004;
1712 pub const SPI_SETFOREGROUNDFLASHCOUNT: ::UINT = 0x2005;
1713 pub const SPI_GETCARETWIDTH: ::UINT = 0x2006;
1714 pub const SPI_SETCARETWIDTH: ::UINT = 0x2007;
1715 pub const SPI_GETMOUSECLICKLOCKTIME: ::UINT = 0x2008;
1716 pub const SPI_SETMOUSECLICKLOCKTIME: ::UINT = 0x2009;
1717 pub const SPI_GETFONTSMOOTHINGTYPE: ::UINT = 0x200A;
1718 pub const SPI_SETFONTSMOOTHINGTYPE: ::UINT = 0x200B;
1719 pub const FE_FONTSMOOTHINGSTANDARD: ::UINT = 0x0001;
1720 pub const FE_FONTSMOOTHINGCLEARTYPE: ::UINT = 0x0002;
1721 pub const SPI_GETFONTSMOOTHINGCONTRAST: ::UINT = 0x200C;
1722 pub const SPI_SETFONTSMOOTHINGCONTRAST: ::UINT = 0x200D;
1723 pub const SPI_GETFOCUSBORDERWIDTH: ::UINT = 0x200E;
1724 pub const SPI_SETFOCUSBORDERWIDTH: ::UINT = 0x200F;
1725 pub const SPI_GETFOCUSBORDERHEIGHT: ::UINT = 0x2010;
1726 pub const SPI_SETFOCUSBORDERHEIGHT: ::UINT = 0x2011;
1727 pub const SPI_GETFONTSMOOTHINGORIENTATION: ::UINT = 0x2012;
1728 pub const SPI_SETFONTSMOOTHINGORIENTATION: ::UINT = 0x2013;
1729 pub const FE_FONTSMOOTHINGORIENTATIONBGR: ::UINT = 0x0000;
1730 pub const FE_FONTSMOOTHINGORIENTATIONRGB: ::UINT = 0x0001;
1731 pub const SPI_GETMINIMUMHITRADIUS: ::UINT = 0x2014;
1732 pub const SPI_SETMINIMUMHITRADIUS: ::UINT = 0x2015;
1733 pub const SPI_GETMESSAGEDURATION: ::UINT = 0x2016;
1734 pub const SPI_SETMESSAGEDURATION: ::UINT = 0x2017;
1735 //11264
1736 pub const CB_GETEDITSEL: ::UINT = 0x0140;
1737 pub const CB_LIMITTEXT: ::UINT = 0x0141;
1738 pub const CB_SETEDITSEL: ::UINT = 0x0142;
1739 pub const CB_ADDSTRING: ::UINT = 0x0143;
1740 pub const CB_DELETESTRING: ::UINT = 0x0144;
1741 pub const CB_DIR: ::UINT = 0x0145;
1742 pub const CB_GETCOUNT: ::UINT = 0x0146;
1743 pub const CB_GETCURSEL: ::UINT = 0x0147;
1744 pub const CB_GETLBTEXT: ::UINT = 0x0148;
1745 pub const CB_GETLBTEXTLEN: ::UINT = 0x0149;
1746 pub const CB_INSERTSTRING: ::UINT = 0x014A;
1747 pub const CB_RESETCONTENT: ::UINT = 0x014B;
1748 pub const CB_FINDSTRING: ::UINT = 0x014C;
1749 pub const CB_SELECTSTRING: ::UINT = 0x014D;
1750 pub const CB_SETCURSEL: ::UINT = 0x014E;
1751 pub const CB_SHOWDROPDOWN: ::UINT = 0x014F;
1752 pub const CB_GETITEMDATA: ::UINT = 0x0150;
1753 pub const CB_SETITEMDATA: ::UINT = 0x0151;
1754 pub const CB_GETDROPPEDCONTROLRECT: ::UINT = 0x0152;
1755 pub const CB_SETITEMHEIGHT: ::UINT = 0x0153;
1756 pub const CB_GETITEMHEIGHT: ::UINT = 0x0154;
1757 pub const CB_SETEXTENDEDUI: ::UINT = 0x0155;
1758 pub const CB_GETEXTENDEDUI: ::UINT = 0x0156;
1759 pub const CB_GETDROPPEDSTATE: ::UINT = 0x0157;
1760 pub const CB_FINDSTRINGEXACT: ::UINT = 0x0158;
1761 pub const CB_SETLOCALE: ::UINT = 0x0159;
1762 pub const CB_GETLOCALE: ::UINT = 0x015A;
1763 pub const CB_GETTOPINDEX: ::UINT = 0x015b;
1764 pub const CB_SETTOPINDEX: ::UINT = 0x015c;
1765 pub const CB_GETHORIZONTALEXTENT: ::UINT = 0x015d;
1766 pub const CB_SETHORIZONTALEXTENT: ::UINT = 0x015e;
1767 pub const CB_GETDROPPEDWIDTH: ::UINT = 0x015f;
1768 pub const CB_SETDROPPEDWIDTH: ::UINT = 0x0160;
1769 pub const CB_INITSTORAGE: ::UINT = 0x0161;
1770 //12141
1771 STRUCT!{nodebug struct NONCLIENTMETRICSA {
1772     cbSize: ::UINT,
1773     iBorderWidth: ::c_int,
1774     iScrollWidth: ::c_int,
1775     iScrollHeight: ::c_int,
1776     iCaptionWidth: ::c_int,
1777     iCaptionHeight: ::c_int,
1778     lfCaptionFont: ::LOGFONTA,
1779     iSmCaptionWidth: ::c_int,
1780     iSmCaptionHeight: ::c_int,
1781     lfSmCaptionFont: ::LOGFONTA,
1782     iMenuWidth: ::c_int,
1783     iMenuHeight: ::c_int,
1784     lfMenuFont: ::LOGFONTA,
1785     lfStatusFont: ::LOGFONTA,
1786     lfMessageFont: ::LOGFONTA,
1787     iPaddedBorderWidth: ::c_int,
1788 }}
1789 pub type LPNONCLIENTMETRICSA = *mut NONCLIENTMETRICSA;
1790 STRUCT!{nodebug struct NONCLIENTMETRICSW {
1791     cbSize: ::UINT,
1792     iBorderWidth: ::c_int,
1793     iScrollWidth: ::c_int,
1794     iScrollHeight: ::c_int,
1795     iCaptionWidth: ::c_int,
1796     iCaptionHeight: ::c_int,
1797     lfCaptionFont: ::LOGFONTW,
1798     iSmCaptionWidth: ::c_int,
1799     iSmCaptionHeight: ::c_int,
1800     lfSmCaptionFont: ::LOGFONTW,
1801     iMenuWidth: ::c_int,
1802     iMenuHeight: ::c_int,
1803     lfMenuFont: ::LOGFONTW,
1804     lfStatusFont: ::LOGFONTW,
1805     lfMessageFont: ::LOGFONTW,
1806     iPaddedBorderWidth: ::c_int,
1807 }}
1808 pub type LPNONCLIENTMETRICSW = *mut NONCLIENTMETRICSW;
1809 //12869
1810 pub const MONITOR_DEFAULTTONULL: ::DWORD = 0x00000000;
1811 pub const MONITOR_DEFAULTTOPRIMARY: ::DWORD = 0x00000001;
1812 pub const MONITOR_DEFAULTTONEAREST: ::DWORD = 0x00000002;
1813 //12900
1814 pub const MONITORINFOF_PRIMARY: ::DWORD = 1;
1815 pub const CCHDEVICENAME: usize = 32;
1816 STRUCT!{struct MONITORINFO {
1817     cbSize: ::DWORD,
1818     rcMonitor: ::RECT,
1819     rcWork: ::RECT,
1820     dwFlags: ::DWORD,
1821 }}
1822 pub type LPMONITORINFO = *mut MONITORINFO;
1823 STRUCT!{struct MONITORINFOEXA {
1824     cbSize: ::DWORD,
1825     rcMonitor: ::RECT,
1826     rcWork: ::RECT,
1827     dwFlags: ::DWORD,
1828     szDevice: [::CHAR; ::CCHDEVICENAME],
1829 }}
1830 pub type LPMONITORINFOEXA = *mut MONITORINFOEXA;
1831 STRUCT!{struct MONITORINFOEXW {
1832     cbSize: ::DWORD,
1833     rcMonitor: ::RECT,
1834     rcWork: ::RECT,
1835     dwFlags: ::DWORD,
1836     szDevice: [::WCHAR; ::CCHDEVICENAME],
1837 }}
1838 pub type LPMONITORINFOEXW = *mut MONITORINFOEXW;
1839 //12971
1840 pub type MONITORENUMPROC = Option<unsafe extern "system" fn(
1841     ::HMONITOR, ::HDC, ::LPRECT, ::LPARAM,
1842 ) -> ::BOOL>;
1843 //14098
1844 DECLARE_HANDLE!(HRAWINPUT, HRAWINPUT__);
GET_RAWINPUT_CODE_WPARAM(wParam: ::WPARAM) -> ::WPARAM1845 pub fn GET_RAWINPUT_CODE_WPARAM(wParam: ::WPARAM) -> ::WPARAM { wParam & 0xff }
1846 pub const RIM_INPUT: ::WPARAM = 0;
1847 pub const RIM_INPUTSINK: ::WPARAM = 1;
1848 STRUCT!{struct RAWINPUTHEADER {
1849     dwType: ::DWORD,
1850     dwSize: ::DWORD,
1851     hDevice: ::HANDLE,
1852     wParam: ::WPARAM,
1853 }}
1854 pub type PRAWINPUTHEADER = *mut RAWINPUTHEADER;
1855 pub type LPRAWINPUTHEADER = *mut RAWINPUTHEADER;
1856 pub const RIM_TYPEMOUSE: ::DWORD = 0;
1857 pub const RIM_TYPEKEYBOARD: ::DWORD = 1;
1858 pub const RIM_TYPEHID: ::DWORD = 2;
1859 STRUCT!{struct RAWMOUSE {
1860     usFlags: ::USHORT,
1861     memory_padding: ::USHORT, // 16bit Padding for 32bit align in following union
1862     usButtonFlags: ::USHORT,
1863     usButtonData: ::USHORT,
1864     ulRawButtons: ::ULONG,
1865     lLastX: ::LONG,
1866     lLastY: ::LONG,
1867     ulExtraInformation: ::ULONG,
1868 }}
1869 pub type PRAWMOUSE = *mut RAWMOUSE;
1870 pub type LPRAWMOUSE = *mut RAWMOUSE;
1871 pub const RI_MOUSE_LEFT_BUTTON_DOWN: ::USHORT = 0x0001;
1872 pub const RI_MOUSE_LEFT_BUTTON_UP: ::USHORT = 0x0002;
1873 pub const RI_MOUSE_RIGHT_BUTTON_DOWN: ::USHORT = 0x0004;
1874 pub const RI_MOUSE_RIGHT_BUTTON_UP: ::USHORT = 0x0008;
1875 pub const RI_MOUSE_MIDDLE_BUTTON_DOWN: ::USHORT = 0x0010;
1876 pub const RI_MOUSE_MIDDLE_BUTTON_UP: ::USHORT = 0x0020;
1877 pub const RI_MOUSE_BUTTON_1_DOWN: ::USHORT = RI_MOUSE_LEFT_BUTTON_DOWN;
1878 pub const RI_MOUSE_BUTTON_1_UP: ::USHORT = RI_MOUSE_LEFT_BUTTON_UP;
1879 pub const RI_MOUSE_BUTTON_2_DOWN: ::USHORT = RI_MOUSE_RIGHT_BUTTON_DOWN;
1880 pub const RI_MOUSE_BUTTON_2_UP: ::USHORT = RI_MOUSE_RIGHT_BUTTON_UP;
1881 pub const RI_MOUSE_BUTTON_3_DOWN: ::USHORT = RI_MOUSE_MIDDLE_BUTTON_DOWN;
1882 pub const RI_MOUSE_BUTTON_3_UP: ::USHORT = RI_MOUSE_MIDDLE_BUTTON_UP;
1883 pub const RI_MOUSE_BUTTON_4_DOWN: ::USHORT = 0x0040;
1884 pub const RI_MOUSE_BUTTON_4_UP: ::USHORT = 0x0080;
1885 pub const RI_MOUSE_BUTTON_5_DOWN: ::USHORT = 0x0100;
1886 pub const RI_MOUSE_BUTTON_5_UP: ::USHORT = 0x0200;
1887 pub const RI_MOUSE_WHEEL: ::USHORT = 0x0400;
1888 pub const MOUSE_MOVE_RELATIVE: ::USHORT = 0;
1889 pub const MOUSE_MOVE_ABSOLUTE: ::USHORT = 1;
1890 pub const MOUSE_VIRTUAL_DESKTOP: ::USHORT = 0x02;
1891 pub const MOUSE_ATTRIBUTES_CHANGED: ::USHORT = 0x04;
1892 pub const MOUSE_MOVE_NOCOALESCE: ::USHORT = 0x08;
1893 STRUCT!{struct RAWKEYBOARD {
1894     MakeCode: ::USHORT,
1895     Flags: ::USHORT,
1896     Reserved: ::USHORT,
1897     VKey: ::USHORT,
1898     Message: ::UINT,
1899     ExtraInformation: ::ULONG,
1900 }}
1901 pub type PRAWKEYBOARD = *mut RAWKEYBOARD;
1902 pub type LPRAWKEYBOARD = *mut RAWKEYBOARD;
1903 pub const KEYBOARD_OVERRUN_MAKE_CODE: ::DWORD = 0xFF;
1904 pub const RI_KEY_MAKE: ::DWORD = 0;
1905 pub const RI_KEY_BREAK: ::DWORD = 1;
1906 pub const RI_KEY_E0: ::DWORD = 2;
1907 pub const RI_KEY_E1: ::DWORD = 4;
1908 pub const RI_KEY_TERMSRV_SET_LED: ::DWORD = 8;
1909 pub const RI_KEY_TERMSRV_SHADOW: ::DWORD = 0x10;
1910 STRUCT!{struct RAWHID {
1911     dwSizeHid: ::DWORD,
1912     dwCount: ::DWORD,
1913     bRawData: [::BYTE; 0],
1914 }}
1915 pub type PRAWHID = *mut RAWHID;
1916 pub type LPRAWHID = *mut RAWHID;
1917 STRUCT!{struct RAWINPUT {
1918     header: RAWINPUTHEADER,
1919     mouse: RAWMOUSE,
1920 }}
1921 UNION!(RAWINPUT, mouse, mouse, mouse_mut, RAWMOUSE);
1922 UNION!(RAWINPUT, mouse, keyboard, keyboard_mut, RAWKEYBOARD);
1923 UNION!(RAWINPUT, mouse, hid, hid_mut, RAWHID);
1924 #[test]
test_RAWINPUT()1925 fn test_RAWINPUT() {
1926     use std::mem::{size_of, align_of};
1927     assert!(size_of::<RAWMOUSE>() >= size_of::<RAWMOUSE>());
1928     assert!(size_of::<RAWMOUSE>() >= size_of::<RAWKEYBOARD>());
1929     assert!(size_of::<RAWMOUSE>() >= size_of::<RAWHID>());
1930     assert!(align_of::<RAWMOUSE>() >= align_of::<RAWMOUSE>());
1931     assert!(align_of::<RAWMOUSE>() >= align_of::<RAWKEYBOARD>());
1932     assert!(align_of::<RAWMOUSE>() >= align_of::<RAWHID>());
1933 }
1934 pub type PRAWINPUT = *mut RAWINPUT;
1935 pub type LPRAWINPUT = *mut RAWINPUT;
1936 pub const RID_INPUT: ::DWORD = 0x10000003;
1937 pub const RID_HEADER: ::DWORD = 0x10000005;
1938 pub const RIDI_PREPARSEDDATA: ::DWORD = 0x20000005;
1939 pub const RIDI_DEVICENAME: ::DWORD = 0x20000007;
1940 pub const RIDI_DEVICEINFO: ::DWORD = 0x2000000b;
1941 STRUCT!{struct RID_DEVICE_INFO_MOUSE {
1942     dwId: ::DWORD,
1943     dwNumberOfButtons: ::DWORD,
1944     dwSampleRate: ::DWORD,
1945     fHasHorizontalWheel: ::BOOL,
1946 }}
1947 pub type PRID_DEVICE_INFO_MOUSE = *mut RID_DEVICE_INFO_MOUSE;
1948 STRUCT!{struct RID_DEVICE_INFO_KEYBOARD {
1949     dwType: ::DWORD,
1950     dwSubType: ::DWORD,
1951     dwKeyboardMode: ::DWORD,
1952     dwNumberOfFunctionKeys: ::DWORD,
1953     dwNumberOfIndicators: ::DWORD,
1954     dwNumberOfKeysTotal: ::DWORD,
1955 }}
1956 pub type PRID_DEVICE_INFO_KEYBOARD = *mut RID_DEVICE_INFO_KEYBOARD;
1957 STRUCT!{struct RID_DEVICE_INFO_HID {
1958     dwVendorId: ::DWORD,
1959     dwProductId: ::DWORD,
1960     dwVersionNumber: ::DWORD,
1961     usUsagePage: ::USHORT,
1962     usUsage: ::USHORT,
1963 }}
1964 pub type PRID_DEVICE_INFO_HID = *mut RID_DEVICE_INFO_HID;
1965 STRUCT!{struct RID_DEVICE_INFO {
1966     cbSize: ::DWORD,
1967     dwType: ::DWORD,
1968     keyboard: RID_DEVICE_INFO_KEYBOARD,
1969 }}
1970 UNION!(RID_DEVICE_INFO, keyboard, mouse, mouse_mut, RID_DEVICE_INFO_MOUSE);
1971 UNION!(RID_DEVICE_INFO, keyboard, keyboard, keyboard_mut, RID_DEVICE_INFO_KEYBOARD);
1972 UNION!(RID_DEVICE_INFO, keyboard, hid, hid_mut, RID_DEVICE_INFO_HID);
1973 #[test]
test_RID_DEVICE_INFO()1974 fn test_RID_DEVICE_INFO() {
1975     use std::mem::{size_of, align_of};
1976     assert!(size_of::<RID_DEVICE_INFO_KEYBOARD>() >= size_of::<RID_DEVICE_INFO_MOUSE>());
1977     assert!(size_of::<RID_DEVICE_INFO_KEYBOARD>() >= size_of::<RID_DEVICE_INFO_KEYBOARD>());
1978     assert!(size_of::<RID_DEVICE_INFO_KEYBOARD>() >= size_of::<RID_DEVICE_INFO_HID>());
1979     assert!(align_of::<RID_DEVICE_INFO_KEYBOARD>() >= align_of::<RID_DEVICE_INFO_MOUSE>());
1980     assert!(align_of::<RID_DEVICE_INFO_KEYBOARD>()
1981         >= align_of::<RID_DEVICE_INFO_KEYBOARD>());
1982     assert!(align_of::<RID_DEVICE_INFO_KEYBOARD>() >= align_of::<RID_DEVICE_INFO_HID>());
1983 }
1984 pub type PRID_DEVICE_INFO = *mut RID_DEVICE_INFO;
1985 pub type LPRID_DEVICE_INFO = *mut RID_DEVICE_INFO;
1986 STRUCT!{struct RAWINPUTDEVICE {
1987     usUsagePage: ::USHORT,
1988     usUsage: ::USHORT,
1989     dwFlags: ::DWORD,
1990     hwndTarget: ::HWND,
1991 }}
1992 pub type PRAWINPUTDEVICE = *mut RAWINPUTDEVICE;
1993 pub type LPRAWINPUTDEVICE = *mut RAWINPUTDEVICE;
1994 pub type PCRAWINPUTDEVICE = *const RAWINPUTDEVICE;
1995 pub const RIDEV_REMOVE: ::DWORD = 0x00000001;
1996 pub const RIDEV_EXCLUDE: ::DWORD = 0x00000010;
1997 pub const RIDEV_PAGEONLY: ::DWORD = 0x00000020;
1998 pub const RIDEV_NOLEGACY: ::DWORD = 0x00000030;
1999 pub const RIDEV_INPUTSINK: ::DWORD = 0x00000100;
2000 pub const RIDEV_CAPTUREMOUSE: ::DWORD = 0x00000200;
2001 pub const RIDEV_NOHOTKEYS: ::DWORD = 0x00000200;
2002 pub const RIDEV_APPKEYS: ::DWORD = 0x00000400;
2003 pub const RIDEV_EXINPUTSINK: ::DWORD = 0x00001000;
2004 pub const RIDEV_DEVNOTIFY: ::DWORD = 0x00002000;
2005 pub const RIDEV_EXMODEMASK: ::DWORD = 0x000000F0;
2006 pub const GIDC_ARRIVAL: ::DWORD = 1;
2007 pub const GIDC_REMOVAL: ::DWORD = 2;
2008 STRUCT!{struct RAWINPUTDEVICELIST {
2009     hDevice: ::HANDLE,
2010     dwType: ::DWORD,
2011 }}
2012 pub type PRAWINPUTDEVICELIST = *mut RAWINPUTDEVICELIST;
2013 STRUCT!{struct CHANGEFILTERSTRUCT {
2014     cbSize: ::DWORD,
2015     ExtStatus: ::DWORD,
2016 }}
2017 pub type PCHANGEFILTERSTRUCT = *mut CHANGEFILTERSTRUCT;
2018 STRUCT!{struct DLGTEMPLATE {
2019     style: ::DWORD,
2020     dwExtendedStyle: ::DWORD,
2021     cdit: ::WORD,
2022     x: ::c_short,
2023     y: ::c_short,
2024     cx: ::c_short,
2025     cy: ::c_short,
2026 }}
2027 pub type LPDLGTEMPLATEA = *mut DLGTEMPLATE;
2028 pub type LPDLGTEMPLATEW = *mut DLGTEMPLATE;
2029 pub type LPCDLGTEMPLATEA = *const DLGTEMPLATE;
2030 pub type LPCDLGTEMPLATEW = *const DLGTEMPLATE;
2031 STRUCT!{struct DRAWTEXTPARAMS {
2032     cbSize: ::UINT,
2033     iTabLength: ::c_int,
2034     iLeftMargin: ::c_int,
2035     iRightMargin: ::c_int,
2036     uiLengthDrawn: ::UINT,
2037 }}
2038 pub type LPDRAWTEXTPARAMS = *mut DRAWTEXTPARAMS;
2039 STRUCT!{struct ACCEL {
2040     fVirt: ::BYTE,
2041     key: ::WORD,
2042     cmd: ::WORD,
2043 }}
2044 pub type LPACCEL = *mut ACCEL;
2045 STRUCT!{struct MENUITEMINFOA {
2046     cbSize: ::UINT,
2047     fMask: ::UINT,
2048     fType: ::UINT,
2049     fState: ::UINT,
2050     wID: ::UINT,
2051     hSubMenu: ::HMENU,
2052     hbmpChecked: ::HBITMAP,
2053     hbmpUnchecked: ::HBITMAP,
2054     dwItemData: ::ULONG_PTR,
2055     dwTypeData: ::LPSTR,
2056     cch: ::UINT,
2057     hbmpItem: ::HBITMAP,
2058 }}
2059 pub type LPMENUITEMINFOA = *mut MENUITEMINFOA;
2060 pub type LPCMENUITEMINFOA = *const MENUITEMINFOA;
2061 STRUCT!{struct MENUITEMINFOW {
2062     cbSize: ::UINT,
2063     fMask: ::UINT,
2064     fType: ::UINT,
2065     fState: ::UINT,
2066     wID: ::UINT,
2067     hSubMenu: ::HMENU,
2068     hbmpChecked: ::HBITMAP,
2069     hbmpUnchecked: ::HBITMAP,
2070     dwItemData: ::ULONG_PTR,
2071     dwTypeData: ::LPWSTR,
2072     cch: ::UINT,
2073     hbmpItem: ::HBITMAP,
2074 }}
2075 pub type LPMENUITEMINFOW = *mut MENUITEMINFOW;
2076 pub type LPCMENUITEMINFOW = *const MENUITEMINFOW;
2077 STRUCT!{nodebug struct MSGBOXPARAMSA {
2078     cbSize: ::UINT,
2079     hwndOwner: ::HWND,
2080     hInstance: ::HINSTANCE,
2081     lpszText: ::LPCSTR,
2082     lpszCaption: ::LPCSTR,
2083     dwStyle: ::DWORD,
2084     lpszIcon: ::LPCSTR,
2085     dwContextHelpId: ::DWORD_PTR,
2086     lpfnMsgBoxCallback: ::MSGBOXCALLBACK,
2087     dwLanguageId: ::DWORD,
2088 }}
2089 pub type PMSGBOXPARAMSA = *mut MSGBOXPARAMSA;
2090 pub type LPMSGBOXPARAMSA = *mut MSGBOXPARAMSA;
2091 STRUCT!{nodebug struct MSGBOXPARAMSW {
2092     cbSize: ::UINT,
2093     hwndOwner: ::HWND,
2094     hInstance: ::HINSTANCE,
2095     lpszText: ::LPCWSTR,
2096     lpszCaption: ::LPCWSTR,
2097     dwStyle: ::DWORD,
2098     lpszIcon: ::LPCWSTR,
2099     dwContextHelpId: ::DWORD_PTR,
2100     lpfnMsgBoxCallback: ::MSGBOXCALLBACK,
2101     dwLanguageId: ::DWORD,
2102 }}
2103 pub type PMSGBOXPARAMSW = *mut MSGBOXPARAMSW;
2104 pub type LPMSGBOXPARAMSW = *mut MSGBOXPARAMSW;
2105 STRUCT!{struct HELPINFO {
2106     cbSize: ::UINT,
2107     iContextType: ::c_int,
2108     iCtrlId: ::c_int,
2109     hItemHandle: ::HANDLE,
2110     dwContextId: ::DWORD,
2111     MousePos: ::POINT,
2112 }}
2113 pub type LPHELPINFO = *mut HELPINFO;
2114 #[allow(trivial_numeric_casts)]
GET_WHEEL_DELTA_WPARAM(wParam: ::WPARAM) -> ::c_short2115 pub fn GET_WHEEL_DELTA_WPARAM(wParam: ::WPARAM) -> ::c_short {
2116     ::HIWORD(wParam as ::DWORD) as ::c_short
2117 }
2118 #[allow(trivial_numeric_casts)]
GET_KEYSTATE_WPARAM(wparam: ::WPARAM) -> ::c_int2119 pub fn GET_KEYSTATE_WPARAM(wparam: ::WPARAM) -> ::c_int {
2120     ::LOWORD(wparam as ::DWORD) as ::c_short as ::c_int
2121 }
2122 #[allow(trivial_numeric_casts)]
GET_XBUTTON_WPARAM(wparam: ::WPARAM) -> ::c_int2123 pub fn GET_XBUTTON_WPARAM(wparam: ::WPARAM) -> ::c_int {
2124     ::HIWORD(wparam as ::DWORD) as ::c_int
2125 }
2126 pub const SIF_RANGE: ::UINT = 0x0001;
2127 pub const SIF_PAGE: ::UINT = 0x0002;
2128 pub const SIF_POS: ::UINT = 0x0004;
2129 pub const SIF_DISABLENOSCROLL: ::UINT = 0x0008;
2130 pub const SIF_TRACKPOS: ::UINT = 0x0010;
2131 pub const SIF_ALL: ::UINT = SIF_RANGE | SIF_PAGE | SIF_POS | SIF_TRACKPOS;
2132 pub const SW_SCROLLCHILDREN: ::UINT = 0x0001;
2133 pub const SW_INVALIDATE: ::UINT = 0x0002;
2134 pub const SW_ERASE: ::UINT = 0x0004;
2135 pub const SW_SMOOTHSCROLL: ::UINT = 0x0010;
2136 pub const SB_LINEUP: ::c_int = 0;
2137 pub const SB_LINELEFT: ::c_int = 0;
2138 pub const SB_LINEDOWN: ::c_int = 1;
2139 pub const SB_LINERIGHT: ::c_int = 1;
2140 pub const SB_PAGEUP: ::c_int = 2;
2141 pub const SB_PAGELEFT: ::c_int = 2;
2142 pub const SB_PAGEDOWN: ::c_int = 3;
2143 pub const SB_PAGERIGHT: ::c_int = 3;
2144 pub const SB_THUMBPOSITION: ::c_int = 4;
2145 pub const SB_THUMBTRACK: ::c_int = 5;
2146 pub const SB_TOP: ::c_int = 6;
2147 pub const SB_LEFT: ::c_int = 6;
2148 pub const SB_BOTTOM: ::c_int = 7;
2149 pub const SB_RIGHT: ::c_int = 7;
2150 pub const SB_ENDSCROLL: ::c_int = 8;
2151 pub const LR_DEFAULTCOLOR: ::UINT = 0x00000000;
2152 pub const LR_MONOCHROME: ::UINT = 0x00000001;
2153 pub const LR_COLOR: ::UINT = 0x00000002;
2154 pub const LR_COPYRETURNORG: ::UINT = 0x00000004;
2155 pub const LR_COPYDELETEORG: ::UINT = 0x00000008;
2156 pub const LR_LOADFROMFILE: ::UINT = 0x00000010;
2157 pub const LR_LOADTRANSPARENT: ::UINT = 0x00000020;
2158 pub const LR_DEFAULTSIZE: ::UINT = 0x00000040;
2159 pub const LR_VGACOLOR: ::UINT = 0x00000080;
2160 pub const LR_LOADMAP3DCOLORS: ::UINT = 0x00001000;
2161 pub const LR_CREATEDIBSECTION: ::UINT = 0x00002000;
2162 pub const LR_COPYFROMRESOURCE: ::UINT = 0x00004000;
2163 pub const LR_SHARED: ::UINT = 0x00008000;
2164 pub const IMAGE_BITMAP: ::UINT = 0;
2165 pub const IMAGE_ICON: ::UINT = 1;
2166 pub const IMAGE_CURSOR: ::UINT = 2;
2167 pub const IMAGE_ENHMETAFILE: ::UINT = 3;
2168 pub const DT_TOP: ::UINT = 0x00000000;
2169 pub const DT_LEFT: ::UINT = 0x00000000;
2170 pub const DT_CENTER: ::UINT = 0x00000001;
2171 pub const DT_RIGHT: ::UINT = 0x00000002;
2172 pub const DT_VCENTER: ::UINT = 0x00000004;
2173 pub const DT_BOTTOM: ::UINT = 0x00000008;
2174 pub const DT_WORDBREAK: ::UINT = 0x00000010;
2175 pub const DT_SINGLELINE: ::UINT = 0x00000020;
2176 pub const DT_EXPANDTABS: ::UINT = 0x00000040;
2177 pub const DT_TABSTOP: ::UINT = 0x00000080;
2178 pub const DT_NOCLIP: ::UINT = 0x00000100;
2179 pub const DT_EXTERNALLEADING: ::UINT = 0x00000200;
2180 pub const DT_CALCRECT: ::UINT = 0x00000400;
2181 pub const DT_NOPREFIX: ::UINT = 0x00000800;
2182 pub const DT_INTERNAL: ::UINT = 0x00001000;
2183 pub const DT_EDITCONTROL: ::UINT = 0x00002000;
2184 pub const DT_PATH_ELLIPSIS: ::UINT = 0x00004000;
2185 pub const DT_END_ELLIPSIS: ::UINT = 0x00008000;
2186 pub const DT_MODIFYSTRING: ::UINT = 0x00010000;
2187 pub const DT_RTLREADING: ::UINT = 0x00020000;
2188 pub const DT_WORD_ELLIPSIS: ::UINT = 0x00040000;
2189 pub const DT_NOFULLWIDTHCHARBREAK: ::UINT = 0x00080000;
2190 pub const DT_HIDEPREFIX: ::UINT = 0x00100000;
2191 pub const DT_PREFIXONLY: ::UINT = 0x00200000;
2192 STRUCT!{struct KBDLLHOOKSTRUCT {
2193     vkCode: ::DWORD,
2194     scanCode: ::DWORD,
2195     flags: ::DWORD,
2196     time: ::DWORD,
2197     dwExtraInfo: ::ULONG_PTR,
2198 }}
2199 pub type PKBDLLHOOKSTRUCT = *mut KBDLLHOOKSTRUCT;
2200 pub type LPKBDLLHOOKSTRUCT = *mut KBDLLHOOKSTRUCT;
2201 STRUCT!{struct MSLLHOOKSTRUCT {
2202     pt: ::POINT,
2203     mouseData: ::DWORD,
2204     flags: ::DWORD,
2205     time: ::DWORD,
2206     dwExtraInfo: ::ULONG_PTR,
2207 }}
2208 pub type PMSLLHOOKSTRUCT = *mut MSLLHOOKSTRUCT;
2209 pub type LPMSLLHOOKSTRUCT = *mut MSLLHOOKSTRUCT;
2210 pub const WH_MIN: ::c_int = -1;
2211 pub const WH_MSGFILTER: ::c_int = -1;
2212 pub const WH_JOURNALRECORD: ::c_int = 0;
2213 pub const WH_JOURNALPLAYBACK: ::c_int = 1;
2214 pub const WH_KEYBOARD: ::c_int = 2;
2215 pub const WH_GETMESSAGE: ::c_int = 3;
2216 pub const WH_CALLWNDPROC: ::c_int = 4;
2217 pub const WH_CBT: ::c_int = 5;
2218 pub const WH_SYSMSGFILTER: ::c_int = 6;
2219 pub const WH_MOUSE: ::c_int = 7;
2220 pub const WH_HARDWARE: ::c_int = 8;
2221 pub const WH_DEBUG: ::c_int = 9;
2222 pub const WH_SHELL: ::c_int = 10;
2223 pub const WH_FOREGROUNDIDLE: ::c_int = 11;
2224 pub const WH_CALLWNDPROCRET: ::c_int = 12;
2225 pub const WH_KEYBOARD_LL: ::c_int = 13;
2226 pub const WH_MOUSE_LL: ::c_int = 14;
2227 pub const WH_MAX: ::c_int = 14;
2228 pub const WH_MINHOOK: ::c_int = WH_MIN;
2229 pub const WH_MAXHOOK: ::c_int = WH_MAX;
2230 pub const KLF_ACTIVATE: ::UINT = 1;
2231 pub const KLF_SUBSTITUTE_OK: ::UINT = 2;
2232 pub const KLF_UNLOADPREVIOUS: ::UINT = 4;
2233 pub const KLF_REORDER: ::UINT = 8;
2234 pub const KLF_REPLACELANG: ::UINT = 16;
2235 pub const KLF_NOTELLSHELL: ::UINT = 128;
2236 pub const KLF_SETFORPROCESS: ::UINT = 256;
2237 //RedrawWindow() flags
2238 pub const RDW_INVALIDATE: ::UINT = 0x0001;
2239 pub const RDW_INTERNALPAINT: ::UINT = 0x0002;
2240 pub const RDW_ERASE: ::UINT = 0x0004;
2241 pub const RDW_VALIDATE: ::UINT = 0x0008;
2242 pub const RDW_NOINTERNALPAINT: ::UINT = 0x0010;
2243 pub const RDW_NOERASE: ::UINT = 0x0020;
2244 pub const RDW_NOCHILDREN: ::UINT = 0x0040;
2245 pub const RDW_ALLCHILDREN: ::UINT = 0x0080;
2246 pub const RDW_UPDATENOW: ::UINT = 0x0100;
2247 pub const RDW_ERASENOW: ::UINT = 0x0200;
2248 pub const RDW_FRAME: ::UINT = 0x0400;
2249 pub const RDW_NOFRAME: ::UINT = 0x0800;
2250 STRUCT!{struct MEASUREITEMSTRUCT {
2251     CtlType: ::UINT,
2252     CtlID: ::UINT,
2253     itemID: ::UINT,
2254     itemWidth: ::UINT,
2255     itemHeight: ::UINT,
2256     itemData: ::ULONG_PTR,
2257 }}
2258 pub type LPMEASUREITEMSTRUCT = *mut MEASUREITEMSTRUCT;
2259 STRUCT!{struct DRAWITEMSTRUCT {
2260     CtlType: ::UINT,
2261     CtlID: ::UINT,
2262     itemID: ::UINT,
2263     itemAction: ::UINT,
2264     itemState: ::UINT,
2265     hwndItem: ::HWND,
2266     hDC: ::HDC,
2267     rcItem: ::RECT,
2268     itemData: ::ULONG_PTR,
2269 }}
2270 pub type LPDRAWITEMSTRUCT = *mut DRAWITEMSTRUCT;
2271 STRUCT!{struct DELETEITEMSTRUCT {
2272     CtlType: ::UINT,
2273     CtlID: ::UINT,
2274     itemID: ::UINT,
2275     hwndItem: ::HWND,
2276     itemData: ::ULONG_PTR,
2277 }}
2278 pub type LPDELETEITEMSTRUCT = *mut DELETEITEMSTRUCT;
2279 STRUCT!{struct COMPAREITEMSTRUCT {
2280     CtlType: ::UINT,
2281     CtlID: ::UINT,
2282     hwndItem: ::HWND,
2283     itemID1: ::UINT,
2284     itemData1: ::ULONG_PTR,
2285     itemID2: ::UINT,
2286     itemData2: ::ULONG_PTR,
2287     dwLocaleId: ::DWORD,
2288 }}
2289 pub type LPCOMPAREITEMSTRUCT = *mut COMPAREITEMSTRUCT;
2290 /* Image type */
2291 pub const DST_COMPLEX: ::UINT = 0x0000;
2292 pub const DST_TEXT: ::UINT = 0x0001;
2293 pub const DST_PREFIXTEXT: ::UINT = 0x0002;
2294 pub const DST_ICON: ::UINT = 0x0003;
2295 pub const DST_BITMAP: ::UINT = 0x0004;
2296 pub const DI_MASK: ::UINT = 0x0001;
2297 pub const DI_IMAGE: ::UINT = 0x0002;
2298 pub const DI_NORMAL: ::UINT = 0x0003;
2299 pub const DI_COMPAT: ::UINT = 0x0004;
2300 pub const DI_DEFAULTSIZE: ::UINT = 0x0008;
2301 // if WINVER >= 0x0601
2302 // GetSystemMetrics(SM_DIGITIZER) flag values
2303 pub const NID_INTEGRATED_TOUCH: ::UINT = 0x00000001;
2304 pub const NID_EXTERNAL_TOUCH: ::UINT = 0x00000002;
2305 pub const NID_INTEGRATED_PEN: ::UINT = 0x00000004;
2306 pub const NID_EXTERNAL_PEN: ::UINT = 0x00000008;
2307 pub const NID_MULTI_INPUT: ::UINT = 0x00000040;
2308 pub const NID_READY: ::UINT = 0x00000080;
2309 // end if WINVER >= 0x0601
2310 
2311 // System Menu Command Values
2312 //
2313 pub const SC_SIZE: ::WPARAM = 0xF000;
2314 pub const SC_MOVE: ::WPARAM = 0xF010;
2315 pub const SC_MINIMIZE: ::WPARAM = 0xF020;
2316 pub const SC_MAXIMIZE: ::WPARAM = 0xF030;
2317 pub const SC_NEXTWINDOW: ::WPARAM = 0xF040;
2318 pub const SC_PREVWINDOW: ::WPARAM = 0xF050;
2319 pub const SC_CLOSE: ::WPARAM = 0xF060;
2320 pub const SC_VSCROLL: ::WPARAM = 0xF070;
2321 pub const SC_HSCROLL: ::WPARAM = 0xF080;
2322 pub const SC_MOUSEMENU: ::WPARAM = 0xF090;
2323 pub const SC_KEYMENU: ::WPARAM = 0xF100;
2324 pub const SC_ARRANGE: ::WPARAM = 0xF110;
2325 pub const SC_RESTORE: ::WPARAM = 0xF120;
2326 pub const SC_TASKLIST: ::WPARAM = 0xF130;
2327 pub const SC_SCREENSAVE: ::WPARAM = 0xF140;
2328 pub const SC_HOTKEY: ::WPARAM = 0xF150;
2329 // if WINVER >= 0x0400
2330 pub const SC_DEFAULT: ::WPARAM = 0xF160;
2331 pub const SC_MONITORPOWER: ::WPARAM = 0xF170;
2332 pub const SC_CONTEXTHELP: ::WPARAM = 0xF180;
2333 pub const SC_SEPARATOR: ::WPARAM = 0xF00F;
2334 // endif WINVER >= 0x0400
2335