1 /** DGui project file.
2 
3 Copyright: Trogu Antonio Davide 2011-2013
4 
5 License: $(HTTP boost.org/LICENSE_1_0.txt, Boost License 1.0).
6 
7 Authors: Trogu Antonio Davide
8 */
9 
10 /*
11  * Notes:
12  * - ToolTip Messages are Commented.
13  * - RichEdit Text Styles are Commented.
14  */
15 
16 module dgui.core.winapi;
17 
18 public import std.c.windows.windows;
19 public import std.c.windows.com;
20 
21 extern(Windows)
22 {
23 	enum: int
24 	{
25 		I_CHILDRENCALLBACK  = -1,
26 		LPSTR_TEXTCALLBACKW = -1,
27 	}
28 
29 	enum
30 	{
31 		SW_INVALIDATE = 2,
32 	}
33 
34 	/* Dialog codes */
35 	enum: uint
36 	{
37 		DLGC_WANTARROWS 	 = 1,
38 		DLGC_WANTTAB 		 = 2,
39 		DLGC_WANTALLKEYS 	 = 4,
40 		DLGC_WANTMESSAGE 	 = 4,
41 		DLGC_HASSETSEL 		 = 8,
42 		DLGC_DEFPUSHBUTTON	 = 16,
43 		DLGC_UNDEFPUSHBUTTON = 32,
44 		DLGC_RADIOBUTTON	 = 64,
45 		DLGC_WANTCHARS 		 = 128,
46 		DLGC_STATIC 		 = 256,
47 		DLGC_BUTTON 		 = 0x2000,
48 	}
49 
50 	/* Frame Control Constants */
51 	enum: uint
52 	{
53 		DFC_CAPTION		= 1,
54 		DFC_MENU		= 2,
55 		DFC_SCROLL		= 3,
56 		DFC_BUTTON		= 4,
57 		DFC_POPUPMENU	= 5,
58 	}
59 
60 	enum: uint
61 	{
62 		DFCS_CAPTIONCLOSE   = 0,
63 		DFCS_CAPTIONMIN     = 1,
64 		DFCS_CAPTIONMAX     = 2,
65 		DFCS_CAPTIONRESTORE = 3,
66 		DFCS_CAPTIONHELP    = 4,
67 	}
68 
69 	enum: uint
70 	{
71 		DFCS_SCROLLUP            = 0,
72 		DFCS_SCROLLDOWN          = 1,
73 		DFCS_SCROLLLEFT          = 2,
74 		DFCS_SCROLLRIGHT         = 3,
75 		DFCS_SCROLLCOMBOBOX      = 5,
76 		DFCS_SCROLLSIZEGRIP      = 8,
77 		DFCS_SCROLLSIZEGRIPRIGHT = 16,
78 	}
79 
80 	enum: uint
81 	{
82 		DFCS_MENUARROW      = 0,
83 		DFCS_MENUCHECK      = 1,
84 		DFCS_MENUBULLET     = 2,
85 		DFCS_MENUARROWRIGHT = 4,
86 	}
87 
88 	enum: uint
89 	{
90 		DFCS_BUTTONCHECK         = 0,
91 		DFCS_BUTTONRADIOIMAGE    = 1,
92 		DFCS_BUTTONRADIOMASK     = 2,
93 		DFCS_BUTTONRADIO         = 4,
94 		DFCS_BUTTON3STATE        = 8,
95 		DFCS_BUTTONPUSH          = 16,
96 		DFCS_INACTIVE            = 256,
97 		DFCS_PUSHED              = 512,
98 		DFCS_CHECKED             = 1024,
99 	}
100 
101 	enum: uint
102 	{
103 		DFCS_TRANSPARENT         = 0x800,
104 		DFCS_HOT                 = 0x1000,
105 		DFCS_ADJUSTRECT          = 0x2000,
106 		DFCS_FLAT                = 0x4000,
107 		DFCS_MONO                = 0x8000,
108 	}
109 
110 	/* Windows Generic Messages */
111 	enum: uint
112 	{
113 		WM_USER 				= 0x0400,
114 		WM_APP					= 0x8000,
115 		WM_SETFONT 				= 0x0030,
116 		WM_GETFONT 			    = 0x0031,
117 		WM_WINDOWPOSCHANGING	= 0x0046,
118 		WM_WINDOWPOSCHANGED  	= 0x0047,
119 		WM_DRAWITEM 		 	= 0x002B,
120 		WM_CLEAR		     	= 0x0303,
121 		WM_CUT 				 	= 0x0300,
122 		WM_COPY 			 	= 0x0301,
123 		WM_PASTE 			 	= 0x0302,
124 		WM_MOUSEWHEEL 		 	= 0x020A,
125 		WM_MOUSEHOVER 		 	= 0x02A1,
126 		WM_MOUSELEAVE 		 	= 0x02A3,
127 		WM_MENUCOMMAND 		 	= 0x0126,
128 		WM_PRINT 			 	= 0x0317,
129 		WM_PRINTCLIENT 		 	= 0x0318,
130 		WM_MEASUREITEM 		 	= 0x002C,
131 		//WM_COMPACTING 		= 0x0041,
132 		//WM_NEXTDLGCTL 	 	= 0x0028,
133 		//WM_CAPTURECHANGED     = 0x0215,
134 		//WM_DROPFILES 		 	= 0x0233,
135 		//WM_PALETTECHANGED  	= 0x0311,
136 		//WM_MDIACTIVATE 		= 0x0222,
137 		//WM_MDITILE 			= 0x0226,
138 		//WM_MDICASCADE 		= 0x0227,
139 		//WM_MDIICONARRANGE	 	= 0x0228,
140 		//WM_MDIGETACTIVE 	 	= 0x0229,
141 	}
142 
143 	/* Windows Position and Size Flags */
144 	enum: uint
145 	{
146 		SWP_NOSIZE 		   = 0x0001,
147 		SWP_NOMOVE 		   = 0x0002,
148 		SWP_NOZORDER 	   = 0x0004,
149 		SWP_NOREDRAW 	   = 0x0008,
150 		SWP_NOACTIVATE 	   = 0x0010,
151 		SWP_SHOWWINDOW 	   = 0x0040,
152 		SWP_FRAMECHANGED   = 0x0020,
153 		SWP_HIDEWINDOW 	   = 0x0080,
154 		SWP_NOCOPYBITS 	   = 0x0100,
155 		SWP_NOOWNERZORDER  = 0x0200,
156 		SWP_NOSENDCHANGING = 0x0400,
157 		SWP_DRAWFRAME 	   = SWP_FRAMECHANGED,
158 		SWP_NOREPOSITION   = SWP_NOOWNERZORDER,
159 		SWP_DEFERERASE 	   = 0x2000,
160 		SWP_ASYNCWINDOWPOS = 0x4000,
161 	}
162 
163 	/* DIBs Flags */
164 	enum
165 	{
166 		DIB_RGB_COLORS = 0,
167 		DIB_PAL_COLORS = 1,
168 	}
169 
170 	/* GDI Object Types */
171 	enum: uint
172 	{
173 		OBJ_PEN         = 1,
174 		OBJ_BRUSH       = 2,
175 		OBJ_DC          = 3,
176 		OBJ_METADC      = 4,
177 		OBJ_PAL         = 5,
178 		OBJ_FONT        = 6,
179 		OBJ_BITMAP      = 7,
180 		OBJ_REGION      = 8,
181 		OBJ_METAFILE    = 9,
182 		OBJ_MEMDC       = 10,
183 		OBJ_EXTPEN      = 11,
184 		OBJ_ENHMETADC   = 12,
185 		OBJ_ENHMETAFILE = 13,
186 	}
187 
188 	/* Track Bar Messages */
189 	enum: uint
190 	{
191 		TBM_GETPOS         = WM_USER,
192 		TBM_GETRANGEMIN    = WM_USER + 1,
193 		TBM_GETRANGEMAX    = WM_USER + 2,
194 		TBM_GETTIC         = WM_USER + 3,
195 		TBM_SETTIC         = WM_USER + 4,
196 		TBM_SETPOS         = WM_USER + 5,
197 		TBM_SETRANGE       = WM_USER + 6,
198 		TBM_SETRANGEMIN    = WM_USER + 7,
199 		TBM_SETRANGEMAX    = WM_USER + 8,
200 		TBM_CLEARTICS      = WM_USER + 9,
201 		TBM_SETSEL         = WM_USER + 10,
202 		TBM_SETSELSTART    = WM_USER + 11,
203 		TBM_SETSELEND      = WM_USER + 12,
204 		TBM_GETPTICS       = WM_USER + 14,
205 		TBM_GETTICPOS      = WM_USER + 15,
206 		TBM_GETNUMTICS     = WM_USER + 16,
207 		TBM_GETSELSTART    = WM_USER + 17,
208 		TBM_GETSELEND      = WM_USER + 18,
209 		TBM_CLEARSEL       = WM_USER + 19,
210 		TBM_SETTICFREQ     = WM_USER + 20,
211 		TBM_SETPAGESIZE    = WM_USER + 21,
212 		TBM_GETPAGESIZE    = WM_USER + 22,
213 		TBM_SETLINESIZE    = WM_USER + 23,
214 		TBM_GETLINESIZE    = WM_USER + 24,
215 		TBM_GETTHUMBRECT   = WM_USER + 25,
216 		TBM_GETCHANNELRECT = WM_USER + 26,
217 		TBM_SETTHUMBLENGTH = WM_USER + 27,
218 		TBM_GETTHUMBLENGTH = WM_USER + 28,
219 		TBM_SETTOOLTIPS    = WM_USER + 29,
220 		TBM_GETTOOLTIPS    = WM_USER + 30,
221 		TBM_SETTIPSIDE     = WM_USER + 31,
222 		TBM_SETBUDDY       = WM_USER + 32,
223 		TBM_GETBUDDY       = WM_USER + 33,
224 		TBM_SETPOSNOTIFY   = WM_USER + 34,
225 	}
226 
227 	/* TrackBar Styles */
228 	enum: uint
229 	{
230 		TBS_AUTOTICKS      = 0x0001,
231 		TBS_VERT           = 0x0002,
232 		TBS_HORZ           = 0x0000,
233 		TBS_TOP            = 0x0004,
234 		TBS_BOTTOM         = 0x0000,
235 		TBS_LEFT           = 0x0004,
236 		TBS_RIGHT          = 0x0000,
237 		TBS_BOTH           = 0x0008,
238 		TBS_NOTICKS        = 0x0010,
239 		TBS_ENABLESELRANGE = 0x0020,
240 		TBS_FIXEDLENGTH    = 0x0040,
241 		TBS_NOTHUMB        = 0x0080,
242 		TBS_TOOLTIPS       = 0x0100,
243 	}
244 
245 	/* DrawIconEx() API flags */
246 	enum: uint
247 	{
248 		DI_MASK 	   = 0x0001,
249 		DI_IMAGE	   = 0x0002,
250 		DI_COMPAT 	   = 0x0004,
251 		DI_DEFAULTSIZE = 0x0008,
252 		DI_NORMAL 	   = DI_IMAGE | DI_MASK,
253 	}
254 
255 	/* GetClassLong() API Flags */
256 	enum: int
257 	{
258 		GCL_MENUNAME 	  = -8,
259 		GCL_HBRBACKGROUND = -10,
260 		GCL_HCURSOR       = -12,
261 		GCL_HICON 	   	  = -14,
262 		GCL_HMODULE   	  = -16,
263 		GCL_CBWNDEXTRA	  = -18,
264 		GCL_CBCLSEXTRA	  = -20,
265 		GCL_WNDPROC	   	  = -24,
266 		GCL_STYLE 	      = -26,
267 		GCL_HICONSM    	  = -34,
268 	}
269 
270 	/* Common Control Styles */
271 	enum: uint
272 	{
273 		CCS_TOP			  = 1,
274 		CCS_NOMOVEY		  = 2,
275 		CCS_BOTTOM		  = 3,
276 		CCS_NORESIZE 	  = 4,
277 		CCS_NOPARENTALIGN = 8,
278 		CCS_ADJUSTABLE	  = 32,
279 		CCS_NODIVIDER	  = 64,
280 		CCS_VERT 		  = 128,
281 		CCS_LEFT 		  = 129,
282 		CCS_NOMOVEX 	  = 130,
283 		CCS_RIGHT 		  = 131,
284 	}
285 
286 	/* GetWindowLong Flags() */
287 	enum: int
288 	{
289 		GWL_WNDPROC    = -4,
290 		GWL_HINSTANCE  = -6,
291 		GWL_HWNDPARENT = -8,
292 		GWL_STYLE 	   = -16,
293 		GWL_EXSTYLE    = -20,
294 		GWL_USERDATA   = -21,
295 		GWL_ID		   = -12,
296 	}
297 
298 	/* Notification Messages Base */
299 	enum: uint
300 	{
301 		NM_FIRST	  = 0,
302 		NM_CLICK	  = NM_FIRST - 2,
303 		NM_RCLICK	  = NM_FIRST - 5,
304 		NM_CUSTOMDRAW = NM_FIRST - 12,
305 	}
306 
307 	/* DrawEdge() API Flags */
308 	enum: uint
309 	{
310 		BDR_RAISEDOUTER			   = 1,
311 		BDR_SUNKENOUTER			   = 2,
312 		BDR_RAISEDINNER			   = 4,
313 		BDR_SUNKENINNER			   = 8,
314 		BDR_OUTER      			   = 3,
315 		BDR_INNER      			   = 0xc,
316 		BDR_RAISED     			   = 5,
317 		BDR_SUNKEN     			   = 10,
318 		EDGE_RAISED 			   = BDR_RAISEDOUTER | BDR_RAISEDINNER,
319 		EDGE_SUNKEN 			   = BDR_SUNKENOUTER | BDR_SUNKENINNER,
320 		EDGE_ETCHED 			   = BDR_SUNKENOUTER | BDR_RAISEDINNER,
321 		EDGE_BUMP   			   = BDR_RAISEDOUTER | BDR_SUNKENINNER,
322 
323 		BF_LEFT                    = 1,
324 		BF_TOP                     = 2,
325 		BF_RIGHT                   = 4,
326 		BF_BOTTOM                  = 8,
327 		BF_TOPLEFT                 = BF_TOP | BF_LEFT,
328 		BF_TOPRIGHT                = BF_TOP | BF_RIGHT,
329 		BF_BOTTOMLEFT              = BF_BOTTOM | BF_LEFT,
330 		BF_BOTTOMRIGHT             = BF_BOTTOM | BF_RIGHT,
331 		BF_RECT                    = BF_LEFT | BF_TOP | BF_RIGHT | BF_BOTTOM,
332 
333 		BF_DIAGONAL                = 16,
334 		BF_DIAGONAL_ENDTOPRIGHT    = BF_DIAGONAL | BF_TOP | BF_RIGHT,
335 		BF_DIAGONAL_ENDTOPLEFT     = BF_DIAGONAL | BF_TOP | BF_LEFT,
336 		BF_DIAGONAL_ENDBOTTOMLEFT  = BF_DIAGONAL | BF_BOTTOM | BF_LEFT,
337 		BF_DIAGONAL_ENDBOTTOMRIGHT = BF_DIAGONAL | BF_BOTTOM | BF_RIGHT,
338 		BF_MIDDLE                  = 0x800,
339 		BF_SOFT                    = 0x1000,
340 		BF_ADJUST                  = 0x2000,
341 		BF_FLAT                    = 0x4000,
342 		BF_MONO                    = 0x8000,
343 	}
344 
345 	/* Rich Edit Messages */
346 	enum: uint
347 	{
348 		ES_DISABLENOSCROLL   = 0x00002000,
349 
350 		ENM_NONE			 = 0x00000000,
351 		ENM_CHANGE			 = 0x00000001,
352 		ENM_UPDATE			 = 0x00000002,
353 		ENM_LINK 			 = 0x04000000,
354 		ENM_PROTECTED 		 = 0x00200000,
355 
356 		EM_CANPASTE			 = WM_USER + 50,
357 		EM_EXGETSEL			 = WM_USER + 52,
358 		EM_EXLIMITTEXT		 = WM_USER + 53,
359 		EM_EXLINEFROMCHAR	 = WM_USER + 54,
360 		EM_EXSETSEL			 = WM_USER + 55,
361 		EM_GETCHARFORMAT 	 = WM_USER + 58,
362 		EM_GETSELTEXT 		 = WM_USER + 62,
363 		EM_PASTESPECIAL 	 = WM_USER + 64,
364 		EM_SETBKGNDCOLOR 	 = WM_USER + 67,
365 		EM_SETCHARFORMAT 	 = WM_USER + 68,
366 		EM_SETEVENTMASK 	 = WM_USER + 69,
367 		EM_STREAMIN 		 = WM_USER + 73,
368 		EM_STREAMOUT 		 = WM_USER + 74,
369 		EM_GETTEXTRANGE 	 = WM_USER + 75,
370 
371 		/* Rich Edit 2.0 */
372 		EM_SETUNDOLIMIT 	 = WM_USER + 82,
373 		EM_REDO 			 = WM_USER + 84,
374 		EM_CANREDO 			 = WM_USER + 85,
375 		EM_GETUNDONAME 		 = WM_USER + 86,
376 		EM_GETREDONAME 		 = WM_USER + 87,
377 		EM_STOPGROUPTYPING 	 = WM_USER + 88,
378 		EM_SETTEXTMODE 		 = WM_USER + 89,
379 		EM_GETTEXTMODE 		 = WM_USER + 90,
380 		EM_AUTOURLDETECT 	 = WM_USER + 91,
381 		EM_GETAUTOURLDETECT  = WM_USER + 92,
382 		EM_SETPALETTE 		 = WM_USER + 93,
383 		EM_GETTEXTEX 		 = WM_USER + 94,
384 		EM_GETTEXTLENGTHEX   = WM_USER + 95,
385 		EM_SHOWSCROLLBAR     = WM_USER + 96,
386 		EM_SETTEXTEX 		 = WM_USER + 97,
387 		EN_LINK 			 = 0x070B,
388 	}
389 
390 	const HBMMENU_CALLBACK = cast(HBITMAP)-1;
391 
392 	/+
393 	/* Rich Edit Text Styles */
394 	enum: uint
395 	{
396 		SF_TEXT 			= 0x0001,
397 		SF_RTF				= 0x0002,
398 		SF_RTFNOOBJS 		= 0x0003,
399 		SF_TEXTIZED 		= 0x0004,
400 
401 		SFF_SELECTION 		= 0x8000,
402 		SFF_PLAINRTF 		= 0x4000,
403 
404 		SCF_SELECTION 		= 0x0001,
405 		SCF_WORD 			= 0x0002,
406 		SCF_ALL 			= 0x0004,
407 
408 		CFM_BOLD 			= 0x00000001,
409 		CFM_ITALIC 			= 0x00000002,
410 		CFM_UNDERLINE 		= 0x00000004,
411 		CFM_STRIKEOUT 		= 0x00000008,
412 		CFM_PROTECTED 		= 0x00000010,
413 		CFM_LINK 			= 0x00000020,
414 		CFM_SIZE 			= 0x80000000,
415 		CFM_COLOR 			= 0x40000000,
416 		CFM_FACE			= 0x20000000,
417 		CFM_OFFSET 			= 0x10000000,
418 		CFM_CHARSET 		= 0x08000000,
419 		CFM_SMALLCAPS 		= 0x0040,
420 		CFM_ALLCAPS 		= 0x0080,
421 		CFM_HIDDEN 			= 0x0100,
422 		CFM_OUTLINE			= 0x0200,
423 		CFM_SHADOW			= 0x0400,
424 		CFM_EMBOSS 			= 0x0800,
425 		CFM_IMPRINT 		= 0x1000,
426 		CFM_DISABLED 		= 0x2000,
427 		CFM_REVISED 		= 0x4000,
428 		CFM_BACKCOLOR		= 0x04000000,
429 		CFM_LCID 			= 0x02000000,
430 		CFM_UNDERLINETYPE	= 0x00800000,
431 		CFM_WEIGHT 			= 0x00400000,
432 		CFM_SPACING 		= 0x00200000,
433 		CFM_KERNING 		= 0x00100000,
434 		CFM_STYLE 			= 0x00080000,
435 		CFM_ANIMATION 		= 0x00040000,
436 		CFM_REVAUTHOR 		= 0x00008000,
437 
438 		CFE_BOLD 			= 0x0001,
439 		CFE_ITALIC 			= 0x0002,
440 		CFE_UNDERLINE 		= 0x0004,
441 		CFE_STRIKEOUT 		= 0x0008,
442 		CFE_PROTECTED 		= 0x0010,
443 		CFE_LINK 			= 0x0020,
444 		CFE_AUTOCOLOR 		= 0x40000000,
445 		CFE_AUTOBACKCOLOR	= CFM_BACKCOLOR,
446 		CFE_SUBSCRIPT 		= 0x00010000,
447 		CFE_SUPERSCRIPT		= 0x00020000,
448 
449 		CFM_SUBSCRIPT 		= CFE_SUBSCRIPT | CFE_SUPERSCRIPT,
450 		CFM_SUPERSCRIPT 	= CFM_SUBSCRIPT,
451 
452 		CFU_UNDERLINE 		= 1,
453 	}
454 	+/
455 
456 	enum: DWORD
457 	{
458 		OFN_OVERWRITEPROMPT 		= 0x00000002,
459 		OFN_PATHMUSTEXIST	 		= 0x00000800,
460 		OFN_FILEMUSTEXIST 			= 0x00001000,
461 		OFN_CREATEPROMPT 			= 0x00002000,
462 		//OFN_READONLY 				= 0x00000001,
463 		//OFN_HIDEREADONLY 			= 0x00000004,
464 		//OFN_NOCHANGEDIR 			= 0x00000008,
465 		//OFN_SHOWHELP 				= 0x00000010,
466 		//OFN_ENABLEHOOK 			= 0x00000020,
467 		//OFN_ENABLETEMPLATE		= 0x00000040,
468 		//OFN_ENABLETEMPLATEHANDLE 	= 0x00000080,
469 		//OFN_NOVALIDATE 			= 0x00000100,
470 		//OFN_ALLOWMULTISELECT 		= 0x00000200,
471 		//OFN_EXTENSIONDIFFERENT 	= 0x00000400,
472 		//OFN_SHAREAWARE 			= 0x00004000,
473 		//OFN_NOREADONLYRETURN 		= 0x00008000,
474 		//OFN_NOTESTFILECREATE 		= 0x00010000,
475 		//OFN_NONETWORKBUTTON 		= 0x00020000,
476 		//OFN_NOLONGNAMES 			= 0x00040000,
477 		//OFN_EXPLORER 				= 0x00080000,
478 		//OFN_NODEREFERENCELINKS 	= 0x00100000,
479 		//OFN_LONGNAMES 			= 0x00200000,
480 		//OFN_ENABLEINCLUDENOTIFY 	= 0x00400000,
481 		//OFN_ENABLESIZING 			= 0x00800000,
482 		//OFN_DONTADDTORECENT 		= 0x02000000,
483 		//OFN_FORCESHOWHIDDEN 		= 0x10000000,
484 	}
485 
486 	enum: DWORD
487 	{
488 		CF_SCREENFONTS				 = 0x00000001,
489 		CF_INITTOLOGFONTSTRUCT 		 = 0x00000040,
490 		CF_EFFECTS					 = 0x00000100,
491 		//CF_PRINTERFONTS			 = 0x00000002,
492 		//CF_BOTH					 = CF_SCREENFONTS | CF_PRINTERFONTS,
493 		//CF_SHOWHELP				 = 0x00000004,
494 		//CF_ENABLEHOOK				 = 0x00000008,
495 		//CF_ENABLETEMPLATE			 = 0x00000010,
496 		//CF_ENABLETEMPLATEHANDLE	 = 0x00000020,
497 		//CF_USESTYLE				 = 0x00000080,
498 		//CF_APPLY					 = 0x00000200,
499 		//CF_ANSIONLY				 = 0x00000400,
500 		//CF_SCRIPTSONLY			 = CF_ANSIONLY,
501 		//CF_NOVECTORFONTS			 = 0x00000800,
502 		//CF_NOOEMFONTS				 = CF_NOVECTORFONTS,
503 		//CF_NOSIMULATIONS			 = 0x00001000,
504 		//CF_LIMITSIZE				 = 0x00002000,
505 		//CF_FIXEDPITCHONLY			 = 0x00004000,
506 		//CF_WYSIWYG				 = 0x00008000,
507 		//CF_FORCEFONTEXIST		  	 = 0x00010000,
508 		//CF_SCALABLEONLY			 = 0x00020000,
509 		//CF_TTONLY					 = 0x00040000,
510 		//CF_NOFACESEL				 = 0x00080000,
511 		//CF_NOSTYLESEL				 = 0x00100000,
512 		//CF_NOSIZESEL				 = 0x00200000,
513 		//CF_SELECTSCRIPT			 = 0x00400000,
514 		//CF_NOSCRIPTSEL 			 = 0x00800000,
515 		//CF_NOVERTFONTS 			 = 0x01000000,
516 	}
517 
518 	enum: uint
519 	{
520 		ODT_MENU 	 = 1,
521 		ODT_LISTBOX  = 2,
522 		ODT_COMBOBOX = 3,
523 		ODT_BUTTON   = 4,
524 		ODT_STATIC   = 5,
525 	}
526 
527 	/*
528 	enum: uint
529 	{
530 		MDITILE_VERTICAL = 0x0000,
531 		MDITILE_HORIZONTAL = 0x0001,
532 		MDITILE_SKIPDISABLED = 0x0002,
533 		MDITILE_ZORDER = 0x0004,
534 	}
535 	*/
536 
537 	enum
538 	{
539 		DS_ABSALIGN      = 0x0001,
540 		DS_3DLOOK        = 0x0004,
541 		DS_SYSMODAL      = 0x0002,
542 		DS_FIXEDSYS      = 0x0008,
543 		DS_NOFAILCREATE  = 0x0010,
544 		DS_LOCALEDIT     = 0x0020,
545 		DS_SETFONT       = 0x0040,
546 		DS_MODALFRAME    = 0x0080,
547 		DS_NOIDLEMSG     = 0x0100,
548 		DS_SETFOREGROUND = 0x0200,
549 		DS_CONTROL       = 0x0400,
550 		DS_CENTER        = 0x0800,
551 		DS_CENTERMOUSE   = 0x1000,
552 		DS_CONTEXTHELP   = 0x2000,
553 		DS_SHELLFONT     = DS_SETFONT | DS_FIXEDSYS,
554 	}
555 
556 	enum
557 	{
558 		WS_EX_ACCEPTFILES		 = 16,
559 		WS_EX_APPWINDOW 		 = 0x40000,
560 		WS_EX_CLIENTEDGE		 = 512,
561 		WS_EX_COMPOSITED		 = 0x2000000, // Windows XP
562 		WS_EX_CONTEXTHELP		 = 0x400,
563 		WS_EX_CONTROLPARENT		 = 0x10000,
564 		WS_EX_DLGMODALFRAME		 = 1,
565 		WS_EX_LAYERED			 = 0x80000,   // Windows 2000
566 		WS_EX_LAYOUTRTL			 = 0x400000,  // Windows 98, Windows 2000
567 		WS_EX_LEFT				 = 0,
568 		WS_EX_LEFTSCROLLBAR		 = 0x4000,
569 		WS_EX_LTRREADING 		 = 0,
570 		WS_EX_MDICHILD 			 = 64,
571 		WS_EX_NOACTIVATE		 = 0x8000000, // Windows 2000
572 		WS_EX_NOINHERITLAYOUT	 = 0x100000,  // Windows 2000
573 		WS_EX_NOPARENTNOTIFY	 = 4,
574 		WS_EX_OVERLAPPEDWINDOW	 = 0x300,
575 		WS_EX_PALETTEWINDOW		 = 0x188,
576 		WS_EX_RIGHT				 = 0x1000,
577 		WS_EX_RIGHTSCROLLBAR	 = 0,
578 		WS_EX_RTLREADING		 = 0x2000,
579 		WS_EX_STATICEDGE		 = 0x20000,
580 		WS_EX_TOOLWINDOW		 = 128,
581 		WS_EX_TOPMOST 			 = 8,
582 		WS_EX_WINDOWEDGE 		 = 256,
583 		//WS_EX_TRANSPARENT		 = 32,
584 	}
585 
586 	/* ToolTip Messages */
587 	enum: uint
588 	{
589 		TTM_ACTIVATE 	   = WM_USER + 1,
590 		TTM_SETDELAYTIME   = WM_USER + 3,
591 		TTM_POP            = WM_USER + 28,
592 		TTM_SETTITLEW 	   = WM_USER + 33,
593 		TTM_POPUP          = WM_USER + 34,
594 		TTM_ADDTOOLW 	   = WM_USER + 50,
595 		TTM_DELTOOLW  	   = WM_USER + 51,
596 		TTM_GETTEXTW 	   = WM_USER + 56,
597 		TTM_UPDATETIPTEXTW = WM_USER + 57,
598 
599 		TTN_FIRST 		 = -520u,
600 		TTN_GETDISPINFOW = TTN_FIRST - 10,
601 
602 		//TTN_SHOW         = TTN_FIRST - 1,
603 		//TTN_POP          = TTN_FIRST - 2,
604 		//TTM_ADDTOOLA              = WM_USER + 4,
605 		//TTM_DELTOOLA               = WM_USER + 5,
606 		//TTM_GETTOOLINFOA      = WM_USER + 8,
607 		//TTM_GETTEXTA 		 = WM_USER + 11,
608 		//TTM_UPDATETIPTEXTA    = WM_USER + 12,
609 		//TTM_ENUMTOOLSA 	 = WM_USER + 14,
610 		//TTM_GETCURRENTTOOLA = WM_USER + 15,
611 	}
612 
613 	/* ToolTip Icons */
614 	enum: uint
615 	{
616 		TTI_NONE    = 0,
617 		TTI_INFO    = 1,
618 		TTI_WARNING = 2,
619 		TTI_ERROR   = 3,
620 	}
621 
622 	/* ToolTip Styles */
623 	enum: uint
624 	{
625 		TTS_ALWAYSTIP = 0x01,
626 		TTS_NOPREFIX  = 0x02,
627 		TTS_NOANIMATE = 0x10, // IE5+
628 		TTS_NOFADE    = 0x20, // IE5+
629 		TTS_BALLOON   = 0x40, // IE5+
630 		TTS_CLOSE     = 0x80,
631 	}
632 
633 	/* ToolTip Flags */
634 	enum: uint
635 	{
636 		TTF_IDISHWND    = 0x0001,
637 		TTF_CENTERTIP   = 0x0002,
638 		TTF_RTLREADING  = 0x0004,
639 		TTF_SUBCLASS    = 0x0010,
640 		TTF_TRACK       = 0x0020, // IE3+
641 		TTF_ABSOLUTE    = 0x0080, // IE3+
642 		TTF_TRANSPARENT = 0x0100, // IE3+
643 		TTF_PARSELINKS  = 0x1000,
644 		TTF_DI_SETITEM  = 0x8000, // IE3+
645 	}
646 
647 	enum: uint
648 	{
649 		AW_HOR_POSITIVE = 0x00000001,
650 		AW_HOR_NEGATIVE = 0x00000002,
651 		AW_VER_POSITIVE = 0x00000004,
652 		AW_VER_NEGATIVE = 0x00000008,
653 		AW_CENTER 		= 0x00000010,
654 		AW_HIDE 		= 0x00010000,
655 		AW_ACTIVATE		= 0x00020000,
656 		AW_SLIDE	    = 0x00040000,
657 		AW_BLEND 		= 0x00080000,
658 	}
659 
660 	enum: uint
661 	{
662 		MF_STRING 		 = 0x00000000,
663 		MF_UNCHECKED 	 = 0x00000000,
664 		MF_BYCOMMAND 	 = 0x00000000,
665 		MF_GRAYED 		 = 0x00000001,
666 		MF_CHECKED		 = 0x00000008,
667 		MF_POPUP 		 = 0x00000010,
668 		MF_MENUBARBREAK  = 0x00000020,
669 		MF_MENUBREAK 	 = 0x00000040,
670 		MF_BYPOSITION	 = 0x00000400,
671 		MF_SEPARATOR 	 = 0x00000800,
672 		MF_DEFAULT 		 = 0x00001000,
673 		MF_SYSMENU 		 = 0x00002000,
674 
675 		MFT_STRING 		 = MF_STRING,
676 		MFT_MENUBARBREAK = MF_MENUBARBREAK,
677 		MFT_MENUBREAK 	 = MF_MENUBREAK,
678 		MFT_RADIOCHECK	 = 0x00000200,
679 		MFT_SEPARATOR	 = MF_SEPARATOR,
680 
681 		MFS_UNCHECKED 	 = MF_UNCHECKED,
682 		MFS_CHECKED		 = MF_CHECKED,
683 		MFS_DEFAULT		 = MF_DEFAULT,
684 		MFS_GRAYED 		 = MF_GRAYED,
685 		MFS_DISABLED 	 = 3,
686 		MFS_ENABLED 	 = 0,
687 
688 		MIIM_DATA 		 = 32,
689 		MIIM_STATE		 = 0x00000001,
690 		MIIM_ID 		 = 0x00000002,
691 		MIIM_SUBMENU	 = 0x00000004,
692 		MIIM_CHECKMARKS  = 0x00000008,
693 		MIIM_TYPE		 = 0x00000010,
694 		MIIM_BITMAP      = 0x00000080,
695 	}
696 
697 	/*
698 	enum: int
699 	{
700 		RGN_AND  = 1,
701 		RGN_OR   = 2,
702 		RGN_XOR  = 3,
703 		RGN_DIFF = 4,
704 		RGN_COPY = 5,
705 	}
706 	*/
707 
708 	enum: int
709 	{
710 		HWND_TOP       = 0,
711 	    HWND_BOTTOM    = 1,
712 	    HWND_TOPMOST   = -1,
713 	    HWND_NOTOPMOST = -2,
714 	}
715 
716 	enum: uint
717 	{
718 		CBS_SIMPLE 			  = 0x0001,
719 		CBS_DROPDOWN		  = 0x0002,
720 		CBS_DROPDOWNLIST 	  = 0x0003,
721 		CBS_AUTOHSCROLL		  = 0x0040,
722 		CBS_OWNERDRAWFIXED 	  = 0x0010,
723 		CBS_OWNERDRAWVARIABLE = 0x0020,
724 	}
725 
726 	enum: uint
727 	{
728 		CBEIF_TEXT          = 0x00000001,
729 		CBEIF_IMAGE         = 0x00000002,
730 		CBEIF_SELECTEDIMAGE = 0x00000004,
731 		CBEIF_OVERLAY       = 0x00000008,
732 		CBEIF_INDENT        = 0x00000010,
733 		CBEIF_LPARAM        = 0x00000020,
734 		CBEIF_DI_SETITEM    = 0x10000000,
735 	}
736 
737 	enum: uint
738 	{
739 		TME_HOVER     = 1,
740 		TME_LEAVE 	  = 2,
741 		TME_QUERY 	  = 0x40000000,
742 		TME_CANCEL 	  = 0x80000000,
743 
744 		HOVER_DEFAULT = 0xFFFFFFFF,
745 	}
746 
747 	enum: uint
748 	{
749 		TPM_LEFTBUTTON   = 0x0000,
750 		TPM_RIGHTBUTTON  = 0x0002,
751 		TPM_LEFTALIGN    = 0x0000,
752 		TPM_CENTERALIGN  = 0x0004,
753 		TPM_RIGHTALIGN   = 0x0008,
754 		TPM_TOPALIGN 	 = 0x0000,
755 		TPM_VCENTERALIGN = 0x0010,
756 		TPM_BOTTOMALIGN  = 0x0020,
757 		TPM_HORIZONTAL   = 0x0000,
758 		TPM_VERTICAL     = 0x0040,
759 		TPM_NONOTIFY     = 0x0080,
760 		TPM_RETURNCMD    = 0x0100,
761 		TPM_RECURSE      = 0x0001,
762 	}
763 
764 	enum
765 	{
766 		ICON_SMALL = 0,
767 		ICON_BIG   = 1,
768 	}
769 
770 	enum: uint
771 	{
772 		SPI_GETNONCLIENTMETRICS = 41,
773 		SPI_GETWORKAREA		    = 48,
774 		SPI_GETANIMATION 		= 72,
775 		SPI_GETWHEELSCROLLLINES = 104,
776 		SPI_GETWHEELSCROLLCHARS = 108,
777 	}
778 
779 	enum: uint
780 	{
781 		ODS_SELECTED	 = 1,
782 		ODS_GRAYED 		 = 2,
783 		ODS_DISABLED 	 = 4,
784 		ODS_CHECKED 	 = 8,
785 		ODS_FOCUS 		 = 16,
786 		ODS_DEFAULT		 = 32,
787 		ODS_COMBOBOXEDIT = 4096,
788 	}
789 
790 	const LPWSTR IDC_ARROW		 = cast(LPWSTR)32512;
791 	const LPWSTR IDC_UPARROW	 = cast(LPWSTR)32516;
792 	const LPWSTR IDC_ICON 		 = cast(LPWSTR)32641;
793 	const LPWSTR IDC_APPSTARTING = cast(LPWSTR)32650;
794 	const LPWSTR IDC_HAND		 = cast(LPWSTR)32649; // Windows 98+
795 	const LPWSTR IDC_HELP		 = cast(LPWSTR)32651;
796 	const LPWSTR IDC_IBEAM		 = cast(LPWSTR)32513;
797 	const LPWSTR IDC_NO			 = cast(LPWSTR)32648;
798 	const LPWSTR IDC_SIZEALL	 = cast(LPWSTR)32646;
799 	const LPWSTR IDC_SIZENESW	 = cast(LPWSTR)32643;
800 	const LPWSTR IDC_SIZENS		 = cast(LPWSTR)32645;
801 	const LPWSTR IDC_SIZENWSE	 = cast(LPWSTR)32642;
802 	const LPWSTR IDC_SIZEWE		 = cast(LPWSTR)32644;
803 	const LPWSTR IDC_WAIT		 = cast(LPWSTR)32514;
804 
805 	enum: ushort
806 	{
807 		MK_LBUTTON = 0x0001,
808 		MK_RBUTTON = 0x0002,
809 		MK_SHIFT   = 0x0004,
810 		MK_CONTROL = 0x0008,
811 		MK_MBUTTON = 0x0010,
812 	}
813 
814 	enum
815 	{
816 		LOGPIXELSX = 88,
817 		LOGPIXELSY = 90,
818 	}
819 
820 	enum
821 	{
822 		LB_OKAY     = 0,
823 		LB_ERR      = -1,
824 		LB_ERRSPACE = -2,
825 	}
826 
827 	enum: uint
828 	{
829 		LB_GETCOUNT				 = 0x018B,
830 		LB_GETITEMDATA			 = 0x0199,
831 		LB_ADDSTRING 			 = 0x0180,
832 		LB_SETITEMDATA 			 = 0x019A,
833 		LB_RESETCONTENT			 = 0x0184,
834 		LB_INSERTSTRING			 = 0x0181,
835 		LB_DELETESTRING			 = 0x0182,
836 		LB_GETHORIZONTALEXTENT 	 = 0x0193,
837 		LB_SETHORIZONTALEXTENT 	 = 0x0194,
838 		LB_SETITEMHEIGHT		 = 0x01A0,
839 		LB_GETITEMHEIGHT		 = 0x01A1,
840 		LB_GETSELCOUNT			 = 0x0190,
841 		LB_GETSELITEMS			 = 0x0191,
842 		LB_SETCURSEL			 = 0x0186,
843 		LB_GETCURSEL			 = 0x0188,
844 		LB_SETTOPINDEX			 = 0x0197,
845 		LB_GETTOPINDEX			 = 0x018E,
846 		LB_SELITEMRANGE			 = 0x0183,
847 		LB_SETSEL				 = 0x0185,
848 		LB_FINDSTRING			 = 0x018F,
849 		LB_FINDSTRINGEXACT		 = 0x01A2,
850 		LB_GETITEMRECT			 = 0x0198,
851 		LB_GETSEL				 = 0x0187,
852 		LB_ITEMFROMPOINT		 = 0x01A9,
853 		LB_ADDFILE				 = 0x0196,
854 		LB_DIR					 = 0x018D,
855 	}
856 
857 	enum: uint
858 	{
859 		LBS_NOINTEGRALHEIGHT  = 0x0100,
860 		LBS_MULTICOLUMN		  = 0x0200,
861 		LBS_DISABLENOSCROLL	  = 0x1000,
862 		LBS_NOSEL		   	  = 0x4000,
863 		LBS_EXTENDEDSEL		  = 0x0800,
864 		LBS_MULTIPLESEL		  = 0x0008,
865 		LBS_SORT			  = 0x0002,
866 		LBS_USETABSTOPS		  = 0x0080,
867 		LBS_OWNERDRAWVARIABLE = 0x0020,
868 		LBS_OWNERDRAWFIXED	  = 0x0010,
869 		LBS_NOTIFY 			  = 0x0001,
870 		LBS_HASSTRINGS		  = 0x0040,
871 		LBS_WANTKEYBOARDINPUT = 0x0400,
872 	}
873 
874 	enum
875 	{
876 		LBN_ERRSPACE  = -2,
877 		LBN_SELCHANGE = 1,
878 		LBN_DBLCLK 	  = 2,
879 		LBN_SELCANCEL = 3,
880 		LBN_SETFOCUS  = 4,
881 		LBN_KILLFOCUS = 5,
882 	}
883 
884 	enum
885 	{
886 		CB_OKAY = 0,
887 		CB_ERR = -1,
888 		CB_ERRSPACE = -2,
889 	}
890 
891 	enum: uint
892 	{
893 		CB_SETCURSEL 			= 0x014E,
894 		CB_GETCURSEL 			= 0x0147,
895 		CB_FINDSTRING			= 0x014C,
896 		CB_FINDSTRINGEXACT 		= 0x0158,
897 		CB_SETITEMHEIGHT 		= 0x0153,
898 		CB_GETITEMHEIGHT 		= 0x0154,
899 		CB_ADDSTRING 			= 0x0143,
900 		CB_DELETESTRING 		= 0x0144,
901 		CB_DIR 					= 0x0145,
902 		CB_INSERTSTRING			= 0x014A,
903 		CB_RESETCONTENT			= 0x014B,
904 		CB_SETITEMDATA 			= 0x0151,
905 		CB_GETDROPPEDWIDTH 		= 0x015f,
906 		CB_SETDROPPEDWIDTH 		= 0x0160,
907 		CB_LIMITTEXT 			= 0x0141,
908 		CB_GETEDITSEL 			= 0x0140,
909 		CB_SETEDITSEL 			= 0x0142,
910 		CB_SHOWDROPDOWN			= 0x014F,
911 		CB_GETDROPPEDSTATE		= 0x0157,
912 
913 		//CBEM_INSERTITEMA 		= WM_USER + 1,
914 		//CBEM_GETITEMA			= WM_USER + 4,
915 		//CBEM_SETITEMA			= WM_USER + 5,
916 		CBEM_SETIMAGELIST		= WM_USER + 2,
917 		CBEM_GETIMAGELIST		= WM_USER + 3,
918 		CBEM_DELETEITEM			= CB_DELETESTRING,
919 		CBEM_GETCOMBOCONTROL 	= WM_USER + 6,
920 		CBEM_GETEDITCONTROL		= WM_USER + 7,
921 		CBEM_SETEXSTYLE			= WM_USER + 8,
922 		CBEM_GETEXSTYLE			= WM_USER + 9,
923 		CBEM_SETEXTENDEDSTYLE	= WM_USER + 14,
924 		CBEM_GETEXTENDEDSTYLE	= WM_USER + 9,
925 		CBEM_HASEDITCHANGED		= WM_USER + 10,
926 		CBEM_INSERTITEMW		= WM_USER + 11,
927 		CBEM_SETITEMW			= WM_USER + 12,
928 		CBEM_GETITEMW			= WM_USER + 13,
929 	}
930 
931 	enum: DWORD
932 	{
933 		CBS_SORT 			 = 0x0100,
934 		CBS_HASSTRINGS		 = 0x0200,
935 		CBS_NOINTEGRALHEIGHT = 0x0400,
936 	}
937 
938 	enum
939 	{
940 		CBN_SELCHANGE  = 1,
941 		CBN_SETFOCUS   = 3,
942 		CBN_KILLFOCUS  = 4,
943 		CBN_EDITCHANGE = 5,
944 	}
945 
946 	enum: uint
947 	{
948 		TVE_COLLAPSE = 0x0001,
949 		TVE_EXPAND   = 0x0002,
950 		TVE_TOGGLE   = 0x0003,
951 	}
952 
953 	enum: uint
954 	{
955 		TVIS_SELECTED = 0x0002,
956 		TVIS_EXPANDED = 0x0020,
957 	}
958 
959 	enum: uint
960 	{
961 		TVIF_TEXT 		   = 0x0001,
962 		TVIF_IMAGE		   = 0x0002,
963 		TVIF_PARAM		   = 0x0004,
964 		TVIF_STATE		   = 0x0008,
965 		TVIF_HANDLE		   = 0x0010,
966 		TVIF_SELECTEDIMAGE = 0x0020,
967 		TVIF_CHILDREN = 0x0040,
968 		TVIF_INTEGRAL = 0x0080, // IE4+
969 	}
970 
971 	enum: uint
972 	{
973 		TVGN_FIRSTVISIBLE = 0x0005,
974 		TVGN_CARET 		  = 0x0009,
975 	}
976 
977 	enum: uint
978 	{
979 		TV_FIRST 			= 0x1100,
980 		TVN_FIRST 			= cast(UINT)-400,
981 
982 		TVM_INSERTITEMA 	= TV_FIRST + 0,
983 		TVM_DELETEITEM  	= TV_FIRST + 1,
984 		TVM_EXPAND      	= TV_FIRST + 2,
985 		TVM_GETITEMRECT 	= TV_FIRST + 4,
986 		TVM_GETINDENT 		= TV_FIRST + 6,
987 		TVM_SETINDENT 		= TV_FIRST + 7,
988 		TVM_SETIMAGELIST	= TV_FIRST + 9,
989 		TVM_GETNEXTITEM 	= TV_FIRST + 10,
990 		TVM_SELECTITEM		= TV_FIRST + 11,
991 		TVM_GETITEMA 		= TV_FIRST + 12,
992 		TVM_SETITEMA 		= TV_FIRST + 13,
993 		TVM_EDITLABELA 		= TV_FIRST + 14,
994 		TVM_GETVISIBLECOUNT = TV_FIRST + 16,
995 		TVM_HITTEST 		= TV_FIRST + 17,
996 		TVM_ENSUREVISIBLE   = TV_FIRST + 20,
997 		TVM_SETITEMHEIGHT 	= TV_FIRST + 27, // Internet Explorer 4+
998 		TVM_GETITEMHEIGHT 	= TV_FIRST + 28, // Internet Explorer 4+
999 		TVM_INSERTITEMW 	= TV_FIRST + 50,
1000 		TVM_SETITEMW 		= TV_FIRST + 63,
1001 		TVM_GETITEMW 		= TV_FIRST + 62,
1002 
1003 		TVN_SELCHANGINGA 	= TVN_FIRST - 1,
1004 		TVN_SELCHANGEDA 	= TVN_FIRST - 2,
1005 		TVN_GETDISPINFOA	= TVN_FIRST - 3,
1006 		TVN_ITEMEXPANDINGA 	= TVN_FIRST - 5,
1007 		TVN_ITEMEXPANDEDA 	= TVN_FIRST - 6,
1008 		TVN_BEGINLABELEDITA = TVN_FIRST - 10,
1009 		TVN_ENDLABELEDITA 	= TVN_FIRST - 11,
1010 		TVN_SELCHANGINGW	= TVN_FIRST - 50,
1011 		TVN_SELCHANGEDW 	= TVN_FIRST - 51,
1012 		TVN_GETDISPINFOW 	= TVN_FIRST - 52,
1013 		TVN_ITEMEXPANDINGW 	= TVN_FIRST - 54,
1014 		TVN_ITEMEXPANDEDW 	= TVN_FIRST - 55,
1015 		TVN_BEGINLABELEDITW = TVN_FIRST - 59,
1016 		TVN_ENDLABELEDITW 	= TVN_FIRST - 60,
1017 	}
1018 
1019 
1020 	enum: uint
1021 	{
1022 		TVS_HASBUTTONS	  = 0x0001,
1023 		TVS_HASLINES	  = 0x0002,
1024 		TVS_LINESATROOT   = 0x0004,
1025 		TVS_EDITLABELS    = 0x0008,
1026 		TVS_SHOWSELALWAYS = 0x0020,
1027 		TVS_CHECKBOXES 	  = 0x0100, // Internet Explorer 3+
1028 		TVS_TRACKSELECT   = 0x0200, // Internet Explorer 3+
1029 		TVS_FULLROWSELECT = 0x1000, // Internet Explorer 4+
1030 		TVS_NOSCROLL	  = 0x2000, // Internet Explorer 4+
1031 		TVS_SINGLEEXPAND  = 0x0400, // Internet Explorer 4+
1032 	}
1033 
1034 	enum: HTREEITEM
1035 	{
1036 		TVI_ROOT  = cast(HTREEITEM)-0x10000,
1037 		TVI_FIRST = cast(HTREEITEM)-0x0FFFF,
1038 		TVI_LAST  = cast(HTREEITEM)-0x0FFFE,
1039 		TVI_SORT  = cast(HTREEITEM)-0x0FFFD,
1040 	}
1041 
1042 	enum: uint
1043 	{
1044 		TVC_UNKNOWN    = 0x0000,
1045 		TVC_BYMOUSE    = 0x0001,
1046 		TVC_BYKEYBOARD = 0x0002,
1047 	}
1048 
1049 	enum: WPARAM
1050 	{
1051 		TVSIL_NORMAL = 0,
1052 		TVSIL_STATE  = 2,
1053 	}
1054 
1055 	enum: uint
1056 	{
1057 		SB_SETTEXTA	   = WM_USER + 1,
1058 		SB_SETPARTS	   = WM_USER + 4,
1059 		SB_SIMPLE  	   = WM_USER + 9,
1060 		SB_SETTEXTW	   = WM_USER + 11,
1061 
1062 		SBARS_SIZEGRIP = 0x0100,
1063 	}
1064 
1065 	enum: WPARAM
1066 	{
1067 		SBT_NOBORDERS  = 0x0100,
1068 		SBT_POPOUT 	   = 0x0200,
1069 		SBT_RTLREADING = 0x0400,
1070 		SBT_OWNERDRAW  = 0x1000,
1071 	}
1072 
1073 	enum: uint
1074 	{
1075 		LVM_FIRST = 0x1000,
1076 
1077 		LVM_SETBKCOLOR    				= LVM_FIRST + 1,
1078 		LVM_SETIMAGELIST  				= LVM_FIRST + 3,
1079 		LVM_SETITEMW 	  				= LVM_FIRST + 76,
1080 		LVM_DELETEITEM	  				= LVM_FIRST + 8,
1081 		LVM_DELETEALLITEMS 				= LVM_FIRST + 9,
1082 		LVM_SETCALLBACKMASK				= LVM_FIRST + 11,
1083 		LVM_GETNEXTITEM					= LVM_FIRST + 12,
1084 		LVM_GETITEMRECT					= LVM_FIRST + 14,
1085 		LVM_ENSUREVISIBLE 				= LVM_FIRST + 19,
1086 		LVM_REDRAWITEMS   				= LVM_FIRST + 21,
1087 		LVM_ARRANGE 					= LVM_FIRST + 22,
1088 		LVM_DELETECOLUMN 				= LVM_FIRST + 28,
1089 		LVM_SETCOLUMNWIDTH 				= LVM_FIRST + 30,
1090 		LVM_SETTEXTCOLOR   				= LVM_FIRST + 36,
1091 		LVM_SETTEXTBKCOLOR 				= LVM_FIRST + 38,
1092 		LVM_SETITEMSTATE 				= LVM_FIRST + 43,
1093 		LVM_GETITEMSTATE 				= LVM_FIRST + 44,
1094 		LVM_SETITEMTEXTA 				= LVM_FIRST + 46,
1095 		LVM_SORTITEMS 					= LVM_FIRST + 48,
1096 		LVM_SETEXTENDEDLISTVIEWSTYLE 	= LVM_FIRST + 54,
1097 		LVM_GETEXTENDEDLISTVIEWSTYLE 	= LVM_FIRST + 55,
1098 		LVM_INSERTITEMW 				= LVM_FIRST + 77,
1099 		LVM_SETCOLUMNW  				= LVM_FIRST + 96,
1100 		LVM_INSERTCOLUMNW 				= LVM_FIRST + 97,
1101 		LVM_SETITEMTEXTW  				= LVM_FIRST + 116,
1102 		LVM_EDITLABELW    				= LVM_FIRST + 118,
1103 		//LVM_SETITEMA	  				= LVM_FIRST + 6,
1104 		//LVM_INSERTITEMA 				= LVM_FIRST + 7,
1105 		//LVM_EDITLABELA 				= LVM_FIRST + 23,
1106 		//LVM_GETCOLUMNA 				= LVM_FIRST + 25,
1107 		//LVM_SETCOLUMNA 				= LVM_FIRST + 26,
1108 		//LVM_INSERTCOLUMNA				= LVM_FIRST + 27,
1109 	}
1110 
1111 	enum: uint
1112 	{
1113 		LVIS_OVERLAYMASK    = 0x0F00,
1114 		LVIS_STATEIMAGEMASK = 0xF000,
1115 	}
1116 
1117 	enum: uint
1118 	{
1119 		LVN_FIRST 			= cast(uint)-100,
1120 
1121 		LVN_ITEMCHANGING 		= LVN_FIRST - 0,
1122 		LVN_ITEMCHANGED 		= LVN_FIRST - 1,
1123 		LVN_BEGINLABELEDITW 	= LVN_FIRST - 75,
1124 		LVN_ENDLABELEDITW 		= LVN_FIRST - 76,
1125 		LVN_COLUMNCLICK 		= LVN_FIRST - 8,
1126 		LVN_GETDISPINFOW 		= LVN_FIRST - 77,
1127 		//LVN_BEGINLABELEDITA 	= LVN_FIRST - 5,
1128 		//LVN_GETDISPINFOA 		= LVN_FIRST - 50,
1129 		//LVN_ENDLABELEDITA 	= LVN_FIRST - 6,
1130 	}
1131 
1132 	enum: uint
1133 	{
1134 		LVCF_FMT = 0x0001,
1135 		LVCF_WIDTH = 0x0002,
1136 		LVCF_TEXT = 0x0004,
1137 		LVCF_SUBITEM = 0x0008,
1138 	}
1139 
1140 	enum: int
1141 	{
1142 		LVCFMT_LEFT  	   = 0x0000,
1143 		LVCFMT_RIGHT 	   = 0x0001,
1144 		LVCFMT_CENTER	   = 0x0002,
1145 		LVCFMT_JUSTIFYMASK = 0x0003,
1146 	}
1147 
1148 	enum: uint
1149 	{
1150 		LVIF_TEXT  = 0x0001,
1151 		LVIF_IMAGE = 0x0002,
1152 		LVIF_PARAM = 0x0004,
1153 		LVIF_STATE = 0x0008,
1154 	}
1155 
1156 	enum: uint
1157 	{
1158 		LVIS_FOCUSED	 = 0x0001,
1159 		LVIS_SELECTED	 = 0x0002,
1160 		LVIS_CUT 		 = 0x0004,
1161 		LVIS_DROPHILITED = 0x0008,
1162 	}
1163 
1164 	enum: uint
1165 	{
1166 		LVS_ALIGNTOP 		= 0x0000,
1167 		LVS_ALIGNLEFT		= 0x0800,
1168 		LVS_ICON 			= 0x0000,
1169 		LVS_REPORT 	  		= 0x0001,
1170 		LVS_SMALLICON 		= 0x0002,
1171 		LVS_LIST 			= 0x0003,
1172 		LVS_SINGLESEL	 	= 0x0004,
1173 		LVS_SHOWSELALWAYS 	= 0x0008,
1174 		LVS_SORTASCENDING 	= 0x0010,
1175 		LVS_SORTDESCENDING  = 0x0020,
1176 		LVS_SHAREIMAGELISTS = 0x0040,
1177 		LVS_NOLABELWRAP 	= 0x0080,
1178 		LVS_AUTOARRANGE 	= 0x0100,
1179 		LVS_EDITLABELS 		= 0x0200,
1180 		LVS_OWNERDRAWFIXED  = 0x0400,
1181 		LVS_OWNERDATA		= 0x1000,
1182 		LVS_NOSCROLL 		= 0x2000,
1183 	}
1184 
1185 	enum: uint
1186 	{
1187 		LVS_EX_GRIDLINES 	  	= 0x00000001,
1188 		LVS_EX_SUBITEMIMAGES  	= 0x00000002,
1189 		LVS_EX_CHECKBOXES 	  	= 0x00000004,
1190 		LVS_EX_TRACKSELECT 	  	= 0x00000008,
1191 		LVS_EX_HEADERDRAGDROP 	= 0x00000010,
1192 		LVS_EX_FULLROWSELECT 	= 0x00000020,
1193 		LVS_EX_ONECLICKACTIVATE = 0x00000040,
1194 		LVS_EX_TWOCLICKACTIVATE = 0x00000080,
1195 
1196 		// Internet Explorer 4+
1197 		LVS_EX_FLATSB   		= 0x00000100,
1198 		LVS_EX_REGIONAL 		= 0x00000200,
1199 		LVS_EX_INFOTIP  		= 0x00000400,
1200 		LVS_EX_UNDERLINEHOT  	= 0x00000800,
1201 		LVS_EX_UNDERLINECOLD 	= 0x00001000,
1202 		LVS_EX_MULTIWORKAREAS 	= 0x00002000,
1203 	}
1204 
1205 	enum
1206 	{
1207 		LVSIL_NORMAL = 0,
1208 		LVSIL_SMALL  = 1,
1209 		LVSIL_STATE  = 2,
1210 	}
1211 
1212 	enum: uint
1213 	{
1214 		TCM_FIRST = 0x1300,
1215 
1216 		TCM_DELETEITEM		 = TCM_FIRST + 8,
1217 		TCM_DELETEALLITEMS 	 = TCM_FIRST + 9,
1218 		TCM_GETITEMRECT 	 = TCM_FIRST + 10,
1219 		TCM_GETCURSEL 		 = TCM_FIRST + 11,
1220 		TCM_SETCURSEL 		 = TCM_FIRST + 12,
1221 		TCM_ADJUSTRECT  	 = TCM_FIRST + 40,
1222 		TCM_SETITEMSIZE 	 = TCM_FIRST + 41,
1223 		TCM_SETPADDING  	 = TCM_FIRST + 43,
1224 		TCM_GETROWCOUNT 	 = TCM_FIRST + 44,
1225 		TCM_SETTOOLTIPS 	 = TCM_FIRST + 46,
1226 		TCM_SETITEMW 		 = TCM_FIRST + 61,
1227 		TCM_SETIMAGELIST 	 = TCM_FIRST + 3,
1228 		TCM_INSERTITEMW  	 = TCM_FIRST + 62,
1229 		//TCM_SETITEMA 		 = TCM_FIRST + 6,
1230 		//TCM_INSERTITEMA  	 = TCM_FIRST + 7,
1231 		//TCM_SETITEMEXTRA 	 = TCM_FIRST + 14,
1232 	}
1233 
1234 
1235 	enum: uint
1236 	{
1237 		TCIF_TEXT 	  	= 0x0001,
1238 		TCIF_IMAGE 		= 0x0002,
1239 		TCIF_RTLREADING = 0x0004,
1240 		TCIF_PARAM 		= 0x0008,
1241 	}
1242 
1243 	enum: uint
1244 	{
1245 		TCS_FORCEICONLEFT  	  = 0x0010,
1246 		TCS_FORCELABELLEFT 	  = 0x0020,
1247 		TCS_TABS 		   	  = 0x0000,
1248 		TCS_BUTTONS 	   	  = 0x0100,
1249 		TCS_SINGLELINE 	   	  = 0x0000,
1250 		TCS_MULTILINE 	   	  = 0x0200,
1251 		TCS_RIGHTJUSTIFY   	  = 0x0000,
1252 		TCS_FIXEDWIDTH 	   	  = 0x0400,
1253 		TCS_RAGGEDRIGHT       = 0x0800,
1254 		TCS_FOCUSONBUTTONDOWN = 0x1000,
1255 		TCS_OWNERDRAWFIXED    = 0x2000,
1256 		TCS_TOOLTIPS 		  = 0x4000,
1257 		TCS_FOCUSNEVER 		  = 0x8000,
1258 
1259 		// Internet Explorer 3+
1260 		TCS_SCROLLOPPOSITE 	  = 0x0001,
1261 		TCS_BOTTOM 			  = 0x0002,
1262 		TCS_RIGHT 			  = 0x0002,
1263 		TCS_MULTISELECT 	  = 0x0004,
1264 		TCS_HOTTRACK 		  = 0x0040,
1265 		TCS_VERTICAL 		  = 0x0080,
1266 
1267 		// Internet Explorer 4+
1268 		TCS_FLATBUTTONS 	  = 0x0008,
1269 	}
1270 
1271 	enum: uint
1272 	{
1273 		TCN_FIRST 	    = cast(uint)-550,
1274 
1275 		TCN_SELCHANGE	= TCN_FIRST - 1,
1276 		TCN_SELCHANGING = TCN_FIRST - 2,
1277 	}
1278 
1279 	enum: uint
1280 	{
1281 		NIF_MESSAGE = 0x00000001,
1282 		NIF_ICON 	= 0x00000002,
1283 		NIF_TIP 	= 0x00000004,
1284 	}
1285 
1286 	enum: uint
1287 	{
1288 		NIM_ADD    = 0x00000000,
1289 		NIM_MODIFY = 0x00000001,
1290 		NIM_DELETE = 0x00000002,
1291 	}
1292 
1293 	enum: uint
1294 	{
1295 		SIF_RANGE		    = 0x0001,
1296 		SIF_PAGE 		    = 0x0002,
1297 		SIF_POS  		    = 0x0004,
1298 		SIF_DISABLENOSCROLL = 0x0008,
1299 		SIF_ALL			    = 23,
1300 	}
1301 
1302 	enum: int
1303 	{
1304 		SM_SWAPBUTTON  = 23,
1305 		SM_CXFRAME     = 32,
1306 		SM_CYFRAME     = 33,
1307 		SM_CXSMICON    = 49,
1308 		SM_CYSMICON    = 50,
1309 		SM_CYSMCAPTION = 51,
1310 		SM_CXSIZEFRAME = SM_CXFRAME,
1311 		SM_CYSIZEFRAME = SM_CYFRAME,
1312 		SM_CYMENU      = 15,
1313 		SM_CXVSCROLL   = 2,
1314 		SM_CYHSCROLL   = 3,
1315 	}
1316 
1317 	enum: uint
1318 	{
1319 		LR_DEFAULTCOLOR     = 0,
1320 		LR_MONOCHROME       = 1,
1321 		LR_COLOR            = 2,
1322 		LR_COPYRETURNORG    = 4,
1323 		LR_COPYDELETEORG    = 8,
1324 		LR_LOADTRANSPARENT  = 32,
1325 		LR_LOADREALSIZE     = 128,
1326 		LR_LOADMAP3DCOLORS  = 4096,
1327 		LR_CREATEDIBSECTION = 8192,
1328 		LR_COPYFROMRESOURCE = 16384,
1329 		LR_LOADFROMFILE 	= 0x0010,
1330 		LR_DEFAULTSIZE 		= 0x0040,
1331 		LR_SHARED 			= 0x8000,
1332 	}
1333 
1334 	enum: COLORREF
1335 	{
1336 		CLR_INVALID = 0xFFFFFFFF,
1337 		CLR_NONE    = CLR_INVALID,
1338 	}
1339 
1340 	enum: uint
1341 	{
1342 		DT_TOP     		   = 0x00000000,
1343 		DT_LEFT    		   = 0x00000000,
1344 		DT_CENTER  		   = 0x00000001,
1345 		DT_RIGHT   		   = 0x00000002,
1346 		DT_VCENTER 		   = 0x00000004,
1347 		DT_BOTTOM  		   = 0x00000008,
1348 		DT_WORDBREAK  	   = 0x00000010,
1349 		DT_SINGLELINE 	   = 0x00000020,
1350 		DT_EXPANDTABS 	   = 0x00000040,
1351 		DT_TABSTOP 	  	   = 0x00000080,
1352 		DT_NOCLIP  	  	   = 0x00000100,
1353 		DT_EXTERNALLEADING = 0x00000200,
1354 		DT_CALCRECT 	   = 0x00000400,
1355 		DT_NOPREFIX 	   = 0x00000800,
1356 		DT_INTERNAL 	   = 0x00001000,
1357 		DT_EDITCONTROL 	   = 0x00002000,
1358 		DT_PATH_ELLIPSIS   = 0x00004000,
1359 		DT_END_ELLIPSIS    = 0x00008000,
1360 		DT_MODIFYSTRING    = 0x00010000,
1361 		DT_RTLREADING      = 0x00020000,
1362 		DT_WORD_ELLIPSIS   = 0x00040000,
1363 	}
1364 
1365 	enum
1366 	{
1367 		TRANSPARENT = 1,
1368 		OPAQUE      = 2,
1369 	}
1370 
1371 	enum: uint
1372 	{
1373 		ETO_OPAQUE  = 0x0002,
1374 		ETO_CLIPPED = 0x0004,
1375 	}
1376 
1377 	enum: uint
1378 	{
1379 		PS_SOLID       = 0,
1380 		PS_DASH        = 1,
1381 		PS_DOT 		   = 2,
1382 		PS_DASHDOT 	   = 3,
1383 		PS_DASHDOTDOT  = 4,
1384 		PS_NULL 	   = 5,
1385 		PS_INSIDEFRAME = 6,
1386 	}
1387 
1388 	enum: uint
1389 	{
1390 		IMAGE_BITMAP = 0,
1391 		IMAGE_ICON   = 1,
1392 		IMAGE_CURSOR = 2,
1393 	}
1394 
1395 	const LPWSTR IDI_ERROR		 = MAKEINTRESOURCEW(32513);
1396 	const LPWSTR IDI_QUESTION	 = MAKEINTRESOURCEW(32514);
1397 	const LPWSTR IDI_WARNING	 = MAKEINTRESOURCEW(32515);
1398 	const LPWSTR IDI_ASTERISK 	 = MAKEINTRESOURCEW(32516);
1399 	const LPWSTR IDI_INFORMATION = IDI_ASTERISK;
1400 
1401 	const LPCWSTR RT_BITMAP		  = MAKEINTRESOURCEW(2);
1402 	const LPCWSTR RT_ICON		  = MAKEINTRESOURCEW(3);
1403 	const LPCWSTR RT_MENU		  = MAKEINTRESOURCEW(4);
1404 	const LPCWSTR RT_DIALOG		  = MAKEINTRESOURCEW(5);
1405 	const LPCWSTR RT_STRING 	  = MAKEINTRESOURCEW(6);
1406 	const LPCWSTR RT_FONTDIR 	  = MAKEINTRESOURCEW(7);
1407 	const LPCWSTR RT_ACCELERATOR  = MAKEINTRESOURCEW(9);
1408 	const LPCWSTR RT_RCDATA 	  = MAKEINTRESOURCEW(10);
1409 	const LPCWSTR RT_MESSAGETABLE = MAKEINTRESOURCEW(11);
1410 	const LPCWSTR RT_VERSION 	  = MAKEINTRESOURCEW(16);
1411 	const LPCWSTR RT_DLGINCLUDE   = MAKEINTRESOURCEW(17);
1412 	const LPCWSTR RT_PLUGPLAY	  = MAKEINTRESOURCEW(19);
1413 	const LPCWSTR RT_VXD		  = MAKEINTRESOURCEW(20);
1414 	const LPCWSTR RT_ANICURSOR	  = MAKEINTRESOURCEW(21);
1415 	const LPCWSTR RT_ANIICON	  = MAKEINTRESOURCEW(22);
1416 	const LPCWSTR RT_HTML		  = MAKEINTRESOURCEW(23);
1417 	const LPCWSTR RT_MANIFEST	  = MAKEINTRESOURCEW(24);
1418 
1419 	enum: LONG
1420 	{
1421 		HS_HORIZONTAL = 0,
1422 		HS_VERTICAL   = 1,
1423 		HS_FDIAGONAL  = 2,
1424 		HS_BDIAGONAL  = 3,
1425 		HS_CROSS      = 4,
1426 		HS_DIAGCROSS  = 5,
1427 	}
1428 
1429 	enum: uint
1430 	{
1431 		// Internet Explorer 3+
1432 		ICC_LISTVIEW_CLASSES   = 0x00000001,
1433 		ICC_TREEVIEW_CLASSES   = 0x00000002,
1434 		ICC_BAR_CLASSES 	   = 0x00000004, // ToolBar/StatusBar/TrackBar
1435 		ICC_TAB_CLASSES 	   = 0x00000008,
1436 		ICC_UPDOWN_CLASS 	   = 0x00000010,
1437 		ICC_PROGRESS_CLASS	   = 0x00000020,
1438 		ICC_HOTKEY_CLASS	   = 0x00000040,
1439 		ICC_ANIMATE_CLASS	   = 0x00000080,
1440 		ICC_WIN95_CLASSES	   = 0x000000FF,
1441 		ICC_DATE_CLASSES	   = 0x00000100,
1442 		ICC_USEREX_CLASSES     = 0x00000200,
1443 		ICC_COOL_CLASSES	   = 0x00000400,
1444 
1445 		ICC_STANDARD_CLASSES   = 0x00004000,
1446 
1447 		// IE4+
1448 		ICC_INTERNET_CLASSES   = 0x00000800,
1449 		ICC_PAGESCROLLER_CLASS = 0x00001000,
1450 		ICC_NATIVEFNTCTL_CLASS = 0x00002000,
1451 	}
1452 
1453 	enum: uint
1454 	{
1455 		PBS_SMOOTH        = 0x01,
1456 		PBS_VERTICAL      = 0x04,
1457 		PBS_MARQUEE       = 0x08,
1458 		PBS_SMOOTHREVERSE = 0x10,
1459 	}
1460 
1461 	enum: uint
1462 	{
1463 		PBM_SETRANGE    = WM_USER + 1,
1464 		PBM_SETPOS      = WM_USER + 2,
1465 		PBM_DELTAPOS    = WM_USER + 3,
1466 		PBM_SETSTEP     = WM_USER + 4,
1467 		PBM_STEPIT 	    = WM_USER + 5,
1468 		PBM_SETMARQUEE  = WM_USER + 10,
1469 		PBM_SETRANGE32  = 1030,
1470 		PBM_GETRANGE    = 1031,
1471 		PBM_GETPOS      = 1032,
1472 		PBM_SETBARCOLOR = 1033,
1473 	}
1474 
1475 	enum: uint
1476 	{
1477 		BIF_RETURNONLYFSDIRS  = 0x0001,
1478 		BIF_NEWDIALOGSTYLE    = 0x0040,
1479 		BIF_NONEWFOLDERBUTTON = 0x0200, // Shell32.dll 6.0+
1480 	}
1481 
1482 	enum
1483 	{
1484 		ILD_NORMAL  = 0,
1485 		LF_FACESIZE = 32,
1486 	}
1487 
1488 	enum: uint
1489 	{
1490 		ILC_COLOR4  = 0x0004,
1491 		ILC_COLOR8  = 0x0008,
1492 		ILC_COLOR16 = 0x0010,
1493 		ILC_COLOR24 = 0x0018,
1494 		ILC_COLOR32 = 0x0020,
1495 		ILC_MASK    = 0x0001,
1496 	}
1497 
1498 	enum: uint
1499 	{
1500 		TBSTYLE_BUTTON	 		= 0x00,
1501 		TBSTYLE_SEP		 		= 0x01,
1502 		TBSTYLE_CHECK	 		= 0x02,
1503 		TBSTYLE_GROUP 	 		= 0x04,
1504 		TBSTYLE_DROPDOWN 		= 0x08,
1505 		TBSTYLE_AUTOSIZE 		= 0x10,
1506 		TBSTYLE_WRAPABLE 		= 0x200,
1507 		TBSTYLE_FLAT 	 		= 0x800,
1508 		TBSTYLE_LIST 	 		= 0x1000,
1509 
1510 		TBSTYLE_EX_DRAWDDARROWS = 0x00000001,
1511 
1512 		BTNS_BUTTON		  		= TBSTYLE_BUTTON,
1513 		BTNS_SEP		  		= TBSTYLE_SEP,
1514 		BTNS_CHECK		  		= TBSTYLE_CHECK,
1515 		BTNS_GROUP		  		= TBSTYLE_GROUP,
1516 		BTNS_DROPDOWN  	  		= TBSTYLE_DROPDOWN,
1517 		BTNS_AUTOSIZE     		= TBSTYLE_AUTOSIZE,
1518 		BTNS_WHOLEDROPDOWN		= 0x0080,
1519 		BTNS_SHOWTEXT 	  		= 0x0040,
1520 	}
1521 
1522 
1523 	enum: BYTE
1524 	{
1525 		TBSTATE_CHECKED 	  = 0x01,
1526 		TBSTATE_PRESSED 	  = 0x02,
1527 		TBSTATE_ENABLED 	  = 0x04,
1528 		TBSTATE_HIDDEN  	  = 0x08,
1529 		TBSTATE_INDETERMINATE = 0x10,
1530 		TBSTATE_WRAP          = 0x20,
1531 		TBSTATE_ELLIPSES      = 0x40,
1532 		TBSTATE_MARKED        = 0x80,
1533 	}
1534 
1535 	enum: LRESULT
1536 	{
1537 		TBDDRET_DEFAULT      = 0,
1538 		TBDDRET_NODEFAULT    = 1,
1539 		TBDDRET_TREATPRESSED = 2,
1540 	}
1541 
1542 	enum: uint
1543 	{
1544 		TBIF_IMAGE   = 1,
1545 		TBIF_TEXT    = 2,
1546 		TBIF_STATE   = 4,
1547 		TBIF_STYLE   = 8,
1548 		TBIF_LPARAM  = 16,
1549 		TBIF_COMMAND = 32,
1550 		TBIF_SIZE    = 64,
1551 		TBIF_BYINDEX = 0x80000000,
1552 	}
1553 
1554 	enum: uint
1555 	{
1556 		TB_SETSTATE 		= WM_USER + 17,
1557 		TB_DELETEBUTTON		= WM_USER + 22,
1558 		TB_GETITEMRECT 		= WM_USER + 29,
1559 		TB_BUTTONSTRUCTSIZE = WM_USER + 30,
1560 		TB_SETBUTTONSIZE 	= WM_USER + 31,
1561 		TB_AUTOSIZE 		= WM_USER + 33,
1562 		TB_SETIMAGELIST 	= WM_USER + 48,
1563 		TB_INSERTBUTTONW 	= WM_USER + 67,
1564 		TB_ADDBUTTONSW 		= WM_USER + 68,
1565 		TB_SETPADDING 		= WM_USER + 87,
1566 		TB_GETBUTTONINFOW   = WM_USER + 63,
1567 		TB_SETBUTTONINFOW   = WM_USER + 64,
1568 		TB_HITTEST  		= WM_USER + 69,
1569 		TB_GETBUTTONSIZE  	= WM_USER + 58,
1570 		TB_SETEXTENDEDSTYLE = WM_USER + 84,
1571 		TB_GETEXTENDEDSTYLE = WM_USER + 85,
1572 		//TB_ADDBUTTONSA 	= WM_USER + 20,
1573 		//TB_INSERTBUTTONA 	= WM_USER + 21,
1574 		//TB_GETBUTTONINFOA = WM_USER + 65,
1575 		//TB_SETBUTTONINFOA = WM_USER + 66,
1576 	}
1577 
1578 	enum: uint
1579 	{
1580 		CC_RGBINIT 		   		= 0x00000001,
1581 		CC_FULLOPEN 	   		= 0x00000002,
1582 		CC_PREVENTFULLOPEN 		= 0x00000004,
1583 		CC_SHOWHELP   	   		= 0x00000008,
1584 		CC_ENABLEHOOK 	   		= 0x00000010,
1585 		CC_ENABLETEMPLATE  		= 0x00000020,
1586 		CC_ENABLETEMPLATEHANDLE = 0x00000040,
1587 		CC_SOLIDCOLOR			= 0x00000080,
1588 		CC_ANYCOLOR  			= 0x00000100,
1589 	}
1590 
1591 	enum: uint
1592 	{
1593 		TBN_FIRST    = cast(uint)-700,
1594 		TBN_DROPDOWN = TBN_FIRST - 10,
1595 	}
1596 
1597 	struct WNDCLASSEXW
1598 	{
1599 		UINT cbSize;
1600 		UINT style;
1601 		WNDPROC lpfnWndProc;
1602 		int cbClsExtra;
1603 		int cbWndExtra;
1604 		HINSTANCE hInstance;
1605 		HICON hIcon;
1606 		HCURSOR hCursor;
1607 		HBRUSH hbrBackground;
1608 		LPCWSTR lpszMenuName;
1609 		LPCWSTR lpszClassName;
1610 		HICON hIconSm;
1611 	}
1612 
1613 	align(1) struct TEXTMETRICW
1614 	{
1615 		LONG tmHeight;
1616 		LONG tmAscent;
1617 		LONG tmDescent;
1618 		LONG tmInternalLeading;
1619 		LONG tmExternalLeading;
1620 		LONG tmAveCharWidth;
1621 		LONG tmMaxCharWidth;
1622 		LONG tmWeight;
1623 		LONG tmOverhang;
1624 		LONG tmDigitizedAspectX;
1625 		LONG tmDigitizedAspectY;
1626 		wchar tmFirstChar;
1627 		wchar tmLastChar;
1628 		wchar tmDefaultChar;
1629 		wchar tmBreakChar;
1630 		BYTE tmItalic;
1631 		BYTE tmUnderlined;
1632 		BYTE tmStruckOut;
1633 		BYTE tmPitchAndFamily;
1634 		BYTE tmCharSet;
1635 	}
1636 
1637 	struct SIZE
1638 	{
1639 		LONG cx;
1640 		LONG cy;
1641 	}
1642 
1643 	struct NMMOUSE
1644 	{
1645 		NMHDR hdr;
1646 		DWORD dwItemSpec;
1647 		DWORD dwItemData;
1648 		POINT pt;
1649 		LPARAM dwHitInfo;
1650 	}
1651 
1652 	struct TCITEMHEADERW
1653 	{
1654 		UINT mask;
1655 		UINT lpReserved1;
1656 		UINT lpReserved2;
1657 		LPCWSTR pszText;
1658 		int cchTextMax;
1659 		int iImage;
1660 	}
1661 
1662 	struct TRIVERTEX
1663 	{
1664 		LONG x;
1665 		LONG y;
1666 		ushort Red;
1667 		ushort Green;
1668 		ushort Blue;
1669 		ushort Alpha;
1670 	}
1671 
1672 	struct GRADIENT_TRIANGLE
1673 	{
1674 		ULONG Vertex1;
1675 		ULONG Vertex2;
1676 		ULONG Vertex3;
1677 	}
1678 
1679 	struct GRADIENT_RECT
1680 	{
1681 		ULONG UpperLeft;
1682 		ULONG LowerRight;
1683 	}
1684 
1685 	struct ACTCTXW
1686 	{
1687 		ULONG cbSize;
1688 		DWORD dwFlags;
1689 		LPCWSTR lpSource;
1690 		USHORT wProcessorArchitecture;
1691 		LANGID wLangId;
1692 		LPCWSTR lpAssemblyDirectory;
1693 		LPCWSTR lpResourceName;
1694 		LPCWSTR lpApplicationName;
1695 		HMODULE hModule;
1696 	}
1697 
1698 	struct OSVERSIONINFOW
1699 	{
1700 		DWORD dwOSVersionInfoSize;
1701 		DWORD dwMajorVersion;
1702 		DWORD dwMinorVersion;
1703 		DWORD dwBuildNumber;
1704 		DWORD dwPlatformId;
1705 		wchar[128] szCSDVersion;
1706 	}
1707 
1708 	struct WINDOWPOS
1709 	{
1710 		HWND hwnd;
1711 		HWND hwndInsertAfter;
1712 		int  x;
1713 		int  y;
1714 		int  cx;
1715 		int  cy;
1716 		UINT flags;
1717 	}
1718 
1719 	struct WINDOWINFO
1720 	{
1721 		DWORD cbSize;
1722 		RECT rcWindow;
1723 		RECT rcClient;
1724 		DWORD dwStyle;
1725 		DWORD dwExStyle;
1726 		DWORD dwWindowStatus;
1727 		UINT cxWindowBorders;
1728 		UINT cyWindowBorders;
1729 		ATOM atomWindowType;
1730 		WORD wCreatorVersion;
1731 	}
1732 
1733 	struct COMBOBOXEXITEMW
1734 	{
1735 		UINT mask;
1736 		int iItem;
1737 		LPCWSTR pszText;
1738 		int cchTextMax;
1739 		int iImage;
1740 		int iSelectedImage;
1741 		int iOverlay;
1742 		int iIndent;
1743 		LPARAM lParam;
1744 	}
1745 
1746 	struct BLENDFUNCTION
1747 	{
1748 		BYTE BlendOp;
1749 		BYTE BlendFlags;
1750 		BYTE SourceConstantAlpha;
1751 		BYTE AlphaFormat;
1752 	}
1753 
1754 	struct NOTIFYICONDATA
1755 	{
1756 		 DWORD cbSize;
1757 		 HWND hWnd;
1758 		 UINT uID;
1759 		 UINT uFlags;
1760 		 UINT uCallbackMessage;
1761 		 HICON hIcon;
1762 		 char[64] szTip;
1763 	}
1764 
1765 	struct SHITEMID
1766 	{
1767 		align(1):
1768 		USHORT cb; // Size including cb.
1769 		BYTE[1] abID;
1770 	}
1771 
1772 	struct ITEMIDLIST
1773 	{
1774 		SHITEMID mkid;
1775 	}
1776 
1777 	struct BROWSEINFOW
1778 	{
1779 		HWND hwndOwner;
1780 		ITEMIDLIST* pidlRoot;
1781 		LPWSTR pszDisplayName;
1782 		LPCWSTR lpszTitle;
1783 		UINT ulFlags;
1784 		BFFCALLBACK lpfn;
1785 		LPARAM lParam;
1786 		int iImage;
1787 	}
1788 
1789 	struct LOGBRUSH
1790 	{
1791 		UINT lbStyle;
1792 		COLORREF lbColor;
1793 		LONG lbHatch;
1794 	}
1795 
1796 	struct DRAWTEXTPARAMS
1797 	{
1798 		UINT cbSize;
1799 		int iTabLength;
1800 		int iLeftMargin;
1801 		int iRightMargin;
1802 		UINT uiLengthDrawn;
1803 	}
1804 
1805 	struct NMHDR
1806 	{
1807 		HWND hwndFrom;
1808 		UINT idFrom;
1809 		UINT code;
1810 	}
1811 
1812 	struct NMCUSTOMDRAW
1813 	{
1814 		NMHDR hdr;
1815 		DWORD dwDrawStage;
1816 		HDC hdc;
1817 		RECT rc;
1818 		DWORD dwItemSpec;
1819 		UINT uItemState;
1820 		LPARAM lItemlParam;
1821 	}
1822 
1823 	struct NMTVCUSTOMDRAW
1824 	{
1825 		NMCUSTOMDRAW nmcd;
1826 		COLORREF clrText;
1827 		COLORREF clrTextBk;
1828 		int iLevel; // IE4+
1829 	}
1830 
1831 	struct NMLISTVIEW
1832 	{
1833 		NMHDR hdr;
1834 		int iItem;
1835 		int iSubItem;
1836 		UINT uNewState;
1837 		UINT uOldState;
1838 		UINT uChanged;
1839 		POINT ptAction;
1840 		LPARAM lParam;
1841 	}
1842 
1843 	struct LVITEMW
1844 	{
1845 		UINT mask;
1846 		int iItem;
1847 		int iSubItem;
1848 		UINT state;
1849 		UINT stateMask;
1850 		LPCWSTR pszText;
1851 		int cchTextMax;
1852 		int iImage;
1853 		LPARAM lParam;
1854 	}
1855 
1856 	align(1) struct NMTTDISPINFOW
1857 	{
1858 		NMHDR hdr;
1859 		wchar* lpszText;
1860 		wchar[80] szText;
1861 		HINSTANCE hinst;
1862 		UINT uFlags;
1863 		LPARAM lParam;
1864 	}
1865 
1866 	struct LVDISPINFOW
1867 	{
1868 		NMHDR hdr;
1869 		LVITEMW item;
1870 	}
1871 
1872 	struct LVCOLUMNW
1873 	{
1874 		UINT mask;
1875 		int fmt;
1876 		int cx;
1877 		LPCWSTR pszText;
1878 		int cchTextMax;
1879 		int iSubItem;
1880 	}
1881 
1882 	struct TBBUTTON
1883 	{
1884 		int iBitmap;
1885 		int idCommand;
1886 		BYTE fsState;
1887 		BYTE fsStyle;
1888 		BYTE[2] bReserved;
1889 		DWORD dwData;
1890 		int iString;
1891 	}
1892 
1893 	struct NMTOOLBARW
1894 	{
1895 		NMHDR hdr;
1896 		int iItem;
1897 		TBBUTTON tbButton;
1898 		int cchText;
1899 		LPWSTR pszText;
1900 		RECT rcButton;
1901 	}
1902 
1903 	struct TVITEMW
1904 	{
1905 		UINT mask;
1906 		HTREEITEM hItem;
1907 		UINT state;
1908 		UINT stateMask;
1909 		LPCWSTR pszText;
1910 		int cchTextMax;
1911 		int iImage;
1912 		int iSelectedImage;
1913 		int cChildren;
1914 		LPARAM lParam;
1915 	}
1916 
1917 	struct TVHITTESTINFO
1918 	{
1919 		POINT pt;
1920 		UINT flags;
1921 		HTREEITEM hItem;
1922 	}
1923 
1924 	struct TVINSERTSTRUCTW
1925 	{
1926 		HTREEITEM hParent;
1927 		HTREEITEM hInsertAfter;
1928 		TVITEMW item;
1929 	}
1930 
1931 	struct NMTREEVIEWW
1932 	{
1933 		NMHDR hdr;
1934 		UINT action;
1935 		TVITEMW itemOld;
1936 		TVITEMW itemNew;
1937 		POINT ptDrag;
1938 	}
1939 
1940 	struct NMTVDISPINFOW
1941 	{
1942 		NMHDR hdr;
1943 		TVITEMW item;
1944 	}
1945 
1946 	struct TCITEMW
1947 	{
1948 		UINT mask;
1949 		UINT lpReserved1;
1950 		UINT lpReserved2;
1951 		LPCTSTR pszText;
1952 		int cchTextMax;
1953 		int iImage;
1954 		LPARAM lParam;
1955 	}
1956 
1957 	// Rich edit.
1958 	struct CHARRANGE
1959 	{
1960 		LONG cpMin;
1961 		LONG cpMax;
1962 	}
1963 
1964 	// Rich edit.
1965 	struct EDITSTREAM
1966 	{
1967 		/+ DWORD_PTR +/ DWORD dwCookie;
1968 		DWORD dwError;
1969 		EDITSTREAMCALLBACK pfnCallback;
1970 	}
1971 
1972 	struct TEXTRANGEA
1973 	{
1974 		CHARRANGE chrg;
1975 		LPSTR lpstrText;
1976 	}
1977 
1978 	struct MENUITEMINFOW
1979 	{
1980 		UINT cbSize;
1981 		UINT fMask;
1982 		UINT fType;
1983 		UINT fState;
1984 		UINT wID;
1985 		HMENU hSubMenu;
1986 		HBITMAP hbmpChecked;
1987 		HBITMAP hbmpUnchecked;
1988 		DWORD dwItemData;
1989 		LPCWSTR dwTypeData;
1990 		UINT cch;
1991 		HBITMAP hbmpItem;
1992 	}
1993 
1994 	struct SCROLLINFO
1995 	{
1996 		UINT cbSize;
1997 		UINT fMask;
1998 		int nMin;
1999 		int nMax;
2000 		UINT nPage;
2001 		int nPos;
2002 		int nTrackPos;
2003 	}
2004 
2005 	struct TBBUTTONINFOW
2006 	{
2007 		UINT cbSize;
2008 		DWORD dwMask;
2009 		int idCommand;
2010 		int iImage;
2011 		BYTE fsState;
2012 		BYTE fsStyle;
2013 		WORD cx;
2014 		DWORD lParam;
2015 		LPWSTR pszText;
2016 		int cchText;
2017 	}
2018 
2019 	align(1) struct CHOOSECOLORW
2020 	{
2021 		DWORD lStructSize;
2022 		HWND hwndOwner;
2023 		HWND hInstance;
2024 		COLORREF rgbResult;
2025 		COLORREF* lpCustColors;
2026 		DWORD Flags;
2027 		LPARAM lCustData;
2028 		LPCCHOOKPROC lpfnHook;
2029 		LPCWSTR lpTemplateName;
2030 	}
2031 
2032 	struct LOGFONTW
2033 	{
2034 		LONG lfHeight;
2035 		LONG lfWidth;
2036 		LONG lfEscapement;
2037 		LONG lfOrientation;
2038 		LONG lfWeight;
2039 		BYTE lfItalic;
2040 		BYTE lfUnderline;
2041 		BYTE lfStrikeOut;
2042 		BYTE lfCharSet;
2043 		BYTE lfOutPrecision;
2044 		BYTE lfClipPrecision;
2045 		BYTE lfQuality;
2046 		BYTE lfPitchAndFamily;
2047 		WCHAR[LF_FACESIZE] lfFaceName;
2048 	}
2049 
2050 	struct NONCLIENTMETRICSW
2051 	{
2052 		UINT cbSize;
2053 		int iBorderWidth;
2054 		int iScrollWidth;
2055 		int iScrollHeight;
2056 		int iCaptionWidth;
2057 		int iCaptionHeight;
2058 		LOGFONTW lfCaptionFont;
2059 		int iSmCaptionWidth;
2060 		int iSmCaptionHeight;
2061 		LOGFONTW lfSmCaptionFont;
2062 		int iMenuWidth;
2063 		int iMenuHeight;
2064 		LOGFONTW lfMenuFont;
2065 		LOGFONTW lfStatusFont;
2066 		LOGFONTW lfMessageFont;
2067 	}
2068 
2069 	align(1) struct CHOOSEFONTW
2070 	{
2071 		DWORD lStructSize;
2072 		HWND hwndOwner;
2073 		HDC hDC;
2074 		LOGFONTW* lpLogFont;
2075 		INT iPointSize;
2076 		DWORD Flags;
2077 		DWORD rgbColors;
2078 		LPARAM lCustData;
2079 		LPCFHOOKPROC lpfnHook;
2080 		LPCWSTR lpTemplateName;
2081 		HINSTANCE hInstance;
2082 		LPWSTR lpszStyle;
2083 		WORD nFontType;
2084 		WORD ___MISSING_ALIGNMENT__;
2085 		INT nSizeMin;
2086 		INT nSizeMax;
2087 	}
2088 
2089 	struct ICONINFO
2090 	{
2091 		BOOL fIcon;
2092 		DWORD xHotspot;
2093 		DWORD yHotspot;
2094 		HBITMAP hbmMask;
2095 		HBITMAP hbmColor;
2096 	}
2097 
2098 	struct CREATESTRUCTW
2099 	{
2100 		LPVOID lpCreateParams;
2101 		HINSTANCE hInstance;
2102 		HMENU hMenu;
2103 		HWND hwndParent;
2104 		int cy;
2105 		int cx;
2106 		int y;
2107 		int x;
2108 		LONG style;
2109 		LPCWSTR lpszName;
2110 		LPCWSTR lpszClass;
2111 		DWORD dwExStyle;
2112 	}
2113 
2114 	struct TOOLINFOW
2115 	{
2116 		UINT cbSize;
2117 		UINT uFlags;
2118 		HWND hwnd;
2119 		UINT uId;
2120 		RECT rect;
2121 		HINSTANCE hinst;
2122 		LPWSTR lpszText;
2123 		LPARAM lParam;
2124 		//void* lpReserved; <-- From XP/Vista/7
2125 	}
2126 
2127 	struct TRACKMOUSEEVENT
2128 	{
2129 		DWORD cbSize;
2130 		DWORD dwFlags;
2131 		HWND hwndTrack;
2132 		DWORD dwHoverTime;
2133 	}
2134 
2135 	struct DRAWITEMSTRUCT
2136 	{
2137 		UINT CtlType;
2138 		UINT CtlID;
2139 		UINT itemID;
2140 		UINT itemAction;
2141 		UINT itemState;
2142 		HWND hwndItem;
2143 		HDC hDC;
2144 		RECT rcItem;
2145 		DWORD itemData;
2146 	}
2147 
2148 	struct MEASUREITEMSTRUCT
2149 	{
2150 		UINT CtlType;
2151 		UINT CtlID;
2152 		UINT itemID;
2153 		UINT itemWidth;
2154 		UINT itemHeight;
2155 		DWORD itemData;
2156 	}
2157 
2158 	struct INITCOMMONCONTROLSEX
2159 	{
2160 		DWORD dwSize;
2161 		DWORD dwICC;
2162 	}
2163 
2164 	struct MENUINFO
2165 	{
2166 		DWORD cbSize;
2167 		DWORD fMask;
2168 		DWORD dwStyle;
2169 		UINT cyMax;
2170 		HBRUSH hbrBack;
2171 		DWORD dwContextHelpID;
2172 		ULONG_PTR dwMenuData;
2173 	}
2174 
2175 	/* *** Win32 Macros *** */
2176 	COLORREF RGB(int r, int g, int b)
2177 	{
2178 		return cast(COLORREF)(cast(ubyte)r | (cast(ubyte)g << 8) | (cast(ubyte)b << 16));
2179 	}
2180 
2181 	DWORD MAKELONG(int wLow, int wHigh)
2182 	{
2183 		return cast(DWORD)cast(WORD)wLow | (cast(DWORD)cast(WORD)wHigh << 16);
2184 	}
2185 
2186 	LPWSTR MAKEINTRESOURCEW(ushort id)
2187 	{
2188 		return (cast(LPWSTR)(cast(ULONG_PTR)((cast(WORD)(id)))));
2189 	}
2190 
2191 	BYTE GetRValue(COLORREF c)
2192 	{
2193 		return cast(BYTE)c;
2194 	}
2195 
2196 	BYTE GetGValue(COLORREF c)
2197 	{
2198 		return cast(BYTE)(c >> 8);
2199 	}
2200 
2201 	BYTE GetBValue(COLORREF c)
2202 	{
2203 		return cast(BYTE)(c >> 16);
2204 	}
2205 
2206 	short GetWheelDelta(WPARAM wParam)
2207 	{
2208 		return cast(short)HIWORD(wParam);
2209 	}
2210 
2211 	alias GUID CLSID;
2212 	alias DWORD function(/+ DWORD_PTR +/ DWORD dwCookie, LPBYTE pbBuff, LONG cb, LONG* pcb) EDITSTREAMCALLBACK; // Rich edit.
2213 	alias int function(HWND hwnd, UINT uMsg, LPARAM lParam, LPARAM lpData) BFFCALLBACK;
2214 	alias UINT function(HWND hdlg, UINT uiMsg, WPARAM wParam, LPARAM lParam) LPCCHOOKPROC;
2215 	alias UINT function(HWND hdlg, UINT uiMsg, WPARAM wParam, LPARAM lParam) LPCFHOOKPROC;
2216 	alias BOOL function(HDC hdc, LPARAM lpData, int cchData) GRAYSTRINGPROC;
2217 
2218 	alias MAKELONG MAKELRESULT;
2219 	alias MAKELONG MAKELPARAM;
2220 	alias MAKELONG MAKEWPARAM;
2221 	alias TBBUTTON TB_BUTTON;
2222 	alias HANDLE HIMAGELIST;
2223 	alias size_t ULONG_PTR;
2224 	alias HANDLE HTREEITEM;
2225 	alias WORD CLIPFORMAT;
2226 	alias ulong DWORDLONG;
2227 	alias long LONGLONG;
2228 	alias WORD LANGID;
2229 	alias DWORD LCID;
2230 	alias DWORD HDWP;
2231 	alias DWORD ARGB;
2232 
2233 	/* *** Shell32.lib *** */
2234 	ITEMIDLIST* SHBrowseForFolderW(BROWSEINFOW* lpbi);
2235 	BOOL SHGetPathFromIDListW(ITEMIDLIST* pidl, wchar* pszPath);
2236 	HICON ExtractAssociatedIconW(HINSTANCE hInst, LPCWSTR lpIconPath, WORD* lpiIcon);
2237 
2238 	/* *** Comdlg32 *** */
2239 	BOOL ChooseColorW(CHOOSECOLORW* lpcc);
2240 	BOOL ChooseFontW(CHOOSEFONTW* lpcf);
2241 
2242 	/* *** Kernel32.dll *** */
2243 	HMODULE LoadLibraryW(LPCWSTR lpFileName);
2244 	HMODULE GetModuleHandleW(LPCWSTR lpModuleName);
2245 	DWORD GetModuleFileNameW(HMODULE hModule, LPWSTR lpFilename, DWORD nSize);
2246 	HRSRC FindResourceExW(HMODULE hModule, LPCWSTR lpType, LPCWSTR lpName, WORD wLanguage);
2247 	BOOL GetVersionExW(OSVERSIONINFOW* lpVersionInfo);
2248 	DWORD GetTempPathW(DWORD nBufferLength, LPWSTR lpBuffer);
2249 	HGLOBAL LoadResource(HMODULE hModule, HRSRC hResInfo);
2250 	DWORD SizeofResource(HMODULE hModule, HRSRC hResInfo);
2251 	BOOL TerminateProcess(HANDLE, UINT);
2252 	VOID ExitProcess(UINT uExitCode);
2253 	int MulDiv(int nNumber, int nNumerator, int nDenominator);
2254 
2255 	/* *** User32.dll *** */
2256 	int MessageBoxW(HWND hWnd, LPCWSTR lpText, LPCWSTR lpCaption, UINT uType);
2257 	BOOL GetMessageW(MSG* lpMsg, HWND hWnd, UINT wMsgFilterMin, UINT wMsgFilterMax);
2258 	LRESULT DispatchMessageW(MSG* lpmsg);
2259 	HWND CreateWindowExW(DWORD dwExStyle, LPCWSTR lpClassName, LPCWSTR lpWindowName, DWORD dwStyle, int x, int y, int nWidth, int nHeight, HWND hWndParent, HMENU hMenu, HINSTANCE hInstance, LPVOID lpParam);
2260 	HDWP DeferWindowPos(HDWP hWinPosInfo, HWND hWnd, HWND hWndInsertAfter, int x, int y, int cx, int cy, UINT uFlags);
2261 	//LRESULT SendMessageW(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam);
2262 	HANDLE LoadImageW(HINSTANCE hinst, LPCWSTR lpszName, UINT uType, int cxDesired, int cyDesired, UINT fuLoad);
2263 	LRESULT CallWindowProcA(WNDPROC lpPrevWndFunc, HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam);
2264 	LRESULT CallWindowProcW(WNDPROC lpPrevWndFunc, HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam);
2265 	BOOL SetWindowPos(HWND hWnd, HWND hWndInsertAfter, int X, int Y, int cx, int cy, UINT uFlags);
2266 	BOOL GetTextExtentPoint32W(HDC hdc, LPCWSTR lpString, int c, SIZE* lpSize);
2267 	BOOL DrawFrameControl(HDC hdc, RECT* lprc, uint uType, uint uState);
2268 	BOOL SetMenuItemInfoW(HMENU hMenu, UINT uItem, BOOL fByPosition, MENUITEMINFOW* lpmii);
2269 	BOOL InsertMenuItemW(HMENU hMenu, UINT uItem, BOOL fByPosition, MENUITEMINFOW* lpmii);
2270 	BOOL SystemParametersInfoW(UINT uiAction, UINT uiParam, PVOID pvParam, UINT fWinIni);
2271 	UINT SetTimer(HWND hWnd, UINT nIDEvent, UINT uElapse, TIMERPROC lpTimerFunc);
2272 	BOOL GetClassInfoExW(HINSTANCE hinst, LPCWSTR lpszClass, WNDCLASSEXW* lpwcx);
2273 	LRESULT DefWindowProcW(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam);
2274 	int SetScrollInfo(HWND hwnd, int fnBar, SCROLLINFO* lpsi, BOOL fRedraw);
2275 	BOOL EnableMenuItem(HMENU hMenu, UINT uIDEnableItem, UINT uEnable);
2276 	int GetWindowTextW(HWND hWnd, LPWSTR lpString, int nMaxCount);
2277 	BOOL GetScrollInfo(HWND hwnd, int fnBar, SCROLLINFO* lpsi);
2278 	LONG SetWindowLongW(HWND hWnd, int nIndex, LONG dwNewLong);
2279 	DWORD SetClassLongW(HWND hWnd, int nIndex, LONG lNewLong);
2280 	BOOL GetMenuItemInfoW(HMENU, UINT, BOOL, MENUITEMINFOW*);
2281 	BOOL TrackMouseEvent(TRACKMOUSEEVENT* lpEventTrack);
2282 	HWND SetParent(HWND hWndChild, HWND hWndNewParent);
2283 	BOOL SetWindowTextW(HWND hWnd, LPCWSTR lpString);
2284 	BOOL GetWindowInfo(HWND hwnd, WINDOWINFO* pwi);
2285 	BOOL IsDialogMessageW(HWND hDlg, LPMSG lpMsg);
2286 	HMENU GetSystemMenu(HWND hWnd, BOOL bRevert);
2287 	LONG GetWindowLongW(HWND hWnd, int nIndex);
2288 	BOOL EnableWindow(HWND hWnd, BOOL bEnable);
2289 	DWORD GetClassLongW(HWND hWnd, int nIndex);
2290 	ATOM RegisterClassExW(WNDCLASSEXW* lpwcx);
2291 	HDWP BeginDeferWindowPos(int nNumWindows);
2292 	BOOL EndDeferWindowPos(HDWP hWinPosInfo);
2293 	BOOL KillTimer(HWND hWnd, UINT uIDEvent);
2294 	BOOL DrawFocusRect(HDC hDC, RECT* lprc);
2295 	BOOL OpenClipboard(HWND hWndNewOwner);
2296 	BOOL SetMenu(HWND hWnd, HMENU hMenu);
2297 	int GetWindowTextLengthW(HWND hWnd);
2298 	BOOL SetMenuInfo(HMENU, MENUINFO*);
2299 	BOOL DeleteMenu(HMENU, UINT, UINT);
2300 	SHORT GetAsyncKeyState(int vKey);
2301 	//BOOL BringWindowToTop(HWND hWnd);
2302 	BOOL IsWindowVisible(HWND hWnd);
2303 	BOOL IsWindowEnabled(HWND hWnd);
2304 	BOOL IsWindowUnicode(HWND hWnd);
2305 	DWORD GetSysColor(int nIndex);
2306 	HBRUSH GetSysColorBrush(int nIndex);
2307 	BOOL DestroyWindow(HWND hwnd);
2308 	BOOL CloseWindow(HWND hWnd);
2309 	BOOL DestroyMenu(HMENU hMenu);
2310 	BOOL DrawMenuBar(HWND hWnd);
2311 	HWND SetCapture(HWND hWnd);
2312 	HWND GetParent(HWND hWnd);
2313 	BOOL IsWindow(HWND hWnd);
2314 	BOOL IsMenu(HMENU hMenu);
2315 	HMENU GetMenu(HWND hWnd);
2316 	HWND GetDesktopWindow();
2317 	HMENU CreatePopupMenu();
2318 	HWND GetActiveWindow();
2319 	BOOL EmptyClipboard();
2320 	BOOL ReleaseCapture();
2321 	//BOOL WaitMessage();
2322 	HMENU CreateMenu();
2323 	//HWND GetCapture();
2324 
2325 	/* *** Comctl32.dll *** */
2326 	//BOOL ImageList_DrawEx(HIMAGELIST himl, int i, HDC hdcDst, int x, int y, int dx, int dy, COLORREF rgbBk, COLORREF rgbFg, UINT fStyle);
2327 	//BOOL ImageList_Draw(HIMAGELIST himl, int i, HDC hdcDst, int x, int y, UINT fStyle);
2328 	//HIMAGELIST ImageList_Create(int cx, int cy, UINT flags, int cInitial, int cGrow);
2329 	//int ImageList_AddMasked(HIMAGELIST himl, HBITMAP hbmImage, COLORREF crMask);
2330 	//int ImageList_Add(HIMAGELIST himl, HBITMAP hbmImage, HBITMAP hbmMask);
2331 	BOOL InitCommonControlsEx(INITCOMMONCONTROLSEX* lpInitCtrls);
2332 	COLORREF ImageList_SetBkColor(HIMAGELIST, COLORREF);
2333 	int ImageList_AddIcon(HIMAGELIST himl, HICON hicon);
2334 	int ImageList_ReplaceIcon(HIMAGELIST, int, HICON);
2335 	BOOL ImageList_Remove(HIMAGELIST himl, int i);
2336 	BOOL ImageList_Destroy(HIMAGELIST himl);
2337 
2338 	/* *** Gdi32.dll *** */
2339 	//BOOL GdiTransparentBlt(HDC hdcDest, int xoriginDest, int yoriginDest,int wDest, int hDest, HDC hdcSrc, int xoriginSrc, int yoriginSrc, int wSrc, int hSrc, UINT crTransparent);
2340 	//BOOL GdiAlphaBlend(HDC hdcDest, int xoriginDest, int yoriginDest, int wDest, int hDest, HDC hdcSrc, int xoriginSrc, int yoriginSrc, int wSrc, int hSrc, BLENDFUNCTION ftn);
2341 	BOOL DrawIconEx(HDC hdc, int xLeft, int yTop, HICON hIcon, int cxWidth, int cyWidth, UINT istepIfAniCur, HBRUSH hbrFlickerFreeDraw, UINT diFlags);
2342 	BOOL PlgBlt(HDC hdcDest, POINT *lpPoint, HDC hdcSrc, int nXSrc, int nYSrc, int nWidth, int nHeight, HBITMAP hbmMask, int xMask, int yMask);
2343 	BOOL BitBlt(HDC hdcDest, int nXDest,int nYDest, int nWidth, int nHeight, HDC hdcSrc, int nXSrc, int nYSrc, DWORD dwRop);
2344 	int GetDIBits(HDC hdc, HBITMAP hbmp, UINT uStartScan, UINT cScanLines, void* lpvBits, BITMAPINFO* lpbi, UINT uUsage);
2345 	HBITMAP CreateDIBSection(HDC hdc, BITMAPINFO* pbmi, UINT iUsage, void** ppvBits, HANDLE hSection, DWORD dwOffset);
2346 	int DrawTextExW(HDC hdc, LPCWSTR lpchText, int cchText, RECT* lprc, UINT dwDTFormat, DRAWTEXTPARAMS* lpDTParams);
2347 	//BOOL GdiGradientFill(HDC hdc, TRIVERTEX* pVertex, ULONG dwNumVertex, void* pMesh, ULONG dwNumMesh, ULONG dwMode);
2348 	HBITMAP CreateBitmap(int nWidth, int nHeight, UINT cPlanes, UINT cBitsPerPel, const(void*) lpvBits);
2349 	BOOL Rectangle(HDC hdc, int nLeftRect, int nTopRect, int nRightRect, int nBottomRect);
2350 	BOOL Ellipse(HDC hdc, int nLeftRect, int nTopRect, int nRightRect, int nBottomRect);
2351 	BOOL PatBlt(HDC hdc, int nXLeft, int nYLeft, int nWidth, int nHeight, DWORD dwRop);
2352 	HBITMAP CreateCompatibleBitmap(HDC hdc, int nWidth, int nHeight);
2353 	BOOL SetBrushOrgEx(HDC hdc, int nXOrg, int nYOrg, LPPOINT lppt);
2354 	int GetObjectW(HGDIOBJ hgdiobj, int cbBuffer, void* lpvObject);
2355 	BOOL GetIconInfo(HICON hIcon, ICONINFO* iconinfo);
2356 	HBRUSH CreateHatchBrush(int ht, COLORREF crColor);
2357 	BOOL GetTextMetricsW(HDC hdc, TEXTMETRICW* lptm);
2358 	HBRUSH CreateSolidBrush(COLORREF crColor);
2359 	HFONT CreateFontIndirectW(LOGFONTW* lplf);
2360 	BOOL DrawEdge(HDC, LPRECT, UINT, UINT);
2361 	BOOL DestroyCursor(HCURSOR hCursor);
2362 	BOOL DestroyIcon(HICON hIcon);
2363 	COLORREF GetTextColor(HDC hdc);
2364 
2365 	/* *** Advapi32.dll *** */
2366 	LONG RegCreateKeyExW(HKEY hKey, LPCWSTR lpSubKey, DWORD Reserved, LPTSTR lpClass, DWORD dwOptions, REGSAM samDesired, LPSECURITY_ATTRIBUTES lpSecurityAttributes, PHKEY phkResult, LPDWORD lpdwDisposition);
2367 	LONG RegOpenKeyExW(HKEY hKey, LPCWSTR lpSubKey, DWORD ulOptions, REGSAM samDesired, PHKEY phkResult);
2368 	LONG RegQueryValueExW(HKEY hKey, LPCWSTR lpValueName, DWORD* lpReserved, DWORD* lpType, BYTE* lpData, DWORD* lpcbData);
2369 	LONG RegSetValueExW(HKEY hKey, LPCWSTR lpValueName, DWORD Reserved,DWORD dwType, const BYTE *lpData, DWORD cbData);
2370 	LONG RegQueryInfoKeyW(HKEY hKey, LPWSTR lpClass, LPDWORD lpcClass, LPDWORD lpReserved, LPDWORD lpcSubKeys, LPDWORD lpcMaxSubKeyLen, LPDWORD lpcMaxClassLen, LPDWORD lpcValues, LPDWORD lpcMaxValueNameLen, LPDWORD lpcMaxValueLen, LPDWORD lpcbSecurityDescriptor, PFILETIME lpftLastWriteTime);
2371 	LONG RegEnumKeyExW(HKEY hKey, DWORD dwIndex, LPWSTR lpName, LPDWORD lpcName, LPDWORD lpReserved, LPWSTR lpClass, LPDWORD lpcClass, PFILETIME lpftLastWriteTime);
2372 	LONG RegEnumValueW(HKEY hKey, DWORD dwIndex, LPWSTR lpValueName, LPDWORD lpcchValueName, LPDWORD lpReserved, LPDWORD lpType, LPBYTE lpData, LPDWORD lpcbData);
2373 	LONG RegDeleteValueW(HKEY hKey, LPCWSTR lpValueName);
2374 	LONG RegDeleteKeyW(HKEY hKey, LPCWSTR lpSubKey);
2375 
2376 	/* *** Ole32.dll *** */
2377 	HRESULT CLSIDFromString(wchar* lpsz, CLSID* pclsid);
2378 }