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