1 // This module just contains things that are needed but aren't in std.c.windows.windows.
2 // This code is public domain.
3 
4 module dfl.internal.winapi;
5 
6 
7 public import core.sys.windows.windows;
8 private import dfl.internal.wincom;
9 
10 
11 version(D_Version2)
12 {
13 	version = DFL_D2;
14 	version = DFL_D2_AND_ABOVE;
15 }
16 else version(D_Version3)
17 {
18 	version = DFL_D3;
19 	version = DFL_D3_AND_ABOVE;
20 	version = DFL_D2_AND_ABOVE;
21 }
22 else version(D_Version4)
23 {
24 	version = DFL_D4;
25 	version = DFL_D4_AND_ABOVE;
26 	version = DFL_D3_AND_ABOVE;
27 	version = DFL_D2_AND_ABOVE;
28 }
29 else
30 {
31 	static assert(0, "This environment is not supported.");
32 }
33 
34 
35 extern(Windows) nothrow:
36 	
37 	struct SIZE
38 	{
39 		LONG cx;
40 		LONG cy;
41 	}
42 	alias SIZE* LPSIZE;
43 	
44 	
45 	struct POINTL
46 	{
47 		LONG x;
48 		LONG y;
49 	}
50 	alias POINTL* LPPOINTL;
51 	
52 	
53 	alias RECT* LPCRECT;
54 	
55 	
56 	alias WORD LANGID;
57 	
58 	
59 	alias size_t ULONG_PTR;
60 	
61 	
62 	alias long LONGLONG;
63 	
64 	alias ulong DWORDLONG;
65 	
66 	
67 	alias HRESULT THEMEAPI;
68 	
69 	
70 	union LARGE_INTEGER
71 	{
72 		struct
73 		{
74 			DWORD LowPart;
75 			LONG HighPart;
76 		}
77 		private struct _U
78 		{
79 			DWORD LowPart;
80 			LONG HighPart;
81 		}
82 		_U u;
83 		LONGLONG QuadPart;
84 	}
85 	
86 	
87 	union ULARGE_INTEGER
88 	{
89 		struct
90 		{
91 			DWORD LowPart;
92 			DWORD HighPart;
93 		}
94 		private struct _U
95 		{
96 			DWORD LowPart;
97 			DWORD HighPart;
98 		}
99 		_U u;
100 		DWORDLONG QuadPart;
101 	}
102 	
103 	
104 	enum: UINT
105 	{
106 		SWP_NOSIZE = 0x0001,
107 		SWP_NOMOVE = 0x0002,
108 		SWP_NOZORDER = 0x0004,
109 		SWP_NOREDRAW = 0x0008,
110 		SWP_NOACTIVATE = 0x0010,
111 		SWP_FRAMECHANGED = 0x0020,
112 		SWP_SHOWWINDOW = 0x0040,
113 		SWP_HIDEWINDOW = 0x0080,
114 		SWP_NOCOPYBITS = 0x0100,
115 		SWP_NOOWNERZORDER = 0x0200,
116 		SWP_NOSENDCHANGING = 0x0400,
117 		SWP_DRAWFRAME = SWP_FRAMECHANGED,
118 		SWP_NOREPOSITION = SWP_NOOWNERZORDER,
119 		SWP_DEFERERASE = 0x2000,
120 		SWP_ASYNCWINDOWPOS = 0x4000,
121 	}
122 	
123 	
124 	enum: UINT
125 	{
126 		GW_HWNDFIRST = 0,
127 		GW_HWNDLAST = 1,
128 		GW_HWNDNEXT = 2,
129 		GW_HWNDPREV = 3,
130 		GW_OWNER = 4,
131 		GW_CHILD = 5,
132 	}
133 	
134 	
135 	enum: UINT
136 	{
137 		DI_MASK = 0x0001,
138 		DI_IMAGE = 0x0002,
139 		DI_COMPAT = 0x0004,
140 		DI_DEFAULTSIZE = 0x0008,
141 		DI_NORMAL = DI_IMAGE | DI_MASK,
142 	}
143 	
144 	
145 	enum: int
146 	{
147 		GCL_MENUNAME = -8,
148 		GCL_HBRBACKGROUND = -10,
149 		GCL_HCURSOR = -12,
150 		GCL_HICON = -14,
151 		GCL_HMODULE = -16,
152 		GCL_CBWNDEXTRA = -18,
153 		GCL_CBCLSEXTRA = -20,
154 		GCL_WNDPROC = -24,
155 		GCL_STYLE = -26,
156 		GCW_ATOM = -32,
157 		GCL_HICONSM = -34,
158 	}
159 	
160 	
161 	enum: UINT
162 	{
163 		SC_SIZE = 0xF000,
164 		SC_MOVE = 0xF010,
165 		SC_MINIMIZE = 0xF020,
166 		SC_MAXIMIZE = 0xF030,
167 		SC_CLOSE = 0xF060,
168 		SC_VSCROLL = 0xF070,
169 		SC_HSCROLL = 0xF080,
170 		SC_RESTORE = 0xF120,
171 		SC_SEPARATOR = 0xF00F,
172 	}
173 	
174 	
175 	enum: int
176 	{
177 		GWL_WNDPROC = -4,
178 		GWL_HINSTANCE = -6,
179 		GWL_HWNDPARENT = -8,
180 		GWL_STYLE = -16,
181 		GWL_EXSTYLE = -20,
182 		GWL_USERDATA = -21,
183 		GWL_ID = -12,
184 		
185 		DWL_MSGRESULT = 0,
186 		DWL_DLGPROC = 4,
187 		DWL_USER = 8,
188 	}
189 	
190 	
191 	enum: UINT
192 	{
193 		WM_SETFONT = 0x0030,
194 		WM_GETFONT = 0x0031,
195 		WM_COMPACTING = 0x0041,
196 		WM_USER = 0x0400,
197 		WM_NEXTDLGCTL = 0x0028,
198 		WM_CAPTURECHANGED = 0x0215,
199 		WM_WINDOWPOSCHANGING = 0x0046,
200 		WM_WINDOWPOSCHANGED = 0x0047,
201 		WM_DRAWITEM = 0x002B,
202 		WM_DROPFILES = 0x0233,
203 		WM_PALETTECHANGED = 0x0311,
204 		
205 		WM_CLEAR = 0x0303,
206 		
207 		WM_CUT = 0x0300,
208 		WM_COPY = 0x0301,
209 		WM_PASTE = 0x0302,
210 		
211 		WM_MDIACTIVATE = 0x0222,
212 		WM_MDITILE = 0x0226,
213 		WM_MDICASCADE = 0x0227,
214 		WM_MDIICONARRANGE = 0x0228,
215 		WM_MDIGETACTIVE = 0x0229,
216 		
217 		WM_MOUSEWHEEL = 0x020A,
218 		WM_MOUSEHOVER = 0x02A1,
219 		WM_MOUSELEAVE = 0x02A3,
220 		
221 		WM_HOTKEY = 0x0312,
222 		
223 		WM_PRINT = 0x0317,
224 		WM_PRINTCLIENT = 0x0318,
225 		
226 		WM_MEASUREITEM = 0x002C,
227 		
228 		DM_SETDEFID = WM_USER + 1,
229 	}
230 	
231 	
232 	enum: UINT
233 	{
234 		BFFM_INITIALIZED = 1,
235 		BFFM_SETSELECTIONA = WM_USER + 102,
236 		BFFM_SETSELECTIONW = WM_USER + 103,
237 	}
238 	
239 	
240 	enum: UINT
241 	{
242 		NM_FIRST = 0,
243 		NM_CLICK = NM_FIRST - 2,
244 		NM_CUSTOMDRAW = NM_FIRST - 12,
245 	}
246 	
247 	
248 	struct NMMOUSE
249 	{
250 		NMHDR hdr;
251 		DWORD dwItemSpec;
252 		DWORD dwItemData;
253 		POINT pt;
254 		LPARAM dwHitInfo;
255 	}
256 	alias NMMOUSE* LPNMMOUSE;
257 	
258 	
259 	enum: UINT
260 	{
261 		TTM_ACTIVATE = WM_USER + 1,
262 		TTM_SETDELAYTIME = WM_USER + 3,
263 		TTM_ADDTOOLA = WM_USER + 4,
264 		TTM_DELTOOLA = WM_USER + 5,
265 		TTM_GETTOOLINFOA = WM_USER + 8,
266 		TTM_GETTEXTA = WM_USER + 11,
267 		TTM_UPDATETIPTEXTA = WM_USER + 12,
268 		TTM_ENUMTOOLSA = WM_USER + 14,
269 		TTM_GETCURRENTTOOLA = WM_USER + 15,
270 		TTM_ADDTOOLW = WM_USER + 50,
271 		TTM_GETTEXTW = WM_USER + 56,
272 		TTM_UPDATETIPTEXTW = WM_USER + 57,
273 	}
274 	
275 	
276 	enum: WPARAM
277 	{
278 		TTDT_AUTOMATIC = 0,
279 		TTDT_RESHOW = 1,
280 		TTDT_AUTOPOP = 2,
281 		TTDT_INITIAL = 3,
282 	}
283 	
284 	
285 	// Rich edit.
286 	enum: UINT
287 	{
288 		ES_DISABLENOSCROLL = 0x00002000,
289 		
290 		EM_CANPASTE = WM_USER + 50,
291 		EM_EXGETSEL = WM_USER + 52,
292 		EM_EXLIMITTEXT = WM_USER + 53,
293 		EM_EXLINEFROMCHAR = WM_USER + 54,
294 		EM_EXSETSEL = WM_USER + 55,
295 		EM_GETCHARFORMAT = WM_USER + 58,
296 		EM_GETSELTEXT = WM_USER + 62,
297 		EM_PASTESPECIAL = WM_USER + 64,
298 		EM_SETBKGNDCOLOR = WM_USER + 67,
299 		EM_SETCHARFORMAT = WM_USER + 68,
300 		EM_SETEVENTMASK = WM_USER + 69,
301 		EM_STREAMIN = WM_USER + 73,
302 		EM_STREAMOUT = WM_USER + 74,
303 		EM_GETTEXTRANGE = WM_USER + 75,
304 		
305 		// 2.0
306 		EM_SETUNDOLIMIT = WM_USER + 82,
307 		EM_REDO = WM_USER + 84,
308 		EM_CANREDO = WM_USER + 85,
309 		EM_GETUNDONAME = WM_USER + 86,
310 		EM_GETREDONAME = WM_USER + 87,
311 		EM_STOPGROUPTYPING = WM_USER + 88,
312 		EM_SETTEXTMODE = WM_USER + 89,
313 		EM_GETTEXTMODE = WM_USER + 90,
314 		
315 		EM_AUTOURLDETECT = WM_USER + 91,
316 		EM_GETAUTOURLDETECT = WM_USER + 92,
317 		EM_SETPALETTE = WM_USER + 93,
318 		EM_GETTEXTEX = WM_USER + 94,
319 		EM_GETTEXTLENGTHEX = WM_USER + 95,
320 		EM_SHOWSCROLLBAR = WM_USER + 96,
321 		EM_SETTEXTEX = WM_USER + 97,
322 		
323 		EN_LINK = 0x070B,
324 	}
325 	
326 	
327 	// Rich edit.
328 	enum: UINT
329 	{
330 		SF_TEXT = 0x0001,
331 		SF_RTF = 0x0002,
332 		SF_RTFNOOBJS = 0x0003,
333 		SF_TEXTIZED = 0x0004,
334 		
335 		SFF_SELECTION = 0x8000,
336 		SFF_PLAINRTF = 0x4000,
337 		
338 		SCF_SELECTION = 0x0001,
339 		SCF_WORD = 0x0002,
340 		SCF_ALL = 0x0004,
341 		
342 		CFM_BOLD = 0x00000001,
343 		CFM_ITALIC = 0x00000002,
344 		CFM_UNDERLINE = 0x00000004,
345 		CFM_STRIKEOUT = 0x00000008,
346 		CFM_PROTECTED = 0x00000010,
347 		CFM_LINK = 0x00000020,
348 		CFM_SIZE = 0x80000000,
349 		CFM_COLOR = 0x40000000,
350 		CFM_FACE = 0x20000000,
351 		CFM_OFFSET = 0x10000000,
352 		CFM_CHARSET = 0x08000000,
353 		CFM_SMALLCAPS = 0x0040,
354 		CFM_ALLCAPS = 0x0080,
355 		CFM_HIDDEN = 0x0100,
356 		CFM_OUTLINE = 0x0200,
357 		CFM_SHADOW = 0x0400,
358 		CFM_EMBOSS = 0x0800,
359 		CFM_IMPRINT = 0x1000,
360 		CFM_DISABLED = 0x2000,
361 		CFM_REVISED = 0x4000,
362 		CFM_BACKCOLOR = 0x04000000,
363 		CFM_LCID = 0x02000000,
364 		CFM_UNDERLINETYPE = 0x00800000,
365 		CFM_WEIGHT = 0x00400000,
366 		CFM_SPACING = 0x00200000,
367 		CFM_KERNING = 0x00100000,
368 		CFM_STYLE = 0x00080000,
369 		CFM_ANIMATION = 0x00040000,
370 		CFM_REVAUTHOR = 0x00008000,
371 		
372 		CFE_BOLD = 0x0001,
373 		CFE_ITALIC = 0x0002,
374 		CFE_UNDERLINE = 0x0004,
375 		CFE_STRIKEOUT = 0x0008,
376 		CFE_PROTECTED = 0x0010,
377 		CFE_LINK = 0x0020,
378 		CFE_AUTOCOLOR = 0x40000000,
379 		CFE_AUTOBACKCOLOR	= CFM_BACKCOLOR,
380 		CFE_SUBSCRIPT = 0x00010000,
381 		CFE_SUPERSCRIPT = 0x00020000,
382 		
383 		CFM_SUBSCRIPT = CFE_SUBSCRIPT | CFE_SUPERSCRIPT,
384 		CFM_SUPERSCRIPT = CFM_SUBSCRIPT,
385 		
386 		CFU_UNDERLINE = 1,
387 		
388 		ENM_NONE = 0x00000000,
389 		ENM_CHANGE = 0x00000001,
390 		ENM_UPDATE = 0x00000002,
391 		ENM_LINK = 0x04000000,
392 		ENM_PROTECTED = 0x00200000,
393 	}
394 	
395 	
396 	enum: DWORD
397 	{
398 		PRF_CLIENT = 0x00000004,
399 	}
400 	
401 	
402 	enum: DWORD
403 	{
404 		STAP_ALLOW_NONCLIENT = 0x00000001,
405 		STAP_ALLOW_CONTROLS = 0x00000002,
406 		STAP_ALLOW_WEBCONTENT = 0x00000004,
407 	}
408 	
409 	
410 	enum: LPARAM
411 	{
412 		ENDSESSION_LOGOFF = 0x80000000,
413 	}
414 	
415 	
416 	enum: int
417 	{
418 		BLACKONWHITE = 1,
419 		WHITEONBLACK = 2,
420 		COLORONCOLOR = 3,
421 		HALFTONE = 4,
422 	}
423 	
424 	
425 	enum: UINT
426 	{
427 		CDN_FIRST = cast(UINT)-601,
428 		CDN_LAST = cast(UINT)-699,
429 		CDN_INITDONE = CDN_FIRST - 0x0000,
430 		CDN_SELCHANGE = CDN_FIRST - 0x0001,
431 		CDN_FOLDERCHANGE = CDN_FIRST - 0x0002,
432 		CDN_SHAREVIOLATION = CDN_FIRST - 0x0003,
433 		CDN_HELP = CDN_FIRST - 0x0004,
434 		CDN_FILEOK = CDN_FIRST - 0x0005,
435 		CDN_TYPECHANGE = CDN_FIRST - 0x0006,
436 		CDN_INCLUDEITEM = CDN_FIRST - 0x0007,
437 	}
438 	
439 	
440 	enum: DWORD
441 	{
442 		OFN_READONLY = 0x00000001,
443 		OFN_OVERWRITEPROMPT = 0x00000002,
444 		OFN_HIDEREADONLY = 0x00000004,
445 		OFN_NOCHANGEDIR = 0x00000008,
446 		OFN_SHOWHELP = 0x00000010,
447 		OFN_ENABLEHOOK = 0x00000020,
448 		OFN_ENABLETEMPLATE = 0x00000040,
449 		OFN_ENABLETEMPLATEHANDLE = 0x00000080,
450 		OFN_NOVALIDATE = 0x00000100,
451 		OFN_ALLOWMULTISELECT = 0x00000200,
452 		OFN_EXTENSIONDIFFERENT = 0x00000400,
453 		OFN_PATHMUSTEXIST = 0x00000800,
454 		OFN_FILEMUSTEXIST = 0x00001000,
455 		OFN_CREATEPROMPT = 0x00002000,
456 		OFN_SHAREAWARE = 0x00004000,
457 		OFN_NOREADONLYRETURN = 0x00008000,
458 		OFN_NOTESTFILECREATE = 0x00010000,
459 		OFN_NONETWORKBUTTON = 0x00020000,
460 		OFN_NOLONGNAMES = 0x00040000,
461 		OFN_EXPLORER = 0x00080000,
462 		OFN_NODEREFERENCELINKS = 0x00100000,
463 		OFN_LONGNAMES = 0x00200000,
464 		OFN_ENABLEINCLUDENOTIFY = 0x00400000,
465 		OFN_ENABLESIZING = 0x00800000,
466 		OFN_DONTADDTORECENT = 0x02000000,
467 		OFN_FORCESHOWHIDDEN = 0x10000000,
468 	}
469 	
470 	
471 	enum: DWORD
472 	{
473 		CF_SCREENFONTS = 0x00000001,
474 		CF_PRINTERFONTS = 0x00000002,
475 		CF_BOTH = CF_SCREENFONTS | CF_PRINTERFONTS,
476 		CF_SHOWHELP = 0x00000004,
477 		CF_ENABLEHOOK = 0x00000008,
478 		CF_ENABLETEMPLATE = 0x00000010,
479 		CF_ENABLETEMPLATEHANDLE = 0x00000020,
480 		CF_INITTOLOGFONTSTRUCT = 0x00000040,
481 		CF_USESTYLE = 0x00000080,
482 		CF_EFFECTS = 0x00000100,
483 		CF_APPLY = 0x00000200,
484 		CF_ANSIONLY = 0x00000400,
485 		CF_SCRIPTSONLY = CF_ANSIONLY,
486 		CF_NOVECTORFONTS = 0x00000800,
487 		CF_NOOEMFONTS = CF_NOVECTORFONTS,
488 		CF_NOSIMULATIONS = 0x00001000,
489 		CF_LIMITSIZE = 0x00002000,
490 		CF_FIXEDPITCHONLY = 0x00004000,
491 		CF_WYSIWYG = 0x00008000,
492 		CF_FORCEFONTEXIST = 0x00010000,
493 		CF_SCALABLEONLY = 0x00020000,
494 		CF_TTONLY = 0x00040000,
495 		CF_NOFACESEL = 0x00080000,
496 		CF_NOSTYLESEL = 0x00100000,
497 		CF_NOSIZESEL = 0x00200000,
498 		CF_SELECTSCRIPT = 0x00400000,
499 		CF_NOSCRIPTSEL = 0x00800000,
500 		CF_NOVERTFONTS = 0x01000000,
501 	}
502 	
503 	
504 	enum: UINT
505 	{
506 		ODT_MENU = 1,
507 		ODT_LISTBOX = 2,
508 		ODT_COMBOBOX = 3,
509 		ODT_BUTTON = 4,
510 		ODT_STATIC = 5,
511 	}
512 	
513 	
514 	enum: int
515 	{
516 		HC_ACTION = 0,
517 	}
518 	
519 	
520 	enum: int
521 	{
522 		WH_GETMESSAGE = 3,
523 		WH_CALLWNDPROC = 4,
524 		WH_CALLWNDPROCRET = 12,
525 	}
526 	
527 	
528 	struct CWPSTRUCT
529 	{
530 		LPARAM lParam;
531 		WPARAM wParam;
532 		UINT message;
533 		HWND hwnd;
534 	}
535 	alias CWPSTRUCT* LPCWPSTRUCT;
536 	
537 	
538 	struct CWPRETSTRUCT
539 	{
540 		LRESULT lResult;
541 		LPARAM lParam;
542 		WPARAM wParam;
543 		DWORD message;
544 		HWND hwnd;
545 	}
546 	alias CWPRETSTRUCT* LPCWPRETSTRUCT;
547 	
548 	
549 	enum: UINT
550 	{
551 		MDITILE_VERTICAL = 0x0000,
552 		MDITILE_HORIZONTAL = 0x0001,
553 		MDITILE_SKIPDISABLED = 0x0002,
554 		MDITILE_ZORDER = 0x0004,
555 	}
556 	
557 	
558 	enum: DWORD
559 	{
560 		WS_EX_NOPARENTNOTIFY = 0x00000004,
561 		WS_EX_ACCEPTFILES = 0x00000010,
562 		WS_EX_TRANSPARENT = 0x00000020,
563 		WS_EX_RTLREADING = 0x00002000,
564 		WS_EX_APPWINDOW = 0x00040000,
565 		WS_EX_DLGMODALFRAME = 0x00000001,
566 		WS_EX_CONTROLPARENT = 0x00010000,
567 		WS_EX_WINDOWEDGE = 0x00000100,
568 		WS_EX_CLIENTEDGE = 0x00000200,
569 		WS_EX_TOOLWINDOW = 0x00000080,
570 		WS_EX_STATICEDGE = 0x00020000,
571 		WS_EX_CONTEXTHELP = 0x00000400,
572 		WS_EX_MDICHILD = 0x00000040,
573 		WS_EX_LAYERED = 0x00080000,
574 		WS_EX_TOPMOST = 0x00000008,
575 	}
576 	
577 	
578 	enum: DWORD
579 	{
580 		TTS_ALWAYSTIP = 0x01,
581 		TTS_NOPREFIX = 0x02,
582 		TTS_NOANIMATE = 0x10, // IE5+
583 		TTS_NOFADE = 0x20, // IE5+
584 		TTS_BALLOON = 0x40, // IE5+
585 	}
586 	
587 	
588 	enum
589 	{
590 		TTF_IDISHWND = 0x0001,
591 		TTF_CENTERTIP = 0x0002,
592 		TTF_RTLREADING = 0x0004,
593 		TTF_SUBCLASS = 0x0010,
594 		TTF_TRACK = 0x0020, // IE3+
595 		TTF_ABSOLUTE = 0x0080, // IE3+
596 		TTF_TRANSPARENT = 0x0100, // IE3+
597 		TTF_DI_SETITEM = 0x8000, // IE3+
598 	}
599 	
600 	
601 	enum: WPARAM
602 	{
603 		SIZE_RESTORED = 0,
604 		SIZE_MINIMIZED = 1,
605 		SIZE_MAXIMIZED = 2,
606 		SIZE_MAXSHOW = 3,
607 		SIZE_MAXHIDE = 4,
608 	}
609 	
610 	
611 	enum: DWORD
612 	{
613 		LWA_COLORKEY = 1,
614 		LWA_ALPHA = 2,
615 		
616 		AW_HOR_POSITIVE = 0x00000001,
617 		AW_HOR_NEGATIVE = 0x00000002,
618 		AW_VER_POSITIVE = 0x00000004,
619 		AW_VER_NEGATIVE = 0x00000008,
620 		AW_CENTER = 0x00000010,
621 		AW_HIDE = 0x00010000,
622 		AW_ACTIVATE = 0x00020000,
623 		AW_SLIDE = 0x00040000,
624 		AW_BLEND = 0x00080000,
625 	}
626 	
627 	
628 	enum: UINT
629 	{
630 		MF_STRING = 0x00000000,
631 		MF_UNCHECKED = 0x00000000,
632 		MF_BYCOMMAND = 0x00000000,
633 		MF_GRAYED = 0x00000001,
634 		MF_CHECKED = 0x00000008,
635 		MF_POPUP = 0x00000010,
636 		MF_MENUBARBREAK = 0x00000020,
637 		MF_MENUBREAK = 0x00000040,
638 		MF_BYPOSITION = 0x00000400,
639 		MF_SEPARATOR = 0x00000800,
640 		MF_DEFAULT = 0x00001000,
641 		MF_SYSMENU = 0x00002000,
642 		
643 		MFT_STRING = MF_STRING,
644 		MFT_MENUBARBREAK = MF_MENUBARBREAK,
645 		MFT_MENUBREAK = MF_MENUBREAK,
646 		MFT_RADIOCHECK = 0x00000200,
647 		MFT_SEPARATOR = MF_SEPARATOR,
648 		
649 		MFS_UNCHECKED = MF_UNCHECKED,
650 		MFS_CHECKED = MF_CHECKED,
651 		MFS_DEFAULT = MF_DEFAULT,
652 		MFS_GRAYED = MF_GRAYED,
653 		
654 		MIIM_STATE = 0x00000001,
655 		MIIM_ID = 0x00000002,
656 		MIIM_SUBMENU = 0x00000004,
657 		MIIM_TYPE = 0x00000010,
658 	}
659 	
660 	
661 	enum: int
662 	{
663 		RGN_AND = 1,
664 		RGN_OR = 2,
665 		RGN_XOR = 3,
666 		RGN_DIFF = 4,
667 		RGN_COPY = 5,
668 	}
669 	
670 	
671 	//alias UINT CLIPFORMAT; // ?
672 	alias WORD CLIPFORMAT; // ?
673 	
674 	
675 	// enum can't derive from HWND.
676 	enum HWND_TOP = cast(HWND)0;
677 	enum HWND_BOTTOM = cast(HWND)1;
678 	enum HWND_TOPMOST = cast(HWND)-1;
679 	enum HWND_NOTOPMOST = cast(HWND)-2;
680 	
681 	
682 	enum: UINT
683 	{
684 		BS_SOLID = 0,
685 		BS_GROUPBOX = 0x00000007,
686 	}
687 	
688 	
689 	enum: UINT
690 	{
691 		CBS_SIMPLE = 0x0001,
692 		CBS_DROPDOWN = 0x0002,
693 		CBS_DROPDOWNLIST = 0x0003,
694 		CBS_AUTOHSCROLL = 0x0040,
695 		CBS_OWNERDRAWFIXED = 0x0010,
696 		CBS_OWNERDRAWVARIABLE = 0x0020,
697 	}
698 	
699 	
700 	enum: DWORD
701 	{
702 		TME_HOVER =   1,
703 		TME_LEAVE =   2,
704 		TME_QUERY =   0x40000000,
705 		TME_CANCEL =  0x80000000,
706 	}
707 	
708 	
709 	enum DWORD HOVER_DEFAULT = 0xFFFFFFFF;
710 	
711 	
712 	enum: UINT
713 	{
714 		TPM_LEFTBUTTON = 0x0000,
715 		TPM_RIGHTBUTTON = 0x0002,
716 		TPM_LEFTALIGN = 0x0000,
717 		TPM_CENTERALIGN = 0x0004,
718 		TPM_RIGHTALIGN = 0x0008,
719 		TPM_TOPALIGN = 0x0000,
720 		TPM_VCENTERALIGN = 0x0010,
721 		TPM_BOTTOMALIGN = 0x0020,
722 		TPM_HORIZONTAL = 0x0000,
723 		TPM_VERTICAL = 0x0040,
724 		TPM_NONOTIFY = 0x0080,
725 		TPM_RETURNCMD = 0x0100,
726 		TPM_RECURSE = 0x0001,
727 	}
728 	
729 	
730 	enum
731 	{
732 		ICON_SMALL = 0,
733 		ICON_BIG = 1,
734 	}
735 	
736 	
737 	enum
738 	{
739 		WAIT_TIMEOUT = 258,
740 	}
741 	
742 	
743 	enum: DWORD
744 	{
745 		INFINITE = 0xFFFFFFFF,
746 		IGNORE = 0,
747 		WAIT_FAILED = 0xFFFFFFFF,
748 		STATUS_WAIT_0 = 0x00000000,
749 		STATUS_ABANDONED_WAIT_0 = 0x00000080,
750 		WAIT_OBJECT_0 = STATUS_WAIT_0,
751 		WAIT_ABANDONED_0 = STATUS_ABANDONED_WAIT_0,
752 	}
753 	
754 	
755 	enum: UINT
756 	{
757 		SPI_GETNONCLIENTMETRICS = 41,
758 		SPI_GETWORKAREA = 48,
759 		SPI_GETANIMATION = 72,
760 		SPI_GETWHEELSCROLLLINES = 104,
761 		SPI_GETWHEELSCROLLCHARS = 108,
762 		// ...
763 	}
764 	
765 	
766 	enum: DWORD
767 	{
768 		ABM_GETTASKBARPOS = 0x00000005,
769 		// ...
770 	}
771 	
772 	
773 	enum: UINT
774 	{
775 		ABE_LEFT = 0,
776 		ABE_TOP = 1,
777 		ABE_RIGHT = 2,
778 		ABE_BOTTOM = 3,
779 	}
780 	
781 	
782 	enum LPSTR IDC_APPSTARTING =  cast(LPSTR)32650;
783 	enum LPSTR IDC_HAND = cast(LPSTR)32649; // Windows 98+
784 	enum LPSTR IDC_HELP = cast(LPSTR)32651;
785 	enum LPSTR IDC_IBEAM = cast(LPSTR)32513;
786 	enum LPSTR IDC_NO = cast(LPSTR)32648;
787 	enum LPSTR IDC_SIZEALL = cast(LPSTR)32646;
788 	enum LPSTR IDC_SIZENESW = cast(LPSTR)32643;
789 	enum LPSTR IDC_SIZENS = cast(LPSTR)32645;
790 	enum LPSTR IDC_SIZENWSE = cast(LPSTR)32642;
791 	enum LPSTR IDC_SIZEWE = cast(LPSTR)32644;
792 	enum LPSTR IDC_WAIT = cast(LPSTR)32514;
793 	
794 	
795 	enum: WORD
796 	{
797 		MK_LBUTTON = 0x0001,
798 		MK_RBUTTON = 0x0002,
799 		MK_SHIFT = 0x0004,
800 		MK_CONTROL = 0x0008,
801 		MK_MBUTTON = 0x0010,
802 	}
803 	
804 	
805 	enum: UINT
806 	{
807 		GMEM_MOVEABLE = 0x0002,
808 		GMEM_DDESHARE = 0x2000,
809 		GMEM_SHARE = 0x2000,
810 	}
811 	
812 	
813 	enum
814 	{
815 		LOGPIXELSX = 88,
816 		LOGPIXELSY = 90,
817 	}
818 	
819 	
820 	enum
821 	{
822 		MB_SERVICE_NOTIFICATION = 0x00200000,
823 	}
824 	
825 	
826 	enum
827 	{
828 		DLGC_WANTARROWS = 0x0001,
829 		DLGC_WANTTAB = 0x0002,
830 		DLGC_WANTALLKEYS = 0x0004,
831 		DLGC_HASSETSEL = 0x0008,
832 		DLGC_RADIOBUTTON = 0x0040,
833 		DLGC_WANTCHARS = 0x0080,
834 		DLGC_STATIC = 0x0100,
835 	}
836 	
837 	
838 	enum
839 	{
840 		LB_OKAY = 0,
841 		LB_ERR = -1,
842 		LB_ERRSPACE = -2,
843 	}
844 	
845 	
846 	enum: UINT
847 	{
848 		LB_GETCOUNT = 0x018B,
849 		LB_GETITEMDATA = 0x0199,
850 		LB_ADDSTRING = 0x0180,
851 		LB_SETITEMDATA = 0x019A,
852 		LB_RESETCONTENT = 0x0184,
853 		LB_INSERTSTRING = 0x0181,
854 		LB_DELETESTRING = 0x0182,
855 		LB_GETHORIZONTALEXTENT = 0x0193,
856 		LB_SETHORIZONTALEXTENT = 0x0194,
857 		LB_SETITEMHEIGHT = 0x01A0,
858 		LB_GETITEMHEIGHT = 0x01A1,
859 		LB_GETSELCOUNT = 0x0190,
860 		LB_GETSELITEMS = 0x0191,
861 		LB_SETCURSEL = 0x0186,
862 		LB_GETCURSEL = 0x0188,
863 		LB_SETTOPINDEX = 0x0197,
864 		LB_GETTOPINDEX = 0x018E,
865 		LB_SELITEMRANGE = 0x0183,
866 		LB_SETSEL = 0x0185,
867 		LB_FINDSTRING = 0x018F,
868 		LB_FINDSTRINGEXACT = 0x01A2,
869 		LB_GETITEMRECT = 0x0198,
870 		LB_GETSEL = 0x0187,
871 		LB_ITEMFROMPOINT = 0x01A9,
872 		LB_ADDFILE = 0x0196,
873 		LB_DIR = 0x018D,
874 	}
875 	
876 	
877 	enum: DWORD
878 	{
879 		LBS_NOINTEGRALHEIGHT = 0x0100,
880 		LBS_MULTICOLUMN = 0x0200,
881 		LBS_DISABLENOSCROLL = 0x1000,
882 		LBS_NOSEL = 0x4000,
883 		LBS_EXTENDEDSEL = 0x0800,
884 		LBS_MULTIPLESEL = 0x0008,
885 		LBS_SORT = 0x0002,
886 		LBS_USETABSTOPS = 0x0080,
887 		LBS_OWNERDRAWVARIABLE = 0x0020,
888 		LBS_OWNERDRAWFIXED = 0x0010,
889 		LBS_NOTIFY = 0x0001,
890 		LBS_HASSTRINGS = 0x0040,
891 	}
892 	
893 	
894 	enum
895 	{
896 		LBN_ERRSPACE = -2,
897 		LBN_SELCHANGE = 1,
898 		LBN_DBLCLK = 2,
899 		LBN_SELCANCEL = 3,
900 		LBN_SETFOCUS = 4,
901 		LBN_KILLFOCUS = 5,
902 	}
903 	
904 	
905 	enum
906 	{
907 		CB_OKAY = 0,
908 		CB_ERR = -1,
909 		CB_ERRSPACE = -2,
910 	}
911 	
912 	
913 	enum: UINT
914 	{
915 		CB_SETCURSEL = 0x014E,
916 		CB_GETCURSEL = 0x0147,
917 		CB_FINDSTRING = 0x014C,
918 		CB_FINDSTRINGEXACT = 0x0158,
919 		CB_SETITEMHEIGHT = 0x0153,
920 		CB_GETITEMHEIGHT = 0x0154,
921 		CB_ADDSTRING = 0x0143,
922 		CB_DELETESTRING = 0x0144,
923 		CB_DIR = 0x0145,
924 		CB_INSERTSTRING = 0x014A,
925 		CB_RESETCONTENT = 0x014B,
926 		CB_SETITEMDATA = 0x0151,
927 		CB_GETDROPPEDWIDTH = 0x015f,
928 		CB_SETDROPPEDWIDTH = 0x0160,
929 		CB_LIMITTEXT = 0x0141,
930 		CB_GETEDITSEL = 0x0140,
931 		CB_SETEDITSEL = 0x0142,
932 		CB_SHOWDROPDOWN = 0x014F,
933 		CB_GETDROPPEDSTATE = 0x0157,
934 	}
935 	
936 	
937 	enum: DWORD
938 	{
939 		CBS_SORT = 0x0100,
940 		CBS_HASSTRINGS = 0x0200,
941 		CBS_NOINTEGRALHEIGHT = 0x0400,
942 	}
943 	
944 	
945 	enum
946 	{
947 		CBN_SELCHANGE = 1,
948 		CBN_SETFOCUS = 3,
949 		CBN_KILLFOCUS = 4,
950 		CBN_EDITCHANGE = 5,
951 	}
952 	
953 	
954 	enum: UINT
955 	{
956 		TVE_COLLAPSE = 0x0001,
957 		TVE_EXPAND = 0x0002,
958 		TVE_TOGGLE = 0x0003,
959 	}
960 	
961 	
962 	enum: UINT
963 	{
964 		TVIS_SELECTED = 0x0002,
965 		TVIS_EXPANDED = 0x0020,
966 	}
967 	
968 	
969 	enum: UINT
970 	{
971 		TVIF_TEXT = 0x0001,
972 		TVIF_IMAGE = 0x0002,
973 		TVIF_PARAM = 0x0004,
974 		TVIF_STATE = 0x0008,
975 		TVIF_HANDLE = 0x0010,
976 		TVIF_SELECTEDIMAGE = 0x0020,
977 		TVIF_CHILDREN = 0x0040,
978 		TVIF_INTEGRAL = 0x0080, // IE4+
979 	}
980 	
981 	
982 	enum int I_CHILDRENCALLBACK = -1;
983 	
984 	
985 	enum: UINT
986 	{
987 		TVGN_FIRSTVISIBLE = 0x0005,
988 		TVGN_CARET = 0x0009,
989 	}
990 	
991 	
992 	enum: UINT
993 	{
994 		TV_FIRST = 0x1100,
995 		
996 		TVM_INSERTITEMA = TV_FIRST + 0,
997 		TVM_DELETEITEM = TV_FIRST + 1,
998 		TVM_EXPAND = TV_FIRST + 2,
999 		TVM_GETITEMRECT = TV_FIRST + 4,
1000 		TVM_GETINDENT = TV_FIRST + 6,
1001 		TVM_SETINDENT = TV_FIRST + 7,
1002 		TVM_SETIMAGELIST = TV_FIRST + 9,
1003 		TVM_GETNEXTITEM = TV_FIRST + 10,
1004 		TVM_SELECTITEM = TV_FIRST + 11,
1005 		TVM_GETITEMA = TV_FIRST + 12,
1006 		TVM_SETITEMA = TV_FIRST + 13,
1007 		TVM_EDITLABELA = TV_FIRST + 14,
1008 		TVM_GETVISIBLECOUNT = TV_FIRST + 16,
1009 		TVM_HITTEST = TV_FIRST + 17,
1010 		TVM_ENSUREVISIBLE = TV_FIRST + 20,
1011 		TVM_SETITEMHEIGHT = TV_FIRST + 27, // IE4+
1012 		TVM_GETITEMHEIGHT = TV_FIRST + 28, // IE4+
1013 		TVM_INSERTITEMW = TV_FIRST + 50,
1014 		TVM_SETITEMW = TV_FIRST + 63,
1015 		
1016 		TVN_FIRST = cast(UINT)-400,
1017 		
1018 		TVN_SELCHANGINGA = TVN_FIRST - 1,
1019 		TVN_SELCHANGEDA = TVN_FIRST - 2,
1020 		TVN_GETDISPINFOA = TVN_FIRST - 3,
1021 		TVN_ITEMEXPANDINGA = TVN_FIRST - 5,
1022 		TVN_ITEMEXPANDEDA = TVN_FIRST - 6,
1023 		TVN_BEGINLABELEDITA = TVN_FIRST - 10,
1024 		TVN_ENDLABELEDITA = TVN_FIRST - 11,
1025 		
1026 		TVN_SELCHANGINGW = TVN_FIRST - 50,
1027 		TVN_SELCHANGEDW = TVN_FIRST - 51,
1028 		TVN_GETDISPINFOW = TVN_FIRST - 52,
1029 		TVN_ITEMEXPANDINGW = TVN_FIRST - 54,
1030 		TVN_ITEMEXPANDEDW = TVN_FIRST - 55,
1031 		TVN_BEGINLABELEDITW = TVN_FIRST - 59,
1032 		TVN_ENDLABELEDITW = TVN_FIRST - 60,
1033 	}
1034 	
1035 	
1036 	enum: DWORD
1037 	{
1038 		TVS_HASBUTTONS = 0x0001,
1039 		TVS_HASLINES = 0x0002,
1040 		TVS_LINESATROOT = 0x0004,
1041 		TVS_EDITLABELS = 0x0008,
1042 		TVS_SHOWSELALWAYS = 0x0020,
1043 		TVS_CHECKBOXES = 0x0100, // IE3+
1044 		TVS_TRACKSELECT = 0x0200, // IE3+
1045 		TVS_FULLROWSELECT = 0x1000, // IE4+
1046 		TVS_NOSCROLL = 0x2000, // IE4+
1047 		TVS_SINGLEEXPAND = 0x0400, // IE4+
1048 	}
1049 	
1050 	
1051 	version(DFL_D2_AND_ABOVE)
1052 	{
1053 		/+ // DMD 2.012: Error: cannot implicitly convert expression (cast(HANDLE)cast(void*)-65536u) of type const(HANDLE) to int
1054 		const HTREEITEM TVI_ROOT = cast(HTREEITEM)-0x10000;
1055 		const HTREEITEM TVI_FIRST = cast(HTREEITEM)-0x0FFFF;
1056 		const HTREEITEM TVI_LAST = cast(HTREEITEM)-0x0FFFE;
1057 		const HTREEITEM TVI_SORT = cast(HTREEITEM)-0x0FFFD;
1058 		+/
1059 		enum: HTREEITEM
1060 		{
1061 			TVI_ROOT = cast(HTREEITEM)-0x10000,
1062 			TVI_FIRST = cast(HTREEITEM)-0x0FFFF,
1063 			TVI_LAST = cast(HTREEITEM)-0x0FFFE,
1064 			TVI_SORT = cast(HTREEITEM)-0x0FFFD,
1065 		}
1066 	}
1067 	else
1068 	{
1069 		const HTREEITEM TVI_ROOT = cast(HTREEITEM)-0x10000;
1070 		const HTREEITEM TVI_FIRST = cast(HTREEITEM)-0x0FFFF;
1071 		const HTREEITEM TVI_LAST = cast(HTREEITEM)-0x0FFFE;
1072 		const HTREEITEM TVI_SORT = cast(HTREEITEM)-0x0FFFD;
1073 	}
1074 	
1075 	
1076 	enum: UINT
1077 	{
1078 		TVC_UNKNOWN = 0x0000,
1079 		TVC_BYMOUSE = 0x0001,
1080 		TVC_BYKEYBOARD = 0x0002,
1081 	}
1082 	
1083 	
1084 	enum: WPARAM
1085 	{
1086 		TVSIL_NORMAL = 0,
1087 		TVSIL_STATE = 2,
1088 	}
1089 	
1090 	
1091 	enum: UINT
1092 	{
1093 		SB_SETTEXTA = WM_USER + 1,
1094 		SB_SETPARTS = WM_USER + 4,
1095 		SB_SIMPLE = WM_USER + 9,
1096 		SB_SETTEXTW = WM_USER + 11,
1097 	}
1098 	
1099 	
1100 	enum: DWORD
1101 	{
1102 		SBARS_SIZEGRIP = 0x0100,
1103 	}
1104 	
1105 	
1106 	enum: WPARAM
1107 	{
1108 		SBT_NOBORDERS = 0x0100,
1109 		SBT_POPOUT = 0x0200,
1110 		SBT_RTLREADING = 0x0400,
1111 		SBT_OWNERDRAW = 0x1000,
1112 	}
1113 	
1114 	
1115 	enum: LRESULT
1116 	{
1117 		CDRF_DODEFAULT = 0x0,
1118 		CDRF_NEWFONT = 0x2,
1119 		CDRF_NOTIFYITEMDRAW = 0x20,
1120 		CDRF_NOTIFYITEMERASE = 0x80,
1121 	}
1122 	
1123 	
1124 	enum: DWORD
1125 	{
1126 		CDDS_ITEM = 0x00010000,
1127 	}
1128 	
1129 	
1130 	enum: UINT
1131 	{
1132 		CDIS_SELECTED = 0x0001,
1133 	}
1134 	
1135 	
1136 	enum LPWSTR LPSTR_TEXTCALLBACKW = cast(LPWSTR)-1L;
1137 	enum LPSTR LPSTR_TEXTCALLBACKA = cast(LPSTR)-1L;
1138 	
1139 	
1140 	enum: UINT
1141 	{
1142 		CCM_FIRST = 0x2000,
1143 		CCM_SETVERSION = CCM_FIRST + 0x7,
1144 	}
1145 	
1146 	
1147 	enum: UINT
1148 	{
1149 		LVM_FIRST = 0x1000,
1150 		
1151 		LVM_SETBKCOLOR = LVM_FIRST + 1,
1152 		LVM_SETIMAGELIST = LVM_FIRST + 3,
1153 		LVM_SETITEMA = LVM_FIRST + 6,
1154 		LVM_INSERTITEMA = LVM_FIRST + 7,
1155 		LVM_DELETEITEM = LVM_FIRST + 8,
1156 		LVM_DELETEALLITEMS = LVM_FIRST + 9,
1157 		LVM_SETCALLBACKMASK = LVM_FIRST + 11,
1158 		LVM_GETNEXTITEM = LVM_FIRST + 12,
1159 		LVM_GETITEMRECT = LVM_FIRST + 14,
1160 		LVM_ENSUREVISIBLE = LVM_FIRST + 19,
1161 		LVM_REDRAWITEMS = LVM_FIRST + 21,
1162 		LVM_ARRANGE = LVM_FIRST + 22,
1163 		LVM_EDITLABELA = LVM_FIRST + 23,
1164 		LVM_GETCOLUMNA = LVM_FIRST + 25,
1165 		LVM_SETCOLUMNA = LVM_FIRST + 26,
1166 		LVM_INSERTCOLUMNA = LVM_FIRST + 27,
1167 		LVM_DELETECOLUMN = LVM_FIRST + 28,
1168 		LVM_SETCOLUMNWIDTH = LVM_FIRST + 30,
1169 		LVM_SETTEXTCOLOR = LVM_FIRST + 36,
1170 		LVM_SETTEXTBKCOLOR = LVM_FIRST + 38,
1171 		LVM_SETITEMSTATE = LVM_FIRST + 43,
1172 		LVM_GETITEMSTATE = LVM_FIRST + 44,
1173 		LVM_SETITEMTEXTA = LVM_FIRST + 46,
1174 		LVM_SORTITEMS = LVM_FIRST + 48,
1175 		LVM_SETEXTENDEDLISTVIEWSTYLE = LVM_FIRST + 54,
1176 		LVM_GETEXTENDEDLISTVIEWSTYLE = LVM_FIRST + 55,
1177 		LVM_INSERTITEMW = LVM_FIRST + 77,
1178 		LVM_SETCOLUMNW = LVM_FIRST + 96,
1179 		LVM_INSERTCOLUMNW = LVM_FIRST + 97,
1180 		LVM_SETITEMTEXTW = LVM_FIRST + 116,
1181 		LVM_EDITLABELW = LVM_FIRST + 118,
1182 	}
1183 	
1184 	
1185 	enum: UINT
1186 	{
1187 		LVIS_OVERLAYMASK = 0x0F00,
1188 		LVIS_STATEIMAGEMASK = 0xF000,
1189 	}
1190 	
1191 	
1192 	enum: int
1193 	{
1194 		LVSCW_AUTOSIZE = -1,
1195 		LVSCW_AUTOSIZE_USEHEADER = -2,
1196 	}
1197 	
1198 	
1199 	enum: UINT
1200 	{
1201 		LVNI_ALL = 0x0000,
1202 		LVNI_FOCUSED = 0x0001,
1203 		LVNI_SELECTED = 0x0002,
1204 		LVNI_CUT = 0x0004,
1205 		LVNI_DROPHILITED = 0x0008,
1206 		
1207 		LVNI_ABOVE = 0x0100,
1208 		LVNI_BELOW = 0x0200,
1209 		LVNI_TOLEFT = 0x0400,
1210 		LVNI_TORIGHT = 0x0800,
1211 	}
1212 	
1213 	
1214 	enum: UINT
1215 	{
1216 		LVN_FIRST = cast(UINT)-100,
1217 		
1218 		LVN_ITEMCHANGING = (LVN_FIRST - 0),
1219 		LVN_ITEMCHANGED = (LVN_FIRST - 1),
1220 		
1221 		LVN_BEGINLABELEDITA = LVN_FIRST - 5,
1222 		LVN_BEGINLABELEDITW = LVN_FIRST - 75,
1223 		
1224 		LVN_ENDLABELEDITA = LVN_FIRST - 6,
1225 		LVN_ENDLABELEDITW = LVN_FIRST - 76,
1226 		
1227 		LVN_COLUMNCLICK = LVN_FIRST - 8,
1228 		
1229 		LVN_GETDISPINFOA = LVN_FIRST - 50,
1230 		LVN_GETDISPINFOW = LVN_FIRST - 77,
1231 	}
1232 	
1233 	
1234 	enum: UINT
1235 	{
1236 		LVCF_FMT = 0x0001,
1237 		LVCF_WIDTH = 0x0002,
1238 		LVCF_TEXT = 0x0004,
1239 		LVCF_SUBITEM = 0x0008,
1240 	}
1241 	
1242 	
1243 	enum: int
1244 	{
1245 		LVCFMT_LEFT = 0x0000,
1246 		LVCFMT_RIGHT = 0x0001,
1247 		LVCFMT_CENTER = 0x0002,
1248 		LVCFMT_JUSTIFYMASK = 0x0003,
1249 	}
1250 	
1251 	
1252 	enum: UINT
1253 	{
1254 		LVIF_TEXT = 0x0001,
1255 		LVIF_IMAGE = 0x0002,
1256 		LVIF_PARAM = 0x0004,
1257 		LVIF_STATE = 0x0008,
1258 	}
1259 	
1260 	
1261 	enum: UINT
1262 	{
1263 		LVIS_FOCUSED = 0x0001,
1264 		LVIS_SELECTED = 0x0002,
1265 		LVIS_CUT = 0x0004,
1266 		LVIS_DROPHILITED = 0x0008,
1267 	}
1268 	
1269 	
1270 	enum: int
1271 	{
1272 		LVA_DEFAULT = 0x0000,
1273 		LVA_ALIGNLEFT = 0x0001,
1274 		LVA_ALIGNTOP = 0x0002,
1275 		LVA_SNAPTOGRID = 0x0005,
1276 	}
1277 	
1278 	
1279 	enum: int
1280 	{
1281 		LVIR_BOUNDS = 0,
1282 		LVIR_ICON = 1,
1283 		LVIR_LABEL = 2,
1284 		LVIR_SELECTBOUNDS = 3,
1285 	}
1286 	
1287 	
1288 	enum: UINT
1289 	{
1290 		LVS_ALIGNTOP = 0x0000,
1291 		LVS_ALIGNLEFT = 0x0800,
1292 		
1293 		LVS_ICON = 0x0000,
1294 		LVS_REPORT = 0x0001,
1295 		LVS_SMALLICON = 0x0002,
1296 		LVS_LIST = 0x0003,
1297 		LVS_SINGLESEL = 0x0004,
1298 		LVS_SHOWSELALWAYS = 0x0008,
1299 		LVS_SORTASCENDING = 0x0010,
1300 		LVS_SORTDESCENDING = 0x0020,
1301 		LVS_SHAREIMAGELISTS = 0x0040,
1302 		LVS_NOLABELWRAP = 0x0080,
1303 		LVS_AUTOARRANGE = 0x0100,
1304 		LVS_EDITLABELS = 0x0200,
1305 		LVS_OWNERDATA = 0x1000,
1306 		LVS_NOSCROLL = 0x2000,
1307 	}
1308 	
1309 	
1310 	enum: DWORD
1311 	{
1312 		LVS_EX_GRIDLINES = 0x00000001,
1313 		LVS_EX_SUBITEMIMAGES = 0x00000002,
1314 		LVS_EX_CHECKBOXES = 0x00000004,
1315 		LVS_EX_TRACKSELECT = 0x00000008,
1316 		LVS_EX_HEADERDRAGDROP = 0x00000010,
1317 		LVS_EX_FULLROWSELECT = 0x00000020,
1318 		LVS_EX_ONECLICKACTIVATE = 0x00000040,
1319 		LVS_EX_TWOCLICKACTIVATE = 0x00000080,
1320 		
1321 		// IE4+
1322 		LVS_EX_FLATSB = 0x00000100,
1323 		LVS_EX_REGIONAL = 0x00000200,
1324 		LVS_EX_INFOTIP = 0x00000400,
1325 		LVS_EX_UNDERLINEHOT = 0x00000800,
1326 		LVS_EX_UNDERLINECOLD = 0x00001000,
1327 		LVS_EX_MULTIWORKAREAS = 0x00002000,
1328 	}
1329 	
1330 	
1331 	enum
1332 	{
1333 		LVSIL_NORMAL = 0,
1334 		LVSIL_SMALL = 1,
1335 		LVSIL_STATE = 2,
1336 	}
1337 	
1338 	
1339 	enum
1340 	{
1341 		I_IMAGECALLBACK = -1,
1342 	}
1343 	
1344 	
1345 	enum: UINT
1346 	{
1347 		TCM_FIRST = 0x1300,
1348 		
1349 		TCM_SETITEMA = TCM_FIRST + 6,
1350 		TCM_INSERTITEMA = TCM_FIRST + 7,
1351 		TCM_DELETEITEM = TCM_FIRST + 8,
1352 		TCM_DELETEALLITEMS = TCM_FIRST + 9,
1353 		TCM_GETITEMRECT = TCM_FIRST + 10,
1354 		TCM_GETCURSEL = TCM_FIRST + 11,
1355 		TCM_SETCURSEL = TCM_FIRST + 12,
1356 		TCM_SETITEMEXTRA = TCM_FIRST + 14,
1357 		TCM_ADJUSTRECT = TCM_FIRST + 40,
1358 		TCM_SETITEMSIZE = TCM_FIRST + 41,
1359 		TCM_SETPADDING = TCM_FIRST + 43,
1360 		TCM_GETROWCOUNT = TCM_FIRST + 44,
1361 		TCM_SETTOOLTIPS = TCM_FIRST + 46,
1362 		TCM_SETITEMW = TCM_FIRST + 61,
1363 		TCM_INSERTITEMW = TCM_FIRST + 62,
1364 	}
1365 	
1366 	
1367 	enum: UINT
1368 	{
1369 		TCIF_TEXT = 0x0001,
1370 		TCIF_IMAGE = 0x0002,
1371 		TCIF_RTLREADING = 0x0004,
1372 		TCIF_PARAM = 0x0008,
1373 	}
1374 	
1375 	
1376 	enum: DWORD
1377 	{
1378 		TCS_FORCEICONLEFT = 0x0010,
1379 		TCS_FORCELABELLEFT = 0x0020,
1380 		TCS_TABS = 0x0000,
1381 		TCS_BUTTONS = 0x0100,
1382 		TCS_SINGLELINE = 0x0000,
1383 		TCS_MULTILINE = 0x0200,
1384 		TCS_RIGHTJUSTIFY = 0x0000,
1385 		TCS_FIXEDWIDTH = 0x0400,
1386 		TCS_RAGGEDRIGHT = 0x0800,
1387 		TCS_FOCUSONBUTTONDOWN = 0x1000,
1388 		TCS_OWNERDRAWFIXED = 0x2000,
1389 		TCS_TOOLTIPS = 0x4000,
1390 		TCS_FOCUSNEVER = 0x8000,
1391 		
1392 		// IE3+
1393 		TCS_SCROLLOPPOSITE = 0x0001,
1394 		TCS_BOTTOM = 0x0002,
1395 		TCS_RIGHT = 0x0002,
1396 		TCS_MULTISELECT = 0x0004,
1397 		TCS_HOTTRACK = 0x0040,
1398 		TCS_VERTICAL = 0x0080,
1399 		
1400 		// IE4+
1401 		TCS_FLATBUTTONS = 0x0008,
1402 	}
1403 	
1404 	
1405 	enum: UINT
1406 	{
1407 		TCN_FIRST = cast(UINT)-550,
1408 		
1409 		TCN_SELCHANGE = TCN_FIRST - 1,
1410 		TCN_SELCHANGING = TCN_FIRST - 2,
1411 	}
1412 	
1413 	
1414 	enum
1415 	{
1416 		HTERROR = -2,
1417 		HTTRANSPARENT = -1,
1418 		HTNOWHERE = 0,
1419 		HTCLIENT = 1,
1420 		HTCAPTION = 2,
1421 		HTSYSMENU = 3,
1422 		HTGROWBOX = 4,
1423 		HTMENU = 5,
1424 		HTHSCROLL = 6,
1425 		HTVSCROLL = 7,
1426 		HTMINBUTTON = 8,
1427 		HTMAXBUTTON = 9,
1428 		HTLEFT = 10,
1429 		HTRIGHT = 11,
1430 		HTTOP = 12,
1431 		HTTOPLEFT = 13,
1432 		HTTOPRIGHT = 14,
1433 		HTBOTTOM = 15,
1434 		HTBOTTOMLEFT = 16,
1435 		HTBOTTOMRIGHT = 17,
1436 		HTBORDER = 18,
1437 		HTOBJECT = 19,
1438 		HTCLOSE = 20,
1439 		HTHELP = 21,
1440 		HTSIZE = HTGROWBOX,
1441 		HTREDUCE = HTMINBUTTON,
1442 		HTZOOM = HTMAXBUTTON,
1443 		HTSIZEFIRST = HTLEFT,
1444 		HTSIZELAST = HTBOTTOMRIGHT,
1445 	}
1446 	
1447 	
1448 	enum
1449 	{
1450 		WVR_VALIDRECTS = 0x0400,
1451 	}
1452 	
1453 	
1454 	enum: UINT
1455 	{
1456 		NIF_MESSAGE = 0x00000001,
1457 		NIF_ICON = 0x00000002,
1458 		NIF_TIP = 0x00000004,
1459 	}
1460 	
1461 	
1462 	enum: DWORD
1463 	{
1464 		NIM_ADD = 0x00000000,
1465 		NIM_MODIFY = 0x00000001,
1466 		NIM_DELETE = 0x00000002,
1467 	}
1468 	
1469 	
1470 	enum: DWORD
1471 	{
1472 		VER_PLATFORM_WIN32s = 0,
1473 		VER_PLATFORM_WIN32_WINDOWS = 1,
1474 		VER_PLATFORM_WIN32_NT = 2,
1475 		VER_PLATFORM_X64_WINDOWS = 3
1476 	}
1477 	
1478 	
1479 	enum: UINT
1480 	{
1481 		SIF_RANGE = 0x0001,
1482 		SIF_PAGE = 0x0002,
1483 		SIF_POS = 0x0004,
1484 		SIF_DISABLENOSCROLL = 0x0008,
1485 		SIF_ALL = 23,
1486 	}
1487 	
1488 	
1489 	enum: int
1490 	{
1491 		SM_SWAPBUTTON = 23,
1492 		
1493 		SM_CXFRAME = 32,
1494 		SM_CYFRAME = 33,
1495 		
1496 		SM_CXSMICON = 49,
1497 		SM_CYSMICON = 50,
1498 		
1499 		SM_CYSMCAPTION = 51,
1500 		
1501 		SM_CXSIZEFRAME = SM_CXFRAME,
1502 		SM_CYSIZEFRAME = SM_CYFRAME,
1503 		
1504 		SM_CYMENU = 15,
1505 		
1506 		SM_CXVSCROLL = 2,
1507 		SM_CYHSCROLL = 3,
1508 	}
1509 	
1510 	
1511 	enum: UINT
1512 	{
1513 		DFC_SCROLL = 3,
1514 	}
1515 	
1516 	
1517 	enum: UINT
1518 	{
1519 		DFCS_SCROLLSIZEGRIP = 0x0008,
1520 	}
1521 	
1522 	
1523 	enum: UINT
1524 	{
1525 		LR_LOADFROMFILE = 0x0010,
1526 		LR_DEFAULTSIZE = 0x0040,
1527 		LR_COPYFROMRESOURCE = 0x4000,
1528 		LR_SHARED = 0x8000,
1529 	}
1530 	
1531 	
1532 	enum: COLORREF
1533 	{
1534 		CLR_INVALID = 0xFFFFFFFF,
1535 		CLR_NONE = CLR_INVALID,
1536 	}
1537 	
1538 	
1539 	enum: UINT
1540 	{
1541 		DT_TOP = 0x00000000,
1542 		DT_LEFT = 0x00000000,
1543 		DT_CENTER = 0x00000001,
1544 		DT_RIGHT = 0x00000002,
1545 		DT_VCENTER = 0x00000004,
1546 		DT_BOTTOM = 0x00000008,
1547 		DT_WORDBREAK = 0x00000010,
1548 		DT_SINGLELINE = 0x00000020,
1549 		DT_EXPANDTABS = 0x00000040,
1550 		DT_TABSTOP = 0x00000080,
1551 		DT_NOCLIP = 0x00000100,
1552 		DT_EXTERNALLEADING = 0x00000200,
1553 		DT_CALCRECT = 0x00000400,
1554 		DT_NOPREFIX = 0x00000800,
1555 		DT_INTERNAL = 0x00001000,
1556 		DT_EDITCONTROL = 0x00002000,
1557 		DT_PATH_ELLIPSIS = 0x00004000,
1558 		DT_END_ELLIPSIS = 0x00008000,
1559 		DT_MODIFYSTRING = 0x00010000,
1560 		DT_RTLREADING = 0x00020000,
1561 		DT_WORD_ELLIPSIS = 0x00040000,
1562 	}
1563 	
1564 	
1565 	enum: UINT
1566 	{
1567 		CF_TEXT = 1,
1568 		CF_BITMAP = 2,
1569 		CF_METAFILEPICT = 3,
1570 		CF_SYLK = 4,
1571 		CF_DIF = 5,
1572 		CF_TIFF = 6,
1573 		CF_OEMTEXT = 7,
1574 		CF_DIB = 8,
1575 		CF_PALETTE = 9,
1576 		CF_PENDATA = 10,
1577 		CF_RIFF = 11,
1578 		CF_WAVE = 12,
1579 		CF_UNICODETEXT = 13,
1580 		CF_ENHMETAFILE = 14,
1581 		CF_HDROP = 15,
1582 		CF_LOCALE = 16,
1583 	}
1584 	
1585 	
1586 	enum: UINT
1587 	{
1588 		BIF_RETURNONLYFSDIRS = 0x0001,
1589 		BIF_NEWDIALOGSTYLE = 0x0040,
1590 		BIF_NONEWFOLDERBUTTON = 0x0200, // shell32.dll 6.0+
1591 	}
1592 	
1593 	
1594 	enum
1595 	{
1596 		TRANSPARENT = 1,
1597 		OPAQUE = 2,
1598 	}
1599 	
1600 	
1601 	enum: UINT
1602 	{
1603 		ETO_OPAQUE = 0x0002,
1604 		ETO_CLIPPED = 0x0004,
1605 	}
1606 	
1607 	
1608 	enum: UINT
1609 	{
1610 		PS_SOLID = 0,
1611 		PS_DASH = 1,
1612 		PS_DOT = 2,
1613 		PS_DASHDOT = 3,
1614 		PS_DASHDOTDOT = 4,
1615 		PS_NULL = 5,
1616 		PS_INSIDEFRAME = 6,
1617 	}
1618 	
1619 	
1620 	enum: UINT
1621 	{
1622 		IMAGE_BITMAP = 0,
1623 		IMAGE_ICON = 1,
1624 		IMAGE_CURSOR = 2,
1625 	}
1626 	
1627 	
1628 	enum LPCSTR IDI_HAND = cast(LPCSTR)32513;
1629 	enum LPCSTR IDI_QUESTION = cast(LPCSTR)32514;
1630 	enum LPCSTR IDI_EXCLAMATION = cast(LPCSTR)32515;
1631 	enum LPCSTR IDI_ASTERISK = cast(LPCSTR)32516;
1632 	enum LPCSTR IDI_INFORMATION = IDI_ASTERISK;
1633 	
1634 	
1635 	enum LPCSTR RT_STRING = cast(LPCSTR)6;
1636 	
1637 	
1638 	enum: LONG
1639 	{
1640 		HS_HORIZONTAL = 0,
1641 		HS_VERTICAL = 1,
1642 		HS_FDIAGONAL = 2,
1643 		HS_BDIAGONAL = 3,
1644 		HS_CROSS = 4,
1645 		HS_DIAGCROSS = 5,
1646 	}
1647 	
1648 	
1649 	enum: DWORD
1650 	{
1651 		LOAD_LIBRARY_AS_DATAFILE = 0x00000002,
1652 	}
1653 	
1654 	
1655 	enum: DWORD
1656 	{
1657 		// IE3+
1658 		ICC_LISTVIEW_CLASSES = 0x00000001,
1659 		ICC_TREEVIEW_CLASSES = 0x00000002,
1660 		ICC_BAR_CLASSES = 0x00000004, // tool/status/track
1661 		ICC_TAB_CLASSES = 0x00000008,
1662 		ICC_UPDOWN_CLASS = 0x00000010,
1663 		ICC_PROGRESS_CLASS = 0x00000020,
1664 		ICC_HOTKEY_CLASS = 0x00000040,
1665 		ICC_ANIMATE_CLASS = 0x00000080,
1666 		ICC_WIN95_CLASSES = 0x000000FF,
1667 		ICC_DATE_CLASSES = 0x00000100,
1668 		ICC_USEREX_CLASSES = 0x00000200,
1669 		ICC_COOL_CLASSES = 0x00000400,
1670 		
1671 		ICC_STANDARD_CLASSES = 0x00004000,
1672 		
1673 		// IE4+
1674 		ICC_INTERNET_CLASSES = 0x00000800,
1675 		ICC_PAGESCROLLER_CLASS = 0x00001000,
1676 		ICC_NATIVEFNTCTL_CLASS = 0x00002000,
1677 	}
1678 	
1679 	
1680 	enum: UINT
1681 	{
1682 		PBM_SETRANGE = WM_USER + 1,
1683 		PBM_SETPOS = WM_USER + 2,
1684 		PBM_DELTAPOS = WM_USER + 3,
1685 		PBM_SETSTEP = WM_USER + 4,
1686 		PBM_STEPIT = WM_USER + 5,
1687 	}
1688 	
1689 	
1690 	enum DWORD MAX_COMPUTERNAME_LENGTH = 15;
1691 	
1692 	enum DWORD LF_FACESIZE = 32;
1693 	
1694 	
1695 	alias HANDLE HIMAGELIST;
1696 	
1697 	
1698 	enum: UINT
1699 	{
1700 		ILD_NORMAL = 0,
1701 	}
1702 	
1703 	
1704 	enum: UINT
1705 	{
1706 		//ILC_COLOR = ,
1707 		ILC_COLOR4 = 0x0004,
1708 		ILC_COLOR8 = 0x0008,
1709 		ILC_COLOR16 = 0x0010,
1710 		ILC_COLOR24 = 0x0018,
1711 		ILC_COLOR32 = 0x0020,
1712 		
1713 		ILC_MASK = 0x0001,
1714 	}
1715 	
1716 	
1717 	// Rich edit.
1718 	alias DWORD function(/+ DWORD_PTR +/ DWORD dwCookie, LPBYTE pbBuff, LONG cb, LONG* pcb) EDITSTREAMCALLBACK;
1719 	
1720 	
1721 	alias DWORD LCID;
1722 	
1723 	
1724 	struct WINDOWPOS
1725 	{
1726 		HWND hwnd;
1727 		HWND hwndInsertAfter;
1728 		int  x;
1729 		int  y;
1730 		int  cx;
1731 		int  cy;
1732 		UINT flags;                
1733 	}
1734 	alias WINDOWPOS* LPWINDOWPOS;
1735 	alias WINDOWPOS* PWINDOWPOS;
1736 	
1737 	
1738 	struct WNDCLASSW
1739 	{
1740 		UINT style;
1741 		WNDPROC lpfnWndProc;
1742 		int cbClsExtra;
1743 		int cbWndExtra;
1744 		HANDLE hInstance;
1745 		HICON hIcon;
1746 		HCURSOR hCursor;
1747 		HBRUSH hbrBackground;
1748 		LPCWSTR lpszMenuName;
1749 		LPCWSTR lpszClassName;
1750 	}
1751 	alias WNDCLASSW* LPWNDCLASSW;
1752 	
1753 	
1754 	struct OSVERSIONINFOA
1755 	{
1756 		DWORD dwOSVersionInfoSize;
1757 		DWORD dwMajorVersion;
1758 		DWORD dwMinorVersion;
1759 		DWORD dwBuildNumber;
1760 		DWORD dwPlatformId;
1761 		CHAR[128] szCSDVersion;
1762 	}
1763 	alias OSVERSIONINFOA* LPOSVERSIONINFOA;
1764 	
1765 	
1766 	const HWND HWND_MESSAGE = cast(HWND)-3; // Win2000/XP only.
1767 	
1768 	
1769 	struct NOTIFYICONDATA
1770 	{
1771 		 DWORD cbSize; 
1772 		 HWND hWnd; 
1773 		 UINT uID; 
1774 		 UINT uFlags; 
1775 		 UINT uCallbackMessage; 
1776 		 HICON hIcon; 
1777 		 char[64] szTip; 
1778 	}
1779 	alias NOTIFYICONDATA* PNOTIFYICONDATA;
1780 	
1781 	
1782 	// Unaligned!
1783 	struct SHITEMID
1784 	{
1785 		align(1):
1786 		USHORT cb; // Size including cb.
1787 		BYTE[1] abID;
1788 	}
1789 	alias SHITEMID* PSHITEMID;
1790 	alias SHITEMID* LPSHITEMID;
1791 	alias SHITEMID* LPCSHITEMID;
1792 	
1793 	
1794 	struct ITEMIDLIST
1795 	{
1796 		SHITEMID mkid;
1797 	}
1798 	alias ITEMIDLIST* PITEMIDLIST;
1799 	alias ITEMIDLIST* LPITEMIDLIST;
1800 	alias ITEMIDLIST* LPCITEMIDLIST;
1801 	
1802 	
1803 	alias int function(HWND hwnd, UINT uMsg, LPARAM lParam, LPARAM lpData) BFFCALLBACK;
1804 	
1805 	
1806 	struct BROWSEINFOA
1807 	{
1808 		HWND hwndOwner;
1809 		LPCITEMIDLIST pidlRoot;
1810 		LPSTR pszDisplayName;
1811 		LPCSTR lpszTitle;
1812 		UINT ulFlags;
1813 		BFFCALLBACK lpfn;
1814 		LPARAM lParam;
1815 		int iImage;
1816 	}
1817 	alias BROWSEINFOA* PBROWSEINFOA;
1818 	alias BROWSEINFOA* LPBROWSEINFOA;
1819 	
1820 	
1821 	struct BROWSEINFOW
1822 	{
1823 		HWND hwndOwner;
1824 		LPCITEMIDLIST pidlRoot;
1825 		LPWSTR pszDisplayName;
1826 		LPCWSTR lpszTitle;
1827 		UINT ulFlags;
1828 		BFFCALLBACK lpfn;
1829 		LPARAM lParam;
1830 		int iImage;
1831 	}
1832 	alias BROWSEINFOW* PBROWSEINFOW;
1833 	alias BROWSEINFOW* LPBROWSEINFOW;
1834 	
1835 	
1836 	struct LOGBRUSH
1837 	{
1838 		UINT lbStyle;
1839 		COLORREF lbColor;
1840 		LONG lbHatch;
1841 	}
1842 	alias LOGBRUSH* LPLOGBRUSH;
1843 	
1844 	
1845 	struct DRAWTEXTPARAMS
1846 	{ 
1847 		UINT cbSize; 
1848 		int iTabLength; 
1849 		int iLeftMargin; 
1850 		int iRightMargin; 
1851 		UINT uiLengthDrawn; 
1852 	}
1853 	alias DRAWTEXTPARAMS* LPDRAWTEXTPARAMS;
1854 	
1855 	
1856 	struct NMHDR
1857 	{ 
1858 		HWND hwndFrom;
1859 		UINT idFrom;
1860 		UINT code;
1861 	}
1862 	alias NMHDR* LPNMHDR;
1863 	
1864 	
1865 	struct NMCUSTOMDRAW
1866 	{
1867 		NMHDR hdr;
1868 		DWORD dwDrawStage;
1869 		HDC hdc;
1870 		RECT rc;
1871 		/+ DWORD_PTR +/ DWORD dwItemSpec;
1872 		UINT uItemState;
1873 		LPARAM lItemlParam;
1874 	}
1875 	alias NMCUSTOMDRAW* LPNMCUSTOMDRAW;
1876 	
1877 	
1878 	struct NMTVCUSTOMDRAW
1879 	{
1880 		NMCUSTOMDRAW nmcd;
1881 		COLORREF clrText;
1882 		COLORREF clrTextBk;
1883 		int iLevel; // IE4+
1884 	}
1885 	alias NMTVCUSTOMDRAW* LPNMTVCUSTOMDRAW;
1886 	
1887 	
1888 	struct NM_LISTVIEW
1889 	{
1890 		NMHDR hdr;
1891 		int iItem;
1892 		int iSubItem;
1893 		UINT uNewState;
1894 		UINT uOldState;
1895 		UINT uChanged;
1896 		POINT ptAction;
1897 		LPARAM lParam;
1898 	}
1899 	
1900 	
1901 	struct LVITEMA
1902 	{
1903 		UINT mask;
1904 		int iItem;
1905 		int iSubItem;
1906 		UINT state;
1907 		UINT stateMask;
1908 		LPSTR pszText;
1909 		int cchTextMax;
1910 		int iImage;
1911 		LPARAM lParam;
1912 	}
1913 	alias LVITEMA* LPLVITEMA;
1914 	alias LVITEMA* PLVITEMA;
1915 	alias LVITEMA LV_ITEMA;
1916 	alias LVITEMA* LPLV_ITEMA;
1917 	alias LVITEMA* PLV_ITEMA;
1918 	
1919 	
1920 	struct LVITEMW
1921 	{
1922 		UINT mask;
1923 		int iItem;
1924 		int iSubItem;
1925 		UINT state;
1926 		UINT stateMask;
1927 		LPWSTR pszText;
1928 		int cchTextMax;
1929 		int iImage;
1930 		LPARAM lParam;
1931 	}
1932 	alias LVITEMW* LPLVITEMW;
1933 	alias LVITEMW* PLVITEMW;
1934 	alias LVITEMW LV_ITEMW;
1935 	alias LVITEMW* LPLV_ITEMW;
1936 	alias LVITEMW* PLV_ITEMW;
1937 	
1938 	
1939 	struct LVDISPINFOA
1940 	{
1941 		NMHDR hdr;
1942 		LVITEMA item;
1943 	}
1944 	alias LVDISPINFOA* LPLVDISPINFOA;
1945 	alias LVDISPINFOA* PLVDISPINFOA;
1946 	alias LVDISPINFOA LV_DISPINFOA;
1947 	alias LVDISPINFOA* LPLV_DISPINFOA;
1948 	alias LVDISPINFOA* PLV_DISPINFOA;
1949 	
1950 	
1951 	struct LVDISPINFOW
1952 	{
1953 		NMHDR hdr;
1954 		LVITEMW item;
1955 	}
1956 	alias LVDISPINFOW* LPLVDISPINFOW;
1957 	alias LVDISPINFOW* PLVDISPINFOW;
1958 	alias LVDISPINFOW LV_DISPINFOW;
1959 	alias LVDISPINFOW* LPLV_DISPINFOW;
1960 	alias LVDISPINFOW* PLV_DISPINFOW;
1961 	
1962 	
1963 	struct LVCOLUMNA
1964 	{
1965 		UINT mask;
1966 		int fmt;
1967 		int cx;
1968 		LPSTR pszText;
1969 		int cchTextMax;
1970 		int iSubItem;
1971 	}
1972 	alias LVCOLUMNA* LPLVCOLUMNA;
1973 	alias LVCOLUMNA* PLVCOLUMNA;
1974 	alias LVCOLUMNA LV_COLUMNA;
1975 	alias LVCOLUMNA* LPLV_COLUMNA;
1976 	alias LVCOLUMNA* PLV_COLUMNA;
1977 	
1978 	
1979 	struct LVCOLUMNW
1980 	{
1981 		UINT mask;
1982 		int fmt;
1983 		int cx;
1984 		LPWSTR pszText;
1985 		int cchTextMax;
1986 		int iSubItem;
1987 	}
1988 	alias LVCOLUMNW* LPLVCOLUMNW;
1989 	alias LVCOLUMNW* PLVCOLUMNW;
1990 	alias LVCOLUMNW LV_COLUMNW;
1991 	alias LVCOLUMNW* LPLV_COLUMNW;
1992 	alias LVCOLUMNW* PLV_COLUMNW;
1993 	
1994 	
1995 	struct TBBUTTON
1996 	{
1997 		int iBitmap;
1998 		int idCommand;
1999 		BYTE fsState;
2000 		BYTE fsStyle;
2001 		BYTE[2] bReserved;
2002 		DWORD dwData;
2003 		int iString;
2004 	}
2005 	alias TBBUTTON* PTBBUTTON, LPTBBUTTON, LPCTBBUTTON;
2006 	
2007 	
2008 	struct NMTOOLBARA
2009 	{
2010 		NMHDR hdr;
2011 		int iItem;
2012 		TBBUTTON tbButton;
2013 		int cchText;
2014 		LPSTR pszText;
2015 		RECT rcButton;
2016 	}
2017 	alias NMTOOLBARA* LPNMTOOLBARA;
2018 	
2019 	
2020 	struct NMTOOLBARW
2021 	{
2022 		NMHDR hdr;
2023 		int iItem;
2024 		TBBUTTON tbButton;
2025 		int cchText;
2026 		LPWSTR pszText;
2027 		RECT rcButton;
2028 	}
2029 	alias NMTOOLBARW* LPNMTOOLBARW;
2030 	
2031 	
2032 	enum: BYTE
2033 	{
2034 		TBSTYLE_BUTTON = 0x00,
2035 		TBSTYLE_SEP = 0x01,
2036 		TBSTYLE_CHECK = 0x02,
2037 		TBSTYLE_GROUP = 0x04,
2038 		TBSTYLE_DROPDOWN = 0x08,
2039 		TBSTYLE_AUTOSIZE = 0x10,
2040 		
2041 		/+
2042 		// The following are too big for TBBUTTON.fsStyle
2043 		TBSTYLE_TOOLTIPS = 0x0100,
2044 		TBSTYLE_WRAPABLE = 0x0200,
2045 		TBSTYLE_ALTDRAG = 0x0400,
2046 		+/
2047 	}
2048 	
2049 	
2050 	enum: BYTE
2051 	{
2052 		//BTNS_AUTOSIZE = TBSTYLE_AUTOSIZE,
2053 		
2054 		BTNS_WHOLEDROPDOWN = 0x80,
2055 	}
2056 	
2057 	
2058 	enum: BYTE
2059 	{
2060 		TBSTATE_CHECKED = 0x01,
2061 		TBSTATE_PRESSED = 0x02,
2062 		TBSTATE_ENABLED = 0x04,
2063 		TBSTATE_HIDDEN = 0x08,
2064 		TBSTATE_INDETERMINATE = 0x10,
2065 		TBSTATE_WRAP = 0x20,
2066 		TBSTATE_ELLIPSES = 0x40,
2067 		TBSTATE_MARKED = 0x80,
2068 	}
2069 	
2070 	
2071 	enum: LRESULT
2072 	{
2073 		TBDDRET_DEFAULT = 0,
2074 		TBDDRET_NODEFAULT = 1,
2075 		TBDDRET_TREATPRESSED = 2,
2076 	}
2077 	
2078 	
2079 	enum: UINT
2080 	{
2081 		TB_SETSTATE = WM_USER + 17,
2082 		TB_ADDBUTTONSA = WM_USER + 20,
2083 		TB_INSERTBUTTONA = WM_USER + 21,
2084 		TB_DELETEBUTTON = WM_USER + 22,
2085 		TB_GETITEMRECT = WM_USER + 29,
2086 		TB_BUTTONSTRUCTSIZE = WM_USER + 30,
2087 		TB_SETBUTTONSIZE = WM_USER + 31,
2088 		TB_AUTOSIZE = WM_USER + 33,
2089 		TB_SETIMAGELIST = WM_USER + 48,
2090 		TB_INSERTBUTTONW = WM_USER + 67,
2091 		TB_ADDBUTTONSW = WM_USER + 68,
2092 		TB_SETPADDING = WM_USER + 87,
2093 	}
2094 	
2095 	
2096 	enum: UINT
2097 	{
2098 		TBN_FIRST = cast(UINT)-700,
2099 		TBN_DROPDOWN = TBN_FIRST - 10,
2100 	}
2101 	
2102 	
2103 	struct TVITEMA
2104 	{
2105 		UINT mask;
2106 		HTREEITEM hItem;
2107 		UINT state;
2108 		UINT stateMask;
2109 		LPSTR pszText;
2110 		int cchTextMax;
2111 		int iImage;
2112 		int iSelectedImage;
2113 		int cChildren;
2114 		LPARAM lParam;
2115 	}
2116 	alias TVITEMA* LPTVITEMA;
2117 	alias TVITEMA* PTVITEMA;
2118 	alias TVITEMA TV_ITEMA;
2119 	alias TVITEMA* LPTV_ITEMA;
2120 	alias TVITEMA* PTV_ITEMA;
2121 	
2122 	
2123 	struct TVITEMW
2124 	{
2125 		UINT mask;
2126 		HTREEITEM hItem;
2127 		UINT state;
2128 		UINT stateMask;
2129 		LPWSTR pszText;
2130 		int cchTextMax;
2131 		int iImage;
2132 		int iSelectedImage;
2133 		int cChildren;
2134 		LPARAM lParam;
2135 	}
2136 	alias TVITEMW* LPTVITEMW;
2137 	alias TVITEMW* PTVITEMW;
2138 	alias TVITEMW TV_ITEMW;
2139 	alias TVITEMW* LPTV_ITEMW;
2140 	alias TVITEMW* PTV_ITEMW;
2141 	
2142 	
2143 	struct TVHITTESTINFO
2144 	{
2145 		POINT pt;
2146 		UINT flags;
2147 		HTREEITEM hItem;
2148 	}
2149 	alias TVHITTESTINFO* LPTVHITTESTINFO;
2150 	
2151 	
2152 	struct TVINSERTSTRUCTA
2153 	{
2154 		HTREEITEM hParent;
2155 		HTREEITEM hInsertAfter;
2156 		TV_ITEMA item;
2157 	}
2158 	alias TVINSERTSTRUCTA* LPTVINSERTSTRUCTA;
2159 	alias TVINSERTSTRUCTA TV_INSERTSTRUCTA;
2160 	alias TVINSERTSTRUCTA* LPTV_INSERTSTRUCTA;
2161 	
2162 	
2163 	struct NMTREEVIEWA
2164 	{
2165 		NMHDR hdr;
2166 		UINT action;
2167 		TVITEMA itemOld;
2168 		TVITEMA itemNew;
2169 		POINT ptDrag;
2170 	}
2171 	alias NMTREEVIEWA* LPNMTREEVIEWA;
2172 	alias NMTREEVIEWA NM_TREEVIEW;
2173 	alias NMTREEVIEWA* LPNM_TREEVIEW;
2174 	
2175 	
2176 	struct NMTVDISPINFOA
2177 	{
2178 		NMHDR hdr;
2179 		TVITEMA item;
2180 	}
2181 	alias NMTVDISPINFOA* LPNMTVDISPINFOA;
2182 	alias NMTVDISPINFOA TV_DISPINFOA;
2183 	alias NMTVDISPINFOA* LPTV_DISPINFOA;
2184 	
2185 	
2186 	struct NMTVDISPINFOW
2187 	{
2188 		NMHDR hdr;
2189 		TVITEMW item;
2190 	}
2191 	alias NMTVDISPINFOW* LPNMTVDISPINFOW;
2192 	alias NMTVDISPINFOW TV_DISPINFOW;
2193 	alias NMTVDISPINFOW* LPTV_DISPINFOW;
2194 	
2195 	
2196 	struct TCITEMA
2197 	{
2198 		UINT mask;
2199 		UINT lpReserved1;
2200 		UINT lpReserved2;
2201 		LPSTR pszText;
2202 		int cchTextMax;
2203 		int iImage;
2204 		LPARAM lParam;
2205 	}
2206 	alias TCITEMA* LPTCITEMA;
2207 	alias TCITEMA TC_ITEMA;
2208 	alias TCITEMA* LPTC_ITEMA;
2209 	
2210 	
2211 	struct TCITEMW
2212 	{
2213 		UINT mask;
2214 		UINT lpReserved1;
2215 		UINT lpReserved2;
2216 		LPWSTR pszText;
2217 		int cchTextMax;
2218 		int iImage;
2219 		LPARAM lParam;
2220 	}
2221 	alias TCITEMW* LPTCITEMW;
2222 	alias TCITEMW TC_ITEMW;
2223 	alias TCITEMW* LPTC_ITEMW;
2224 	
2225 	
2226 	// Rich edit.
2227 	struct CHARRANGE
2228 	{
2229 		LONG cpMin; 
2230 		LONG cpMax; 
2231 	}
2232 	
2233 	
2234 	// Rich edit.
2235 	struct EDITSTREAM
2236 	{
2237 		/+ DWORD_PTR +/ DWORD dwCookie;
2238 		DWORD dwError;
2239 		EDITSTREAMCALLBACK pfnCallback;
2240 	}
2241 	
2242 	
2243 	// Rich edit.
2244 	struct CHARFORMAT2A
2245 	{
2246 		UINT cbSize;
2247 		DWORD dwMask;
2248 		DWORD dwEffects;
2249 		LONG yHeight;
2250 		LONG yOffset;
2251 		COLORREF crTextColor;
2252 		BYTE bCharSet;
2253 		BYTE bPitchAndFamily;
2254 		char[LF_FACESIZE] szFaceName;
2255 		WORD wWeight;
2256 		SHORT sSpacing;
2257 		COLORREF crBackColor;
2258 		LCID lcid;
2259 		DWORD dwReserved;
2260 		SHORT sStyle;
2261 		WORD wKerning;
2262 		BYTE bUnderlineType;
2263 		BYTE bAnimation;
2264 		BYTE bRevAuthor;
2265 		BYTE bReserved1;
2266 	}
2267 	static assert(CHARFORMAT2A.sizeof == 84);
2268 	
2269 	
2270 	// Rich edit.
2271 	struct ENLINK
2272 	{
2273 		NMHDR nmhdr;
2274 		UINT msg;
2275 		WPARAM wParam;
2276 		LPARAM lParam;
2277 		CHARRANGE chrg;
2278 	}
2279 	
2280 	
2281 	struct TEXTRANGEA
2282 	{
2283 		CHARRANGE chrg;
2284 		LPSTR lpstrText;
2285 	}
2286 	
2287 	
2288 	struct MENUITEMINFOA
2289 	{
2290 		UINT cbSize;
2291 		UINT fMask;
2292 		UINT fType;
2293 		UINT fState;
2294 		UINT wID;
2295 		HMENU hSubMenu;
2296 		HBITMAP hbmpChecked;
2297 		HBITMAP hbmpUnchecked;
2298 		DWORD dwItemData;
2299 		LPSTR dwTypeData;
2300 		UINT cch;
2301 		//HBITMAP hbmpItem;
2302 	}
2303 	alias MENUITEMINFOA* LPMENUITEMINFOA;
2304 	
2305 	
2306 	struct MENUITEMINFOW
2307 	{
2308 		UINT cbSize;
2309 		UINT fMask;
2310 		UINT fType;
2311 		UINT fState;
2312 		UINT wID;
2313 		HMENU hSubMenu;
2314 		HBITMAP hbmpChecked;
2315 		HBITMAP hbmpUnchecked;
2316 		DWORD dwItemData;
2317 		LPWSTR dwTypeData;
2318 		UINT cch;
2319 		//HBITMAP hbmpItem;
2320 	}
2321 	alias MENUITEMINFOW* LPMENUITEMINFOW;
2322 	
2323 	
2324 	struct SCROLLINFO
2325 	{
2326 		UINT cbSize;
2327 		UINT fMask;
2328 		int nMin;
2329 		int nMax;
2330 		UINT nPage;
2331 		int nPos;
2332 		int nTrackPos;
2333 	}
2334 	alias SCROLLINFO* LPSCROLLINFO;
2335 	
2336 	
2337 	struct OPENFILENAMEW
2338 	{
2339 		DWORD lStructSize;
2340 		HWND hwndOwner;
2341 		HINSTANCE hInstance;
2342 		LPCWSTR lpstrFilter;
2343 		LPWSTR lpstrCustomFilter;
2344 		DWORD nMaxCustFilter;
2345 		DWORD nFilterIndex;
2346 		LPWSTR lpstrFile;
2347 		DWORD nMaxFile;
2348 		LPWSTR lpstrFileTitle;
2349 		DWORD nMaxFileTitle;
2350 		LPCWSTR lpstrInitialDir;
2351 		LPCWSTR lpstrTitle;
2352 		DWORD Flags;
2353 		WORD nFileOffset;
2354 		WORD nFileExtension;
2355 		LPCWSTR lpstrDefExt;
2356 		LPARAM lCustData;
2357 		LPOFNHOOKPROC lpfnHook;
2358 		LPCWSTR lpTemplateName;
2359 	}
2360 	alias OPENFILENAMEW* LPOPENFILENAMEW;
2361 	
2362 	
2363 	alias UINT function(HWND hdlg, UINT uiMsg, WPARAM wParam, LPARAM lParam) LPCCHOOKPROC;
2364 	
2365 	
2366 	alias UINT function(HWND hdlg, UINT uiMsg, WPARAM wParam, LPARAM lParam) LPCFHOOKPROC;
2367 	
2368 	
2369 	alias BOOL function(HDC hdc, LPARAM lpData, int cchData) GRAYSTRINGPROC;
2370 	
2371 	
2372 	enum: DWORD
2373 	{
2374 		CC_RGBINIT = 0x00000001,
2375 		CC_FULLOPEN = 0x00000002,
2376 		CC_PREVENTFULLOPEN = 0x00000004,
2377 		CC_SHOWHELP = 0x00000008,
2378 		CC_ENABLEHOOK = 0x00000010,
2379 		CC_ENABLETEMPLATE = 0x00000020,
2380 		CC_ENABLETEMPLATEHANDLE = 0x00000040,
2381 		CC_SOLIDCOLOR = 0x00000080,
2382 		CC_ANYCOLOR = 0x00000100,
2383 	}
2384 	
2385 	
2386 	struct CHOOSECOLORA
2387 	{
2388 		DWORD lStructSize; 
2389 		HWND hwndOwner; 
2390 		HWND hInstance; 
2391 		COLORREF rgbResult; 
2392 		COLORREF* lpCustColors; 
2393 		DWORD Flags; 
2394 		LPARAM lCustData; 
2395 		LPCCHOOKPROC lpfnHook; 
2396 		LPCSTR lpTemplateName; 
2397 	}
2398 	alias CHOOSECOLORA* PCHOOSECOLORA;
2399 	alias CHOOSECOLORA* LPCHOOSECOLORA;
2400 	
2401 	
2402 	struct LOGFONTW
2403 	{
2404 		LONG lfHeight;
2405 		LONG lfWidth;
2406 		LONG lfEscapement;
2407 		LONG lfOrientation;
2408 		LONG lfWeight;
2409 		BYTE lfItalic;
2410 		BYTE lfUnderline;
2411 		BYTE lfStrikeOut;
2412 		BYTE lfCharSet;
2413 		BYTE lfOutPrecision;
2414 		BYTE lfClipPrecision;
2415 		BYTE lfQuality;
2416 		BYTE lfPitchAndFamily;
2417 		WCHAR[32] lfFaceName;
2418 	}
2419 	alias LOGFONTW* PLOGFONTW;
2420 	alias LOGFONTW* LPLOGFONTW;
2421 	
2422 	
2423 	struct NONCLIENTMETRICSA
2424 	{
2425 		UINT cbSize;
2426 		int iBorderWidth;
2427 		int iScrollWidth;
2428 		int iScrollHeight;
2429 		int iCaptionWidth;
2430 		int iCaptionHeight;
2431 		LOGFONTA lfCaptionFont;
2432 		int iSmCaptionWidth;
2433 		int iSmCaptionHeight;
2434 		LOGFONTA lfSmCaptionFont;
2435 		int iMenuWidth;
2436 		int iMenuHeight;
2437 		LOGFONTA lfMenuFont;
2438 		LOGFONTA lfStatusFont;
2439 		LOGFONTA lfMessageFont;
2440 	}
2441 	alias NONCLIENTMETRICSA LPNONCLIENTMETRICSA;
2442 	
2443 	
2444 	struct CHOOSEFONTW
2445 	{
2446 		align(1):
2447 		DWORD lStructSize;
2448 		HWND hwndOwner;
2449 		HDC hDC;
2450 		LPLOGFONTW lpLogFont;
2451 		INT iPointSize;
2452 		DWORD Flags;
2453 		DWORD rgbColors;
2454 		LPARAM lCustData;
2455 		LPCFHOOKPROC lpfnHook;
2456 		LPCWSTR lpTemplateName;
2457 		HINSTANCE hInstance;
2458 		LPWSTR lpszStyle;
2459 		WORD nFontType;
2460 		WORD ___MISSING_ALIGNMENT__;
2461 		INT nSizeMin;
2462 		INT nSizeMax;
2463 	}
2464 	alias CHOOSEFONTW* PCHOOSEFONTW;
2465 	alias CHOOSEFONTW* LPCHOOSEFONTW;
2466 	
2467 	
2468 	struct CHOOSEFONTA
2469 	{
2470 		align(1):
2471 		DWORD lStructSize;
2472 		HWND hwndOwner;
2473 		HDC hDC;
2474 		LPLOGFONTA lpLogFont;
2475 		INT iPointSize;
2476 		DWORD Flags;
2477 		DWORD rgbColors;
2478 		LPARAM lCustData;
2479 		LPCFHOOKPROC lpfnHook;
2480 		LPCSTR lpTemplateName;
2481 		HINSTANCE hInstance;
2482 		LPSTR lpszStyle;
2483 		WORD nFontType;
2484 		WORD ___MISSING_ALIGNMENT__;
2485 		INT nSizeMin;
2486 		INT nSizeMax;
2487 	}
2488 	alias CHOOSEFONTA* PCHOOSEFONTA;
2489 	alias CHOOSEFONTA* LPCHOOSEFONTA;
2490 	
2491 	
2492 	struct ICONINFO
2493 	{
2494 		BOOL fIcon;
2495 		DWORD xHotspot;
2496 		DWORD yHotspot;
2497 		HBITMAP hbmMask;
2498 		HBITMAP hbmColor;
2499 	}
2500 	alias ICONINFO* LPICONINFO;
2501 	alias ICONINFO* PICONINFO;
2502 	
2503 	
2504 	struct MINMAXINFO
2505 	{
2506 		POINT ptReserved;
2507 		POINT ptMaxSize;
2508 		POINT ptMaxPosition;
2509 		POINT ptMinTrackSize;
2510 		POINT ptMaxTrackSize;
2511 	}
2512 	alias MINMAXINFO* LPMINMAXINFO;
2513 	alias MINMAXINFO* PMINMAXINFO;
2514 	
2515 	
2516 	struct NCCALCSIZE_PARAMS
2517 	{
2518 		RECT[3] rgrc; 
2519 		PWINDOWPOS lppos; 
2520 	}
2521 	alias NCCALCSIZE_PARAMS* LPNCCALCSIZE_PARAMS;
2522 	
2523 	
2524 	struct CREATESTRUCTA
2525 	{
2526 		LPVOID lpCreateParams;
2527 		HINSTANCE hInstance;
2528 		HMENU hMenu;
2529 		HWND hwndParent;
2530 		int cy;
2531 		int cx;
2532 		int y;
2533 		int x;
2534 		LONG style;
2535 		LPCSTR lpszName;
2536 		LPCSTR lpszClass;
2537 		DWORD dwExStyle;
2538 	}
2539 	alias CREATESTRUCTA* LPCREATESTRUCTA;
2540 	
2541 	
2542 	struct ACTCTXW
2543 	{
2544 		ULONG cbSize;
2545 		DWORD dwFlags;
2546 		LPCWSTR lpSource;
2547 		USHORT wProcessorArchitecture;
2548 		LANGID wLangId;
2549 		LPCWSTR lpAssemblyDirectory;
2550 		LPCWSTR lpResourceName;
2551 		LPCWSTR lpApplicationName;
2552 		HMODULE hModule;
2553 	}
2554 	alias ACTCTXW* PACTCTXW;
2555 	alias ACTCTXW* LPACTCTXW;
2556 	
2557 	
2558 	struct HELPINFO
2559 	{
2560 		UINT cbSize;
2561 		int iContextType;
2562 		int iCtrlId;
2563 		HANDLE hItemHandle;
2564 		DWORD dwContextId;
2565 		POINT MousePos;
2566 	}
2567 	alias HELPINFO* LPHELPINFO;
2568 	
2569 	
2570 	struct TOOLINFOA
2571 	{
2572 		UINT cbSize;
2573 		UINT uFlags;
2574 		HWND hwnd;
2575 		UINT uId;
2576 		RECT rect;
2577 		HINSTANCE hinst;
2578 		LPSTR lpszText;
2579 	}
2580 	alias TOOLINFOA* PTOOLINFOA;
2581 	alias TOOLINFOA* LPTOOLINFOA;
2582 	
2583 	
2584 	struct TRACKMOUSEEVENT
2585 	{
2586 		DWORD cbSize;
2587 		DWORD dwFlags;
2588 		HWND hwndTrack;
2589 		DWORD dwHoverTime;
2590 	}
2591 	alias TRACKMOUSEEVENT* LPTRACKMOUSEEVENT;
2592 	
2593 	
2594 	struct STYLESTRUCT
2595 	{
2596 		DWORD styleOld;
2597 		DWORD styleNew;
2598 	}
2599 	alias STYLESTRUCT* LPSTYLESTRUCT;
2600 	
2601 	
2602 	//extern(C) DWORD MAKELONG(WORD wLow, WORD wHigh)
2603 	extern(C) DWORD MAKELONG(int wLow, int wHigh)
2604 	{
2605 		return cast(DWORD)cast(WORD)wLow | (cast(DWORD)cast(WORD)wHigh << 16);
2606 	}
2607 	
2608 	alias MAKELONG MAKELPARAM;
2609 	alias MAKELONG MAKEWPARAM;
2610 	alias MAKELONG MAKELRESULT;
2611 	
2612 	
2613 	enum int DLGWINDOWEXTRA = 30;
2614 	
2615 	
2616 	extern(C) COLORREF RGB(int r, int g , int b)
2617 	{
2618 		return cast(COLORREF)(cast(BYTE)r |
2619 			cast(WORD)(cast(BYTE)g << 8) |
2620 			cast(DWORD)(cast(BYTE)b << 16));
2621 	}
2622 	
2623 	
2624 	struct DRAWITEMSTRUCT
2625 	{
2626 		UINT CtlType;
2627 		UINT CtlID;
2628 		UINT itemID;
2629 		UINT itemAction;
2630 		UINT itemState;
2631 		HWND hwndItem;
2632 		HDC hDC;
2633 		RECT rcItem;
2634 		DWORD itemData;
2635 	}
2636 	alias DRAWITEMSTRUCT* LPDRAWITEMSTRUCT;
2637 	
2638 	
2639 	struct MEASUREITEMSTRUCT
2640 	{
2641 		UINT CtlType;
2642 		UINT CtlID;
2643 		UINT itemID;
2644 		UINT itemWidth;
2645 		UINT itemHeight;
2646 		DWORD itemData;
2647 	}
2648 	alias MEASUREITEMSTRUCT* LPMEASUREITEMSTRUCT;
2649 	
2650 	
2651 	struct ANIMATIONINFO
2652 	{
2653 		UINT cbSize;
2654 		int iMinAnimate;
2655 	}
2656 	
2657 	
2658 	struct APPBARDATA
2659 	{
2660 		DWORD cbSize;
2661 		HWND hWnd;
2662 		UINT uCallbackMessage;
2663 		UINT uEdge;
2664 		RECT rc;
2665 		LPARAM lParam; // message specific
2666 	}
2667 	alias APPBARDATA* PAPPBARDATA;
2668 	
2669 	
2670 	struct CLIENTCREATESTRUCT
2671 	{
2672 		HANDLE hWindowMenu;
2673 		UINT idFirstChild;
2674 	}
2675 	alias CLIENTCREATESTRUCT* LPCLIENTCREATESTRUCT;
2676 	
2677 	
2678 	struct MDICREATESTRUCTA
2679 	{
2680 		LPCSTR szClass;
2681 		LPCSTR szTitle;
2682 		HANDLE hOwner;
2683 		int x;
2684 		int y;
2685 		int cx;
2686 		int cy;
2687 		DWORD style;
2688 		LPARAM lParam;
2689 	}
2690 	alias MDICREATESTRUCTA* LPMDICREATESTRUCTA;
2691 	
2692 	
2693 	struct INITCOMMONCONTROLSEX
2694 	{
2695 		DWORD dwSize;
2696 		DWORD dwICC;
2697 	}
2698 	alias INITCOMMONCONTROLSEX* LPINITCOMMONCONTROLSEX;
2699 	alias INITCOMMONCONTROLSEX* PINITCOMMONCONTROLSEX;
2700 	
2701 	
2702 	struct DROPFILES
2703 	{
2704 		DWORD pFiles;
2705 		POINT pt;
2706 		BOOL fNC;
2707 		BOOL fWide;
2708 	}
2709 	alias DROPFILES* LPDROPFILES;
2710 	
2711 	
2712 	alias HANDLE HHOOK;
2713 	alias HANDLE HTHEME;
2714 	alias HANDLE HTREEITEM;
2715 	alias HANDLE HDROP;
2716 	alias HANDLE HMONITOR;
2717 	
2718 	
2719 	HCURSOR CopyCursor(HCURSOR pcur)
2720 	{
2721 		return cast(HCURSOR)CopyIcon(cast(HICON)pcur);
2722 	}
2723 	
2724 	
2725 	alias BOOL function(HMONITOR hMonitor, HDC hdcMonitor, LPRECT lprcMonitor, LPARAM dwData) MONITORENUMPROC;
2726 	
2727 	
2728 	struct MONITORINFO
2729 	{
2730 		DWORD cbSize;
2731 		RECT rcMonitor;
2732 		RECT rcWork;
2733 		DWORD dwFlags;
2734 	}
2735 	alias MONITORINFO* LPMONITORINFO;
2736 	
2737 	
2738 	enum: DWORD
2739 	{
2740 		MONITORINFOF_PRIMARY = 1,
2741 	}
2742 	
2743 	
2744 	enum: DWORD
2745 	{
2746 		MONITOR_DEFAULTTONULL = 0x00000000,
2747 		MONITOR_DEFAULTTOPRIMARY = 0x00000001,
2748 		MONITOR_DEFAULTTONEAREST = 0x00000002,
2749 	}
2750 	
2751 	
2752 	BOOL DrawIconEx(HDC hdc, int xLeft, int yTop, HICON hIcon, int cxWidth, int cyWidth, UINT istepIfAniCur, HBRUSH hbrFlickerFreeDraw, UINT diFlags);
2753 	BOOL DrawIcon(HDC hDC, int X, int Y, HICON hIcon);
2754 	BOOL SetWindowPos(HWND hWnd, HWND hWndInsertAfter, int X, int Y, int cx, int cy, UINT uFlags);
2755 	HWND GetCapture();
2756 	HWND SetCapture(HWND hWnd);
2757 	BOOL ReleaseCapture();
2758 	HMENU GetMenu(HWND hWnd);
2759 	BOOL IsChild(HWND hWndParent, HWND hWnd);
2760 	BOOL IsWindow(HWND hWnd);
2761 	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);
2762 	LRESULT SendMessageW(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam);
2763 	int MessageBoxW(HWND hWnd, LPCWSTR lpText, LPCWSTR lpCaption, UINT uType);
2764 	DWORD SetClassLongA(HWND hWnd, int nIndex, LONG dwNewLong);
2765 	DWORD GetClassLongA(HWND hWnd, int nIndex);
2766 	LONG SetWindowLongA(HWND hWnd, int nIndex, LONG dwNewLong);
2767 	LONG GetWindowLongA(HWND hWnd, int nIndex);
2768 	DWORD GetSysColor(int nIndex);
2769 	BOOL EnableWindow(HWND hWnd, BOOL bEnable);
2770 	BOOL IsWindowEnabled(HWND hWnd);
2771 	COLORREF GetTextColor(HDC hdc);
2772 	COLORREF SetTextColor(HDC hdc, COLORREF crColor);
2773 	HWND GetWindow(HWND hWnd, UINT uCmd);
2774 	DWORD GetWindowThreadProcessId(HWND hWnd, LPDWORD lpdwProcessId);
2775 	SHORT GetKeyState(int nVirtKey);
2776 	SHORT GetAsyncKeyState(int vKey);
2777 	HWND SetParent(HWND hWndChild, HWND hWndNewParent);
2778 	int CombineRgn(HRGN hrgnDest, HRGN hrgnSrc1, HRGN hrgnSrc2, int fnCombineMode);
2779 	BOOL EnumWindows(WNDENUMPROC lpEnumFunc, LPARAM lParam);
2780 	BOOL EnumChildWindows(HWND hWndParent, WNDENUMPROC lpEnumFunc, LPARAM lParam);
2781 	BOOL SetWindowTextA(HWND hWnd, LPCSTR lpString);
2782 	BOOL SetWindowTextW(HWND hWnd, LPCWSTR lpString);
2783 	int GetWindowTextLengthA(HWND hWnd);
2784 	int GetWindowTextLengthW(HWND hWnd);
2785 	int GetWindowTextA(HWND hWnd, LPSTR lpString, int nMaxCount);
2786 	int GetWindowTextW(HWND hWnd, LPWSTR lpString, int nMaxCount);
2787 	BOOL IsWindowVisible(HWND hWnd);
2788 	BOOL WaitMessage();
2789 	DWORD TlsAlloc();
2790 	BOOL TlsFree(DWORD dwTlsIndex);
2791 	LPVOID TlsGetValue(DWORD dwTlsIndex);
2792 	BOOL TlsSetValue(DWORD dwTlsIndex, LPVOID lpTlsValue);
2793 	BOOL BringWindowToTop(HWND hWnd);
2794 	UINT RegisterWindowMessageA(LPCSTR lpString);
2795 	HWND GetParent(HWND hWnd);
2796 	HWND GetDesktopWindow();
2797 	HWND GetNextDlgTabItem(HWND hDlg, HWND hCtl, BOOL bPrevious);
2798 	HBRUSH CreateSolidBrush(COLORREF crColor);
2799 	HBRUSH CreateHatchBrush(int fnStyle, COLORREF clrref);
2800 	int GetObjectA(HGDIOBJ hgdiobj, int cbBuffer, LPVOID lpvObject);
2801 	void InitCommonControls();
2802 	BOOL DestroyWindow(HWND hwnd);
2803 	ATOM RegisterClassExA(WNDCLASSEXA* lpwcx);
2804 	ATOM RegisterClassW(WNDCLASSW* lpWndClass);
2805 	HWND GetActiveWindow();
2806 	LRESULT DefDlgProcA(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lParam);
2807 	LRESULT DefDlgProcW(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lParam);
2808 	BOOL IsDialogMessageA(HWND hDlg, LPMSG lpMsg);
2809 	BOOL IsDialogMessageW(HWND hDlg, LPMSG lpMsg);
2810 	HBRUSH GetSysColorBrush(int nIndex);
2811 	BOOL PostMessageA(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam);
2812 	UINT SetTimer(HWND hWnd, UINT nIDEvent, UINT uElapse, TIMERPROC lpTimerFunc);
2813 	BOOL KillTimer(HWND hWnd, UINT uIDEvent);
2814 	LPSTR GetCommandLineA();
2815 	LPWSTR GetCommandLineW();
2816 	BOOL SetCurrentDirectoryW(LPCWSTR lpPathName);
2817 	DWORD GetCurrentDirectoryW(DWORD nBufferLength, LPWSTR lpBuffer);
2818 	BOOL GetComputerNameA(LPSTR lpBuffer, LPDWORD nSize);
2819 	BOOL GetComputerNameW(LPWSTR lpBuffer, LPDWORD nSize);
2820 	BOOL GetVersionExA(LPOSVERSIONINFOA lpVersionInformation);
2821 	UINT GetSystemDirectoryA(LPSTR lpBuffer, UINT uSize);
2822 	UINT GetSystemDirectoryW(LPWSTR lpBuffer, UINT uSize);
2823 	BOOL GetUserNameA(LPSTR lpBuffer, LPDWORD nSize); // advapi32.lib
2824 	BOOL GetUserNameW(LPWSTR lpBuffer, LPDWORD nSize); // advapi32.lib
2825 	DWORD GetEnvironmentVariableA(LPCSTR lpName, LPSTR lpBuffer, DWORD nSize);
2826 	DWORD GetEnvironmentVariableW(LPCWSTR lpName, LPWSTR lpBuffer, DWORD nSize);
2827 	DWORD ExpandEnvironmentStringsW(LPCWSTR lpSrc, LPWSTR lpDst, DWORD nSize);
2828 	DWORD GetLogicalDrives();
2829 	BOOL SetMenu(HWND hWnd, HMENU hMenu);
2830 	BOOL SetLayeredWindowAttributes(HWND hwnd, COLORREF crKey, BYTE bAlpha, DWORD dwFlags);
2831 	BOOL SystemParametersInfoA(UINT uiAction, UINT uiParam, PVOID pvParam, UINT fWinIni);
2832 	BOOL TrackMouseEvent(LPTRACKMOUSEEVENT lpEventTrack);
2833 	BOOL GetClassInfoA(HINSTANCE hInstance, LPCSTR lpClassName, LPWNDCLASSA lpWndClass);
2834 	BOOL GetClassInfoW(HINSTANCE hInstance, LPCWSTR lpClassName, LPWNDCLASSW lpWndClass);
2835 	LRESULT CallWindowProcA(WNDPROC lpPrevWndFunc, HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam);
2836 	LRESULT CallWindowProcW(WNDPROC lpPrevWndFunc, HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam);
2837 	BOOL OpenClipboard(HWND hWndNewOwner);
2838 	BOOL EmptyClipboard();
2839 	HGLOBAL GlobalAlloc(UINT uFlags, DWORD dwBytes);
2840 	BOOL CloseClipboard();
2841 	HANDLE SetClipboardData(UINT uFormat, HANDLE hMem);
2842 	HANDLE GetClipboardData(UINT uFormat);
2843 	HGLOBAL GlobalFree(HGLOBAL hMem);
2844 	LPVOID GlobalLock(HGLOBAL hMem);
2845 	BOOL GlobalUnlock(HGLOBAL hMem);
2846 	BOOL DrawFocusRect(HDC hDC, RECT* lprc);
2847 	LRESULT CallNextHookEx(HHOOK hhk, int nCode, WPARAM wParam, LPARAM lParam);
2848 	HHOOK SetWindowsHookExA(int idHook, HOOKPROC lpfn, HINSTANCE hMod, DWORD dwThreadId);
2849 	BOOL UnhookWindowsHookEx(HHOOK hhk);
2850 	int GetSystemMetrics(int nIndex);
2851 	BOOL DestroyMenu(HMENU hMenu);
2852 	BOOL SetMenuItemInfoA(HMENU hMenu, UINT uItem, BOOL fByPosition, LPMENUITEMINFOA lpmii);
2853 	BOOL SetMenuItemInfoW(HMENU hMenu, UINT uItem, BOOL fByPosition, LPMENUITEMINFOW lpmii);
2854 	BOOL InsertMenuItemA(HMENU hMenu, UINT uItem, BOOL fByPosition, LPMENUITEMINFOA lpmii);
2855 	BOOL InsertMenuItemW(HMENU hMenu, UINT uItem, BOOL fByPosition, LPMENUITEMINFOW lpmii);
2856 	BOOL RemoveMenu(HMENU hMenu, UINT uPosition, UINT uFlags );
2857 	UINT GetMenuItemID(HMENU hMenu, int nPos);
2858 	BOOL DrawMenuBar(HWND hWnd);
2859 	HMENU CreatePopupMenu();
2860 	HMENU CreateMenu();
2861 	BOOL Shell_NotifyIconA(DWORD dwMessage, NOTIFYICONDATA* pnid);
2862 	LONG RegQueryValueExA(HKEY hKey, LPCSTR lpValueName, LPDWORD lpReserved, LPDWORD lpType, LPBYTE lpData, LPDWORD lpcbData);
2863 	LONG RegQueryValueExW(HKEY hKey, LPCWSTR lpValueName, LPDWORD lpReserved, LPDWORD lpType, LPBYTE lpData, LPDWORD lpcbData);
2864 	LONG RegConnectRegistryA(LPCSTR lpMachineName, HKEY hKey, PHKEY phkResult);
2865 	UINT RegisterClipboardFormatA(LPCSTR lpszFormat);
2866 	UINT RegisterClipboardFormatW(LPCWSTR lpszFormat);
2867 	int GetClipboardFormatNameA(UINT format, LPSTR lpszFormatName, int cchMaxCount);
2868 	int GetClipboardFormatNameW(UINT format, LPWSTR lpszFormatName, int cchMaxCount);
2869 	DWORD GlobalSize(HGLOBAL hMem);
2870 	VOID ExitProcess(UINT uExitCode);
2871 	BOOL DrawAnimatedRects(HWND hwnd, int idAni, RECT* lprcFrom, RECT* lprcTo);
2872 	HWND FindWindowExA(HWND hwndParent, HWND hwndChildAfter, LPCSTR lpszClass, LPCSTR lpszWindow);
2873 	UINT SHAppBarMessage(DWORD dwMessage, PAPPBARDATA pData);
2874 	BOOL SetPropA(HWND hWnd, LPCSTR lpString, HANDLE hData);
2875 	HANDLE GetPropA(HWND hWnd, LPCSTR lpString);
2876 	HANDLE RemovePropA(HWND hWnd, LPCSTR lpString);
2877 	DWORD CommDlgExtendedError();
2878 	LRESULT DefFrameProcA(HWND hWnd, HWND hWndMDIClient, UINT uMsg, WPARAM wParam, LPARAM lParam);
2879 	LRESULT DefFrameProcW(HWND hWnd, HWND hWndMDIClient, UINT uMsg, WPARAM wParam, LPARAM lParam);
2880 	LRESULT DefMDIChildProcA(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
2881 	LRESULT DefMDIChildProcW(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
2882 	VOID SetLastError(DWORD dwErrCode);
2883 	HWND CreateMDIWindowA(LPSTR lpClassName, LPSTR lpWindowName, DWORD dwStyle, int X, int Y, int nWidth, int nHeight, HWND hWndParent, HINSTANCE hInstance, LPARAM lParam);
2884 	int MulDiv(int nNumber, int nNumerator, int nDenominator);
2885 	BOOL FillRgn(HDC hdc, HRGN hrgn, HBRUSH hbr);
2886 	COLORREF GetNearestColor(HDC hdc,COLORREF crColor);
2887 	int DrawTextA(HDC hDC, LPCSTR lpString, int nCount, LPRECT lpRect, UINT uFormat);
2888 	int DrawTextExA(HDC hdc, LPSTR lpchText, int cchText, LPRECT lprc, UINT dwDTFormat, LPDRAWTEXTPARAMS lpDTParams);
2889 	int DrawTextExW(HDC hdc, LPWSTR lpchText, int cchText, LPRECT lprc, UINT dwDTFormat, LPDRAWTEXTPARAMS lpDTParams);
2890 	HANDLE LoadImageA(HINSTANCE hinst, LPCSTR lpszName, UINT uType, int cxDesired, int cyDesired, UINT fuLoad);
2891 	HANDLE LoadImageW(HINSTANCE hinst, LPCWSTR lpszName, UINT uType, int cxDesired, int cyDesired, UINT fuLoad);
2892 	HANDLE CopyImage(HANDLE hImage, UINT uType, int cxDesired, int cyDesired, UINT fuFlags);
2893 	int WSACancelAsyncRequest(HANDLE hAsyncTaskHandle);
2894 	HANDLE WSAAsyncGetHostByName(HWND hWnd, uint wMsg, PCSTR name, char* buf, int buflen);
2895 	HANDLE WSAAsyncGetHostByAddr(HWND hWnd, uint wMsg, PCSTR addr, int len, int type, char* buf, int buflen);
2896 	BOOL ExtTextOutA(HDC hdc, int X, int Y, UINT fuOptions, RECT* lprc, LPCSTR lpString, UINT cbCount, INT* lpDx);
2897 	BOOL Arc(HDC hdc, int nLeftRect, int nTopRect, int nRightRect, int nBottomRect, int nXStartArc, int nYStartArc, int nXEndArc, int nYEndArc);
2898 	BOOL PolyBezier(HDC hdc, POINT* lppt,DWORD cPoints);
2899 	BOOL Ellipse(HDC hdc, int nLeftRect, int nTopRect, int nRightRect, int nBottomRect);
2900 	BOOL Polygon(HDC hdc, POINT* lpPoints,int nCount);
2901 	BOOL Rectangle(HDC hdc, int nLeftRect, int nTopRect, int nRightRect, int nBottomRect);
2902 	BOOL GdiFlush();
2903 	LONG RegSetValueExW(HKEY hKey, LPCWSTR lpValueName, DWORD Reserved, DWORD dwType, BYTE* lpData, DWORD cbData);
2904 	LONG RegCreateKeyExW(HKEY hKey, LPCWSTR lpSubKey, DWORD Reserved, LPWSTR lpClass, DWORD dwOptions, REGSAM samDesired, LPSECURITY_ATTRIBUTES lpSecurityAttributes, PHKEY phkResult, LPDWORD lpdwDisposition);
2905 	LONG RegOpenKeyExW(HKEY hKey, LPCWSTR lpSubKey, DWORD ulOptions, REGSAM samDesired, PHKEY phkResult);
2906 	LONG RegDeleteKeyW(HKEY hKey, LPCWSTR lpSubKey);
2907 	LONG RegEnumKeyExW(HKEY hKey, DWORD dwIndex, LPWSTR lpName, LPDWORD lpcbName, LPDWORD lpReserved, LPWSTR lpClass, LPDWORD lpcbClass, PFILETIME lpftLastWriteTime);
2908 	LONG RegEnumValueW(HKEY hKey, DWORD dwIndex, LPTSTR lpValueName, LPDWORD lpcbValueName, LPDWORD lpReserved, LPDWORD lpType, LPBYTE lpData, LPDWORD lpcbData);
2909 	BOOL DrawFrameControl(HDC hdc, LPRECT lprc, UINT uType, UINT uState);
2910 	BOOL GetTextExtentPoint32A(HDC hdc, LPCSTR lpString, int cbString, LPSIZE lpSize);
2911 	BOOL GetTextExtentPoint32W(HDC hdc, LPCWSTR lpString, int cbString, LPSIZE lpSize);
2912 	HINSTANCE ShellExecuteA(HWND hwnd, LPCSTR lpOperation, LPCSTR lpFile, LPCSTR lpParameters, LPCSTR lpDirectory, INT nShowCmd);
2913 	HANDLE CreateActCtxW(PACTCTXW pActCtx);
2914 	BOOL ActivateActCtx(HANDLE hActCtx, ULONG** lpCookie);
2915 	UINT GetTempFileNameW(LPCWSTR lpPathName, LPCWSTR lpPrefixString, UINT uUnique, LPWSTR lpTempFileName);
2916 	DWORD GetTempPathW(DWORD nBufferLength, LPWSTR lpBuffer);
2917 	VOID OutputDebugStringA(LPCSTR lpOutputString);
2918 	VOID DebugBreak();
2919 	BOOL BitBlt(HDC hdcDest, int nXDest,int nYDest, int nWidth, int nHeight, HDC hdcSrc, int nXSrc, int nYSrc, DWORD dwRop);
2920 	BOOL GetIconInfo(HICON hIcon, PICONINFO piconinfo);
2921 	BOOL DestroyIcon(HICON hIcon);
2922 	BOOL DestroyCursor(HCURSOR hCursor);
2923 	LPITEMIDLIST SHBrowseForFolderA(LPBROWSEINFOA lpbi);
2924 	LPITEMIDLIST SHBrowseForFolderW(LPBROWSEINFOW lpbi);
2925 	HRESULT SHGetMalloc(LPMALLOC* ppMalloc);
2926 	BOOL SHGetPathFromIDListA(LPCITEMIDLIST pidl, LPSTR pszPath);
2927 	BOOL SHGetPathFromIDListW(LPCITEMIDLIST pidl, LPWSTR pszPath);
2928 	BOOL InitCommonControlsEx(LPINITCOMMONCONTROLSEX lpInitCtrls);
2929 	int GetDlgCtrlID(HWND hwndCtl);
2930 	HWND GetDlgItem(HWND hDlg, int nIDDlgItem);
2931 	BOOL ShowOwnedPopups(HWND hWnd, BOOL fShow);
2932 	UINT GetWindowsDirectoryA(LPSTR lpBuffer, UINT uSize);
2933 	UINT GetWindowsDirectoryW(LPWSTR lpBuffer, UINT uSize);
2934 	//HCURSOR CopyCursor(HCURSOR pcur);
2935 	HINSTANCE LoadLibraryExA(LPCSTR lpLibFileName, HANDLE hFile, DWORD dwFlags);
2936 	HINSTANCE LoadLibraryExW(LPCWSTR lpLibFileName, HANDLE hFile, DWORD dwFlags);
2937 	HICON CopyIcon(HICON hIcon);
2938 	BOOL ChooseColorA(LPCHOOSECOLORA lpcc);
2939 	UINT DragQueryFileA(HDROP hDrop, UINT iFile, LPSTR lpszFile, UINT cch);
2940 	UINT DragQueryFileW(HDROP hDrop, UINT iFile, LPWSTR lpszFile, UINT cch);
2941 	VOID DragFinish(HDROP hDrop);
2942 	BOOL DragQueryPoint(HDROP hDrop, LPPOINT lppt);
2943 	BOOL GrayStringA(HDC hDC, HBRUSH hBrush, GRAYSTRINGPROC lpOutputFunc, LPARAM lpData, int nCount, int X, int Y, int nWidth, int nHeight);
2944 	BOOL IsWindowUnicode(HWND hWnd);
2945 	BOOL ChooseFontA(LPCHOOSEFONTA lpcf);
2946 	BOOL ChooseFontW(LPCHOOSEFONTW lpcf);
2947 	HBITMAP CreateCompatibleBitmap(HDC hdc, int nWidth, int nHeight);
2948 	LONG DispatchMessageW(MSG* lpmsg);
2949 	BOOL PeekMessageW(LPMSG lpMsg, HWND hWnd, UINT wMsgFilterMin, UINT wMsgFilterMax, UINT wRemoveMsg);
2950 	LRESULT DefWindowProcW(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam);
2951 	HWND GetNextDlgGroupItem(HWND hDlg, HWND hCtl, BOOL bPrevious);	
2952 	HANDLE FindFirstChangeNotificationA(LPCSTR lpPathName, BOOL bWatchSubtree, DWORD dwNotifyFilter);
2953 	HANDLE FindFirstChangeNotificationW(LPCWSTR lpPathName, BOOL bWatchSubtree, DWORD dwNotifyFilter);
2954 	BOOL FindCloseChangeNotification(HANDLE hChangeHandle);
2955 	BOOL FindNextChangeNotification(HANDLE hChangeHandle);
2956 	DWORD GetFullPathNameA(LPCSTR lpFileName, DWORD nBufferLength, LPSTR lpBuffer, LPSTR *lpFilePart);
2957 	DWORD GetFullPathNameW(LPCWSTR lpFileName, DWORD nBufferLength, LPWSTR lpBuffer, LPWSTR *lpFilePart);
2958 	SHORT VkKeyScanA(char ch);
2959 	SHORT VkKeyScanW(wchar ch);
2960 	HRSRC FindResourceExA(HMODULE hModule, LPCSTR lpType, LPCSTR lpName, WORD wLanguage);
2961 	HRSRC FindResourceExW(HMODULE hModule, LPCWSTR lpType, LPCWSTR lpName, WORD wLanguage);
2962 	HGLOBAL LoadResource(HMODULE hModule, HRSRC hResInfo);
2963 	DWORD SizeofResource(HMODULE hModule, HRSRC hResInfo);
2964 	BOOL EnableMenuItem(HMENU hMenu, UINT uIDEnableItem, UINT uEnable);
2965 	BOOL IsMenu(HMENU hMenu);
2966 	HMENU GetSystemMenu(HWND hWnd, BOOL bRevert);
2967 	DWORD GetModuleFileNameW(HMODULE hModule, LPWSTR lpFilename, DWORD nSize);
2968 	HBITMAP CreateBitmap(int nWidth, int nHeight, UINT cPlanes, UINT cBitsPerPel, VOID *lpvBits);
2969 	BOOL SetBrushOrgEx(HDC hdc, int nXOrg, int nYOrg, LPPOINT lppt);
2970 	BOOL PatBlt(HDC hdc, int nXLeft, int nYLeft, int nWidth, int nHeight, DWORD dwRop);
2971 	HTHEME GetWindowTheme(HWND hWnd);
2972 	THEMEAPI SetWindowTheme(HWND hwnd, LPCWSTR pszSubAppName, LPCWSTR pszSubIdList);
2973 	int SetScrollInfo(HWND hwnd, int fnBar, LPSCROLLINFO lpsi, BOOL fRedraw);
2974 	BOOL GetScrollInfo(HWND hwnd, int fnBar, LPSCROLLINFO lpsi);
2975 	BOOL DragDetect(HWND hwnd, POINT pt);
2976 	HFONT CreateFontIndirectW(LOGFONTW *lplf);
2977 	DWORD GetThemeAppProperties();
2978 	BOOL IsAppThemed();
2979 	HTHEME OpenThemeData(HWND hwnd, LPCWSTR pszClassList);
2980 	HRESULT CloseThemeData(HTHEME hTheme);
2981 	HRESULT GetThemeColor(HTHEME hTheme, int iPartId, int iStateId, int iPropId, COLORREF *pColor);
2982 	HIMAGELIST ImageList_Create(int cx, int cy, UINT flags, int cInitial, int cGrow);
2983 	BOOL ImageList_Destroy(HIMAGELIST himl);	
2984 	BOOL ImageList_Draw(HIMAGELIST himl, int i, HDC hdcDst, int x, int y, UINT fStyle);
2985 	BOOL ImageList_DrawEx(HIMAGELIST himl, int i, HDC hdcDst, int x, int y, int dx, int dy, COLORREF rgbBk, COLORREF rgbFg, UINT fStyle);
2986 	int ImageList_Add(HIMAGELIST himl, HBITMAP hbmImage, HBITMAP hbmMask);
2987 	int ImageList_AddIcon(HIMAGELIST himl, HICON hicon);
2988 	int ImageList_AddMasked(HIMAGELIST himl, HBITMAP hbmImage, COLORREF crMask);
2989 	BOOL ImageList_Remove(HIMAGELIST himl, int i);
2990 	BOOL EnumDisplayMonitors(HDC hdc, LPCRECT lprcClip, MONITORENUMPROC lpfnEnum, LPARAM dwData);
2991 	BOOL GetMonitorInfoA(HMONITOR hMonitor, LPMONITORINFO lpmi);
2992 	HMONITOR MonitorFromWindow(HWND hwnd, DWORD dwFlags);
2993 	HMONITOR MonitorFromPoint(POINT pt, DWORD dwFlags);
2994 	HMONITOR MonitorFromRect(LPCRECT lprc, DWORD dwFlags);
2995 	BOOL RegisterHotKey(HWND hWnd, int id, UINT fsModifiers, UINT vk);
2996 	BOOL UnregisterHotKey(HWND hWnd, int id);
2997 //} // Temporary.
2998