1 /**
2 * Windows API header module
3 *
4 * Translated from MinGW API for MS-Windows 3.12
5 *
6 * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
7 * Source: $(DRUNTIMESRC core/sys/windows/_commctrl.d)
8 */
9 module core.sys.windows.commctrl;
version(Windows)10 version (Windows):
11 @system:
12
13 version (ANSI) {} else version = Unicode;
14 pragma(lib, "comctl32");
15
16 import core.sys.windows.w32api, core.sys.windows.windef, core.sys.windows.winuser;
17 import core.sys.windows.winbase; // for SYSTEMTIME
18 import core.sys.windows.objfwd; // for LPSTREAM
19
20 import core.sys.windows.prsht;
21
22 enum COMCTL32_VERSION = 6;
23
24 const TCHAR[]
25 DRAGLISTMSGSTRING = "commctrl_DragListMsg",
26 HOTKEY_CLASS = "msctls_hotkey32",
27 PROGRESS_CLASS = "msctls_progress32",
28 STATUSCLASSNAME = "msctls_statusbar32",
29 TOOLBARCLASSNAME = "ToolbarWindow32",
30 TOOLTIPS_CLASS = "tooltips_class32",
31 TRACKBAR_CLASS = "msctls_trackbar32",
32 UPDOWN_CLASS = "msctls_updown32",
33 ANIMATE_CLASS = "SysAnimate32",
34 DATETIMEPICK_CLASS = "SysDateTimePick32",
35 MONTHCAL_CLASS = "SysMonthCal32",
36 REBARCLASSNAME = "ReBarWindow32",
37 WC_COMBOBOXEX = "ComboBoxEx32",
38 WC_IPADDRESS = "SysIPAddress32",
39 WC_LISTVIEW = "SysListView32",
40 WC_TABCONTROL = "SysTabControl32",
41 WC_TREEVIEW = "SysTreeView32",
42 WC_HEADER = "SysHeader32",
43 WC_PAGESCROLLER = "SysPager",
44 WC_NATIVEFONTCTL = "NativeFontCtl",
45 WC_BUTTON = "Button",
46 WC_STATIC = "Static",
47 WC_EDIT = "Edit",
48 WC_LISTBOX = "ListBox",
49 WC_COMBOBOX = "ComboBox",
50 WC_SCROLLBAR = "ScrollBar",
51 WC_LINKA = "SysLink";
52
53 enum {
54 LVM_FIRST = 0x1000,
55 TV_FIRST = 0x1100,
56 HDM_FIRST = 0x1200
57 }
58
59 enum {
60 ACM_OPENA = WM_USER + 100,
61 ACM_PLAY = WM_USER + 101,
62 ACM_STOP = WM_USER + 102,
63 ACM_OPENW = WM_USER + 103,
64 ACM_ISPLAYING = WM_USER + 104
65 }
66
67 enum {
68 ACN_START = 1,
69 ACN_STOP
70 }
71
72 enum {
73 CBEIF_TEXT = 0x00000001,
74 CBEIF_IMAGE = 0x00000002,
75 CBEIF_SELECTEDIMAGE = 0x00000004,
76 CBEIF_OVERLAY = 0x00000008,
77 CBEIF_INDENT = 0x00000010,
78 CBEIF_LPARAM = 0x00000020,
79 CBEIF_DI_SETITEM = 0x10000000
80 }
81
82 enum {
83 RBN_FIRST = -831U,
84 RBN_LAST = -859U,
85 MCN_FIRST = -750U,
86 MCN_LAST = -759U,
87 DTN_FIRST = -760U,
88 DTN_LAST = -799U,
89 CBEN_FIRST = -800U,
90 CBEN_LAST = -830U
91 }
92
93 enum {
94 CBEN_INSERTITEM = CBEN_FIRST - 1,
95 CBEN_DELETEITEM = CBEN_FIRST - 2,
96 CBEN_BEGINEDIT = CBEN_FIRST - 4,
97 CBEN_ENDEDITA = CBEN_FIRST - 5,
98 CBEN_ENDEDITW = CBEN_FIRST - 6
99 }
100
101 enum {
102 CBENF_KILLFOCUS = 1,
103 CBENF_RETURN,
104 CBENF_ESCAPE,
105 CBENF_DROPDOWN // = 4
106 }
107
108 enum CBEMAXSTRLEN = 260;
109
110 enum {
111 DL_BEGINDRAG = 1157,
112 DL_CANCELDRAG = 1160,
113 DL_DRAGGING = 1158,
114 DL_DROPPED = 1159,
115 DL_CURSORSET = 0,
116 DL_STOPCURSOR = 1,
117 DL_COPYCURSOR = 2,
118 DL_MOVECURSOR = 3
119 }
120
121 enum {
122 CCS_TOP = 1,
123 CCS_NOMOVEY = 2,
124 CCS_BOTTOM = 3,
125 CCS_NORESIZE = 4,
126 CCS_NOPARENTALIGN = 8,
127 CCS_ADJUSTABLE = 32,
128 CCS_NODIVIDER = 64
129 }
130 static if (_WIN32_IE >= 0x300) {
131 enum {
132 CCS_VERT = 128,
133 CCS_LEFT = 129,
134 CCS_NOMOVEX = 130,
135 CCS_RIGHT = 131
136 }
137 }
138
139 enum {
140 ACS_CENTER = 0x0001,
141 ACS_TRANSPARENT = 0x0002,
142 ACS_AUTOPLAY = 0x0004,
143 ACS_TIMER = 0x0008
144 }
145
146 enum {
147 PGS_VERT = 0x00000000,
148 PGS_HORZ = 0x00000001,
149 PGS_AUTOSCROLL = 0x00000002,
150 PGS_DRAGNDROP = 0x00000004
151 }
152
153 enum CMB_MASKED = 2;
154
155 enum MINSYSCOMMAND = SC_SIZE;
156
157 enum {
158 SBT_OWNERDRAW = 0x1000,
159 SBT_NOBORDERS = 256,
160 SBT_POPOUT = 512,
161 SBT_RTLREADING = 1024
162 }
163
164 enum {
165 SB_SETTEXTA = WM_USER + 1,
166 SB_SETTEXTW = WM_USER + 11,
167 SB_GETTEXTA = WM_USER + 2,
168 SB_GETTEXTW = WM_USER + 13,
169 SB_GETTEXTLENGTHA = WM_USER + 3,
170 SB_GETTEXTLENGTHW = WM_USER + 12,
171 SB_SETPARTS = WM_USER + 4,
172 SB_GETPARTS = WM_USER + 6,
173 SB_GETBORDERS = WM_USER + 7,
174 SB_SETMINHEIGHT = WM_USER + 8,
175 SB_SIMPLE = WM_USER + 9,
176 SB_GETRECT = WM_USER + 10
177 }
178
179 enum {
180 MSGF_COMMCTRL_BEGINDRAG = 0x4200,
181 MSGF_COMMCTRL_SIZEHEADER = 0x4201,
182 MSGF_COMMCTRL_DRAGSELECT = 0x4202,
183 MSGF_COMMCTRL_TOOLBARCUST = 0x4203
184 }
185
186 enum {
187 ILC_COLOR = 0,
188 ILC_COLOR4 = 4,
189 ILC_COLOR8 = 8,
190 ILC_COLOR16 = 16,
191 ILC_COLOR24 = 24,
192 ILC_COLOR32 = 32,
193 ILC_COLORDDB = 254,
194 ILC_MASK = 1,
195 ILC_PALETTE = 2048
196 }
197
198 enum {
199 ILCF_MOVE,
200 ILCF_SWAP
201 }
202
203 enum {
204 ILS_NORMAL = 0,
205 ILS_GLOW = 1,
206 ILS_SHADOW = 2,
207 ILS_SATURATE = 4,
208 ILS_ALPHA = 8,
209 ILD_BLEND25 = 2,
210 ILD_BLEND50 = 4,
211 ILD_SELECTED = 4,
212 ILD_BLEND = 4,
213 ILD_FOCUS = 2,
214 ILD_MASK = 16,
215 ILD_NORMAL = 0,
216 ILD_TRANSPARENT = 1,
217 ILD_IMAGE = 0x0020,
218 ILD_ROP = 0x0040,
219 ILD_OVERLAYMASK = 0x0F00,
220 ILD_PRESERVEALPHA = 0x1000,
221 ILD_SCALE = 0x2000,
222 ILD_DPISCALE = 0x4000
223 }
224
225 enum {
226 HDS_HORZ = 0,
227 HDS_BUTTONS = 2,
228 HDS_HIDDEN = 8
229 }
230 static if (_WIN32_IE >= 0x400) {
231 enum {
232 HDS_HOTTRACK = 4,
233 HDS_DRAGDROP = 0x0040,
234 HDS_FULLDRAG = 0x0080
235 }
236 }
237 static if (_WIN32_IE >= 0x500) {
238 enum {
239 HDS_FILTERBAR = 0x0100
240 }
241 }
242
243 enum {
244 NM_FIRST = 0,
245 NM_LAST = -99U,
246 LVN_FIRST = -100U,
247 LVN_LAST = -199U,
248 HDN_FIRST = -300U,
249 HDN_LAST = -399U,
250 TVN_FIRST = -400U,
251 TVN_LAST = -499U,
252 TTN_FIRST = -520U,
253 TTN_LAST = -549U,
254 TCN_FIRST = -550U,
255 TCN_LAST = -580U,
256 CDN_FIRST = -601U, /* also in commdlg.h */
257 CDN_LAST = -699U,
258 TBN_FIRST = -700U,
259 TBN_LAST = -720U,
260 UDN_FIRST = -721U,
261 UDN_LAST = -740U
262 }
263 /*static if (_WIN32_IE >= 0x300) {
264 enum {
265 RBN_FIRST = -831U,
266 RBN_LAST = -859U,
267 MCN_FIRST = -750U,
268 MCN_LAST = -759U,
269 DTN_FIRST = -760U,
270 DTN_LAST = -799U,
271 CBEN_FIRST = -800U,
272 CBEN_LAST = -830U
273 }
274 }*/
275 static if (_WIN32_IE >= 0x400) {
276 enum {
277 IPN_FIRST = -860U,
278 IPN_LAST = -879U,
279 IPN_FIELDCHANGED = IPN_FIRST,
280 SBN_FIRST = -880U,
281 SBN_LAST = -899U,
282 PGN_FIRST = -900U,
283 PGN_LAST = -950U,
284 PGN_SCROLL = PGN_FIRST-1,
285 PGN_CALCSIZE = PGN_FIRST-2
286 }
287 }
288
289 static if (_WIN32_IE >= 0x500) {
290 enum {
291 WMN_FIRST = -1000U,
292 WMN_LAST = -1200U,
293 }
294 }
295
296 static if (_WIN32_WINNT >= 0x501)
297 {
298 enum {
299 BCN_FIRST = -1250U,
300 BCN_LAST = -1350U,
301 }
302 }
303
304 static if (_WIN32_WINNT >= 0x600)
305 {
306 enum {
307 TRBN_FIRST = -1501U,
308 TRBN_LAST = -1519U,
309 }
310 }
311
312 enum {
313 HDI_WIDTH = 1,
314 HDI_HEIGHT = 1,
315 HDI_TEXT = 2,
316 HDI_FORMAT = 4,
317 HDI_LPARAM = 8,
318 HDI_BITMAP = 16
319 }
320 static if (_WIN32_IE >= 0x300) {
321 enum {
322 HDI_IMAGE = 32,
323 HDI_DI_SETITEM = 64,
324 HDI_ORDER = 128
325 }
326 }
327 static if (_WIN32_IE >= 0x500) {
328 enum {
329 HDI_FILTER = 256
330 }
331 }
332
333 enum {
334 CBES_EX_NOEDITIMAGE = 0x00000001,
335 CBES_EX_NOEDITIMAGEINDENT = 0x00000002,
336 CBES_EX_PATHWORDBREAKPROC = 0x00000004
337 }
338 static if (_WIN32_IE >= 0x400) {
339 enum {
340 CBES_EX_NOSIZELIMIT = 0x00000008,
341 CBES_EX_CASESENSITIVE = 0x00000010,
342 CBEN_GETDISPINFOA = CBEN_FIRST - 0,
343 CBEN_GETDISPINFOW = CBEN_FIRST - 7,
344 CBEN_DRAGBEGINA = CBEN_FIRST - 8,
345 CBEN_DRAGBEGINW = CBEN_FIRST - 9
346 }
347 }
348
349 enum {
350 HDF_LEFT,
351 HDF_RIGHT,
352 HDF_CENTER,
353 HDF_JUSTIFYMASK,
354 HDF_RTLREADING, // = 4
355 HDF_OWNERDRAW = 0x8000,
356 HDF_STRING = 0x4000,
357 HDF_BITMAP = 0x2000
358 }
359 static if (_WIN32_IE >= 0x300) {
360 enum {
361 HDF_BITMAP_ON_RIGHT = 0x1000,
362 HDF_IMAGE = 0x0800
363 }
364 }
365
366 enum {
367 CCM_FIRST = 0x2000,
368 CCM_LAST = CCM_FIRST + 0x200,
369 CCM_SETBKCOLOR = 8193,
370 CCM_SETCOLORSCHEME = 8194,
371 CCM_GETCOLORSCHEME = 8195,
372 CCM_GETDROPTARGET = 8196,
373 CCM_SETUNICODEFORMAT = 8197,
374 CCM_GETUNICODEFORMAT = 8198,
375 CCM_SETVERSION = 0x2007,
376 CCM_GETVERSION = 0x2008,
377 CCM_SETNOTIFYWINDOW = 0x2009
378 }
379
380 enum {
381 HDM_GETITEMCOUNT = HDM_FIRST,
382 HDM_INSERTITEMA = HDM_FIRST + 1,
383 HDM_INSERTITEMW = HDM_FIRST + 10,
384 HDM_DELETEITEM = HDM_FIRST + 2,
385 HDM_GETITEMA = HDM_FIRST + 3,
386 HDM_GETITEMW = HDM_FIRST + 11,
387 HDM_SETITEMA = HDM_FIRST + 4,
388 HDM_SETITEMW = HDM_FIRST + 12,
389 HDM_LAYOUT = HDM_FIRST + 5
390 }
391 static if (_WIN32_IE >= 0x300) {
392 enum {
393 HDM_GETITEMRECT = HDM_FIRST + 7,
394 HDM_SETIMAGELIST = HDM_FIRST + 8,
395 HDM_GETIMAGELIST = HDM_FIRST + 9,
396 HDM_ORDERTOINDEX = HDM_FIRST + 15,
397 HDM_CREATEDRAGIMAGE = HDM_FIRST + 16,
398 HDM_GETORDERARRAY = HDM_FIRST + 17,
399 HDM_SETORDERARRAY = HDM_FIRST + 18,
400 HDM_SETHOTDIVIDER = HDM_FIRST + 19
401 }
402 }
403 static if (_WIN32_IE >= 0x400) {
404 enum {
405 HDM_GETUNICODEFORMAT = CCM_GETUNICODEFORMAT,
406 HDM_SETUNICODEFORMAT = CCM_SETUNICODEFORMAT
407 }
408 }
409 static if (_WIN32_IE >= 0x500) {
410 enum {
411 HDM_SETBITMAPMARGIN = HDM_FIRST + 20,
412 HDM_GETBITMAPMARGIN = HDM_FIRST + 21,
413 HDM_SETFILTERCHANGETIMEOUT = HDM_FIRST + 22,
414 HDM_EDITFILTER = HDM_FIRST + 23,
415 HDM_CLEARFILTER = HDM_FIRST + 24,
416 }
417 }
418 static if (_WIN32_IE >= 0x600) {
419 enum {
420 HDM_GETITEMDROPDOWNRECT = HDM_FIRST + 25,
421 HDM_GETOVERFLOWRECT = HDM_FIRST + 26,
422 HDM_GETFOCUSEDITEM = HDM_FIRST + 27,
423 HDM_SETFOCUSEDITEM = HDM_FIRST + 28,
424 }
425 }
426
427 enum {
428 HHT_NOWHERE = 1,
429 HHT_ONHEADER = 2,
430 HHT_ONDIVIDER = 4,
431 HHT_ONDIVOPEN = 8,
432 HHT_ABOVE = 256,
433 HHT_BELOW = 512,
434 HHT_TORIGHT = 1024,
435 HHT_TOLEFT = 2048
436 }
437
438 enum {
439 HDM_HITTEST = HDM_FIRST + 6
440 }
441
442 enum {
443 HDN_ITEMCHANGINGA = HDN_FIRST -0,
444 HDN_ITEMCHANGINGW = HDN_FIRST -20,
445 HDN_ITEMCHANGEDA = HDN_FIRST -1,
446 HDN_ITEMCHANGEDW = HDN_FIRST -21,
447 HDN_ITEMCLICKA = HDN_FIRST -2,
448 HDN_ITEMCLICKW = HDN_FIRST -22,
449 HDN_ITEMDBLCLICKA = HDN_FIRST -3,
450 HDN_ITEMDBLCLICKW = HDN_FIRST -23,
451 HDN_DIVIDERDBLCLICKA = HDN_FIRST -5,
452 HDN_DIVIDERDBLCLICKW = HDN_FIRST -25,
453 HDN_BEGINTRACKA = HDN_FIRST -6,
454 HDN_BEGINTRACKW = HDN_FIRST -26,
455 HDN_ENDTRACKA = HDN_FIRST -7,
456 HDN_ENDTRACKW = HDN_FIRST -27,
457 HDN_TRACKA = HDN_FIRST -8,
458 HDN_TRACKW = HDN_FIRST -28
459 }
460 static if (_WIN32_IE >= 0x300) {
461 enum {
462 HDN_ENDDRAG = (HDN_FIRST-11),
463 HDN_BEGINDRAG = (HDN_FIRST-10),
464 HDN_GETDISPINFOA = (HDN_FIRST-9),
465 HDN_GETDISPINFOW = (HDN_FIRST-29)
466 }
467 }
468
469 static if (_WIN32_IE >= 0x400) {
470 enum {
471 HICF_OTHER = 0x00,
472 HICF_MOUSE = 0x01,
473 HICF_ARROWKEYS = 0x02,
474 HICF_ACCELERATOR = 0x04,
475 HICF_DUPACCEL = 0x08,
476 HICF_ENTERING = 0x10,
477 HICF_LEAVING = 0x20,
478 HICF_RESELECT = 0x40,
479 HICF_LMOUSE = 0x80,
480 HICF_TOGGLEDROPDOWN = 0x100
481 }
482 }
483
484 enum {
485 IPM_CLEARADDRESS = WM_USER + 100,
486 IPM_SETADDRESS = WM_USER + 101,
487 IPM_GETADDRESS = WM_USER + 102,
488 IPM_SETRANGE = WM_USER + 103,
489 IPM_SETFOCUS = WM_USER + 104,
490 IPM_ISBLANK = WM_USER + 105
491 }
492
493 static if (_WIN32_IE >= 0x500) {
494 enum {
495 I_INDENTCALLBACK = -1,
496 I_IMAGENONE = -2
497 }
498 }
499
500 enum {
501 TBSTATE_CHECKED = 1,
502 TBSTATE_PRESSED = 2,
503 TBSTATE_ENABLED = 4,
504 TBSTATE_HIDDEN = 8,
505 TBSTATE_INDETERMINATE = 16,
506 TBSTATE_WRAP = 32
507 }
508 static if (_WIN32_IE >= 0x300) {
509 enum {
510 TBSTATE_ELLIPSES = 0x40
511 }
512 }
513 static if (_WIN32_IE >= 0x400) {
514 enum {
515 TBSTATE_MARKED = 0x0080
516 }
517 }
518
519 enum {
520 TBSTYLE_BUTTON = 0,
521 TBSTYLE_SEP = 1,
522 TBSTYLE_CHECK = 2,
523 TBSTYLE_GROUP = 4,
524 TBSTYLE_CHECKGROUP = TBSTYLE_GROUP | TBSTYLE_CHECK
525 }
526 static if (_WIN32_IE >= 0x300) {
527 enum {
528 TBSTYLE_DROPDOWN = 8
529 }
530 }
531 static if (_WIN32_IE >= 0x400) {
532 enum {
533 TBSTYLE_AUTOSIZE = 16,
534 TBSTYLE_NOPREFIX = 32
535 }
536 }
537 enum {
538 TBSTYLE_TOOLTIPS = 256,
539 TBSTYLE_WRAPABLE = 512,
540 TBSTYLE_ALTDRAG = 1024
541 }
542 static if (_WIN32_IE >= 0x300) {
543 enum {
544 TBSTYLE_FLAT = 2048,
545 TBSTYLE_LIST = 4096,
546 TBSTYLE_CUSTOMERASE = 8192
547 }
548 }
549 static if (_WIN32_IE >= 0x400) {
550 enum {
551 TBSTYLE_REGISTERDROP = 0x4000,
552 TBSTYLE_TRANSPARENT = 0x8000,
553 TBSTYLE_EX_DRAWDDARROWS = 0x00000001
554 }
555 }
556 static if (_WIN32_IE >= 0x501) {
557 enum {
558 TBSTYLE_EX_MIXEDBUTTONS = 8,
559 TBSTYLE_EX_HIDECLIPPEDBUTTONS = 16
560 }
561 }
562 static if (_WIN32_WINNT >= 0x501) {
563 enum {
564 TBSTYLE_EX_DOUBLEBUFFER = 0x80
565 }
566 }
567
568 static if (_WIN32_IE >= 0x500) {
569 enum {
570 BTNS_BUTTON = TBSTYLE_BUTTON,
571 BTNS_SEP = TBSTYLE_SEP,
572 BTNS_CHECK = TBSTYLE_CHECK,
573 BTNS_GROUP = TBSTYLE_GROUP,
574 BTNS_CHECKGROUP = TBSTYLE_CHECKGROUP,
575 BTNS_DROPDOWN = TBSTYLE_DROPDOWN,
576 BTNS_AUTOSIZE = TBSTYLE_AUTOSIZE,
577 BTNS_NOPREFIX = TBSTYLE_NOPREFIX,
578 BTNS_WHOLEDROPDOWN = 0x0080
579 }
580 }
581 static if (_WIN32_IE >= 0x501) {
582 enum {
583 BTNS_SHOWTEXT = 0x0040
584 }
585 }
586
587 static if (_WIN32_IE >= 0x400) {
588 enum {
589 TBCDRF_NOEDGES = 0x10000,
590 TBCDRF_HILITEHOTTRACK = 0x20000,
591 TBCDRF_NOOFFSET = 0x40000,
592 TBCDRF_NOMARK = 0x80000,
593 TBCDRF_NOETCHEDEFFECT = 0x100000
594 }
595 }
596
597 enum HINST_COMMCTRL = cast(HINSTANCE) (-1);
598
599 enum {
600 IDB_STD_SMALL_COLOR,
601 IDB_STD_LARGE_COLOR,
602 IDB_VIEW_SMALL_COLOR = 4,
603 IDB_VIEW_LARGE_COLOR = 5
604 }
605 static if (_WIN32_IE >= 0x300) {
606 enum {
607 IDB_HIST_SMALL_COLOR = 8,
608 IDB_HIST_LARGE_COLOR = 9
609 }
610 }
611
612 enum {
613 STD_CUT,
614 STD_COPY,
615 STD_PASTE,
616 STD_UNDO,
617 STD_REDOW,
618 STD_DELETE,
619 STD_FILENEW,
620 STD_FILEOPEN,
621 STD_FILESAVE,
622 STD_PRINTPRE,
623 STD_PROPERTIES,
624 STD_HELP,
625 STD_FIND,
626 STD_REPLACE,
627 STD_PRINT // = 14
628 }
629
630 enum {
631 VIEW_LARGEICONS,
632 VIEW_SMALLICONS,
633 VIEW_LIST,
634 VIEW_DETAILS,
635 VIEW_SORTNAME,
636 VIEW_SORTSIZE,
637 VIEW_SORTDATE,
638 VIEW_SORTTYPE,
639 VIEW_PARENTFOLDER,
640 VIEW_NETCONNECT,
641 VIEW_NETDISCONNECT,
642 VIEW_NEWFOLDER // = 11
643 }
644
645 enum {
646 TB_ENABLEBUTTON = WM_USER + 1,
647 TB_CHECKBUTTON,
648 TB_PRESSBUTTON,
649 TB_HIDEBUTTON,
650 TB_INDETERMINATE, // = WM_USER + 5,
651 TB_ISBUTTONENABLED = WM_USER + 9,
652 TB_ISBUTTONCHECKED,
653 TB_ISBUTTONPRESSED,
654 TB_ISBUTTONHIDDEN,
655 TB_ISBUTTONINDETERMINATE, // = WM_USER + 13,
656 TB_SETSTATE = WM_USER + 17,
657 TB_GETSTATE = WM_USER + 18,
658 TB_ADDBITMAP = WM_USER + 19,
659 TB_DELETEBUTTON = WM_USER + 22,
660 TB_GETBUTTON,
661 TB_BUTTONCOUNT,
662 TB_COMMANDTOINDEX,
663 TB_SAVERESTOREA,
664 TB_CUSTOMIZE,
665 TB_ADDSTRINGA,
666 TB_GETITEMRECT,
667 TB_BUTTONSTRUCTSIZE,
668 TB_SETBUTTONSIZE,
669 TB_SETBITMAPSIZE,
670 TB_AUTOSIZE, // = WM_USER + 33,
671 TB_GETTOOLTIPS = WM_USER + 35,
672 TB_SETTOOLTIPS = WM_USER + 36,
673 TB_SETPARENT = WM_USER + 37,
674 TB_SETROWS = WM_USER + 39,
675 TB_GETROWS,
676 TB_GETBITMAPFLAGS,
677 TB_SETCMDID,
678 TB_CHANGEBITMAP,
679 TB_GETBITMAP,
680 TB_GETBUTTONTEXTA,
681 TB_REPLACEBITMAP, // = WM_USER + 46,
682 TB_GETBUTTONSIZE = WM_USER + 58,
683 TB_SETBUTTONWIDTH = WM_USER + 59,
684 TB_GETBUTTONTEXTW = WM_USER + 75,
685 TB_SAVERESTOREW = WM_USER + 76,
686 TB_ADDSTRINGW = WM_USER + 77,
687 }
688 static if (_WIN32_IE >= 0x400) {
689 enum {
690 TB_MARKBUTTON = WM_USER + 6
691 }
692 }
693 static if (_WIN32_IE >= 0x400) {
694 enum {
695 TB_ISBUTTONHIGHLIGHTED = WM_USER + 14
696 }
697 }
698 static if (_WIN32_IE >= 0x400) {
699 enum {
700 TB_ADDBUTTONSA = WM_USER + 20,
701 TB_INSERTBUTTONA = WM_USER + 21
702 }
703 } else {
704 enum {
705 TB_ADDBUTTONS = WM_USER + 20,
706 TB_INSERTBUTTON = WM_USER + 21
707 }
708 }
709 static if (_WIN32_IE >= 0x300) {
710 enum {
711 TB_SETINDENT = WM_USER + 47,
712 TB_SETIMAGELIST,
713 TB_GETIMAGELIST,
714 TB_LOADIMAGES,
715 TB_GETRECT,
716 TB_SETHOTIMAGELIST,
717 TB_GETHOTIMAGELIST,
718 TB_SETDISABLEDIMAGELIST,
719 TB_GETDISABLEDIMAGELIST,
720 TB_SETSTYLE,
721 TB_GETSTYLE,
722 //TB_GETBUTTONSIZE,
723 //TB_SETBUTTONWIDTH,
724 TB_SETMAXTEXTROWS,
725 TB_GETTEXTROWS // = WM_USER + 61
726 }
727 }
728 static if (_WIN32_IE >= 0x400) {
729 enum {
730 TB_GETOBJECT = WM_USER + 62,
731 TB_GETBUTTONINFOW,
732 TB_SETBUTTONINFOW,
733 TB_GETBUTTONINFOA,
734 TB_SETBUTTONINFOA,
735 TB_INSERTBUTTONW,
736 TB_ADDBUTTONSW,
737 TB_HITTEST, // = WM_USER + 69
738 TB_SETEXTENDEDSTYLE = WM_USER + 84,
739 TB_GETEXTENDEDSTYLE = WM_USER + 85,
740 TB_SETDRAWTEXTFLAGS = WM_USER + 70,
741 TB_GETHOTITEM,
742 TB_SETHOTITEM,
743 TB_SETANCHORHIGHLIGHT,
744 TB_GETANCHORHIGHLIGHT, // = WM_USER + 74
745 TB_MAPACCELERATORA = WM_USER + 78,
746 TB_GETINSERTMARK,
747 TB_SETINSERTMARK,
748 TB_INSERTMARKHITTEST,
749 TB_MOVEBUTTON,
750 TB_GETMAXSIZE,
751 //TB_SETEXTENDEDSTYLE,
752 //TB_GETEXTENDEDSTYLE,
753 TB_GETPADDING,
754 TB_SETPADDING,
755 TB_SETINSERTMARKCOLOR,
756 TB_GETINSERTMARKCOLOR,
757 TB_MAPACCELERATORW,
758 TB_GETSTRINGW,
759 TB_GETSTRINGA, // = WM_USER + 92
760 TB_SETHOTITEM2 = WM_USER + 94,
761 TB_SETLISTGAP = WM_USER + 96,
762 TB_GETIMAGELISTCOUNT = WM_USER + 98,
763 TB_GETIDEALSIZE = WM_USER + 99,
764 //TB_TRANSLATEACCELERATOR = CCM_TRANSLATEACCELERATOR,
765 TB_SETCOLORSCHEME = CCM_SETCOLORSCHEME,
766 TB_GETCOLORSCHEME = CCM_GETCOLORSCHEME,
767 TB_SETUNICODEFORMAT = CCM_SETUNICODEFORMAT,
768 TB_GETUNICODEFORMAT = CCM_GETUNICODEFORMAT
769 }
770 }
771
772 static if (_WIN32_WINNT >= 0x501) {
773 enum {
774 TB_GETMETRICS = WM_USER + 101,
775 TB_SETMETRICS = WM_USER + 102,
776 }
777 }
778
779 static if (_WIN32_WINNT >= 0x600) {
780 enum {
781 TB_GETITEMDROPDOWNRECT = WM_USER + 103,
782 TB_SETPRESSEDIMAGELIST = WM_USER + 104,
783 TB_GETPRESSEDIMAGELIST = WM_USER + 105,
784 }
785 }
786
787 enum TBBF_LARGE = 1;
788
789 enum {
790 TBN_GETBUTTONINFOA = TBN_FIRST -0,
791 TBN_BEGINDRAG = TBN_FIRST -1,
792 TBN_ENDDRAG = TBN_FIRST -2,
793 TBN_BEGINADJUST = TBN_FIRST -3,
794 TBN_ENDADJUST = TBN_FIRST -4,
795 TBN_RESET = TBN_FIRST -5,
796 TBN_QUERYINSERT = TBN_FIRST -6,
797 TBN_QUERYDELETE = TBN_FIRST -7,
798 TBN_TOOLBARCHANGE = TBN_FIRST -8,
799 TBN_CUSTHELP = TBN_FIRST -9
800 }
801 static if (_WIN32_IE >= 0x300) {
802 enum {
803 TBN_DROPDOWN = TBN_FIRST - 10
804 }
805 }
806 static if (_WIN32_IE >= 0x400) {
807 enum {
808 TBN_HOTITEMCHANGE = TBN_FIRST - 13,
809 TBN_DRAGOUT = TBN_FIRST - 14,
810 TBN_DELETINGBUTTON = TBN_FIRST - 15,
811 TBN_GETDISPINFOA = TBN_FIRST - 16,
812 TBN_GETDISPINFOW = TBN_FIRST - 17,
813 TBN_GETINFOTIPA = TBN_FIRST - 18,
814 TBN_GETINFOTIPW = TBN_FIRST - 19,
815 TBN_GETBUTTONINFOW = TBN_FIRST - 20
816 }
817 }
818 static if (_WIN32_IE >= 0x500) {
819 enum {
820 TBN_RESTORE = TBN_FIRST - 21,
821 TBN_SAVE = TBN_FIRST - 22,
822 TBN_INITCUSTOMIZE = TBN_FIRST - 23
823 }
824
825 enum {
826 TBNRF_HIDEHELP = 1,
827 TBNRF_ENDCUSTOMIZE
828 }
829
830 enum {
831 TBNF_IMAGE = 1,
832 TBNF_TEXT = 2,
833 TBNF_DI_SETITEM = 0x10000000
834 }
835 }
836
837 enum {
838 TTS_ALWAYSTIP = 1,
839 TTS_NOPREFIX
840 }
841 static if (_WIN32_IE >= 0x500) {
842 enum {
843 TTS_NOANIMATE = 0x10,
844 TTS_NOFADE = 0x20,
845 TTS_BALLOON = 0x40,
846 TTS_CLOSE = 0x80
847 }
848 }
849
850 enum {
851 TTF_IDISHWND = 1,
852 TTF_CENTERTIP = 2,
853 TTF_RTLREADING = 4,
854 TTF_SUBCLASS = 16
855 }
856 static if (_WIN32_IE >= 0x300) {
857 enum {
858 TTF_TRACK = 0x0020,
859 TTF_ABSOLUTE = 0x0080,
860 TTF_TRANSPARENT = 0x0100,
861 TTF_DI_SETITEM = 0x8000
862 }
863
864 static if (_WIN32_IE >= 0x501) {
865 enum {
866 TTF_PARSELINKS = 0x1000
867 }
868 }
869
870 enum {
871 TBCD_TICS = 1,
872 TBCD_THUMB,
873 TBCD_CHANNEL // = 3
874 }
875 }
876
877 static if (_WIN32_IE >= 0x400) {
878 enum {
879 TBDDRET_DEFAULT,
880 TBDDRET_NODEFAULT,
881 TBDDRET_TREATPRESSED
882 }
883
884 enum {
885 TBIMHT_AFTER = 1,
886 TBIMHT_BACKGROUND
887 }
888 }
889
890 enum {
891 TTDT_AUTOMATIC,
892 TTDT_RESHOW,
893 TTDT_AUTOPOP,
894 TTDT_INITIAL
895 }
896
897 enum {
898 TTM_ACTIVATE = WM_USER + 1,
899 TTM_SETDELAYTIME = WM_USER + 3,
900 TTM_ADDTOOLA,
901 TTM_DELTOOLA,
902 TTM_NEWTOOLRECTA,
903 TTM_RELAYEVENT,
904 TTM_GETTOOLINFOA,
905 TTM_SETTOOLINFOA,
906 TTM_HITTESTA,
907 TTM_GETTEXTA,
908 TTM_UPDATETIPTEXTA,
909 TTM_GETTOOLCOUNT,
910 TTM_ENUMTOOLSA,
911 TTM_GETCURRENTTOOLA,
912 TTM_WINDOWFROMPOINT, // = WM_USER + 16
913 TTM_ADDTOOLW = WM_USER + 50,
914 TTM_DELTOOLW,
915 TTM_NEWTOOLRECTW,
916 TTM_GETTOOLINFOW,
917 TTM_SETTOOLINFOW,
918 TTM_HITTESTW,
919 TTM_GETTEXTW,
920 TTM_UPDATETIPTEXTW,
921 TTM_ENUMTOOLSW,
922 TTM_GETCURRENTTOOLW // = WM_USER + 59
923 }
924
925 static if (_WIN32_IE >= 0x300) {
926 enum {
927 TTM_TRACKACTIVATE = WM_USER + 17,
928 TTM_TRACKPOSITION,
929 TTM_SETTIPBKCOLOR,
930 TTM_SETTIPTEXTCOLOR,
931 TTM_GETDELAYTIME,
932 TTM_GETTIPBKCOLOR,
933 TTM_GETTIPTEXTCOLOR,
934 TTM_SETMAXTIPWIDTH,
935 TTM_GETMAXTIPWIDTH,
936 TTM_SETMARGIN,
937 TTM_GETMARGIN,
938 TTM_POP // = WM_USER + 28
939 }
940 }
941
942 static if (_WIN32_IE >= 0x400) { // IE4.0 ???
943 enum {
944 TTM_UPDATE = WM_USER + 29,
945 TTM_GETBUBBLESIZE,
946 TTM_ADJUSTRECT,
947 TTM_SETTITLEA,
948 TTM_SETTITLEW // = WM_USER + 33
949 }
950 static if (_WIN32_IE >= 0x500) {
951 alias TTM_SETTITLEW TTM_SETTITLE;
952 } else {
953 alias TTM_SETTITLEA TTM_SETTITLE;
954 }
955 }
956
957 static if (_WIN32_WINNT >= 0x501) {
958 enum {
959 TTM_POPUP = (WM_USER + 34),
960 TTM_GETTITLE = (WM_USER + 35),
961 }
962 }
963
964 enum {
965 TTN_GETDISPINFOA = TTN_FIRST - 0,
966 TTN_GETDISPINFOW = TTN_FIRST - 10,
967 TTN_NEEDTEXTA = TTN_GETDISPINFOA,
968 TTN_NEEDTEXTW = TTN_GETDISPINFOW,
969 TTN_SHOW = TTN_FIRST-1,
970 TTN_POP = TTN_FIRST-2
971 }
972
973 enum UD_MAXVAL = 0x7fff;
974 enum UD_MINVAL = -UD_MAXVAL;
975
976 enum {
977 UDN_DELTAPOS = UDN_FIRST-1,
978 UDS_WRAP = 1,
979 UDS_SETBUDDYINT = 2,
980 UDS_ALIGNRIGHT = 4,
981 UDS_ALIGNLEFT = 8,
982 UDS_AUTOBUDDY = 16,
983 UDS_ARROWKEYS = 32,
984 UDS_HORZ = 64,
985 UDS_NOTHOUSANDS = 128
986 }
987
988 static if (_WIN32_IE >= 0x300) {
989 enum {
990 UDS_HOTTRACK = 0x0100
991 }
992 }
993
994 enum {
995 UDM_SETRANGE = WM_USER + 101,
996 UDM_GETRANGE,
997 UDM_SETPOS,
998 UDM_GETPOS,
999 UDM_SETBUDDY,
1000 UDM_GETBUDDY,
1001 UDM_SETACCEL,
1002 UDM_GETACCEL,
1003 UDM_SETBASE,
1004 UDM_GETBASE // = WM_USER + 110
1005 }
1006
1007 static if (_WIN32_IE >= 0x400) {
1008 enum {
1009 UDM_SETRANGE32 = WM_USER + 111,
1010 UDM_GETRANGE32,
1011 UDM_SETPOS32,
1012 UDM_GETPOS32 // = WM_USER + 114
1013 }
1014 }
1015
1016 static if (_WIN32_IE >= 0x500) {
1017 enum {
1018 UDM_SETUNICODEFORMAT = CCM_SETUNICODEFORMAT,
1019 UDM_GETUNICODEFORMAT = CCM_GETUNICODEFORMAT
1020 }
1021 }
1022
1023 /*enum {
1024 SB_SETTEXTA = WM_USER + 1,
1025 SB_GETTEXTA,
1026 SB_GETTEXTLENGTHA,
1027 SB_SETPARTS, // = WM_USER + 4
1028 SB_GETPARTS = WM_USER + 6,
1029 SB_GETBORDERS,
1030 SB_SETMINHEIGHT,
1031 SB_SIMPLE,
1032 SB_GETRECT,
1033 SB_SETTEXTW,
1034 SB_GETTEXTLENGTHW,
1035 SB_GETTEXTW // = WM_USER + 13
1036 }*/
1037
1038 /*enum {
1039 SBT_OWNERDRAW = 0x1000,
1040 SBT_NOBORDERS = 256,
1041 SBT_POPOUT = 512,
1042 SBT_RTLREADING = 1024
1043 }*/
1044
1045 static if (_WIN32_IE >= 0x400) {
1046 enum {
1047 SBT_TOOLTIPS = 0x0800,
1048 SBN_SIMPLEMODECHANGE = SBN_FIRST
1049 }
1050 }
1051
1052 enum {
1053 TBS_AUTOTICKS = 1,
1054 TBS_VERT = 2,
1055 TBS_HORZ = 0,
1056 TBS_TOP = 4,
1057 TBS_BOTTOM = 0,
1058 TBS_LEFT = 4,
1059 TBS_RIGHT = 0,
1060 TBS_BOTH = 8,
1061 TBS_NOTICKS = 16,
1062 TBS_ENABLESELRANGE = 32,
1063 TBS_FIXEDLENGTH = 64,
1064 TBS_NOTHUMB = 128
1065 }
1066
1067 static if (_WIN32_IE >= 0x300) {
1068 enum {
1069 TBS_TOOLTIPS = 0x0100,
1070 TBTS_TOP = 0,
1071 TBTS_LEFT,
1072 TBTS_BOTTOM,
1073 TBTS_RIGHT // = 3
1074 }
1075 }
1076
1077 static if (_WIN32_IE >= 0x500) {
1078 enum {
1079 TBS_REVERSED = 0x0200
1080 }
1081 }
1082
1083 static if (_WIN32_IE >= 0x501) {
1084 enum {
1085 TBS_DOWNISLEFT = 0x0400
1086 }
1087 }
1088
1089 static if (_WIN32_IE >= 0x400) {
1090 enum {
1091 TBIF_BYINDEX = 0x80000000,
1092 TBIF_COMMAND = 32,
1093 TBIF_IMAGE = 1,
1094 TBIF_LPARAM = 16,
1095 TBIF_SIZE = 64,
1096 TBIF_STATE = 4,
1097 TBIF_STYLE = 8,
1098 TBIF_TEXT = 2
1099 }
1100 }
1101
1102 enum {
1103 TBM_GETPOS = WM_USER,
1104 TBM_GETRANGEMIN,
1105 TBM_GETRANGEMAX,
1106 TBM_GETTIC,
1107 TBM_SETTIC,
1108 TBM_SETPOS,
1109 TBM_SETRANGE,
1110 TBM_SETRANGEMIN,
1111 TBM_SETRANGEMAX,
1112 TBM_CLEARTICS,
1113 TBM_SETSEL,
1114 TBM_SETSELSTART,
1115 TBM_SETSELEND, // = WM_USER+12,
1116 TBM_GETPTICS = WM_USER+14,
1117 TBM_GETTICPOS,
1118 TBM_GETNUMTICS,
1119 TBM_GETSELSTART,
1120 TBM_GETSELEND,
1121 TBM_CLEARSEL,
1122 TBM_SETTICFREQ,
1123 TBM_SETPAGESIZE,
1124 TBM_GETPAGESIZE,
1125 TBM_SETLINESIZE,
1126 TBM_GETLINESIZE,
1127 TBM_GETTHUMBRECT,
1128 TBM_GETCHANNELRECT,
1129 TBM_SETTHUMBLENGTH,
1130 TBM_GETTHUMBLENGTH,
1131 TBM_SETTOOLTIPS,
1132 TBM_GETTOOLTIPS,
1133 TBM_SETTIPSIDE,
1134 TBM_SETBUDDY,
1135 TBM_GETBUDDY, // = WM_USER+33,
1136 TBM_GETUNICODEFORMAT = CCM_GETUNICODEFORMAT,
1137 TBM_SETUNICODEFORMAT = CCM_SETUNICODEFORMAT
1138 }
1139
1140 enum {
1141 TB_LINEUP,
1142 TB_LINEDOWN,
1143 TB_PAGEUP,
1144 TB_PAGEDOWN,
1145 TB_THUMBPOSITION,
1146 TB_THUMBTRACK,
1147 TB_TOP,
1148 TB_BOTTOM,
1149 TB_ENDTRACK // = 8
1150 }
1151
1152 enum {
1153 HOTKEYF_SHIFT = 1,
1154 HOTKEYF_CONTROL = 2,
1155 HOTKEYF_ALT = 4,
1156 HOTKEYF_EXT = 8
1157 }
1158
1159 enum {
1160 HKCOMB_NONE = 1,
1161 HKCOMB_S = 2,
1162 HKCOMB_C = 4,
1163 HKCOMB_A = 8,
1164 HKCOMB_SC = 16,
1165 HKCOMB_SA = 32,
1166 HKCOMB_CA = 64,
1167 HKCOMB_SCA = 128
1168 }
1169
1170 enum {
1171 HKM_SETHOTKEY = WM_USER + 1,
1172 HKM_GETHOTKEY = WM_USER + 2,
1173 HKM_SETRULES = WM_USER + 3
1174 }
1175
1176 enum {
1177 PBM_SETRANGE = WM_USER + 1,
1178 PBM_SETPOS,
1179 PBM_DELTAPOS,
1180 PBM_SETSTEP,
1181 PBM_STEPIT, // = WM_USER + 5
1182 PBM_SETRANGE32 = 1030,
1183 PBM_GETRANGE,
1184 PBM_GETPOS,
1185 PBM_SETBARCOLOR, // = 1033
1186 PBM_SETBKCOLOR = CCM_SETBKCOLOR
1187 }
1188
1189 static if (_WIN32_WINNT >= 0x501) {
1190 enum {
1191 PBM_SETMARQUEE = WM_USER + 10,
1192 }
1193 }
1194
1195 static if (_WIN32_WINNT >= 0x600) {
1196 enum {
1197 PBM_GETSTEP = WM_USER + 13,
1198 PBM_GETBKCOLOR,
1199 PBM_GETBARCOLOR,
1200 PBM_SETSTATE,
1201 PBM_GETSTATE,
1202 }
1203 }
1204
1205 enum {
1206 PBS_SMOOTH = 1,
1207 PBS_VERTICAL = 4
1208 }
1209
1210 static if (_WIN32_WINNT >= 0x501) {
1211 enum {
1212 PBS_MARQUEE = 8,
1213 }
1214 }
1215
1216 static if (_WIN32_WINNT >= 0x600) {
1217 enum {
1218 PBS_SMOOTHREVERSE = 16,
1219 }
1220 }
1221
1222 enum {
1223 LVS_ICON,
1224 LVS_REPORT,
1225 LVS_SMALLICON,
1226 LVS_LIST, // = 3
1227 LVS_TYPEMASK = 3,
1228 LVS_SINGLESEL = 4,
1229 LVS_SHOWSELALWAYS = 8,
1230 LVS_SORTASCENDING = 16,
1231 LVS_SORTDESCENDING = 32,
1232 LVS_SHAREIMAGELISTS = 64,
1233 LVS_NOLABELWRAP = 128,
1234 LVS_AUTOARRANGE = 256,
1235 LVS_EDITLABELS = 512,
1236 LVS_NOSCROLL = 0x2000,
1237 LVS_TYPESTYLEMASK = 0xFC00,
1238 LVS_ALIGNTOP = 0,
1239 LVS_ALIGNLEFT = 0x800,
1240 LVS_ALIGNMASK = 0xC00,
1241 LVS_OWNERDRAWFIXED = 0x400,
1242 LVS_NOCOLUMNHEADER = 0x4000,
1243 LVS_NOSORTHEADER = 0x8000
1244 }
1245
1246 static if (_WIN32_IE >= 0x300) {
1247 enum {
1248 CDIS_CHECKED = 8,
1249 CDIS_DEFAULT = 32,
1250 CDIS_DISABLED = 4,
1251 CDIS_FOCUS = 16,
1252 CDIS_GRAYED = 2,
1253 CDIS_HOT = 64,
1254 CDIS_SELECTED = 1,
1255 CDIS_MARKED = 128,
1256 CDIS_INDETERMINATE = 256
1257 }
1258
1259 static if (_WIN32_WINNT >= 0x501) {
1260 enum {
1261 CDIS_SHOWKEYBOARDCUES = 512
1262 }
1263 }
1264
1265 enum {
1266 CDDS_POSTERASE = 4,
1267 CDDS_POSTPAINT = 2,
1268 CDDS_PREERASE = 3,
1269 CDDS_PREPAINT = 1,
1270 CDDS_ITEM = 65536,
1271 CDDS_ITEMPOSTERASE = 65540,
1272 CDDS_ITEMPOSTPAINT = 65538,
1273 CDDS_ITEMPREERASE = 65539,
1274 CDDS_ITEMPREPAINT = 65537
1275 }
1276
1277 static if (_WIN32_IE >= 0x400) {
1278 enum {
1279 CDDS_SUBITEM = 0x20000
1280 }
1281 }
1282
1283 enum {
1284 CDRF_DODEFAULT = 0x00,
1285 CDRF_NOTIFYITEMDRAW = 0x20,
1286 CDRF_NOTIFYSUBITEMDRAW = 0x20,
1287 CDRF_NOTIFYITEMERASE = 0x80,
1288 CDRF_NOTIFYPOSTERASE = 0x40,
1289 CDRF_NOTIFYPOSTPAINT = 0x10,
1290 CDRF_NEWFONT = 0x02,
1291 CDRF_SKIPDEFAULT = 0x04
1292 }
1293
1294 static if (_WIN32_IE >= 0x400) {
1295 enum {
1296 LVBKIF_SOURCE_NONE = 0x00000000,
1297 LVBKIF_SOURCE_HBITMAP = 0x00000001,
1298 LVBKIF_SOURCE_URL = 0x00000002,
1299 LVBKIF_SOURCE_MASK = 0x00000003,
1300 LVBKIF_STYLE_NORMAL = 0x00000000,
1301 LVBKIF_STYLE_TILE = 0x00000010,
1302 LVBKIF_STYLE_MASK = 0x00000010
1303 }
1304 }
1305
1306 static if (_WIN32_WINNT >= 0x501) {
1307 enum {
1308 LVBKIF_FLAG_TILEOFFSET = 0x00000100,
1309 LVBKIF_TYPE_WATERMARK = 0x10000000
1310 }
1311 }
1312
1313 enum {
1314 LVS_OWNERDATA = 4096
1315 }
1316
1317 enum {
1318 LVS_EX_CHECKBOXES = 4,
1319 LVS_EX_FULLROWSELECT = 32,
1320 LVS_EX_GRIDLINES = 1,
1321 LVS_EX_HEADERDRAGDROP = 16,
1322 LVS_EX_ONECLICKACTIVATE = 64,
1323 LVS_EX_SUBITEMIMAGES = 2,
1324 LVS_EX_TRACKSELECT = 8,
1325 LVS_EX_TWOCLICKACTIVATE = 128
1326 }
1327
1328 enum {
1329 LVSICF_NOINVALIDATEALL = 0x00000001,
1330 LVSICF_NOSCROLL = 0x00000002
1331 }
1332
1333 static if (_WIN32_IE >= 0x400) {
1334 enum {
1335 LVS_EX_FLATSB = 0x00000100,
1336 LVS_EX_REGIONAL = 0x00000200,
1337 LVS_EX_INFOTIP = 0x00000400,
1338 LVS_EX_UNDERLINEHOT = 0x00000800,
1339 LVS_EX_UNDERLINECOLD = 0x00001000,
1340 LVS_EX_MULTIWORKAREAS = 0x00002000
1341 }
1342 }
1343
1344 static if (_WIN32_IE >= 0x500) {
1345 enum {
1346 LVS_EX_LABELTIP = 0x00004000,
1347 LVS_EX_BORDERSELECT = 0x00008000
1348 }
1349 }
1350 }
1351
1352 enum {
1353 LVSIL_NORMAL,
1354 LVSIL_SMALL,
1355 LVSIL_STATE
1356 }
1357
1358 enum {
1359 LVM_GETBKCOLOR = LVM_FIRST,
1360 LVM_SETBKCOLOR,
1361 LVM_GETIMAGELIST,
1362 LVM_SETIMAGELIST,
1363 LVM_GETITEMCOUNT, // = LVM_FIRST + 4
1364 LVM_SORTITEMSEX = LVM_FIRST + 81,
1365 LVM_GETGROUPSTATE = LVM_FIRST + 92,
1366 LVM_GETFOCUSEDGROUP,
1367 LVM_GETGROUPRECT = LVM_FIRST + 98,
1368 LVM_SETVIEW = LVM_FIRST + 142,
1369 LVM_GETVIEW, // = LVM_FIRST + 143
1370 LVM_INSERTGROUP = LVM_FIRST + 145,
1371 LVM_SETGROUPINFO = LVM_FIRST + 147,
1372 LVM_GETGROUPINFO = LVM_FIRST + 149,
1373 LVM_REMOVEGROUP,
1374 LVM_MOVEGROUP, // = LVM_FIRST + 151
1375 LVM_GETGROUPCOUNT,
1376 LVM_GETGROUPINFOBYINDEX,
1377 LVM_MOVEITEMTOGROUP,
1378 LVM_SETGROUPMETRICS = LVM_FIRST + 155,
1379 LVM_GETGROUPMETRICS,
1380 LVM_ENABLEGROUPVIEW,
1381 LVM_SORTGROUPS,
1382 LVM_INSERTGROUPSORTED,
1383 LVM_REMOVEALLGROUPS,
1384 LVM_HASGROUP,
1385 LVM_SETTILEVIEWINFO,
1386 LVM_GETTILEVIEWINFO,
1387 LVM_SETTILEINFO,
1388 LVM_GETTILEINFO,
1389 LVM_SETINSERTMARK,
1390 LVM_GETINSERTMARK,
1391 LVM_INSERTMARKHITTEST,
1392 LVM_GETINSERTMARKRECT,
1393 LVM_SETINSERTMARKCOLOR,
1394 LVM_GETINSERTMARKCOLOR, // = LVM_FIRST + 171
1395 LVM_SETINFOTIP = LVM_FIRST + 173,
1396 LVM_GETSELECTEDCOLUMN,
1397 LVM_ISGROUPVIEWENABLED,
1398 LVM_GETOUTLINECOLOR,
1399 LVM_SETOUTLINECOLOR, // = LVM_FIRST + 177
1400 LVM_CANCELEDITLABEL = LVM_FIRST + 179,
1401 LVM_MAPINDEXTOID = LVM_FIRST + 180,
1402 LVM_MAPIDTOINDEX = LVM_FIRST + 181,
1403 LVM_ISITEMVISIBLE = LVM_FIRST + 182,
1404 }
1405
1406 static if (_WIN32_WINNT >= 0x501) {
1407 enum {
1408 LVM_SETSELECTEDCOLUMN = LVM_FIRST + 140
1409 }
1410 }
1411
1412 static if (_WIN32_WINNT >= 0x600) {
1413 enum {
1414 LVM_GETEMPTYTEXT = LVM_FIRST + 204,
1415 LVM_GETFOOTERRECT = LVM_FIRST + 205,
1416 LVM_GETFOOTERINFO = LVM_FIRST + 206,
1417 LVM_GETFOOTERITEMRECT = LVM_FIRST + 207,
1418 LVM_GETFOOTERITEM = (LVM_FIRST + 208),
1419 LVM_GETITEMINDEXRECT = (LVM_FIRST + 209),
1420 LVM_SETITEMINDEXSTATE = (LVM_FIRST + 210),
1421 LVM_GETNEXTITEMINDEX = (LVM_FIRST + 211),
1422 }
1423 }
1424
1425 enum {
1426 LVIF_TEXT = 1,
1427 LVIF_IMAGE = 2,
1428 LVIF_PARAM = 4,
1429 LVIF_STATE = 8
1430 }
1431
1432 static if (_WIN32_IE >= 0x300) {
1433 enum {
1434 LVIF_INDENT = 16,
1435 LVIF_NORECOMPUTE = 2048
1436 }
1437 }
1438
1439 static if (_WIN32_WINNT >= 0x501) {
1440 enum {
1441 LVIF_GROUPID = 128,
1442 LVIF_COLUMNS = 256
1443 }
1444 }
1445
1446 enum {
1447 LVIS_FOCUSED = 1,
1448 LVIS_SELECTED = 2,
1449 LVIS_CUT = 4,
1450 LVIS_DROPHILITED = 8,
1451 LVIS_OVERLAYMASK = 0xF00,
1452 LVIS_STATEIMAGEMASK = 0xF000
1453 }
1454
1455 enum LPWSTR LPSTR_TEXTCALLBACKW = cast(LPWSTR) -1;
1456 enum LPSTR LPSTR_TEXTCALLBACKA = cast(LPSTR) -1;
1457
1458 enum I_IMAGECALLBACK = -1;
1459
1460 static if (_WIN32_IE >= 0x400) {
1461 enum {
1462 LVM_SETBKIMAGEA = LVM_FIRST + 68,
1463 LVM_SETBKIMAGEW = LVM_FIRST + 138,
1464 LVM_GETBKIMAGEA = LVM_FIRST + 69,
1465 LVM_GETBKIMAGEW = LVM_FIRST + 139,
1466 LV_MAX_WORKAREAS = 16,
1467 LVM_SETWORKAREAS = LVM_FIRST + 65,
1468 LVM_GETWORKAREAS = LVM_FIRST + 70,
1469 LVM_GETNUMBEROFWORKAREAS = LVM_FIRST + 73,
1470 LVM_GETSELECTIONMARK = LVM_FIRST + 66,
1471 LVM_SETSELECTIONMARK = LVM_FIRST + 67,
1472 LVM_SETHOVERTIME = LVM_FIRST + 71,
1473 LVM_GETHOVERTIME = LVM_FIRST + 72,
1474 LVM_SETTOOLTIPS = LVM_FIRST + 74,
1475 LVM_GETTOOLTIPS = LVM_FIRST + 78,
1476 LVM_SETUNICODEFORMAT = CCM_SETUNICODEFORMAT,
1477 LVM_GETUNICODEFORMAT = CCM_GETUNICODEFORMAT
1478 }
1479 }
1480
1481 enum {
1482 LVNI_ALL,
1483 LVNI_FOCUSED = 1,
1484 LVNI_SELECTED = 2,
1485 LVNI_CUT = 4,
1486 LVNI_DROPHILITED = 8,
1487 LVNI_ABOVE = 256,
1488 LVNI_BELOW = 512,
1489 LVNI_TOLEFT = 1024,
1490 LVNI_TORIGHT = 2048
1491 }
1492
1493 enum {
1494 LVM_GETITEMA = LVM_FIRST + 5,
1495 LVM_SETITEMA,
1496 LVM_INSERTITEMA,
1497 LVM_DELETEITEM,
1498 LVM_DELETEALLITEMS,
1499 LVM_GETCALLBACKMASK,
1500 LVM_SETCALLBACKMASK,
1501 LVM_GETNEXTITEM,
1502 LVM_FINDITEMA,
1503 LVM_GETITEMRECT,
1504 LVM_SETITEMPOSITION,
1505 LVM_GETITEMPOSITION,
1506 LVM_GETSTRINGWIDTHA,
1507 LVM_HITTEST,
1508 LVM_ENSUREVISIBLE,
1509 LVM_SCROLL,
1510 LVM_REDRAWITEMS,
1511 LVM_ARRANGE,
1512 LVM_EDITLABELA,
1513 LVM_GETEDITCONTROL,
1514 LVM_GETCOLUMNA,
1515 LVM_SETCOLUMNA,
1516 LVM_INSERTCOLUMNA,
1517 LVM_DELETECOLUMN,
1518 LVM_GETCOLUMNWIDTH,
1519 LVM_SETCOLUMNWIDTH, // = LVM_FIRST + 30,
1520 LVM_CREATEDRAGIMAGE = LVM_FIRST + 33,
1521 LVM_GETVIEWRECT,
1522 LVM_GETTEXTCOLOR,
1523 LVM_SETTEXTCOLOR,
1524 LVM_GETTEXTBKCOLOR,
1525 LVM_SETTEXTBKCOLOR,
1526 LVM_GETTOPINDEX,
1527 LVM_GETCOUNTPERPAGE,
1528 LVM_GETORIGIN,
1529 LVM_UPDATE,
1530 LVM_SETITEMSTATE,
1531 LVM_GETITEMSTATE,
1532 LVM_GETITEMTEXTA,
1533 LVM_SETITEMTEXTA,
1534 LVM_SETITEMCOUNT,
1535 LVM_SORTITEMS,
1536 LVM_SETITEMPOSITION32,
1537 LVM_GETSELECTEDCOUNT,
1538 LVM_GETITEMSPACING,
1539 LVM_GETISEARCHSTRINGA, // = LVM_FIRST + 52,
1540 LVM_GETITEMW = LVM_FIRST + 75,
1541 LVM_SETITEMW = LVM_FIRST + 76,
1542 LVM_INSERTITEMW = LVM_FIRST + 77,
1543 LVM_FINDITEMW = LVM_FIRST + 83,
1544 LVM_GETSTRINGWIDTHW = LVM_FIRST + 87,
1545 LVM_GETCOLUMNW = LVM_FIRST + 95,
1546 LVM_SETCOLUMNW = LVM_FIRST + 96,
1547 LVM_INSERTCOLUMNW = LVM_FIRST + 97,
1548 LVM_GETITEMTEXTW = LVM_FIRST + 115,
1549 LVM_SETITEMTEXTW,
1550 LVM_GETISEARCHSTRINGW,
1551 LVM_EDITLABELW // = LVM_FIRST + 118,
1552 }
1553
1554 static if (_WIN32_IE >= 0x300) {
1555 enum {
1556 LVM_GETHEADER = LVM_FIRST + 31,
1557 LVM_SETICONSPACING = LVM_FIRST + 53,
1558 LVM_SETEXTENDEDLISTVIEWSTYLE,
1559 LVM_GETEXTENDEDLISTVIEWSTYLE,
1560 LVM_GETSUBITEMRECT,
1561 LVM_SUBITEMHITTEST,
1562 LVM_SETCOLUMNORDERARRAY,
1563 LVM_GETCOLUMNORDERARRAY,
1564 LVM_SETHOTITEM,
1565 LVM_GETHOTITEM,
1566 LVM_SETHOTCURSOR,
1567 LVM_GETHOTCURSOR,
1568 LVM_APPROXIMATEVIEWRECT // = LVM_FIRST + 64,
1569 }
1570 }
1571
1572 enum {
1573 LVFI_PARAM = 1,
1574 LVFI_STRING = 2,
1575 LVFI_PARTIAL = 8,
1576 LVFI_WRAP = 32,
1577 LVFI_NEARESTXY = 64
1578 }
1579
1580 enum {
1581 LVIF_DI_SETITEM = 0x1000
1582 }
1583
1584 enum {
1585 LVIR_BOUNDS,
1586 LVIR_ICON,
1587 LVIR_LABEL,
1588 LVIR_SELECTBOUNDS // = 3
1589 }
1590
1591 enum {
1592 LVHT_NOWHERE = 1,
1593 LVHT_ONITEMICON = 2,
1594 LVHT_ONITEMLABEL = 4,
1595 LVHT_ONITEMSTATEICON = 8,
1596 LVHT_ONITEM = LVHT_ONITEMICON | LVHT_ONITEMLABEL
1597 | LVHT_ONITEMSTATEICON,
1598 LVHT_ABOVE = 8,
1599 LVHT_BELOW = 16,
1600 LVHT_TORIGHT = 32,
1601 LVHT_TOLEFT = 64
1602 }
1603
1604 enum {
1605 LVA_DEFAULT = 0,
1606 LVA_ALIGNLEFT = 1,
1607 LVA_ALIGNTOP = 2,
1608 LVA_SNAPTOGRID = 5
1609 }
1610
1611 enum {
1612 LVCF_FMT = 1,
1613 LVCF_WIDTH = 2,
1614 LVCF_TEXT = 4,
1615 LVCF_SUBITEM = 8
1616 }
1617
1618 static if (_WIN32_IE >= 0x300) {
1619 enum {
1620 LVCF_IMAGE = 16,
1621 LVCF_ORDER = 32
1622 }
1623 }
1624
1625 enum {
1626 LVCFMT_LEFT,
1627 LVCFMT_RIGHT,
1628 LVCFMT_CENTER,
1629 LVCFMT_JUSTIFYMASK // = 3
1630 }
1631
1632 static if (_WIN32_IE >= 0x300) {
1633 enum {
1634 LVCFMT_IMAGE = 2048,
1635 LVCFMT_BITMAP_ON_RIGHT = 4096,
1636 LVCFMT_COL_HAS_IMAGES = 32768
1637 }
1638 }
1639
1640 enum {
1641 LVSCW_AUTOSIZE = -1,
1642 LVSCW_AUTOSIZE_USEHEADER = -2
1643 }
1644
1645 enum {
1646 LVN_ITEMCHANGING = LVN_FIRST,
1647 LVN_ITEMCHANGED = LVN_FIRST - 1,
1648 LVN_INSERTITEM = LVN_FIRST - 2,
1649 LVN_DELETEITEM = LVN_FIRST - 3,
1650 LVN_DELETEALLITEMS = LVN_FIRST - 4,
1651 LVN_BEGINLABELEDITA = LVN_FIRST - 5,
1652 LVN_ENDLABELEDITA = LVN_FIRST - 6,
1653 LVN_COLUMNCLICK = LVN_FIRST - 8,
1654 LVN_BEGINDRAG = LVN_FIRST - 9,
1655 LVN_BEGINRDRAG = LVN_FIRST - 11,
1656 LVN_GETDISPINFOA = LVN_FIRST - 50,
1657 LVN_SETDISPINFOA = LVN_FIRST - 51,
1658 LVN_KEYDOWN = LVN_FIRST - 55,
1659 LVN_BEGINLABELEDITW = LVN_FIRST - 75,
1660 LVN_ENDLABELEDITW = LVN_FIRST - 76,
1661 LVN_GETDISPINFOW = LVN_FIRST - 77,
1662 LVN_SETDISPINFOW = LVN_FIRST - 78
1663 }
1664
1665 static if (_WIN32_IE >= 0x400) {
1666 enum {
1667 LVN_MARQUEEBEGIN = LVN_FIRST - 56,
1668 LVN_GETINFOTIPA = LVN_FIRST - 57,
1669 LVN_GETINFOTIPW = LVN_FIRST - 58,
1670 LVKF_ALT = 1,
1671 LVKF_CONTROL = 2,
1672 LVKF_SHIFT = 4,
1673 LVGIT_UNFOLDED = 1
1674 }
1675 }
1676
1677 enum {
1678 TVS_HASBUTTONS = 1,
1679 TVS_HASLINES = 2,
1680 TVS_LINESATROOT = 4,
1681 TVS_EDITLABELS = 8,
1682 TVS_DISABLEDRAGDROP = 16,
1683 TVS_SHOWSELALWAYS = 32
1684 }
1685
1686 static if (_WIN32_IE >= 0x300) {
1687 enum {
1688 TVS_RTLREADING = 64,
1689 TVS_NOTOOLTIPS = 128,
1690 TVS_CHECKBOXES = 256,
1691 TVS_TRACKSELECT = 512
1692 }
1693 }
1694
1695 static if (_WIN32_IE >= 0x400) {
1696 enum {
1697 TVS_SINGLEEXPAND = 1024,
1698 TVS_INFOTIP = 2048,
1699 TVS_FULLROWSELECT = 4096,
1700 TVS_NOSCROLL = 8192,
1701 TVS_NONEVENHEIGHT = 16384
1702 }
1703 }
1704
1705 static if (_WIN32_IE >= 0x500) {
1706 enum {
1707 TVS_NOHSCROLL = 0x8000
1708 }
1709 }
1710
1711 enum {
1712 TVIF_TEXT = 1,
1713 TVIF_IMAGE = 2,
1714 TVIF_PARAM = 4,
1715 TVIF_STATE = 8,
1716 TVIF_HANDLE = 16,
1717 TVIF_SELECTEDIMAGE = 32,
1718 TVIF_CHILDREN = 64
1719 }
1720
1721 static if (_WIN32_IE >= 0x400) {
1722 enum {
1723 TVIF_INTEGRAL = 0x0080
1724 }
1725 }
1726
1727 enum {
1728 TVIS_FOCUSED = 1,
1729 TVIS_SELECTED = 2,
1730 TVIS_CUT = 4,
1731 TVIS_DROPHILITED = 8,
1732 TVIS_BOLD = 16,
1733 TVIS_EXPANDED = 32,
1734 TVIS_EXPANDEDONCE = 64,
1735 TVIS_OVERLAYMASK = 0xF00,
1736 TVIS_STATEIMAGEMASK = 0xF000,
1737 TVIS_USERMASK = 0xF000
1738 }
1739
1740 enum {
1741 I_CHILDRENCALLBACK = -1
1742 }
1743
1744 mixin DECLARE_HANDLE!("HTREEITEM");
1745 mixin DECLARE_HANDLE!("HIMAGELIST");
1746
1747 version (Win64)
1748 {
1749 enum HTREEITEM
1750 TVI_ROOT = cast(HTREEITEM) cast(ULONG_PTR)-0x10000,
1751 TVI_FIRST = cast(HTREEITEM) cast(ULONG_PTR)-0xffff,
1752 TVI_LAST = cast(HTREEITEM) cast(ULONG_PTR)-0xfffe,
1753 TVI_SORT = cast(HTREEITEM) cast(ULONG_PTR)-0xfffd;
1754 } else {
1755 enum HTREEITEM
1756 TVI_ROOT = cast(HTREEITEM) 0xFFFF0000,
1757 TVI_FIRST = cast(HTREEITEM) 0xFFFF0001,
1758 TVI_LAST = cast(HTREEITEM) 0xFFFF0002,
1759 TVI_SORT = cast(HTREEITEM) 0xFFFF0003;
1760 }
1761
1762 enum {
1763 TVSIL_NORMAL = 0,
1764 TVSIL_STATE = 2
1765 }
1766
1767 enum {
1768 TVM_INSERTITEMA = TV_FIRST,
1769 TVM_DELETEITEM = TV_FIRST + 1,
1770 TVM_EXPAND = TV_FIRST + 2,
1771 TVM_GETITEMRECT = TV_FIRST + 4,
1772 TVM_GETCOUNT,
1773 TVM_GETINDENT,
1774 TVM_SETINDENT,
1775 TVM_GETIMAGELIST,
1776 TVM_SETIMAGELIST,
1777 TVM_GETNEXTITEM,
1778 TVM_SELECTITEM,
1779 TVM_GETITEMA,
1780 TVM_SETITEMA,
1781 TVM_EDITLABELA,
1782 TVM_GETEDITCONTROL,
1783 TVM_GETVISIBLECOUNT,
1784 TVM_HITTEST,
1785 TVM_CREATEDRAGIMAGE,
1786 TVM_SORTCHILDREN,
1787 TVM_ENSUREVISIBLE,
1788 TVM_SORTCHILDRENCB,
1789 TVM_ENDEDITLABELNOW,
1790 TVM_GETISEARCHSTRINGA, // = TV_FIRST + 23
1791 TVM_INSERTITEMW = TV_FIRST + 50,
1792 TVM_GETITEMW = TV_FIRST + 62,
1793 TVM_SETITEMW = TV_FIRST + 63,
1794 TVM_GETISEARCHSTRINGW = TV_FIRST + 64,
1795 TVM_EDITLABELW = TV_FIRST + 65
1796 }
1797
1798 static if (_WIN32_IE >= 0x300) {
1799 enum {
1800 TVM_GETTOOLTIPS = TV_FIRST + 25,
1801 TVM_SETTOOLTIPS = TV_FIRST + 24
1802 }
1803 }
1804
1805 static if (_WIN32_IE >= 0x400) {
1806 enum {
1807 TVM_SETINSERTMARK = TV_FIRST + 26,
1808 TVM_SETITEMHEIGHT,
1809 TVM_GETITEMHEIGHT,
1810 TVM_SETBKCOLOR,
1811 TVM_SETTEXTCOLOR,
1812 TVM_GETBKCOLOR,
1813 TVM_GETTEXTCOLOR,
1814 TVM_SETSCROLLTIME,
1815 TVM_GETSCROLLTIME, // = TV_FIRST + 34
1816 TVM_SETINSERTMARKCOLOR = TV_FIRST + 37,
1817 TVM_GETINSERTMARKCOLOR = TV_FIRST + 38,
1818 TVM_SETUNICODEFORMAT = CCM_SETUNICODEFORMAT,
1819 TVM_GETUNICODEFORMAT = CCM_GETUNICODEFORMAT
1820 }
1821 }
1822
1823 static if (_WIN32_IE >= 0x500) {
1824 enum {
1825 TVM_GETITEMSTATE = TV_FIRST + 39,
1826 TVM_SETLINECOLOR = TV_FIRST + 40,
1827 TVM_GETLINECOLOR = TV_FIRST + 41
1828 }
1829 }
1830
1831 static if (_WIN32_IE >= 0x501) {
1832 enum {
1833 TVM_MAPACCIDTOHTREEITEM = TV_FIRST + 42,
1834 TVM_MAPHTREEITEMTOACCID = TV_FIRST + 43,
1835 TVM_SETEXTENDEDSTYLE = TV_FIRST + 44,
1836 TVM_GETEXTENDEDSTYLE = TV_FIRST + 45,
1837 TVM_SETAUTOSCROLLINFO = TV_FIRST + 59
1838 }
1839 }
1840
1841 static if (_WIN32_IE >= 0x600) {
1842 enum {
1843 TVM_GETSELECTEDCOUNT = TV_FIRST + 70,
1844 TVM_SHOWINFOTIP = TV_FIRST + 71,
1845 TVM_GETITEMPARTRECT = TV_FIRST + 72,
1846 }
1847 }
1848
1849 enum {
1850 TVE_COLLAPSE = 1,
1851 TVE_EXPAND = 2,
1852 TVE_TOGGLE = 3,
1853 TVE_COLLAPSERESET = 0x8000
1854 }
1855
1856 static if (_WIN32_IE >= 0x300) {
1857 enum {
1858 TVE_EXPANDPARTIAL = 0x4000
1859 }
1860 }
1861
1862 enum {
1863 TVC_UNKNOWN,
1864 TVC_BYMOUSE,
1865 TVC_BYKEYBOARD // = 2
1866 }
1867
1868 enum {
1869 TVGN_ROOT,
1870 TVGN_NEXT,
1871 TVGN_PREVIOUS,
1872 TVGN_PARENT,
1873 TVGN_CHILD,
1874 TVGN_FIRSTVISIBLE,
1875 TVGN_NEXTVISIBLE,
1876 TVGN_PREVIOUSVISIBLE,
1877 TVGN_DROPHILITE,
1878 TVGN_CARET // = 9
1879 }
1880
1881 static if (_WIN32_IE >= 0x400) {
1882 enum {
1883 TVGN_LASTVISIBLE = 10
1884 }
1885 }
1886
1887 static if (_WIN32_IE >= 0x600) {
1888 enum {
1889 TVGN_NEXTSELECTED = 11
1890 }
1891 }
1892
1893 enum {
1894 TVN_SELCHANGINGA = TVN_FIRST - 1,
1895 TVN_SELCHANGEDA = TVN_FIRST - 2,
1896 TVN_GETDISPINFOA = TVN_FIRST - 3,
1897 TVN_SETDISPINFOA = TVN_FIRST - 4,
1898 TVN_ITEMEXPANDINGA = TVN_FIRST - 5,
1899 TVN_ITEMEXPANDEDA = TVN_FIRST - 6,
1900 TVN_BEGINDRAGA = TVN_FIRST - 7,
1901 TVN_BEGINRDRAGA = TVN_FIRST - 8,
1902 TVN_DELETEITEMA = TVN_FIRST - 9,
1903 TVN_BEGINLABELEDITA = TVN_FIRST - 10,
1904 TVN_ENDLABELEDITA = TVN_FIRST - 11,
1905 TVN_KEYDOWN = TVN_FIRST - 12,
1906 TVN_SELCHANGINGW = TVN_FIRST - 50,
1907 TVN_SELCHANGEDW = TVN_FIRST - 51,
1908 TVN_GETDISPINFOW = TVN_FIRST - 52,
1909 TVN_SETDISPINFOW = TVN_FIRST - 53,
1910 TVN_ITEMEXPANDINGW = TVN_FIRST - 54,
1911 TVN_ITEMEXPANDEDW = TVN_FIRST - 55,
1912 TVN_BEGINDRAGW = TVN_FIRST - 56,
1913 TVN_BEGINRDRAGW = TVN_FIRST - 57,
1914 TVN_DELETEITEMW = TVN_FIRST - 58,
1915 TVN_BEGINLABELEDITW = TVN_FIRST - 59,
1916 TVN_ENDLABELEDITW = TVN_FIRST - 60
1917 }
1918
1919 static if (_WIN32_IE >= 0x400) {
1920 enum {
1921 TVNRET_DEFAULT = 0,
1922 TVNRET_SKIPOLD = 1,
1923 TVNRET_SKIPNEW = 2,
1924 TVN_GETINFOTIPA = TVN_FIRST - 13,
1925 TVN_GETINFOTIPW = TVN_FIRST - 14,
1926 TVN_SINGLEEXPAND = TVN_FIRST - 15
1927 }
1928 }
1929
1930 enum {
1931 TVIF_DI_SETITEM = 0x1000
1932 }
1933
1934 enum {
1935 TVHT_NOWHERE = 1,
1936 TVHT_ONITEMICON = 2,
1937 TVHT_ONITEMLABEL = 4,
1938 TVHT_ONITEMINDENT = 8,
1939 TVHT_ONITEMBUTTON = 16,
1940 TVHT_ONITEMRIGHT = 32,
1941 TVHT_ONITEMSTATEICON = 64,
1942 TVHT_ABOVE = 256,
1943 TVHT_BELOW = 512,
1944 TVHT_TORIGHT = 1024,
1945 TVHT_TOLEFT = 2048,
1946 TCHT_NOWHERE = 1,
1947 TCHT_ONITEMICON = 2,
1948 TCHT_ONITEMLABEL = 4,
1949 TVHT_ONITEM = TVHT_ONITEMICON | TVHT_ONITEMLABEL
1950 | TVHT_ONITEMSTATEICON,
1951 TCHT_ONITEM = TCHT_ONITEMICON | TCHT_ONITEMLABEL
1952 }
1953
1954 enum {
1955 TCS_TABS = 0,
1956 TCS_RIGHTJUSTIFY = 0,
1957 TCS_SINGLELINE = 0,
1958 TCS_FORCEICONLEFT = 16,
1959 TCS_FORCELABELLEFT = 32,
1960 TCS_BUTTONS = 256,
1961 TCS_MULTILINE = 512,
1962 TCS_FIXEDWIDTH = 1024,
1963 TCS_RAGGEDRIGHT = 2048,
1964 TCS_FOCUSONBUTTONDOWN = 0x1000,
1965 TCS_OWNERDRAWFIXED = 0x2000,
1966 TCS_TOOLTIPS = 0x4000,
1967 TCS_FOCUSNEVER = 0x8000
1968 }
1969
1970 static if (_WIN32_IE >= 0x300) {
1971 enum {
1972 TCS_BOTTOM = 2,
1973 TCS_RIGHT = 2,
1974 TCS_VERTICAL = 128,
1975 TCS_SCROLLOPPOSITE = 0x0001,
1976 TCS_HOTTRACK = 0x0040,
1977 TCS_MULTISELECT = 0x0004
1978 }
1979 }
1980
1981 static if (_WIN32_IE >= 0x400) {
1982 enum {
1983 TCS_FLATBUTTONS = 0x0008,
1984 TCS_EX_FLATSEPARATORS = 0x00000001,
1985 TCS_EX_REGISTERDROP = 0x00000002
1986 }
1987 }
1988
1989 enum {
1990 TCIF_TEXT = 1,
1991 TCIF_IMAGE = 2,
1992 TCIF_RTLREADING = 4,
1993 TCIF_PARAM = 8
1994 }
1995
1996 static if (_WIN32_IE >= 0x400) {
1997 enum {
1998 TCIF_STATE = 16
1999 }
2000 }
2001
2002 enum {
2003 TCIS_BUTTONPRESSED = 1
2004 }
2005
2006 static if (_WIN32_IE >= 0x400) {
2007 enum {
2008 TCIS_HIGHLIGHTED = 2
2009 }
2010 }
2011
2012 enum {
2013 TCM_FIRST = 0x1300,
2014 TCM_GETIMAGELIST = TCM_FIRST + 2,
2015 TCM_SETIMAGELIST,
2016 TCM_GETITEMCOUNT,
2017 TCM_GETITEMA,
2018 TCM_SETITEMA,
2019 TCM_INSERTITEMA,
2020 TCM_DELETEITEM,
2021 TCM_DELETEALLITEMS,
2022 TCM_GETITEMRECT,
2023 TCM_GETCURSEL,
2024 TCM_SETCURSEL,
2025 TCM_HITTEST,
2026 TCM_SETITEMEXTRA, // = TCM_FIRST + 14
2027 TCM_ADJUSTRECT = TCM_FIRST + 40,
2028 TCM_SETITEMSIZE,
2029 TCM_REMOVEIMAGE,
2030 TCM_SETPADDING,
2031 TCM_GETROWCOUNT,
2032 TCM_GETTOOLTIPS,
2033 TCM_SETTOOLTIPS,
2034 TCM_GETCURFOCUS,
2035 TCM_SETCURFOCUS,
2036 TCM_SETMINTABWIDTH,
2037 TCM_DESELECTALL, // = TCM_FIRST + 50
2038 TCM_GETITEMW = TCM_FIRST + 60,
2039 TCM_SETITEMW = TCM_FIRST + 61,
2040 TCM_INSERTITEMW = TCM_FIRST + 62
2041 }
2042
2043 static if (_WIN32_IE >=0x0400) {
2044 enum {
2045 TCM_HIGHLIGHTITEM = TCM_FIRST + 51,
2046 TCM_SETEXTENDEDSTYLE = TCM_FIRST + 52,
2047 TCM_GETEXTENDEDSTYLE = TCM_FIRST + 53,
2048 TCM_SETUNICODEFORMAT = CCM_SETUNICODEFORMAT,
2049 TCM_GETUNICODEFORMAT = CCM_GETUNICODEFORMAT
2050 }
2051 }
2052
2053 enum {
2054 TCN_KEYDOWN = TCN_FIRST,
2055 TCN_SELCHANGE = TCN_FIRST - 1,
2056 TCN_SELCHANGING = TCN_FIRST - 2
2057 }
2058
2059 enum {
2060 NM_OUTOFMEMORY = NM_FIRST - 1,
2061 NM_CLICK = NM_FIRST - 2,
2062 NM_DBLCLK = NM_FIRST - 3,
2063 NM_RETURN = NM_FIRST - 4,
2064 NM_RCLICK = NM_FIRST - 5,
2065 NM_RDBLCLK = NM_FIRST - 6,
2066 NM_SETFOCUS = NM_FIRST - 7,
2067 NM_KILLFOCUS = NM_FIRST - 8,
2068 NM_CUSTOMDRAW = NM_FIRST - 12,
2069 NM_HOVER = NM_FIRST - 13,
2070 NM_NCHITTEST = NM_FIRST - 14,
2071 NM_KEYDOWN = NM_FIRST - 15,
2072 NM_RELEASEDCAPTURE = NM_FIRST - 16,
2073 NM_SETCURSOR = NM_FIRST - 17,
2074 NM_CHAR = NM_FIRST - 18,
2075 NM_TOOLTIPSCREATED = NM_FIRST - 19
2076 }
2077
2078 enum {
2079 SBARS_SIZEGRIP = 256
2080 }
2081
2082 /*enum {
2083 CCM_FIRST = 0x2000,
2084 CCM_LAST = CCM_FIRST + 0x200,
2085 CCM_SETBKCOLOR = 8193,
2086 CCM_SETCOLORSCHEME = 8194,
2087 CCM_GETCOLORSCHEME = 8195,
2088 CCM_GETDROPTARGET = 8196,
2089 CCM_SETUNICODEFORMAT = 8197,
2090 CCM_GETUNICODEFORMAT = 8198,
2091 CCM_SETVERSION = 0x2007,
2092 CCM_GETVERSION = 0x2008,
2093 CCM_SETNOTIFYWINDOW = 0x2009
2094 }*/
2095
2096 static if (_WIN32_WINNT >= 0x501) {
2097 enum {
2098 CCM_SETWINDOWTHEME = 0x200b,
2099 CCM_DPISCALE = 0x200c,
2100
2101 RB_GETBANDMARGINS = WM_USER + 40,
2102 RB_SETWINDOWTHEME = CCM_SETWINDOWTHEME,
2103 TB_SETWINDOWTHEME = CCM_SETWINDOWTHEME,
2104 TTM_SETWINDOWTHEME = CCM_SETWINDOWTHEME,
2105 }
2106 }
2107
2108 enum {
2109 ICC_LISTVIEW_CLASSES = 1,
2110 ICC_TREEVIEW_CLASSES = 2,
2111 ICC_BAR_CLASSES = 4,
2112 ICC_TAB_CLASSES = 8,
2113 ICC_UPDOWN_CLASS = 16,
2114 ICC_PROGRESS_CLASS = 32,
2115 ICC_HOTKEY_CLASS = 64,
2116 ICC_ANIMATE_CLASS = 128,
2117 ICC_WIN95_CLASSES = 255,
2118 ICC_DATE_CLASSES = 256,
2119 ICC_USEREX_CLASSES = 512,
2120 ICC_COOL_CLASSES = 1024
2121 }
2122
2123 static if (_WIN32_IE >= 0x400) {
2124 enum {
2125 INFOTIPSIZE = 1024,
2126 ICC_INTERNET_CLASSES = 2048,
2127 ICC_PAGESCROLLER_CLASS = 4096,
2128 ICC_NATIVEFNTCTL_CLASS = 8192
2129 }
2130 }
2131
2132 static if (_WIN32_WINNT >= 0x501) {
2133 enum {
2134 ICC_STANDARD_CLASSES = 0x00004000,
2135 ICC_LINK_CLASS = 0x00008000
2136 }
2137 }
2138
2139 enum {
2140 GDTR_MIN = 1,
2141 GDTR_MAX = 2
2142 }
2143
2144 enum {
2145 GMR_VISIBLE,
2146 GMR_DAYSTATE
2147 }
2148
2149 enum {
2150 GDT_ERROR = -1,
2151 GDT_VALID = 0,
2152 GDT_NONE = 1
2153 }
2154
2155 enum {
2156 DTS_SHORTDATEFORMAT = 0,
2157 DTS_UPDOWN = 1,
2158 DTS_SHOWNONE = 2,
2159 DTS_LONGDATEFORMAT = 4,
2160 DTS_TIMEFORMAT = 9,
2161 DTS_APPCANPARSE = 16,
2162 DTS_RIGHTALIGN = 32
2163 }
2164
2165 static if (_WIN32_IE >= 0x500) {
2166 enum {
2167 DTS_SHORTDATECENTURYFORMAT = 0x000C
2168 }
2169 }
2170
2171 enum {
2172 MCS_DAYSTATE = 1,
2173 MCS_MULTISELECT = 2,
2174 MCS_WEEKNUMBERS = 4
2175 }
2176
2177 static if (_WIN32_IE >= 0x400) {
2178 enum {
2179 MCS_NOTODAYCIRCLE = 0x0008,
2180 MCS_NOTODAY = 0x0010
2181 }
2182 } else {
2183 enum {
2184 MCS_NOTODAY = 0x0008
2185 }
2186 }
2187
2188 enum {
2189 DTM_FIRST = 0x1000,
2190 DTM_GETSYSTEMTIME = 0x1001,
2191 DTM_SETSYSTEMTIME = 0x1002,
2192 DTM_GETRANGE = 0x1003,
2193 DTM_SETRANGE = 0x1004,
2194 DTM_SETFORMATA = 0x1005,
2195 DTM_SETMCCOLOR = 0x1006,
2196 DTM_GETMCCOLOR = 0x1007,
2197 DTM_GETMONTHCAL = 0x1008,
2198 DTM_SETMCFONT = 0x1009,
2199 DTM_GETMCFONT = 0x100a,
2200 DTM_SETFORMATW = 0x1050
2201 }
2202
2203 static if (_WIN32_WINNT >= 0x600) {
2204 enum {
2205 DTM_SETMCSTYLE = DTM_FIRST + 11,
2206 DTM_GETMCSTYLE,
2207 DTM_CLOSEMONTHCAL,
2208 DTM_GETDATETIMEPICKERINFO,
2209 DTM_GETIDEALSIZE,
2210 }
2211 }
2212
2213 enum {
2214 DTN_USERSTRINGA = -758U,
2215 DTN_USERSTRINGW = -745U,
2216 DTN_WMKEYDOWNA = -757U,
2217 DTN_WMKEYDOWNW = -744U,
2218 DTN_FORMATA = -756U,
2219 DTN_FORMATW = -743U,
2220 DTN_FORMATQUERYA = -755U,
2221 DTN_FORMATQUERYW = -742U,
2222 DTN_DROPDOWN = -754U,
2223 DTN_CLOSEUP = -753U,
2224 DTN_DATETIMECHANGE = -759U,
2225 }
2226
2227 enum {
2228 MCM_FIRST = 0x1000,
2229 MCM_GETCURSEL = 0x1001,
2230 MCM_SETCURSEL = 0x1002,
2231 MCM_GETMAXSELCOUNT = 0x1003,
2232 MCM_SETMAXSELCOUNT = 0x1004,
2233 MCM_GETSELRANGE = 0x1005,
2234 MCM_SETSELRANGE = 0x1006,
2235 MCM_GETMONTHRANGE = 0x1007,
2236 MCM_SETDAYSTATE = 0x1008,
2237 MCM_GETMINREQRECT = 0x1009,
2238 MCM_SETCOLOR = 0x100a,
2239 MCM_GETCOLOR = 0x100b,
2240 MCM_SETTODAY = 0x100c,
2241 MCM_GETTODAY = 0x100d,
2242 MCM_HITTEST = 0x100e,
2243 MCM_SETFIRSTDAYOFWEEK = 0x100f,
2244 MCM_GETFIRSTDAYOFWEEK = 0x1010,
2245 MCM_GETRANGE = 0x1011,
2246 MCM_SETRANGE = 0x1012,
2247 MCM_GETMONTHDELTA = 0x1013,
2248 MCM_SETMONTHDELTA = 0x1014,
2249 MCM_GETMAXTODAYWIDTH = 0x1015,
2250 MCM_GETUNICODEFORMAT = CCM_GETUNICODEFORMAT,
2251 MCM_SETUNICODEFORMAT = CCM_SETUNICODEFORMAT
2252 }
2253
2254 static if (_WIN32_WINNT >= 0x600) {
2255 enum {
2256 MCM_GETCURRENTVIEW = MCM_FIRST + 22,
2257 MCM_GETCALENDARCOUNT,
2258 MCM_GETCALENDARGRIDINFO,
2259 MCM_GETCALID = MCM_FIRST + 27,
2260 MCM_SETCALID,
2261 MCM_SIZERECTTOMIN,
2262 MCM_SETCALENDARBORDER,
2263 MCM_GETCALENDARBORDER,
2264 MCM_SETCURRENTVIEW,
2265 }
2266 }
2267
2268 enum {
2269 MCN_SELCHANGE = -749U,
2270 MCN_GETDAYSTATE = -747U,
2271 MCN_SELECT = -746U
2272 }
2273
2274 enum {
2275 ODT_HEADER = 100,
2276 ODT_TAB,
2277 ODT_LISTVIEW // = 102
2278 }
2279
2280 enum {
2281 SB_SETBKCOLOR = 0x2001
2282 }
2283
2284 static if (_WIN32_IE >= 0x300) {
2285 enum {
2286 SB_ISSIMPLE = 1038
2287 }
2288
2289 enum {
2290 MCSC_BACKGROUND,
2291 MCSC_TEXT,
2292 MCSC_TITLEBK,
2293 MCSC_TITLETEXT,
2294 MCSC_MONTHBK,
2295 MCSC_TRAILINGTEXT // = 5
2296 }
2297 }
2298
2299 static if (_WIN32_IE >= 0x400) {
2300 enum {
2301 MCHT_TITLE = 0x10000,
2302 MCHT_CALENDAR = 0x20000,
2303 MCHT_TODAYLINK = 0x30000,
2304 MCHT_NEXT = 0x1000000,
2305 MCHT_PREV = 0x2000000,
2306 MCHT_NOWHERE = 0x00,
2307 MCHT_TITLEBK = MCHT_TITLE,
2308 MCHT_TITLEMONTH = MCHT_TITLE | 0x0001,
2309 MCHT_TITLEYEAR = MCHT_TITLE | 0x0002,
2310 MCHT_TITLEBTNNEXT = MCHT_TITLE | MCHT_NEXT | 0x0003,
2311 MCHT_TITLEBTNPREV = MCHT_TITLE | MCHT_PREV | 0x0003,
2312 MCHT_CALENDARBK = MCHT_CALENDAR,
2313 MCHT_CALENDARDATE = MCHT_CALENDAR | 0x0001,
2314 MCHT_CALENDARDATENEXT = MCHT_CALENDARDATE | MCHT_NEXT,
2315 MCHT_CALENDARDATEPREV = MCHT_CALENDARDATE | MCHT_PREV,
2316 MCHT_CALENDARDAY = MCHT_CALENDAR | 0x0002,
2317 MCHT_CALENDARWEEKNUM = MCHT_CALENDAR | 0x0003
2318 }
2319 }
2320
2321 enum {
2322 RBS_TOOLTIPS = 256,
2323 RBS_VARHEIGHT = 512,
2324 RBS_BANDBORDERS = 1024,
2325 RBS_FIXEDORDER = 2048
2326 }
2327
2328 enum {
2329 RBIM_IMAGELIST = 1
2330 }
2331
2332 enum {
2333 RB_SETCOLORSCHEME = CCM_SETCOLORSCHEME,
2334 RB_GETCOLORSCHEME = CCM_GETCOLORSCHEME
2335 }
2336
2337 enum {
2338 RBBS_BREAK = 0x0001,
2339 RBBS_FIXEDSIZE = 0x0002,
2340 RBBS_CHILDEDGE = 0x0004,
2341 RBBS_HIDDEN = 0x0008,
2342 RBBS_NOVERT = 0x0010,
2343 RBBS_FIXEDBMP = 0x0020,
2344 RBBS_VARIABLEHEIGHT = 0x0040,
2345 RBBS_GRIPPERALWAYS = 0x0080,
2346 RBBS_NOGRIPPER = 0x0100
2347 }
2348
2349 static if (_WIN32_IE >= 0x500) {
2350 enum {
2351 RBBS_USECHEVRON = 0x0200
2352 }
2353 }
2354
2355 static if (_WIN32_IE >= 0x501) {
2356 enum {
2357 RBBS_HIDETITLE = 0x0400,
2358 RBBS_TOPALIGN = 0x0800
2359 }
2360 }
2361
2362 enum {
2363 RBBIM_STYLE = 1,
2364 RBBIM_COLORS = 2,
2365 RBBIM_TEXT = 4,
2366 RBBIM_IMAGE = 8,
2367 RBBIM_CHILD = 16,
2368 RBBIM_CHILDSIZE = 32,
2369 RBBIM_SIZE = 64,
2370 RBBIM_BACKGROUND = 128,
2371 RBBIM_ID = 256
2372 }
2373
2374 enum {
2375 RB_INSERTBANDA = WM_USER + 1,
2376 RB_DELETEBAND,
2377 RB_GETBARINFO,
2378 RB_SETBARINFO, // = WM_USER + 4
2379 RB_SETBANDINFOA = WM_USER + 6,
2380 RB_SETPARENT = WM_USER + 7,
2381 RB_INSERTBANDW = WM_USER + 10,
2382 RB_SETBANDINFOW,
2383 RB_GETBANDCOUNT,
2384 RB_GETROWCOUNT,
2385 RB_GETROWHEIGHT // = WM_USER + 14,
2386 }
2387
2388 enum {
2389 RBN_HEIGHTCHANGE = RBN_FIRST
2390 }
2391
2392 static if (_WIN32_IE >= 0x300) {
2393 enum {
2394 LVN_ODCACHEHINT = LVN_FIRST - 13,
2395 LVN_ODFINDITEMA = LVN_FIRST - 52,
2396 LVN_ODFINDITEMW = LVN_FIRST - 79,
2397 LVN_ITEMACTIVATE = LVN_FIRST - 14,
2398 LVN_ODSTATECHANGED = LVN_FIRST - 15
2399 }
2400
2401 version (Unicode) {
2402 enum {
2403 LVN_ODFINDITEM = LVN_ODFINDITEMW
2404 }
2405 } else {
2406 enum {
2407 LVN_ODFINDITEM = LVN_ODFINDITEMA
2408 }
2409 }
2410 }
2411
2412 static if (_WIN32_IE >= 0x400) {
2413 enum {
2414 SB_SETICON = 1039,
2415 SB_SETTIPTEXTA,
2416 SB_SETTIPTEXTW,
2417 SB_GETTIPTEXTA,
2418 SB_GETTIPTEXTW,
2419 SB_GETICON, // = 1044
2420 SB_SETUNICODEFORMAT = 0x2005,
2421 SB_GETUNICODEFORMAT = 0x2006
2422 }
2423
2424 enum {
2425 PGF_INVISIBLE = 0,
2426 PGF_NORMAL = 1,
2427 PGF_GRAYED = 2,
2428 PGF_DEPRESSED = 4,
2429 PGF_HOT = 8
2430 }
2431
2432 enum {
2433 PGB_TOPORLEFT,
2434 PGB_BOTTOMORRIGHT
2435 }
2436
2437 enum {
2438 PGF_SCROLLUP = 1,
2439 PGF_SCROLLDOWN = 2,
2440 PGF_SCROLLLEFT = 4,
2441 PGF_SCROLLRIGHT = 8
2442 }
2443
2444 enum {
2445 PGK_SHIFT = 1,
2446 PGK_CONTROL = 2,
2447 PGK_MENU = 4
2448 }
2449
2450 enum {
2451 PGF_CALCWIDTH = 1,
2452 PGF_CALCHEIGHT = 2
2453 }
2454
2455 enum {
2456 PGM_FIRST = 0x1400,
2457 PGM_SETCHILD = PGM_FIRST + 1,
2458 PGM_RECALCSIZE,
2459 PGM_FORWARDMOUSE,
2460 PGM_SETBKCOLOR,
2461 PGM_GETBKCOLOR,
2462 PGM_SETBORDER,
2463 PGM_GETBORDER,
2464 PGM_SETPOS,
2465 PGM_GETPOS,
2466 PGM_SETBUTTONSIZE,
2467 PGM_GETBUTTONSIZE,
2468 PGM_GETBUTTONSTATE, // = PGM_FIRST + 12
2469 PGM_GETDROPTARGET = CCM_GETDROPTARGET
2470 }
2471
2472 enum {
2473 RBS_REGISTERDROP = 4096,
2474 RBS_AUTOSIZE = 8192,
2475 RBS_VERTICALGRIPPER = 16384,
2476 RBS_DBLCLKTOGGLE = 32768
2477 }
2478
2479 enum {
2480 RBBIM_IDEALSIZE = 512,
2481 RBBIM_LPARAM = 1024,
2482 RBBIM_HEADERSIZE = 2048
2483 }
2484
2485 enum {
2486 RB_HITTEST = WM_USER + 8,
2487 RB_GETRECT = WM_USER + 9,
2488 RB_IDTOINDEX = WM_USER + 16,
2489 RB_GETTOOLTIPS,
2490 RB_SETTOOLTIPS,
2491 RB_SETBKCOLOR,
2492 RB_GETBKCOLOR,
2493 RB_SETTEXTCOLOR,
2494 RB_GETTEXTCOLOR,
2495 RB_SIZETORECT,
2496 RB_BEGINDRAG,
2497 RB_ENDDRAG,
2498 RB_DRAGMOVE,
2499 RB_GETBARHEIGHT,
2500 RB_GETBANDINFOW,
2501 RB_GETBANDINFOA,
2502 RB_MINIMIZEBAND,
2503 RB_MAXIMIZEBAND, // = WM_USER + 31
2504 RB_GETDROPTARGET = CCM_GETDROPTARGET,
2505 RB_GETBANDBORDERS = WM_USER + 34,
2506 RB_SHOWBAND = WM_USER + 35,
2507 RB_SETPALETTE = WM_USER + 37,
2508 RB_GETPALETTE = WM_USER + 38,
2509 RB_MOVEBAND = WM_USER + 39,
2510 RB_SETUNICODEFORMAT = CCM_SETUNICODEFORMAT,
2511 RB_GETUNICODEFORMAT = CCM_GETUNICODEFORMAT
2512 }
2513
2514 enum {
2515 RBN_GETOBJECT = RBN_FIRST - 1,
2516 RBN_LAYOUTCHANGED = RBN_FIRST - 2,
2517 RBN_AUTOSIZE = RBN_FIRST - 3,
2518 RBN_BEGINDRAG = RBN_FIRST - 4,
2519 RBN_ENDDRAG = RBN_FIRST - 5,
2520 RBN_DELETINGBAND = RBN_FIRST - 6,
2521 RBN_DELETEDBAND = RBN_FIRST - 7,
2522 RBN_CHILDSIZE = RBN_FIRST - 8
2523 }
2524
2525 enum {
2526 RBNM_ID = 1,
2527 RBNM_STYLE = 2,
2528 RBNM_LPARAM = 4
2529 }
2530
2531 enum {
2532 RBHT_NOWHERE = 1,
2533 RBHT_CAPTION,
2534 RBHT_CLIENT,
2535 RBHT_GRABBER
2536 }
2537
2538 version (Unicode) {
2539 alias SB_SETTIPTEXTW SB_SETTIPTEXT;
2540 alias SB_GETTIPTEXTW SB_GETTIPTEXT;
2541 alias RB_GETBANDINFOW RB_GETBANDINFO;
2542 } else {
2543 alias SB_SETTIPTEXTA SB_SETTIPTEXT;
2544 alias SB_GETTIPTEXTA SB_GETTIPTEXT;
2545 alias RB_GETBANDINFOA RB_GETBANDINFO;
2546 }
2547 } else {
2548 enum {
2549 RB_GETBANDINFO = WM_USER + 5
2550 }
2551 }
2552
2553 static if (_WIN32_IE >= 0x500) {
2554 enum {
2555 RB_PUSHCHEVRON = WM_USER + 43,
2556 }
2557 }
2558
2559 static if (_WIN32_IE >= 0x600) {
2560 enum {
2561 RB_SETEXTENDEDSTYLE = WM_USER + 41,
2562 RB_GETEXTENDEDSTYLE = WM_USER + 42,
2563 }
2564 }
2565
2566 static if (_WIN32_WINNT >= 0x500) {
2567 enum {
2568 RB_SETBANDWIDTH = WM_USER + 44,
2569 }
2570 }
2571
2572 static if (_WIN32_WINNT >= 0x501) {
2573 enum {
2574 ECM_FIRST = 0x1500,
2575 BCM_FIRST = 0x1600,
2576
2577 BCM_GETIDEALSIZE = BCM_FIRST + 0x0001,
2578 BCM_SETIMAGELIST = BCM_FIRST + 0x0002,
2579 BCM_GETIMAGELIST = BCM_FIRST + 0x0003,
2580 BCM_SETTEXTMARGIN = BCM_FIRST + 0x0004,
2581 BCM_GETTEXTMARGIN = BCM_FIRST + 0x0005,
2582
2583 BCN_HOTITEMCHANGE = BCN_FIRST + 0x0001,
2584 }
2585
2586 struct NMBCHOTITEM {
2587 NMHDR hdr;
2588 DWORD dwFlags;
2589 }
2590 alias NMBCHOTITEM* LPNMBCHOTITEM;
2591 }
2592
2593 static if (_WIN32_WINNT >= 0x600) {
2594 enum {
2595 BST_DROPDOWNPUSHED = 0x0400,
2596
2597 BS_SPLITBUTTON = 0x0000_000C,
2598 BS_DEFSPLITBUTTON = 0x0000_000D,
2599 BS_COMMANDLINK = 0x0000_000E,
2600 BS_DEFCOMMANDLINK = 0x0000_000F,
2601
2602 BCSIF_GLYPH = 0x0001,
2603 BCSIF_IMAGE = 0x0002,
2604 BCSIF_STYLE = 0x0004,
2605 BCSIF_SIZE = 0x0008,
2606
2607 BCSS_NOSPLIT = 0x0001,
2608 BCSS_STRETCH = 0x0002,
2609 BCSS_ALIGNLEFT = 0x0004,
2610 BCSS_IMAGE = 0x0008,
2611
2612 BCM_SETDROPDOWNSTATE = BCM_FIRST + 0x0006,
2613 BCM_SETSPLITINFO = BCM_FIRST + 0x0007,
2614 BCM_GETSPLITINFO = BCM_FIRST + 0x0008,
2615 BCM_SETNOTE = BCM_FIRST + 0x0009,
2616 BCM_GETNOTE = BCM_FIRST + 0x000A,
2617 BCM_GETNOTELENGTH = BCM_FIRST + 0x000B,
2618 BCM_SETSHIELD = BCM_FIRST + 0x000C,
2619
2620 BCN_DROPDOWN = BCN_FIRST + 0x0002,
2621 }
2622
2623 enum HIMAGELIST BCCL_NOGLYPH = cast(HIMAGELIST)-1;
2624
2625 struct BUTTON_SPLITINFO
2626 {
2627 UINT mask;
2628 HIMAGELIST himlGlyph;
2629 UINT uSplitStyle;
2630 SIZE size;
2631 }
2632 alias BUTTON_SPLITINFO* PBUTTON_SPLITINFO;
2633 }
2634
2635 enum {
2636 CBEM_INSERTITEMA = WM_USER + 1,
2637 CBEM_SETIMAGELIST,
2638 CBEM_GETIMAGELIST,
2639 CBEM_GETITEMA,
2640 CBEM_SETITEMA,
2641 CBEM_GETCOMBOCONTROL,
2642 CBEM_GETEDITCONTROL,
2643 CBEM_SETEXSTYLE,
2644 CBEM_GETEXSTYLE, // = WM_USER + 9)
2645 CBEM_DELETEITEM = CB_DELETESTRING
2646 }
2647
2648 static if (_WIN32_IE >= 0x400) {
2649 enum {
2650 CBEM_SETEXTENDEDSTYLE = WM_USER + 14,
2651 CBEM_GETEXTENDEDSTYLE = WM_USER + 9,
2652 CBEM_SETUNICODEFORMAT = CCM_SETUNICODEFORMAT,
2653 CBEM_GETUNICODEFORMAT = CCM_GETUNICODEFORMAT
2654 }
2655 }
2656
2657 enum {
2658 CBEM_HASEDITCHANGED = WM_USER + 10,
2659 CBEM_INSERTITEMW = WM_USER + 11,
2660 CBEM_SETITEMW = WM_USER + 12,
2661 CBEM_GETITEMW = WM_USER + 13
2662 }
2663
2664 static if (_WIN32_WINNT >= 0x501)
2665 {
2666 enum {
2667 CBEM_SETWINDOWTHEME = CCM_SETWINDOWTHEME
2668 }
2669 }
2670
2671 enum {
2672 DA_LAST = 0x7fffffff
2673 }
2674
2675 enum {
2676 DPA_APPEND = 0x7fffffff,
2677 DPA_ERR = -1
2678 }
2679
2680 enum {
2681 DSA_APPEND = 0x7fffffff,
2682 DSA_ERR = -1
2683 }
2684
2685 enum {
2686 DPAS_SORTED = 1,
2687 DPAS_INSERTBEFORE = 2,
2688 DPAS_INSERTAFTER = 4
2689 }
2690
2691 static if (_WIN32_IE >= 0x400) {
2692 enum {
2693 WSB_PROP_CYVSCROLL = 1,
2694 WSB_PROP_CXHSCROLL = 2,
2695 WSB_PROP_CYHSCROLL = 4,
2696 WSB_PROP_CXVSCROLL = 8,
2697 WSB_PROP_CXHTHUMB = 16,
2698 WSB_PROP_CYVTHUMB = 32,
2699 WSB_PROP_VBKGCOLOR = 64,
2700 WSB_PROP_HBKGCOLOR = 128,
2701 WSB_PROP_VSTYLE = 256,
2702 WSB_PROP_HSTYLE = 512,
2703 WSB_PROP_WINSTYLE = 1024,
2704 WSB_PROP_PALETTE = 2048,
2705 WSB_PROP_MASK = 0xfff,
2706 FSB_FLAT_MODE = 2,
2707 FSB_ENCARTA_MODE = 1,
2708 FSB_REGULAR_MODE = 0
2709 }
2710 }
2711
2712 static if (_WIN32_WINNT >= 0x501) {
2713 enum {
2714 LIF_ITEMINDEX = 1,
2715 LIF_STATE = 2,
2716 LIF_ITEMID = 4,
2717 LIF_URL = 8
2718 }
2719
2720 enum {
2721 LIS_FOCUSED = 1,
2722 LIS_ENABLED = 2,
2723 LIS_VISITED = 4
2724 }
2725
2726 enum {
2727 LM_HITTEST = WM_USER + 768,
2728 LM_GETIDEALHEIGHT,
2729 LM_SETITEM,
2730 LM_GETITEM, // = WM_USER + 771
2731 LM_GETIDEALSIZE = LM_GETIDEALHEIGHT,
2732 }
2733
2734 enum size_t MAX_LINKID_TEXT = 48;
2735 enum size_t L_MAX_URL_LENGTH = 2084;
2736 }
2737
2738
2739 struct TBMETRICS {
2740 UINT cbSize = TBMETRICS.sizeof;
2741 DWORD dwMask;
2742 int cxPad;
2743 int cyPad;
2744 int cxBarPad;
2745 int cyBarPad;
2746 int cxButtonSpacing;
2747 int cyButtonSpacing;
2748 }
2749 alias TBMETRICS* LPTBMETRICS;
2750
2751 static if (_WIN32_WINNT >= 0x501) {
2752 struct TTGETTITLE {
2753 DWORD dwSize = TTGETTITLE.sizeof;
2754 UINT uTitleBitmap;
2755 UINT cch;
2756 WCHAR* pszTitle;
2757 }
2758 alias TTGETTITLE* PTTGETTITLE;
2759 }
2760
2761 static if (_WIN32_WINNT >= 0x600) {
2762 struct MCGRIDINFO {
2763 UINT cbSize;
2764 DWORD dwPart;
2765 DWORD dwFlags;
2766 int iCalendar;
2767 int iRow;
2768 int iCol;
2769 BOOL bSelected;
2770 SYSTEMTIME stStart;
2771 SYSTEMTIME stEnd;
2772 RECT rc;
2773 PWSTR pszName;
2774 size_t cchName;
2775 }
2776 alias MCGRIDINFO* PMCGRIDINFO;
2777
2778 struct DATETIMEPICKERINFO
2779 {
2780 DWORD cbSize;
2781 RECT rcCheck;
2782 DWORD stateCheck;
2783 RECT rcButton;
2784 DWORD stateButton;
2785 HWND hwndEdit;
2786 HWND hwndUD;
2787 HWND hwndDropDown;
2788 }
2789 alias DATETIMEPICKERINFO* LPDATETIMEPICKERINFO;
2790 }
2791
2792 struct COMBOBOXEXITEMA {
2793 UINT mask;
2794 INT_PTR iItem;
2795 LPSTR pszText;
2796 int cchTextMax;
2797 int iImage;
2798 int iSelectedImage;
2799 int iOverlay;
2800 int iIndent;
2801 LPARAM lParam;
2802 }
2803 alias COMBOBOXEXITEMA* PCOMBOBOXEXITEMA;
2804 alias const(COMBOBOXEXITEMA)* PCCOMBOEXITEMA;
2805
2806 struct COMBOBOXEXITEMW {
2807 UINT mask;
2808 INT_PTR iItem;
2809 LPWSTR pszText;
2810 int cchTextMax;
2811 int iImage;
2812 int iSelectedImage;
2813 int iOverlay;
2814 int iIndent;
2815 LPARAM lParam;
2816 }
2817 alias COMBOBOXEXITEMW* PCOMBOBOXEXITEMW;
2818 alias const(COMBOBOXEXITEMW)* PCCOMBOEXITEMW;
2819
2820 static if (_WIN32_IE >= 0x400) {
2821 struct NMCOMBOBOXEXA {
2822 NMHDR hdr;
2823 COMBOBOXEXITEMA ceItem;
2824 }
2825 alias NMCOMBOBOXEXA* PNMCOMBOBOXEXA;
2826
2827 struct NMCOMBOBOXEXW {
2828 NMHDR hdr;
2829 COMBOBOXEXITEMW ceItem;
2830 }
2831 alias NMCOMBOBOXEXW* PNMCOMBOBOXEXW;
2832
2833 struct NMCBEDRAGBEGINW {
2834 NMHDR hdr;
2835 int iItemid;
2836 WCHAR[CBEMAXSTRLEN] szText = 0;
2837 }
2838 alias NMCBEDRAGBEGINW* LPNMCBEDRAGBEGINW, PNMCBEDRAGBEGINW;
2839
2840 struct NMCBEDRAGBEGINA {
2841 NMHDR hdr;
2842 int iItemid;
2843 char[CBEMAXSTRLEN] szText = 0;
2844 }
2845 alias NMCBEDRAGBEGINA* LPNMCBEDRAGBEGINA, PNMCBEDRAGBEGINA;
2846
2847 struct NMIPADDRESS {
2848 NMHDR hdr;
2849 int iField;
2850 int iValue;
2851 }
2852 alias NMIPADDRESS* LPNMIPADDRESS;
2853
2854 align (1)
2855 struct NMLVKEYDOWN {
2856 align (1):
2857 NMHDR hdr;
2858 WORD wVKey;
2859 UINT flags;
2860 }
2861 alias NMLVKEYDOWN* LPNMLVKEYDOWN;
2862
2863 struct NMPGCALCSIZE {
2864 NMHDR hdr;
2865 DWORD dwFlag;
2866 int iWidth;
2867 int iHeight;
2868 }
2869 alias NMPGCALCSIZE* LPNMPGCALCSIZE;
2870
2871 align (1)
2872 struct NMPGSCROLL {
2873 align (1):
2874 NMHDR hdr;
2875 WORD fwKeys; // Note: this should be WORD if MSDN document says wrong
2876 RECT rcParent;
2877 int iDir;
2878 int iXpos;
2879 int iYpos;
2880 int iScroll;
2881 }
2882 alias NMPGSCROLL* LPNMPGSCROLL;
2883
2884 struct NMSELCHANGE {
2885 NMHDR nmhdr;
2886 SYSTEMTIME stSelStart;
2887 SYSTEMTIME stSelEnd;
2888 }
2889 alias NMSELCHANGE* LPNMSELCHANGE;
2890
2891 struct NMTBHOTITEM {
2892 NMHDR hdr;
2893 int idOld;
2894 int idNew;
2895 DWORD dwFlags;
2896 }
2897 alias NMTBHOTITEM* LPNMTBHOTITEM;
2898
2899 struct NMTBDISPINFOA {
2900 NMHDR hdr;
2901 DWORD dwMask;
2902 int idCommand;
2903 DWORD_PTR lParam;
2904 int iImage;
2905 LPSTR pszText;
2906 int cchText;
2907 }
2908 alias NMTBDISPINFOA* LPNMTBDISPINFOA;
2909
2910 struct NMTBDISPINFOW {
2911 NMHDR hdr;
2912 DWORD dwMask;
2913 int idCommand;
2914 DWORD_PTR lParam;
2915 int iImage;
2916 LPWSTR pszText;
2917 int cchText;
2918 }
2919 alias NMTBDISPINFOW* LPNMTBDISPINFOW;
2920
2921 struct NMTBGETINFOTIPA {
2922 NMHDR hdr;
2923 LPSTR pszText;
2924 int cchTextMax;
2925 int iItem;
2926 LPARAM lParam;
2927 }
2928 alias NMTBGETINFOTIPA* LPNMTBGETINFOTIPA;
2929
2930 struct NMTBGETINFOTIPW {
2931 NMHDR hdr;
2932 LPWSTR pszText;
2933 int cchTextMax;
2934 int iItem;
2935 LPARAM lParam;
2936 }
2937 alias NMTBGETINFOTIPW* LPNMTBGETINFOTIPW;
2938
2939 struct NMMOUSE {
2940 NMHDR hdr;
2941 DWORD_PTR dwItemSpec;
2942 DWORD_PTR dwItemData;
2943 POINT pt;
2944 LPARAM dwHitInfo;
2945 }
2946 alias NMMOUSE* LPNMMOUSE;
2947 }
2948
2949 static if (_WIN32_IE >= 0x401) {
2950 struct NMTOOLTIPSCREATED {
2951 NMHDR hdr;
2952 HWND hwndToolTips;
2953 }
2954 alias NMTOOLTIPSCREATED* LPNMTOOLTIPSCREATED;
2955 }
2956
2957 struct NMDATETIMECHANGE {
2958 NMHDR nmhdr;
2959 DWORD dwFlags;
2960 SYSTEMTIME st;
2961 }
2962 alias NMDATETIMECHANGE* LPNMDATETIMECHANGE;
2963
2964 struct NMCBEENDEDITW {
2965 NMHDR hdr;
2966 BOOL fChanged;
2967 int iNewSelection;
2968 WCHAR[CBEMAXSTRLEN] szText = 0;
2969 int iWhy;
2970 }
2971 alias NMCBEENDEDITW* LPNMCBEENDEDITW, PNMCBEENDEDITW;
2972
2973 struct NMCBEENDEDITA {
2974 NMHDR hdr;
2975 BOOL fChanged;
2976 int iNewSelection;
2977 char[CBEMAXSTRLEN] szText = 0;
2978 int iWhy;
2979 }
2980 alias NMCBEENDEDITA* LPNMCBEENDEDITA, PNMCBEENDEDITA;
2981
2982 struct COLORMAP {
2983 COLORREF from;
2984 COLORREF to;
2985 }
2986 alias COLORMAP* LPCOLORMAP;
2987
2988 struct DRAGLISTINFO {
2989 UINT uNotification;
2990 HWND hWnd;
2991 POINT ptCursor;
2992 }
2993 alias DRAGLISTINFO* LPDRAGLISTINFO;
2994
2995 struct TBBUTTON {
2996 int iBitmap;
2997 int idCommand;
2998 BYTE fsState;
2999 BYTE fsStyle;
3000 version (Win64){
3001 BYTE[6] bReserved;
3002 } else {
3003 BYTE[2] bReserved;
3004 }
3005 DWORD_PTR dwData;
3006 INT_PTR iString;
3007 }
3008 alias TBBUTTON* PTBBUTTON, LPTBBUTTON;
3009 alias const(TBBUTTON)* LPCTBBUTTON;
3010
3011 static if (_WIN32_IE >= 0x400) {
3012 struct TBBUTTONINFOA {
3013 UINT cbSize = TBBUTTONINFOA.sizeof;
3014 DWORD dwMask;
3015 int idCommand;
3016 int iImage;
3017 BYTE fsState;
3018 BYTE fsStyle;
3019 WORD cx;
3020 DWORD_PTR lParam;
3021 LPSTR pszText;
3022 int cchText;
3023 }
3024 alias TBBUTTONINFOA* LPTBBUTTONINFOA;
3025
3026 struct TBBUTTONINFOW {
3027 UINT cbSize = TBBUTTONINFOW.sizeof;
3028 DWORD dwMask;
3029 int idCommand;
3030 int iImage;
3031 BYTE fsState;
3032 BYTE fsStyle;
3033 WORD cx;
3034 DWORD_PTR lParam;
3035 LPWSTR pszText;
3036 int cchText;
3037 }
3038 alias TBBUTTONINFOW* LPTBBUTTONINFOW;
3039
3040 struct TBINSERTMARK {
3041 int iButton;
3042 DWORD dwFlags;
3043 }
3044 alias TBINSERTMARK* LPTBINSERTMARK;
3045
3046 struct LVBKIMAGEA {
3047 ULONG ulFlags;
3048 HBITMAP hbm;
3049 LPSTR pszImage;
3050 UINT cchImageMax;
3051 int xOffsetPercent;
3052 int yOffsetPercent;
3053 }
3054 alias LVBKIMAGEA* LPLVBKIMAGEA;
3055
3056 struct LVBKIMAGEW {
3057 ULONG ulFlags;
3058 HBITMAP hbm;
3059 LPWSTR pszImage;
3060 UINT cchImageMax;
3061 int xOffsetPercent;
3062 int yOffsetPercent;
3063 }
3064 alias LVBKIMAGEW* LPLVBKIMAGEW;
3065 }
3066
3067 /*struct TBNOTIFY {
3068 NMHDR hdr;
3069 int iItem;
3070 TBBUTTON tbButton;
3071 int cchText;
3072 LPTSTR pszText;
3073 }
3074 alias TBNOTIFY* LPTBNOTIFY;
3075 */
3076
3077 /*struct TBSAVEPARAMS {
3078 HKEY hkr;
3079 LPCTSTR pszSubKey;
3080 LPCTSTR pszValueName;
3081 }*/
3082
3083 struct IMAGEINFO {
3084 HBITMAP hbmImage;
3085 HBITMAP hbmMask;
3086 int Unused1;
3087 int Unused2;
3088 RECT rcImage;
3089 }
3090 alias IMAGEINFO* LPIMAGEINFO;
3091
3092 static if (_WIN32_IE >= 0x500) {
3093 struct HDITEMA {
3094 UINT mask;
3095 int cxy;
3096 LPSTR pszText;
3097 HBITMAP hbm;
3098 int cchTextMax;
3099 int fmt;
3100 LPARAM lParam;
3101 int iImage;
3102 int iOrder;
3103 UINT type;
3104 LPVOID pvFilter;
3105 }
3106
3107 struct HDITEMW {
3108 UINT mask;
3109 int cxy;
3110 LPWSTR pszText;
3111 HBITMAP hbm;
3112 int cchTextMax;
3113 int fmt;
3114 LPARAM lParam;
3115 int iImage;
3116 int iOrder;
3117 UINT type;
3118 LPVOID pvFilter;
3119 }
3120 } else static if (_WIN32_IE >= 0x300) {
3121 struct HDITEMA {
3122 UINT mask;
3123 int cxy;
3124 LPSTR pszText;
3125 HBITMAP hbm;
3126 int cchTextMax;
3127 int fmt;
3128 LPARAM lParam;
3129 int iImage;
3130 int iOrder;
3131 }
3132
3133 struct HDITEMW {
3134 UINT mask;
3135 int cxy;
3136 LPWSTR pszText;
3137 HBITMAP hbm;
3138 int cchTextMax;
3139 int fmt;
3140 LPARAM lParam;
3141 int iImage;
3142 int iOrder;
3143 }
3144 } else {
3145 struct HDITEMA {
3146 UINT mask;
3147 int cxy;
3148 LPSTR pszText;
3149 HBITMAP hbm;
3150 int cchTextMax;
3151 int fmt;
3152 LPARAM lParam;
3153 }
3154
3155 struct HDITEMW {
3156 UINT mask;
3157 int cxy;
3158 LPWSTR pszText;
3159 HBITMAP hbm;
3160 int cchTextMax;
3161 int fmt;
3162 LPARAM lParam;
3163 }
3164 }
3165 alias HDITEMA* LPHDITEMA;
3166 alias HDITEMW* LPHDITEMW;
3167
3168 deprecated {
3169 alias HDITEMA HD_ITEMA;
3170 alias HDITEMW HD_ITEMW;
3171 //alias HDITEM HD_ITEM; fixme
3172 }
3173
3174 struct HD_LAYOUT {
3175 RECT* prc;
3176 WINDOWPOS* pwpos;
3177 }
3178 alias HD_LAYOUT* LPHDLAYOUT;
3179 deprecated alias HD_LAYOUT HDLAYOUT;
3180
3181 struct HD_HITTESTINFO {
3182 POINT pt;
3183 UINT flags;
3184 int iItem;
3185 }
3186 alias HD_HITTESTINFO* LPHDHITTESTINFO;
3187
3188 struct HD_NOTIFYA {
3189 NMHDR hdr;
3190 int iItem;
3191 int iButton;
3192 HDITEMA* pitem;
3193 }
3194
3195 struct HD_NOTIFYW {
3196 NMHDR hdr;
3197 int iItem;
3198 int iButton;
3199 HDITEMW* pitem;
3200 }
3201
3202 /* FIXME: NMHEADER structure (base for all events of the comctl controls)
3203 is the same as HD_NOTIFY depending on the value of _WIN32_IE macro.
3204 I'm defining both for now. */
3205 struct NMHEADERA {
3206 NMHDR hdr;
3207 int iItem;
3208 int iButton;
3209 HDITEMA* pitem;
3210 }
3211 alias NMHEADERA* LPNMHEADERA;
3212
3213 struct NMHEADERW {
3214 NMHDR hdr;
3215 int iItem;
3216 int iButton;
3217 HDITEMW* pitem;
3218 }
3219 alias NMHEADERW* LPNMHEADERW;
3220
3221 version (Unicode) {
3222 alias NMHEADERW NMHEADER;
3223 alias LPNMHEADERW LPNMHEADER;
3224 } else {
3225 alias NMHEADERA NMHEADER;
3226 alias LPNMHEADERA LPNMHEADER;
3227 }
3228 // End FIXME
3229
3230 struct NMHDDISPINFOA {
3231 NMHDR hdr;
3232 int iItem;
3233 UINT mask;
3234 LPSTR pszText;
3235 int cchTextMax;
3236 int iImage;
3237 LPARAM lParam;
3238 }
3239 alias NMHDDISPINFOA* LPNMHDDISPINFOA;
3240
3241 struct NMHDDISPINFOW {
3242 NMHDR hdr;
3243 int iItem;
3244 UINT mask;
3245 LPWSTR pszText;
3246 int cchTextMax;
3247 int iImage;
3248 LPARAM lParam;
3249 }
3250 alias NMHDDISPINFOW* LPNMHDDISPINFOW;
3251
3252 struct NMCUSTOMDRAW {
3253 NMHDR hdr;
3254 DWORD dwDrawStage;
3255 HDC hdc;
3256 RECT rc;
3257 DWORD_PTR dwItemSpec;
3258 UINT uItemState;
3259 LPARAM lItemlParam;
3260 }
3261 alias NMCUSTOMDRAW* LPNMCUSTOMDRAW;
3262
3263 static if (_WIN32_IE >= 0x400) {
3264 struct NMLVCUSTOMDRAW {
3265 NMCUSTOMDRAW nmcd;
3266 COLORREF clrText;
3267 COLORREF clrTextBk;
3268 int iSubItem;
3269 }
3270 } else {
3271 struct NMLVCUSTOMDRAW {
3272 NMCUSTOMDRAW nmcd;
3273 COLORREF clrText;
3274 COLORREF clrTextBk;
3275 }
3276 }
3277 alias NMLVCUSTOMDRAW* LPNMLVCUSTOMDRAW;
3278
3279 static if (_WIN32_IE >= 0x400) {
3280 struct NMLVGETINFOTIPA {
3281 NMHDR hdr;
3282 DWORD dwFlags;
3283 LPSTR pszText;
3284 int cchTextMax;
3285 int iItem;
3286 int iSubItem;
3287 LPARAM lParam;
3288 }
3289 alias NMLVGETINFOTIPA* LPNMLVGETINFOTIPA;
3290
3291 struct NMLVGETINFOTIPW {
3292 NMHDR hdr;
3293 DWORD dwFlags;
3294 LPWSTR pszText;
3295 int cchTextMax;
3296 int iItem;
3297 int iSubItem;
3298 LPARAM lParam;
3299 }
3300 alias NMLVGETINFOTIPW* LPNMLVGETINFOTIPW;
3301 }
3302
3303 static if (_WIN32_IE >= 0x400) {
3304 struct NMTVCUSTOMDRAW {
3305 NMCUSTOMDRAW nmcd;
3306 COLORREF clrText;
3307 COLORREF clrTextBk;
3308 int iLevel;
3309 }
3310 } else {
3311 struct NMTVCUSTOMDRAW {
3312 NMCUSTOMDRAW nmcd;
3313 COLORREF clrText;
3314 COLORREF clrTextBk;
3315 }
3316 }
3317 alias NMTVCUSTOMDRAW* LPNMTVCUSTOMDRAW;
3318
3319 static if (_WIN32_IE >= 0x400) {
3320 static if (_WIN32_WINNT >= 0x501) {
3321 struct NMTBCUSTOMDRAW {
3322 NMCUSTOMDRAW nmcd;
3323 HBRUSH hbrMonoDither;
3324 HBRUSH hbrLines;
3325 HPEN hpenLines;
3326 COLORREF clrText;
3327 COLORREF clrMark;
3328 COLORREF clrTextHighlight;
3329 COLORREF clrBtnFace;
3330 COLORREF clrBtnHighlight;
3331 COLORREF clrHighlightHotTrack;
3332 RECT rcText;
3333 int nStringBkMode;
3334 int nHLStringBkMode;
3335 int iListGap;
3336 }
3337 } else {
3338 struct NMTBCUSTOMDRAW {
3339 NMCUSTOMDRAW nmcd;
3340 HBRUSH hbrMonoDither;
3341 HBRUSH hbrLines;
3342 HPEN hpenLines;
3343 COLORREF clrText;
3344 COLORREF clrMark;
3345 COLORREF clrTextHighlight;
3346 COLORREF clrBtnFace;
3347 COLORREF clrBtnHighlight;
3348 COLORREF clrHighlightHotTrack;
3349 RECT rcText;
3350 int nStringBkMode;
3351 int nHLStringBkMode;
3352 }
3353 }
3354 alias NMTBCUSTOMDRAW* LPNMTBCUSTOMDRAW;
3355
3356 struct NMITEMACTIVATE {
3357 NMHDR hdr;
3358 int iItem;
3359 int iSubItem;
3360 UINT uNewState;
3361 UINT uOldState;
3362 UINT uChanged;
3363 POINT ptAction;
3364 LPARAM lParam;
3365 UINT uKeyFlags;
3366 }
3367 alias NMITEMACTIVATE* LPNMITEMACTIVATE;
3368 }
3369
3370 struct TBADDBITMAP {
3371 HINSTANCE hInst;
3372 UINT_PTR nID;
3373 }
3374 alias TBADDBITMAP* LPTBADDBITMAP;
3375
3376 struct TBSAVEPARAMSA {
3377 HKEY hkr;
3378 LPCSTR pszSubKey;
3379 LPCSTR pszValueName;
3380 }
3381
3382 struct TBSAVEPARAMSW {
3383 HKEY hkr;
3384 LPCWSTR pszSubKey;
3385 LPCWSTR pszValueName;
3386 }
3387
3388 struct TBREPLACEBITMAP {
3389 HINSTANCE hInstOld;
3390 UINT_PTR nIDOld;
3391 HINSTANCE hInstNew;
3392 UINT_PTR nIDNew;
3393 int nButtons;
3394 }
3395 alias TBREPLACEBITMAP* LPTBREPLACEBITMAP;
3396
3397 static if (_WIN32_IE >= 0x500) {
3398 struct NMTOOLBARA {
3399 NMHDR hdr;
3400 int iItem;
3401 TBBUTTON tbButton;
3402 int cchText;
3403 LPSTR pszText;
3404 RECT rcButton;
3405 }
3406
3407 struct NMTOOLBARW {
3408 NMHDR hdr;
3409 int iItem;
3410 TBBUTTON tbButton;
3411 int cchText;
3412 LPWSTR pszText;
3413 RECT rcButton;
3414 }
3415 } else {
3416 struct NMTOOLBARA {
3417 NMHDR hdr;
3418 int iItem;
3419 TBBUTTON tbButton;
3420 int cchText;
3421 LPSTR pszText;
3422 }
3423
3424 struct NMTOOLBARW {
3425 NMHDR hdr;
3426 int iItem;
3427 TBBUTTON tbButton;
3428 int cchText;
3429 LPWSTR pszText;
3430 }
3431 }
3432 alias NMTOOLBARA* LPNMTOOLBARA;
3433 alias NMTOOLBARW* LPNMTOOLBARW;
3434
3435 alias NMTOOLBARA TBNOTIFYA;
3436 alias LPNMTOOLBARA LPTBNOTIFYA;
3437
3438 alias NMTOOLBARW TBNOTIFYW;
3439 alias LPNMTOOLBARW LPTBNOTIFYW;
3440
3441 static if (_WIN32_WINNT >= 0x501) {
3442 struct TOOLINFOA {
3443 UINT cbSize = TOOLINFOA.sizeof;
3444 UINT uFlags;
3445 HWND hwnd;
3446 UINT_PTR uId;
3447 RECT rect;
3448 HINSTANCE hinst;
3449 LPSTR lpszText;
3450 LPARAM lParam;
3451 void* lpReserved;
3452 }
3453
3454 struct TOOLINFOW {
3455 UINT cbSize = TOOLINFOW.sizeof;
3456 UINT uFlags;
3457 HWND hwnd;
3458 UINT_PTR uId;
3459 RECT rect;
3460 HINSTANCE hinst;
3461 LPWSTR lpszText;
3462 LPARAM lParam;
3463 void* lpReserved;
3464 }
3465
3466 enum size_t
3467 TTTOOLINFOA_V1_SIZE = TOOLINFOA.lParam.offsetof,
3468 TTTOOLINFOW_V1_SIZE = TOOLINFOW.lParam.offsetof,
3469 TTTOOLINFOA_V2_SIZE = TOOLINFOA.lpReserved.offsetof,
3470 TTTOOLINFOW_V2_SIZE = TOOLINFOW.lpReserved.offsetof,
3471 TTTOOLINFOA_V3_SIZE = TOOLINFOA.sizeof,
3472 TTTOOLINFOW_V3_SIZE = TOOLINFOW.sizeof;
3473 } else static if (_WIN32_IE >= 0x300) {
3474 struct TOOLINFOA {
3475 UINT cbSize = TOOLINFOA.sizeof;
3476 UINT uFlags;
3477 HWND hwnd;
3478 UINT uId;
3479 RECT rect;
3480 HINSTANCE hinst;
3481 LPSTR lpszText;
3482 LPARAM lParam;
3483 }
3484
3485 struct TOOLINFOW {
3486 UINT cbSize = TOOLINFOW.sizeof;
3487 UINT uFlags;
3488 HWND hwnd;
3489 UINT uId;
3490 RECT rect;
3491 HINSTANCE hinst;
3492 LPWSTR lpszText;
3493 LPARAM lParam;
3494 }
3495
3496 enum size_t
3497 TTTOOLINFOA_V1_SIZE = TOOLINFOA.lParam.offsetof,
3498 TTTOOLINFOW_V1_SIZE = TOOLINFOW.lParam.offsetof,
3499 TTTOOLINFOA_V2_SIZE = TOOLINFOA.sizeof,
3500 TTTOOLINFOW_V2_SIZE = TOOLINFOW.sizeof;
3501 } else {
3502 struct TOOLINFOA {
3503 UINT cbSize = TOOLINFOA.sizeof;
3504 UINT uFlags;
3505 HWND hwnd;
3506 UINT uId;
3507 RECT rect;
3508 HINSTANCE hinst;
3509 LPSTR lpszText;
3510 }
3511
3512 struct TOOLINFOW {
3513 UINT cbSize = TOOLINFOW.sizeof;
3514 UINT uFlags;
3515 HWND hwnd;
3516 UINT uId;
3517 RECT rect;
3518 HINSTANCE hinst;
3519 LPWSTR lpszText;
3520 }
3521
3522 enum size_t
3523 TTTOOLINFOA_V1_SIZE = TOOLINFOA.sizeof,
3524 TTTOOLINFOW_V1_SIZE = TOOLINFOW.sizeof;
3525 }
3526 alias TOOLINFOA TTTOOLINFOA;
3527 alias TOOLINFOW TTTOOLINFOW;
3528 alias TTTOOLINFOA* LPTTTOOLINFOA, PTOOLINFOA, LPTOOLINFOA;
3529 alias TTTOOLINFOW* LPTTTOOLINFOW, PTOOLINFOW, LPTOOLINFOW;
3530
3531 struct TTHITTESTINFOA {
3532 HWND hwnd;
3533 POINT pt;
3534 TOOLINFOA ti;
3535 }
3536 alias TTHITTESTINFOA* LPTTHITTESTINFOA, LPHITTESTINFOA;
3537
3538 struct TTHITTESTINFOW {
3539 HWND hwnd;
3540 POINT pt;
3541 TOOLINFOW ti;
3542 }
3543 alias TTHITTESTINFOW* LPTTHITTESTINFOW, LPHITTESTINFOW;
3544
3545 static if (_WIN32_IE >= 0x300) {
3546 struct NMTTDISPINFOA {
3547 NMHDR hdr;
3548 LPSTR lpszText;
3549 char[80] szText = 0;
3550 HINSTANCE hinst;
3551 UINT uFlags;
3552 LPARAM lParam;
3553 }
3554
3555 struct NMTTDISPINFOW {
3556 NMHDR hdr;
3557 LPWSTR lpszText;
3558 WCHAR[80] szText = 0;
3559 HINSTANCE hinst;
3560 UINT uFlags;
3561 LPARAM lParam;
3562 }
3563 } else {
3564 struct NMTTDISPINFOA {
3565 NMHDR hdr;
3566 LPSTR lpszText;
3567 char[80] szText = 0;
3568 HINSTANCE hinst;
3569 UINT uFlags;
3570 }
3571
3572 struct NMTTDISPINFOW {
3573 NMHDR hdr;
3574 LPWSTR lpszText;
3575 WCHAR[80] szText = 0;
3576 HINSTANCE hinst;
3577 UINT uFlags;
3578 }
3579 }
3580 alias NMTTDISPINFOA* LPNMTTDISPINFOA;
3581 alias NMTTDISPINFOW* LPNMTTDISPINFOW;
3582 alias NMTTDISPINFOA TOOLTIPTEXTA;
3583 alias LPNMTTDISPINFOA LPTOOLTIPTEXTA;
3584 alias NMTTDISPINFOW TOOLTIPTEXTW;
3585 alias LPNMTTDISPINFOW LPTOOLTIPTEXTW;
3586
3587 struct UDACCEL {
3588 UINT nSec;
3589 UINT nInc;
3590 }
3591 alias UDACCEL* LPUDACCEL;
3592
3593 struct NMUPDOWN {
3594 NMHDR hdr;
3595 int iPos;
3596 int iDelta;
3597 }
3598 alias NMUPDOWN* LPNMUPDOWN;
3599
3600 deprecated {
3601 alias NMUPDOWN NM_UPDOWN;
3602 alias LPNMUPDOWN LPNM_UPDOWN;
3603 }
3604
3605 static if (_WIN32_WINNT >= 0x501) {
3606 struct LVITEMA {
3607 UINT mask;
3608 int iItem;
3609 int iSubItem;
3610 UINT state;
3611 UINT stateMask;
3612 LPSTR pszText;
3613 int cchTextMax;
3614 int iImage;
3615 LPARAM lParam;
3616 int iIndent;
3617 int iGroupId;
3618 UINT cColumns;
3619 PUINT puColumns;
3620 }
3621
3622 struct LVITEMW {
3623 UINT mask;
3624 int iItem;
3625 int iSubItem;
3626 UINT state;
3627 UINT stateMask;
3628 LPWSTR pszText;
3629 int cchTextMax;
3630 int iImage;
3631 LPARAM lParam;
3632 int iIndent;
3633 int iGroupId;
3634 UINT cColumns;
3635 PUINT puColumns;
3636 }
3637 } else static if (_WIN32_IE >= 0x300) {
3638 struct LVITEMA {
3639 UINT mask;
3640 int iItem;
3641 int iSubItem;
3642 UINT state;
3643 UINT stateMask;
3644 LPSTR pszText;
3645 int cchTextMax;
3646 int iImage;
3647 LPARAM lParam;
3648 int iIndent;
3649 }
3650
3651 struct LVITEMW {
3652 UINT mask;
3653 int iItem;
3654 int iSubItem;
3655 UINT state;
3656 UINT stateMask;
3657 LPWSTR pszText;
3658 int cchTextMax;
3659 int iImage;
3660 LPARAM lParam;
3661 int iIndent;
3662 }
3663 } else {
3664 struct LVITEMA {
3665 UINT mask;
3666 int iItem;
3667 int iSubItem;
3668 UINT state;
3669 UINT stateMask;
3670 LPSTR pszText;
3671 int cchTextMax;
3672 int iImage;
3673 LPARAM lParam;
3674 }
3675
3676 struct LVITEMW {
3677 UINT mask;
3678 int iItem;
3679 int iSubItem;
3680 UINT state;
3681 UINT stateMask;
3682 LPWSTR pszText;
3683 int cchTextMax;
3684 int iImage;
3685 LPARAM lParam;
3686 }
3687 }
3688 alias LVITEMA* LPLVITEMA;
3689 alias LVITEMW* LPLVITEMW;
3690 alias LVITEMA LV_ITEMA;
3691 alias LVITEMW LV_ITEMW;
3692
3693 struct LVFINDINFOA {
3694 UINT flags;
3695 LPCSTR psz;
3696 LPARAM lParam;
3697 POINT pt;
3698 UINT vkDirection;
3699 }
3700
3701 struct LVFINDINFOW {
3702 UINT flags;
3703 LPCWSTR psz;
3704 LPARAM lParam;
3705 POINT pt;
3706 UINT vkDirection;
3707 }
3708
3709 alias LVFINDINFOA* LPFINDINFOA;
3710 alias LVFINDINFOA LV_FINDINFOA;
3711 alias LVFINDINFOW* LPFINDINFOW;
3712 alias LVFINDINFOW LV_FINDINFOW;
3713
3714 struct NMLVFINDITEMA {
3715 NMHDR hdr;
3716 int iStart;
3717 LVFINDINFOA lvfi;
3718 }
3719
3720 struct NMLVFINDITEMW {
3721 NMHDR hdr;
3722 int iStart;
3723 LVFINDINFOW lvfi;
3724 }
3725
3726 alias NMLVFINDITEMA* PNMLVFINDITEMA, LPNMLVFINDITEMA;
3727 alias NMLVFINDITEMW* PNMLVFINDITEMW, LPNMLVFINDITEMW;
3728
3729 static if (_WIN32_IE >= 0x300) {
3730 struct LVHITTESTINFO {
3731 POINT pt;
3732 UINT flags;
3733 int iItem;
3734 int iSubItem;
3735 }
3736 } else {
3737 struct LVHITTESTINFO {
3738 POINT pt;
3739 UINT flags;
3740 int iItem;
3741 }
3742 }
3743 alias LVHITTESTINFO* LPLVHITTESTINFO;
3744 alias LVHITTESTINFO LV_HITTESTINFO;
3745
3746 static if (_WIN32_IE >= 0x300) {
3747 struct LVCOLUMNA {
3748 UINT mask;
3749 int fmt;
3750 int cx;
3751 LPSTR pszText;
3752 int cchTextMax;
3753 int iSubItem;
3754 int iImage;
3755 int iOrder;
3756 }
3757 struct LVCOLUMNW {
3758 UINT mask;
3759 int fmt;
3760 int cx;
3761 LPWSTR pszText;
3762 int cchTextMax;
3763 int iSubItem;
3764 int iImage;
3765 int iOrder;
3766 }
3767 } else {
3768 struct LVCOLUMNA {
3769 UINT mask;
3770 int fmt;
3771 int cx;
3772 LPSTR pszText;
3773 int cchTextMax;
3774 int iSubItem;
3775 }
3776 struct LVCOLUMNW {
3777 UINT mask;
3778 int fmt;
3779 int cx;
3780 LPWSTR pszText;
3781 int cchTextMax;
3782 int iSubItem;
3783 }
3784 }
3785 alias LVCOLUMNA* LPLVCOLUMNA;
3786 alias LVCOLUMNW* LPLVCOLUMNW;
3787 alias LVCOLUMNA LV_COLUMNA;
3788 alias LVCOLUMNW LV_COLUMNW;
3789
3790 static if (_WIN32_WINNT >= 0x501) {
3791 /* SG: The definitions in this static if block are from the MSDN docs.
3792 * They are not in MinGW, but nonetheless required for macros that are.
3793 */
3794 struct LVGROUP {
3795 UINT cbSize = LVGROUP.sizeof;
3796 UINT mask;
3797 LPWSTR pszHeader;
3798 int cchHeader;
3799 LPWSTR pszFooter;
3800 int cchFooter;
3801 int iGroupId;
3802 UINT stateMask;
3803 UINT state;
3804 UINT uAlign;
3805 static if (_WIN32_WINNT >= 0x600) {
3806 LPWSTR pszSubtitle;
3807 UINT cchSubtitle;
3808 LPWSTR pszTask;
3809 UINT cchTask;
3810 LPWSTR pszDescriptionTop;
3811 UINT cchDescriptionTop;
3812 LPWSTR pszDescriptionBottom;
3813 UINT cchDescriptionBottom;
3814 int iTitleImage;
3815 int iExtendedImage;
3816 int iFirstItem; // Read only
3817 UINT cItems; // Read only
3818 LPWSTR pszSubsetTitle; // NULL if group is not subset
3819 UINT cchSubsetTitle;
3820 }
3821 }
3822 alias LVGROUP* PLVGROUP;
3823
3824 struct LVGROUPMETRICS {
3825 UINT cbSize = LVGROUPMETRICS.sizeof;
3826 UINT mask;
3827 UINT Left;
3828 UINT Top;
3829 UINT Right;
3830 UINT Bottom;
3831 COLORREF crLeft;
3832 COLORREF crTop;
3833 COLORREF crRight;
3834 COLORREF crBottom;
3835 COLORREF crHeader;
3836 COLORREF crFooter;
3837 }
3838 alias LVGROUPMETRICS* PLVGROUPMETRICS;
3839
3840 struct LVINSERTMARK {
3841 UINT cbSize = LVINSERTMARK.sizeof;
3842 DWORD dwFlags;
3843 int iItem;
3844 DWORD dwReserved;
3845 }
3846 alias LVINSERTMARK* PLVINSERTMARK;
3847 alias LVINSERTMARK* LPLVINSERTMARK;
3848
3849 struct LVTILEINFO {
3850 UINT cbSize = LVTILEINFO.sizeof;
3851 int iItem;
3852 UINT cColumns;
3853 PUINT puColumns;
3854 static if (_WIN32_WINNT >= 0x600) {
3855 int* piColFmt;
3856 }
3857 }
3858 alias LVTILEINFO* PLVTILEINFO;
3859
3860 struct LVTILEVIEWINFO {
3861 UINT cbSize = LVTILEVIEWINFO.sizeof;
3862 DWORD dwMask;
3863 DWORD dwFlags;
3864 SIZE sizeTile;
3865 int cLines;
3866 RECT rcLabelMargin;
3867 }
3868 alias LVTILEVIEWINFO* PLVTILEVIEWINFO;
3869
3870 struct LVINSERTGROUPSORTED {
3871 PFNLVGROUPCOMPARE pfnGroupCompare;
3872 LPVOID* pvData;
3873 LVGROUP lvGroup;
3874 }
3875 alias LVINSERTGROUPSORTED* PLVINSERTGROUPSORTED;
3876
3877 extern (Windows) alias int function(INT, INT, VOID*) PFNLVGROUPCOMPARE;
3878
3879 struct LVSETINFOTIP {
3880 UINT cbSize = LVSETINFOTIP.sizeof;
3881 DWORD dwFlags;
3882 LPWSTR pszText;
3883 int iItem;
3884 int iSubItem;
3885 HBITMAP hbmp;
3886 }
3887 alias LVSETINFOTIP* PLVSETINFOTIP;
3888
3889 struct BUTTON_IMAGELIST {
3890 HIMAGELIST himl;
3891 RECT margin;
3892 UINT uAlign;
3893 }
3894 alias BUTTON_IMAGELIST* PBUTTON_IMAGELIST;
3895 }
3896
3897 static if (_WIN32_WINNT >= 0x600) {
3898 struct LVITEMINDEX
3899 {
3900 int iItem;
3901 int iGroup;
3902 }
3903 alias LVITEMINDEX* PLVITEMINDEX;
3904
3905 struct LVFOOTERINFO
3906 {
3907 UINT mask;
3908 LPWSTR pszText;
3909 int cchTextMax;
3910 UINT cItems;
3911 }
3912 alias LVFOOTERINFO* LPLVFOOTERINFO;
3913
3914 struct LVFOOTERITEM
3915 {
3916 UINT mask;
3917 int iItem;
3918 LPWSTR pszText;
3919 int cchTextMax;
3920 UINT state;
3921 UINT stateMask;
3922 }
3923 alias LVFOOTERITEM *LPLVFOOTERITEM;
3924
3925 alias UINT TVITEMPART;
3926 enum {
3927 TVGIPR_BUTTON = 0x0001,
3928 }
3929 }
3930
3931 extern (Windows) alias int function(LPARAM, LPARAM, LPARAM) PFNLVCOMPARE;
3932
3933 struct NMLISTVIEW {
3934 NMHDR hdr;
3935 int iItem;
3936 int iSubItem;
3937 UINT uNewState;
3938 UINT uOldState;
3939 UINT uChanged;
3940 POINT ptAction;
3941 LPARAM lParam;
3942 }
3943 alias NMLISTVIEW* LPNMLISTVIEW;
3944
3945 deprecated {
3946 alias NMLISTVIEW NM_LISTVIEW;
3947 alias LPNMLISTVIEW LPNM_LISTVIEW;
3948 }
3949
3950 struct NMLVDISPINFOA {
3951 NMHDR hdr;
3952 LV_ITEMA item;
3953 }
3954 alias NMLVDISPINFOA* LPNMLVDISPINFOA;
3955 alias NMLVDISPINFOA LV_DISPINFOA;
3956
3957 struct NMLVDISPINFOW {
3958 NMHDR hdr;
3959 LV_ITEMW item;
3960 }
3961 alias NMLVDISPINFOW* LPNMLVDISPINFOW;
3962 alias NMLVDISPINFOW LV_DISPINFOW;
3963
3964 align (1)
3965 struct LV_KEYDOWN {
3966 align (1):
3967 NMHDR hdr;
3968 WORD wVKey;
3969 UINT flags;
3970 }
3971
3972 struct NMLVCACHEHINT {
3973 NMHDR hdr;
3974 int iFrom;
3975 int iTo;
3976 }
3977 alias NMLVCACHEHINT* LPNMLVCACHEHINT, PNM_CACHEHINT, LPNM_CACHEHINT;
3978 alias NMLVCACHEHINT NM_CACHEHINT;
3979
3980 struct TVITEMA {
3981 UINT mask;
3982 HTREEITEM hItem;
3983 UINT state;
3984 UINT stateMask;
3985 LPSTR pszText;
3986 int cchTextMax;
3987 int iImage;
3988 int iSelectedImage;
3989 int cChildren;
3990 LPARAM lParam;
3991 }
3992 alias TVITEMA* LPTVITEMA, LPTV_ITEMA;
3993 alias TVITEMA TV_ITEMA;
3994
3995 struct TVITEMW {
3996 UINT mask;
3997 HTREEITEM hItem;
3998 UINT state;
3999 UINT stateMask;
4000 LPWSTR pszText;
4001 int cchTextMax;
4002 int iImage;
4003 int iSelectedImage;
4004 int cChildren;
4005 LPARAM lParam;
4006 }
4007 alias TVITEMW* LPTVITEMW, LPTV_ITEMW;
4008 alias TVITEMW TV_ITEMW;
4009
4010 static if (_WIN32_IE >= 0x400) {
4011 struct TVITEMEXA {
4012 UINT mask;
4013 HTREEITEM hItem;
4014 UINT state;
4015 UINT stateMask;
4016 LPSTR pszText;
4017 int cchTextMax;
4018 int iImage;
4019 int iSelectedImage;
4020 int cChildren;
4021 LPARAM lParam;
4022 int iIntegral;
4023 }
4024 alias TVITEMEXA* LPTVITEMEXA;
4025
4026 struct TVITEMEXW {
4027 UINT mask;
4028 HTREEITEM hItem;
4029 UINT state;
4030 UINT stateMask;
4031 LPWSTR pszText;
4032 int cchTextMax;
4033 int iImage;
4034 int iSelectedImage;
4035 int cChildren;
4036 LPARAM lParam;
4037 int iIntegral;
4038 }
4039 alias TVITEMEXW* LPTVITEMEXW;
4040 }
4041
4042 static if (_WIN32_IE >= 0x400) {
4043 struct TVINSERTSTRUCTA {
4044 HTREEITEM hParent;
4045 HTREEITEM hInsertAfter;
4046 union {
4047 TVITEMEXA itemex;
4048 TV_ITEMA item;
4049 }
4050 }
4051
4052 struct TVINSERTSTRUCTW {
4053 HTREEITEM hParent;
4054 HTREEITEM hInsertAfter;
4055 union {
4056 TVITEMEXW itemex;
4057 TV_ITEMW item;
4058 }
4059 }
4060 } else {
4061 struct TVINSERTSTRUCTA {
4062 HTREEITEM hParent;
4063 HTREEITEM hInsertAfter;
4064 TV_ITEMA item;
4065 }
4066
4067 struct TVINSERTSTRUCTW {
4068 HTREEITEM hParent;
4069 HTREEITEM hInsertAfter;
4070 TV_ITEMW item;
4071 }
4072 }
4073 alias TVINSERTSTRUCTA* LPTVINSERTSTRUCTA, LPTV_INSERTSTRUCTA;
4074 alias TVINSERTSTRUCTA TV_INSERTSTRUCTA;
4075 alias TVINSERTSTRUCTW* LPTVINSERTSTRUCTW, LPTV_INSERTSTRUCTW;
4076 alias TVINSERTSTRUCTW TV_INSERTSTRUCTW;
4077
4078 struct TVHITTESTINFO {
4079 POINT pt;
4080 UINT flags;
4081 HTREEITEM hItem;
4082 }
4083 alias TVHITTESTINFO* LPTVHITTESTINFO, LPTV_HITTESTINFO;
4084 alias TVHITTESTINFO TV_HITTESTINFO;
4085
4086 static if (_WIN32_WINNT >= 0x600) {
4087 struct TVGETITEMPARTRECTINFO {
4088 HTREEITEM hti;
4089 RECT* prc;
4090 TVITEMPART partID;
4091 }
4092 }
4093
4094 extern (Windows) alias int function(LPARAM, LPARAM, LPARAM) PFNTVCOMPARE;
4095 struct TVSORTCB {
4096 HTREEITEM hParent;
4097 PFNTVCOMPARE lpfnCompare;
4098 LPARAM lParam;
4099 }
4100 alias TVSORTCB* LPTVSORTCB, LPTV_SORTCB;
4101 alias TVSORTCB TV_SORTCB;
4102
4103 struct NMTREEVIEWA {
4104 NMHDR hdr;
4105 UINT action;
4106 TV_ITEMA itemOld;
4107 TV_ITEMA itemNew;
4108 POINT ptDrag;
4109 }
4110 alias NMTREEVIEWA* LPNMTREEVIEWA, LPNM_TREEVIEWA;
4111 alias NMTREEVIEWA NM_TREEVIEWA;
4112
4113 struct NMTREEVIEWW {
4114 NMHDR hdr;
4115 UINT action;
4116 TV_ITEMW itemOld;
4117 TV_ITEMW itemNew;
4118 POINT ptDrag;
4119 }
4120 alias NMTREEVIEWW* LPNMTREEVIEWW, LPNM_TREEVIEWW;
4121 alias NMTREEVIEWW NM_TREEVIEWW;
4122
4123 struct NMTVDISPINFOA {
4124 NMHDR hdr;
4125 TVITEMA item;
4126 }
4127 alias NMTVDISPINFOA* LPNMTVDISPINFOA;
4128 alias NMTVDISPINFOA TV_DISPINFOA;
4129
4130 struct NMTVDISPINFOW {
4131 NMHDR hdr;
4132 TVITEMW item;
4133 }
4134 alias NMTVDISPINFOW* LPNMTVDISPINFOW;
4135 alias NMTVDISPINFOW TV_DISPINFOW;
4136
4137 static if (_WIN32_IE >= 0x400) {
4138 struct NMTVGETINFOTIPA {
4139 NMHDR hdr;
4140 LPSTR pszText;
4141 int cchTextMax;
4142 HTREEITEM hItem;
4143 LPARAM lParam;
4144 }
4145 alias NMTVGETINFOTIPA* LPNMTVGETINFOTIPA;
4146
4147 struct NMTVGETINFOTIPW {
4148 NMHDR hdr;
4149 LPWSTR pszText;
4150 int cchTextMax;
4151 HTREEITEM hItem;
4152 LPARAM lParam;
4153 }
4154 alias NMTVGETINFOTIPW* LPNMTVGETINFOTIPW;
4155 }
4156
4157 align (1)
4158 struct TV_KEYDOWN {
4159 align (1):
4160 NMHDR hdr;
4161 WORD wVKey;
4162 UINT flags;
4163 }
4164
4165 struct TC_ITEMHEADERA {
4166 UINT mask;
4167 UINT lpReserved1;
4168 UINT lpReserved2;
4169 LPSTR pszText;
4170 int cchTextMax;
4171 int iImage;
4172 }
4173
4174 struct TC_ITEMHEADERW {
4175 UINT mask;
4176 UINT lpReserved1;
4177 UINT lpReserved2;
4178 LPWSTR pszText;
4179 int cchTextMax;
4180 int iImage;
4181 }
4182
4183 static if (_WIN32_IE >= 0x300) {
4184 struct TCITEMA {
4185 UINT mask;
4186 DWORD dwState;
4187 DWORD dwStateMask;
4188 LPSTR pszText;
4189 int cchTextMax;
4190 int iImage;
4191 LPARAM lParam;
4192 }
4193
4194 struct TCITEMW {
4195 UINT mask;
4196 DWORD dwState;
4197 DWORD dwStateMask;
4198 LPWSTR pszText;
4199 int cchTextMax;
4200 int iImage;
4201 LPARAM lParam;
4202 }
4203 } else {
4204 struct TCITEMA {
4205 UINT mask;
4206 UINT lpReserved1;
4207 UINT lpReserved2;
4208 LPSTR pszText;
4209 int cchTextMax;
4210 int iImage;
4211 LPARAM lParam;
4212 }
4213
4214 struct TCITEMW {
4215 UINT mask;
4216 UINT lpReserved1;
4217 UINT lpReserved2;
4218 LPWSTR pszText;
4219 int cchTextMax;
4220 int iImage;
4221 LPARAM lParam;
4222 }
4223 }
4224 alias TCITEMA* LPTCITEMA;
4225 alias TCITEMA TC_ITEMA;
4226 alias TCITEMW* LPTCITEMW;
4227 alias TCITEMW TC_ITEMW;
4228
4229 struct TCHITTESTINFO {
4230 POINT pt;
4231 UINT flags;
4232 }
4233 alias TCHITTESTINFO* LPTCHITTESTINFO, LPTC_HITTESTINFO;
4234 alias TCHITTESTINFO TC_HITTESTINFO;
4235
4236 align (1)
4237 struct TC_KEYDOWN {
4238 align (1):
4239 NMHDR hdr;
4240 WORD wVKey;
4241 UINT flags;
4242 }
4243
4244 static if (_WIN32_IE >= 0x300) {
4245 struct INITCOMMONCONTROLSEX {
4246 DWORD dwSize = INITCOMMONCONTROLSEX.sizeof;
4247 DWORD dwICC;
4248 }
4249 alias INITCOMMONCONTROLSEX* LPINITCOMMONCONTROLSEX;
4250 }
4251
4252 struct PBRANGE {
4253 int iLow;
4254 int iHigh;
4255 }
4256 alias PBRANGE* PPBRANGE;
4257
4258 struct COLORSCHEME {
4259 DWORD dwSize = COLORSCHEME.sizeof;
4260 COLORREF clrBtnHighlight;
4261 COLORREF clrBtnShadow;
4262 }
4263 alias COLORSCHEME* LPCOLORSCHEME;
4264
4265 struct MCHITTESTINFO {
4266 UINT cbSize = MCHITTESTINFO.sizeof;
4267 POINT pt;
4268 UINT uHit;
4269 SYSTEMTIME st;
4270 }
4271 alias MCHITTESTINFO* PMCHITTESTINFO;
4272
4273 alias DWORD MONTHDAYSTATE;
4274 alias MONTHDAYSTATE* LPMONTHDAYSTATE;
4275
4276 struct NMDAYSTATE {
4277 NMHDR nmhdr;
4278 SYSTEMTIME stStart;
4279 int cDayState;
4280 LPMONTHDAYSTATE prgDayState;
4281 }
4282 alias NMDAYSTATE* LPNMDAYSTATE;
4283
4284 struct REBARINFO {
4285 UINT cbSize = REBARINFO.sizeof;
4286 UINT fMask;
4287 HIMAGELIST himl;
4288 }
4289 alias REBARINFO* LPREBARINFO;
4290
4291 static if (_WIN32_IE >= 0x400) {
4292 struct REBARBANDINFOA {
4293 UINT cbSize = REBARBANDINFOA.sizeof;
4294 UINT fMask;
4295 UINT fStyle;
4296 COLORREF clrFore;
4297 COLORREF clrBack;
4298 LPSTR lpText;
4299 UINT cch;
4300 int iImage;
4301 HWND hwndChild;
4302 UINT cxMinChild;
4303 UINT cyMinChild;
4304 UINT cx;
4305 HBITMAP hbmBack;
4306 UINT wID;
4307 UINT cyChild;
4308 UINT cyMaxChild;
4309 UINT cyIntegral;
4310 UINT cxIdeal;
4311 LPARAM lParam;
4312 UINT cxHeader;
4313 }
4314
4315 struct REBARBANDINFOW {
4316 UINT cbSize = REBARBANDINFOW.sizeof;
4317 UINT fMask;
4318 UINT fStyle;
4319 COLORREF clrFore;
4320 COLORREF clrBack;
4321 LPWSTR lpText;
4322 UINT cch;
4323 int iImage;
4324 HWND hwndChild;
4325 UINT cxMinChild;
4326 UINT cyMinChild;
4327 UINT cx;
4328 HBITMAP hbmBack;
4329 UINT wID;
4330 UINT cyChild;
4331 UINT cyMaxChild;
4332 UINT cyIntegral;
4333 UINT cxIdeal;
4334 LPARAM lParam;
4335 UINT cxHeader;
4336 }
4337
4338 enum : size_t {
4339 REBARBANDINFOA_V3_SIZE = REBARBANDINFOA.cyChild.offsetof,
4340 REBARBANDINFOW_V3_SIZE = REBARBANDINFOW.cyChild.offsetof
4341 }
4342 } else {
4343 struct REBARBANDINFOA {
4344 UINT cbSize = REBARBANDINFOA.sizeof;
4345 UINT fMask;
4346 UINT fStyle;
4347 COLORREF clrFore;
4348 COLORREF clrBack;
4349 LPSTR lpText;
4350 UINT cch;
4351 int iImage;
4352 HWND hwndChild;
4353 UINT cxMinChild;
4354 UINT cyMinChild;
4355 UINT cx;
4356 HBITMAP hbmBack;
4357 UINT wID;
4358 }
4359
4360 struct REBARBANDINFOW {
4361 UINT cbSize = REBARBANDINFOW.sizeof;
4362 UINT fMask;
4363 UINT fStyle;
4364 COLORREF clrFore;
4365 COLORREF clrBack;
4366 LPWSTR lpText;
4367 UINT cch;
4368 int iImage;
4369 HWND hwndChild;
4370 UINT cxMinChild;
4371 UINT cyMinChild;
4372 UINT cx;
4373 HBITMAP hbmBack;
4374 UINT wID;
4375 }
4376
4377 enum : size_t {
4378 REBARBANDINFOA_V3_SIZE = REBARBANDINFOA.sizeof,
4379 REBARBANDINFOW_V3_SIZE = REBARBANDINFOW.sizeof
4380 }
4381 }
4382 alias REBARBANDINFOA* LPREBARBANDINFOA;
4383 alias const(REBARBANDINFOA)* LPCREBARBANDINFOA;
4384 alias REBARBANDINFOW* LPREBARBANDINFOW;
4385 alias const(REBARBANDINFOW)* LPCREBARBANDINFOW;
4386
4387 static if (_WIN32_IE >= 0x300) {
4388 struct NMLVODSTATECHANGE {
4389 NMHDR hdr;
4390 int iFrom;
4391 int iTo;
4392 UINT uNewState;
4393 UINT uOldState;
4394 }
4395 alias NMLVODSTATECHANGE* LPNMLVODSTATECHANGE;
4396
4397 static if (_WIN32_WINNT >= 0x501) {
4398 struct IMAGELISTDRAWPARAMS {
4399 DWORD cbSize = IMAGELISTDRAWPARAMS.sizeof;
4400 HIMAGELIST himl;
4401 int i;
4402 HDC hdcDst;
4403 int x;
4404 int y;
4405 int cx;
4406 int cy;
4407 int xBitmap;
4408 int yBitmap;
4409 COLORREF rgbBk;
4410 COLORREF rgbFg;
4411 UINT fStyle;
4412 DWORD dwRop;
4413 DWORD fState;
4414 DWORD Frame;
4415 COLORREF crEffect;
4416 }
4417 } else {
4418 struct IMAGELISTDRAWPARAMS {
4419 DWORD cbSize = IMAGELISTDRAWPARAMS.sizeof;
4420 HIMAGELIST himl;
4421 int i;
4422 HDC hdcDst;
4423 int x;
4424 int y;
4425 int cx;
4426 int cy;
4427 int xBitmap;
4428 int yBitmap;
4429 COLORREF rgbBk;
4430 COLORREF rgbFg;
4431 UINT fStyle;
4432 DWORD dwRop;
4433 }
4434 }
4435 alias IMAGELISTDRAWPARAMS* LPIMAGELISTDRAWPARAMS;
4436 }
4437
4438 static if (_WIN32_IE >= 0x400) {
4439 struct NMREBARCHILDSIZE {
4440 NMHDR hdr;
4441 UINT uBand;
4442 UINT wID;
4443 RECT rcChild;
4444 RECT rcBand;
4445 }
4446 alias NMREBARCHILDSIZE* LPNMREBARCHILDSIZE;
4447
4448 struct NMREBAR {
4449 NMHDR hdr;
4450 DWORD dwMask;
4451 UINT uBand;
4452 UINT fStyle;
4453 UINT wID;
4454 LPARAM lParam;
4455 }
4456 alias NMREBAR* LPNMREBAR;
4457
4458 struct NMRBAUTOSIZE {
4459 NMHDR hdr;
4460 BOOL fChanged;
4461 RECT rcTarget;
4462 RECT rcActual;
4463 }
4464 alias NMRBAUTOSIZE* LPNMRBAUTOSIZE;
4465
4466 static if (_WIN32_IE >= 0x500) {
4467 struct NMREBARCHEVRON {
4468 NMHDR hdr;
4469 UINT uBand;
4470 UINT wID;
4471 LPARAM lParam;
4472 RECT rc;
4473 LPARAM lParamNM;
4474 }
4475 alias NMREBARCHEVRON* LPNMREBARCHEVRON;
4476 }
4477
4478 struct RBHITTESTINFO {
4479 POINT pt;
4480 UINT flags;
4481 int iBand;
4482 }
4483 alias RBHITTESTINFO* LPRBHITTESTINFO;
4484 }
4485
4486 mixin DECLARE_HANDLE!("HDSA");
4487 mixin DECLARE_HANDLE!("HDPA");
4488
4489 version (Unicode) {
4490 alias HDITEMW HDITEM;
4491 alias LPHDITEMW LPHDITEM;
4492 alias TOOLINFOW TOOLINFO;
4493 alias TOOLINFOW* PTOOLINFO, LPTOOLINFO;
4494 alias TTHITTESTINFOW TTHITTESTINFO;
4495 alias TTHITTESTINFOW* LPHITTESTINFO, LPTTHITTESTINFO;
4496 alias TOOLTIPTEXTW TOOLTIPTEXT;
4497 alias TOOLTIPTEXTW* LPTOOLTIPTEXT;
4498 alias NMTTDISPINFOW NMTTDISPINFO;
4499 alias NMTTDISPINFOW* LPNMTTDISPINFO;
4500 alias TV_ITEMW TV_ITEM;
4501 alias TV_ITEMW* LPTV_ITEM;
4502 alias TVITEMW TVITEM;
4503 alias TVITEMW* LPTVITEM;
4504
4505 static if (_WIN32_IE >= 0x400) {
4506 alias TVITEMEXW TVITEMEX;
4507 alias TVITEMEXW* LPTVITEMEX;
4508 }
4509
4510 alias TV_INSERTSTRUCTW TV_INSERTSTRUCT;
4511 alias TV_INSERTSTRUCTW* LPTV_INSERTSTRUCT;
4512 alias TVINSERTSTRUCTW TVINSERTSTRUCT;
4513 alias TVINSERTSTRUCTW* LPTVINSERTSTRUCT;
4514 alias NM_TREEVIEWW NM_TREEVIEW;
4515 alias NM_TREEVIEWW* LPNM_TREEVIEW;
4516 alias NMTREEVIEWW NMTREEVIEW;
4517 alias NMTREEVIEWW* LPNMTREEVIEW;
4518 alias NMHDDISPINFOW NMHDDISPINFO;
4519 alias NMHDDISPINFOW* LPNMHDDISPINFO;
4520
4521 alias ACM_OPENW ACM_OPEN;
4522 alias COMBOBOXEXITEMW COMBOBOXEXITEM;
4523 alias PCOMBOBOXEXITEMW PCOMBOBOXEXITEM;
4524 //alias PCCOMBOBOXEXITEMW PCCOMBOBOXEXITEM; fixme
4525 alias CBEM_INSERTITEMW CBEM_INSERTITEM;
4526 alias CBEM_SETITEMW CBEM_SETITEM;
4527 alias CBEM_GETITEMW CBEM_GETITEM;
4528 alias CBEN_ENDEDITW CBEN_ENDEDIT;
4529 alias NMCBEENDEDITW NMCBEENDEDIT;
4530 alias LPNMCBEENDEDITW LPNMCBEENDEDIT;
4531 alias PNMCBEENDEDITW PNMCBEENDEDIT;
4532
4533 static if (_WIN32_IE >= 0x400) {
4534 alias NMCOMBOBOXEXW NMCOMBOBOXEX;
4535 alias PNMCOMBOBOXEXW PNMCOMBOBOXEX;
4536 alias CBEN_GETDISPINFOW CBEN_GETDISPINFO;
4537 alias CBEN_DRAGBEGINW CBEN_DRAGBEGIN;
4538 alias NMCBEDRAGBEGINW NMCBEDRAGBEGIN;
4539 alias LPNMCBEDRAGBEGINW LPNMCBEDRAGBEGIN;
4540 alias PNMCBEDRAGBEGINW PNMCBEDRAGBEGIN;
4541 }
4542
4543 alias SB_GETTEXTW SB_GETTEXT;
4544 alias SB_SETTEXTW SB_SETTEXT;
4545 alias SB_GETTEXTLENGTHW SB_GETTEXTLENGTH;
4546 alias HDM_INSERTITEMW HDM_INSERTITEM;
4547 alias HDM_GETITEMW HDM_GETITEM;
4548 alias HDM_SETITEMW HDM_SETITEM;
4549 alias HDN_ITEMCHANGINGW HDN_ITEMCHANGING;
4550 alias HDN_ITEMCHANGEDW HDN_ITEMCHANGED;
4551 alias HDN_ITEMCLICKW HDN_ITEMCLICK;
4552 alias HDN_ITEMDBLCLICKW HDN_ITEMDBLCLICK;
4553 alias HDN_DIVIDERDBLCLICKW HDN_DIVIDERDBLCLICK;
4554 alias HDN_BEGINTRACKW HDN_BEGINTRACK;
4555 alias HDN_ENDTRACKW HDN_ENDTRACK;
4556 alias HDN_TRACKW HDN_TRACK;
4557
4558 static if (_WIN32_IE >= 0x300) {
4559 alias HDN_GETDISPINFOW HDN_GETDISPINFO;
4560 }
4561
4562 alias HD_NOTIFYW HD_NOTIFY;
4563 alias TBSAVEPARAMSW TBSAVEPARAMS;
4564 alias TB_GETBUTTONTEXTW TB_GETBUTTONTEXT;
4565 alias TB_SAVERESTOREW TB_SAVERESTORE;
4566 alias TB_ADDSTRINGW TB_ADDSTRING;
4567
4568 static if (_WIN32_IE >= 0x400) {
4569 alias TBN_GETBUTTONINFOW TBN_GETBUTTONINFO; // fixme
4570 alias TB_GETBUTTONINFOW TB_GETBUTTONINFO;
4571 alias TB_SETBUTTONINFOW TB_SETBUTTONINFO;
4572 alias TB_INSERTBUTTONW TB_INSERTBUTTON;
4573 alias TB_ADDBUTTONSW TB_ADDBUTTONS;
4574 alias TB_MAPACCELERATORW TB_MAPACCELERATOR;
4575 alias TB_GETSTRINGW TB_GETSTRING;
4576 alias TBBUTTONINFOW TBBUTTONINFO;
4577 alias LPTBBUTTONINFOW LPTBBUTTONINFO;
4578 alias TBN_GETDISPINFOW TBN_GETDISPINFO;
4579 alias NMTBDISPINFOW NMTBDISPINFO;
4580 alias LPNMTBDISPINFOW LPNMTBDISPINFO;
4581 alias NMTBGETINFOTIPW NMTBGETINFOTIP;
4582 alias LPNMTBGETINFOTIPW LPNMTBGETINFOTIP;
4583 }
4584
4585 alias TBNOTIFYW TBNOTIFY;
4586 alias LPTBNOTIFYW LPTBNOTIFY;
4587 alias NMTOOLBARW NMTOOLBAR;
4588 alias LPNMTOOLBARW LPNMTOOLBAR;
4589 alias TTM_ADDTOOLW TTM_ADDTOOL;
4590 alias TTM_DELTOOLW TTM_DELTOOL;
4591 alias TTM_NEWTOOLRECTW TTM_NEWTOOLRECT;
4592 alias TTM_GETTOOLINFOW TTM_GETTOOLINFO;
4593 alias TTM_SETTOOLINFOW TTM_SETTOOLINFO;
4594 alias TTM_HITTESTW TTM_HITTEST;
4595 alias TTM_GETTEXTW TTM_GETTEXT;
4596 alias TTM_UPDATETIPTEXTW TTM_UPDATETIPTEXT;
4597 alias TTM_ENUMTOOLSW TTM_ENUMTOOLS;
4598 alias TTM_GETCURRENTTOOLW TTM_GETCURRENTTOOL;
4599 alias TTN_NEEDTEXTW TTN_NEEDTEXT;
4600 alias TTN_GETDISPINFOW TTN_GETDISPINFO;
4601 //alias SB_GETTEXTW SB_GETTEXT;
4602 //alias SB_SETTEXTW SB_SETTEXT;
4603 //alias SB_GETTEXTLENGTHW SB_GETTEXTLENGTH;
4604 alias LV_ITEMW LV_ITEM;
4605 alias LVITEMW LVITEM;
4606 alias LVITEM* LPLVITEM;
4607 alias LPSTR_TEXTCALLBACKW LPSTR_TEXTCALLBACK;
4608
4609 static if (_WIN32_IE >= 0x400) {
4610 alias LVBKIMAGEW LVBKIMAGE;
4611 alias LPLVBKIMAGEW LPLVBKIMAGE;
4612 alias LVM_SETBKIMAGEW LVM_SETBKIMAGE;
4613 alias LVM_GETBKIMAGEW LVM_GETBKIMAGE;
4614 }
4615
4616 alias LVM_GETITEMW LVM_GETITEM;
4617 alias LVM_SETITEMW LVM_SETITEM;
4618 alias LVM_INSERTITEMW LVM_INSERTITEM;
4619 alias LV_FINDINFOW LV_FINDINFO;
4620 alias LVFINDINFOW LVFINDINFO;
4621 alias LPFINDINFOW LPFINDINFO;
4622 alias NMLVFINDITEMW NMLVFINDITEM;
4623 alias PNMLVFINDITEMW PNMLVFINDITEM;
4624 alias LPNMLVFINDITEMW LPNMLVFINDITEM;
4625 alias LVM_FINDITEMW LVM_FINDITEM;
4626 alias LVM_GETSTRINGWIDTHW LVM_GETSTRINGWIDTH;
4627 alias LVM_EDITLABELW LVM_EDITLABEL;
4628 alias LV_COLUMNW LV_COLUMN;
4629 alias LVCOLUMNW LVCOLUMN;
4630 alias LVCOLUMNW* LPLVCOLUMN;
4631 alias LVM_GETCOLUMNW LVM_GETCOLUMN;
4632 alias LVM_SETCOLUMNW LVM_SETCOLUMN;
4633 alias LVM_INSERTCOLUMNW LVM_INSERTCOLUMN;
4634 alias LVM_GETITEMTEXTW LVM_GETITEMTEXT;
4635 alias LVM_SETITEMTEXTW LVM_SETITEMTEXT;
4636 alias LVM_GETISEARCHSTRINGW LVM_GETISEARCHSTRING;
4637 alias LVN_BEGINLABELEDITW LVN_BEGINLABELEDIT;
4638 alias LVN_ENDLABELEDITW LVN_ENDLABELEDIT;
4639 alias LVN_GETDISPINFOW LVN_GETDISPINFO;
4640 alias LVN_SETDISPINFOW LVN_SETDISPINFO;
4641
4642 static if (_WIN32_IE >= 0x400) {
4643 alias LVN_GETINFOTIPW LVN_GETINFOTIP;
4644 alias NMLVGETINFOTIPW NMLVGETINFOTIP;
4645 alias LPNMLVGETINFOTIPW LPNMLVGETINFOTIP;
4646 }
4647
4648 alias LV_DISPINFOW LV_DISPINFO;
4649 alias NMLVDISPINFOW NMLVDISPINFO;
4650 alias LPNMLVDISPINFOW LPNMLVDISPINFO;
4651 alias TVM_INSERTITEMW TVM_INSERTITEM;
4652 alias TVM_GETITEMW TVM_GETITEM;
4653 alias TVM_SETITEMW TVM_SETITEM;
4654 alias TVM_EDITLABELW TVM_EDITLABEL;
4655 alias TVM_GETISEARCHSTRINGW TVM_GETISEARCHSTRING;
4656 alias NMTVDISPINFOW TV_DISPINFO;
4657 alias NMTVDISPINFOW NMTVDISPINFO;
4658 alias LPNMTVDISPINFOW LPNMTVDISPINFO;
4659
4660 static if (_WIN32_IE >= 0x400) {
4661 alias NMTVGETINFOTIPW NMTVGETINFOTIP;
4662 alias LPNMTVGETINFOTIPW LPNMTVGETINFOTIP;
4663 alias TVN_GETINFOTIPW TVN_GETINFOTIP;
4664 }
4665
4666 alias TVN_SELCHANGINGW TVN_SELCHANGING;
4667 alias TVN_SELCHANGEDW TVN_SELCHANGED;
4668 alias TVN_GETDISPINFOW TVN_GETDISPINFO;
4669 alias TVN_SETDISPINFOW TVN_SETDISPINFO;
4670 alias TVN_ITEMEXPANDINGW TVN_ITEMEXPANDING;
4671 alias TVN_ITEMEXPANDEDW TVN_ITEMEXPANDED;
4672 alias TVN_BEGINDRAGW TVN_BEGINDRAG;
4673 alias TVN_BEGINRDRAGW TVN_BEGINRDRAG;
4674 alias TVN_DELETEITEMW TVN_DELETEITEM;
4675 alias TVN_BEGINLABELEDITW TVN_BEGINLABELEDIT;
4676 alias TVN_ENDLABELEDITW TVN_ENDLABELEDIT;
4677 alias TC_ITEMHEADERW TC_ITEMHEADER;
4678 alias TC_ITEMW TC_ITEM;
4679 alias TCITEMW TCITEM;
4680 alias LPTCITEMW LPTCITEM;
4681 alias TCM_GETITEMW TCM_GETITEM;
4682 alias TCM_SETITEMW TCM_SETITEM;
4683 alias TCM_INSERTITEMW TCM_INSERTITEM;
4684 alias CreateStatusWindowW CreateStatusWindow;
4685 alias DrawStatusTextW DrawStatusText;
4686 alias ImageList_LoadImageW ImageList_LoadImage;
4687 alias DTM_SETFORMATW DTM_SETFORMAT;
4688 alias DTN_USERSTRINGW DTN_USERSTRING;
4689 alias DTN_WMKEYDOWNW DTN_WMKEYDOWN;
4690 alias DTN_FORMATW DTN_FORMAT;
4691 alias DTN_FORMATQUERYW DTN_FORMATQUERY;
4692 alias REBARBANDINFOW REBARBANDINFO;
4693 alias REBARBANDINFO* LPREBARBANDINFO;
4694 alias LPCREBARBANDINFOW LPCREBARBANDINFO;
4695 alias REBARBANDINFOW_V3_SIZE REBARBANDINFO_V3_SIZE;
4696 alias RB_INSERTBANDW RB_INSERTBAND;
4697 alias RB_SETBANDINFOW RB_SETBANDINFO;
4698 } else {
4699 alias HDITEMA HDITEM;
4700 alias LPHDITEMA LPHDITEM;
4701 alias TOOLINFOA TOOLINFO;
4702 alias TOOLINFOA* PTOOLINFO, LPTOOLINFO;
4703 alias TTHITTESTINFOA TTHITTESTINFO;
4704 alias TTHITTESTINFOA* LPHITTESTINFO, LPTTHITTESTINFO;
4705 alias TOOLTIPTEXTA TOOLTIPTEXT;
4706 alias TOOLTIPTEXTA* LPTOOLTIPTEXT;
4707 alias NMTTDISPINFOA NMTTDISPINFO;
4708 alias NMTTDISPINFOA* LPNMTTDISPINFO;
4709 alias TV_ITEMA TV_ITEM;
4710 alias TV_ITEMA* LPTV_ITEM;
4711 alias TVITEMA TVITEM;
4712 alias TVITEMA* LPTVITEM;
4713
4714 static if (_WIN32_IE >= 0x400) {
4715 alias TVITEMEXA TVITEMEX;
4716 alias TVITEMEXA* LPTVITEMEX;
4717 }
4718
4719 alias TV_INSERTSTRUCTA TV_INSERTSTRUCT;
4720 alias TV_INSERTSTRUCTA* LPTV_INSERTSTRUCT;
4721 alias TVINSERTSTRUCTA TVINSERTSTRUCT;
4722 alias TVINSERTSTRUCTA* LPTVINSERTSTRUCT;
4723 alias NM_TREEVIEWA NM_TREEVIEW;
4724 alias NM_TREEVIEWA* LPNM_TREEVIEW;
4725 alias NMTREEVIEWA NMTREEVIEW;
4726 alias NMTREEVIEWA* LPNMTREEVIEW;
4727 alias NMHDDISPINFOW NMHDDISPINFO;
4728 alias NMHDDISPINFOW* LPNMHDDISPINFO;
4729
4730 alias ACM_OPENA ACM_OPEN;
4731 alias COMBOBOXEXITEMA COMBOBOXEXITEM;
4732 alias PCOMBOBOXEXITEMA PCOMBOBOXEXITEM;
4733 //alias PCCOMBOBOXEXITEMA PCCOMBOBOXEXITEM; fixme
4734 alias CBEM_INSERTITEMA CBEM_INSERTITEM;
4735 alias CBEM_SETITEMA CBEM_SETITEM;
4736 alias CBEM_GETITEMA CBEM_GETITEM;
4737 alias CBEN_ENDEDITA CBEN_ENDEDIT;
4738 alias NMCBEENDEDITA NMCBEENDEDIT;
4739 alias LPNMCBEENDEDITA LPNMCBEENDEDIT;
4740 alias PNMCBEENDEDITA PNMCBEENDEDIT;
4741
4742 static if (_WIN32_IE >= 0x400) {
4743 alias TB_GETBUTTONINFOA TB_GETBUTTONINFO;
4744 alias TB_SETBUTTONINFOA TB_SETBUTTONINFO;
4745 alias TB_INSERTBUTTONA TB_INSERTBUTTON;
4746 alias TB_ADDBUTTONSA TB_ADDBUTTONS;
4747 alias TB_MAPACCELERATORA TB_MAPACCELERATOR;
4748 alias TB_GETSTRINGA TB_GETSTRING;
4749 alias NMCOMBOBOXEXA NMCOMBOBOXEX;
4750 alias PNMCOMBOBOXEXA PNMCOMBOBOXEX;
4751 alias CBEN_DRAGBEGINA CBEN_DRAGBEGIN;
4752 alias CBEN_GETDISPINFOA CBEN_GETDISPINFO;
4753 alias NMCBEDRAGBEGINA NMCBEDRAGBEGIN;
4754 alias LPNMCBEDRAGBEGINA LPNMCBEDRAGBEGIN;
4755 alias PNMCBEDRAGBEGINA PNMCBEDRAGBEGIN;
4756 alias TBN_GETDISPINFOA TBN_GETDISPINFO;
4757 alias NMTBDISPINFOA NMTBDISPINFO;
4758 alias LPNMTBDISPINFOA LPNMTBDISPINFO;
4759 alias NMTBGETINFOTIPA NMTBGETINFOTIP;
4760 alias LPNMTBGETINFOTIPA LPNMTBGETINFOTIP;
4761 }
4762
4763 alias SB_GETTEXTA SB_GETTEXT;
4764 alias SB_SETTEXTA SB_SETTEXT;
4765 alias SB_GETTEXTLENGTHA SB_GETTEXTLENGTH;
4766 alias HDM_INSERTITEMA HDM_INSERTITEM;
4767 alias HDM_GETITEMA HDM_GETITEM;
4768 alias HDM_SETITEMA HDM_SETITEM;
4769 alias HDN_ITEMCHANGINGA HDN_ITEMCHANGING;
4770 alias HDN_ITEMCHANGEDA HDN_ITEMCHANGED;
4771 alias HDN_ITEMCLICKA HDN_ITEMCLICK;
4772 alias HDN_ITEMDBLCLICKA HDN_ITEMDBLCLICK;
4773 alias HDN_DIVIDERDBLCLICKA HDN_DIVIDERDBLCLICK;
4774 alias HDN_BEGINTRACKA HDN_BEGINTRACK;
4775 alias HDN_ENDTRACKA HDN_ENDTRACK;
4776 alias HDN_TRACKA HDN_TRACK;
4777
4778 static if (_WIN32_IE >= 0x300) {
4779 alias HDN_GETDISPINFOA HDN_GETDISPINFO;
4780 }
4781
4782 alias HD_NOTIFYA HD_NOTIFY;
4783 alias TBSAVEPARAMSA TBSAVEPARAMS;
4784 alias TB_GETBUTTONTEXTA TB_GETBUTTONTEXT;
4785 alias TB_SAVERESTOREA TB_SAVERESTORE;
4786 alias TB_ADDSTRINGA TB_ADDSTRING;
4787 alias TBN_GETBUTTONINFOA TBN_GETBUTTONINFO;
4788
4789 static if (_WIN32_IE >= 0x400) {
4790 alias TBBUTTONINFOA TBBUTTONINFO;
4791 alias LPTBBUTTONINFOA LPTBBUTTONINFO;
4792 }
4793
4794 alias TBNOTIFYA TBNOTIFY;
4795 alias LPTBNOTIFYA LPTBNOTIFY;
4796 alias NMTOOLBARA NMTOOLBAR;
4797 alias LPNMTOOLBARA LPNMTOOLBAR;
4798 alias TTM_ADDTOOLA TTM_ADDTOOL;
4799 alias TTM_DELTOOLA TTM_DELTOOL;
4800 alias TTM_NEWTOOLRECTA TTM_NEWTOOLRECT;
4801 alias TTM_GETTOOLINFOA TTM_GETTOOLINFO;
4802 alias TTM_SETTOOLINFOA TTM_SETTOOLINFO;
4803 alias TTM_HITTESTA TTM_HITTEST;
4804 alias TTM_GETTEXTA TTM_GETTEXT;
4805 alias TTM_UPDATETIPTEXTA TTM_UPDATETIPTEXT;
4806 alias TTM_ENUMTOOLSA TTM_ENUMTOOLS;
4807 alias TTM_GETCURRENTTOOLA TTM_GETCURRENTTOOL;
4808 alias TTN_NEEDTEXTA TTN_NEEDTEXT;
4809 alias TTN_GETDISPINFOA TTN_GETDISPINFO;
4810 alias LV_ITEMA LV_ITEM;
4811 alias LVITEMA LVITEM;
4812 alias LVITEM* LPLVITEM;
4813 alias LPSTR_TEXTCALLBACKA LPSTR_TEXTCALLBACK;
4814
4815 static if (_WIN32_IE >= 0x400) {
4816 alias LVBKIMAGEA LVBKIMAGE;
4817 alias LPLVBKIMAGEA LPLVBKIMAGE;
4818 alias LVM_SETBKIMAGEA LVM_SETBKIMAGE;
4819 alias LVM_GETBKIMAGEA LVM_GETBKIMAGE;
4820 }
4821
4822 alias LVM_GETITEMA LVM_GETITEM;
4823 alias LVM_SETITEMA LVM_SETITEM;
4824 alias LVM_INSERTITEMA LVM_INSERTITEM;
4825 alias LV_FINDINFOA LV_FINDINFO;
4826 alias LVFINDINFOA LVFINDINFO;
4827 alias LPFINDINFOA LPFINDINFO;
4828 alias NMLVFINDITEMA NMLVFINDITEM;
4829 alias PNMLVFINDITEMA PNMLVFINDITEM;
4830 alias LPNMLVFINDITEMA LPNMLVFINDITEM;
4831 alias LVM_FINDITEMA LVM_FINDITEM;
4832 alias LVM_GETSTRINGWIDTHA LVM_GETSTRINGWIDTH;
4833 alias LVM_EDITLABELA LVM_EDITLABEL;
4834 alias LV_COLUMNA LV_COLUMN;
4835 alias LVCOLUMNA LVCOLUMN;
4836 alias LVCOLUMNA* LPLVCOLUMN;
4837 alias LVM_GETCOLUMNA LVM_GETCOLUMN;
4838 alias LVM_SETCOLUMNA LVM_SETCOLUMN;
4839 alias LVM_INSERTCOLUMNA LVM_INSERTCOLUMN;
4840 alias LVM_GETITEMTEXTA LVM_GETITEMTEXT;
4841 alias LVM_SETITEMTEXTA LVM_SETITEMTEXT;
4842 alias LVM_GETISEARCHSTRINGA LVM_GETISEARCHSTRING;
4843 alias LVN_BEGINLABELEDITA LVN_BEGINLABELEDIT;
4844 alias LVN_ENDLABELEDITA LVN_ENDLABELEDIT;
4845 alias LVN_GETDISPINFOA LVN_GETDISPINFO;
4846 alias LVN_SETDISPINFOA LVN_SETDISPINFO;
4847
4848 static if (_WIN32_IE >= 0x400) {
4849 alias LVN_GETINFOTIPA LVN_GETINFOTIP;
4850 alias NMLVGETINFOTIPA NMLVGETINFOTIP;
4851 alias LPNMLVGETINFOTIPA LPNMLVGETINFOTIP;
4852 }
4853
4854 alias LV_DISPINFOA LV_DISPINFO;
4855 alias NMLVDISPINFOA NMLVDISPINFO;
4856 alias LPNMLVDISPINFOA LPNMLVDISPINFO;
4857 alias TVM_INSERTITEMA TVM_INSERTITEM;
4858 alias TVM_GETITEMA TVM_GETITEM;
4859 alias TVM_SETITEMA TVM_SETITEM;
4860 alias TVM_EDITLABELA TVM_EDITLABEL;
4861 alias TVM_GETISEARCHSTRINGA TVM_GETISEARCHSTRING;
4862 alias NMTVDISPINFOA TV_DISPINFO;
4863 alias NMTVDISPINFOA NMTVDISPINFO;
4864 alias LPNMTVDISPINFOA LPNMTVDISPINFO;
4865
4866 static if (_WIN32_IE >= 0x400) {
4867 alias NMTVGETINFOTIPA NMTVGETINFOTIP;
4868 alias LPNMTVGETINFOTIPA LPNMTVGETINFOTIP;
4869 alias TVN_GETINFOTIPA TVN_GETINFOTIP;
4870 }
4871
4872 alias TVN_SELCHANGINGA TVN_SELCHANGING;
4873 alias TVN_SELCHANGEDA TVN_SELCHANGED;
4874 alias TVN_GETDISPINFOA TVN_GETDISPINFO;
4875 alias TVN_SETDISPINFOA TVN_SETDISPINFO;
4876 alias TVN_ITEMEXPANDINGA TVN_ITEMEXPANDING;
4877 alias TVN_ITEMEXPANDEDA TVN_ITEMEXPANDED;
4878 alias TVN_BEGINDRAGA TVN_BEGINDRAG;
4879 alias TVN_BEGINRDRAGA TVN_BEGINRDRAG;
4880 alias TVN_DELETEITEMA TVN_DELETEITEM;
4881 alias TVN_BEGINLABELEDITA TVN_BEGINLABELEDIT;
4882 alias TVN_ENDLABELEDITA TVN_ENDLABELEDIT;
4883 alias TC_ITEMHEADERA TC_ITEMHEADER;
4884 alias TC_ITEMA TC_ITEM;
4885 alias TCITEMA TCITEM;
4886 alias LPTCITEMA LPTCITEM;
4887 alias TCM_GETITEMA TCM_GETITEM;
4888 alias TCM_SETITEMA TCM_SETITEM;
4889 alias TCM_INSERTITEMA TCM_INSERTITEM;
4890 alias CreateStatusWindowA CreateStatusWindow;
4891 alias DrawStatusTextA DrawStatusText;
4892 alias ImageList_LoadImageA ImageList_LoadImage;
4893 alias DTM_SETFORMATA DTM_SETFORMAT;
4894 alias DTN_USERSTRINGA DTN_USERSTRING;
4895 alias DTN_WMKEYDOWNA DTN_WMKEYDOWN;
4896 alias DTN_FORMATA DTN_FORMAT;
4897 alias DTN_FORMATQUERYA DTN_FORMATQUERY;
4898 alias REBARBANDINFOA REBARBANDINFO;
4899 alias REBARBANDINFOA* LPREBARBANDINFO;
4900 alias LPCREBARBANDINFOA LPCREBARBANDINFO;
4901 alias REBARBANDINFOA_V3_SIZE REBARBANDINFO_V3_SIZE;
4902 alias RB_INSERTBANDA RB_INSERTBAND;
4903 alias RB_SETBANDINFOA RB_SETBANDINFO;
4904 }
4905
4906
4907 extern (Windows) {
4908 alias INT function(PVOID, PVOID) PFNDPAENUMCALLBACK;
4909 alias INT function(PVOID, PVOID) PFNDSAENUMCALLBACK;
4910 alias INT function(PVOID, PVOID, LPARAM) PFNDPACOMPARE;
4911 }
4912
4913 static if (_WIN32_WINNT >= 0x501) {
4914 extern (Windows)
4915 alias LRESULT function(HWND, UINT, WPARAM, LPARAM, UINT_PTR, DWORD_PTR)
4916 SUBCLASSPROC;
4917
4918 struct LITEM {
4919 UINT mask;
4920 int iLink;
4921 UINT state;
4922 UINT stateMask;
4923 WCHAR[MAX_LINKID_TEXT] szID = 0;
4924 WCHAR[L_MAX_URL_LENGTH] szUrl = 0;
4925 }
4926 alias LITEM* PLITEM;
4927
4928 struct LHITTESTINFO {
4929 POINT pt;
4930 LITEM item;
4931 }
4932 alias LHITTESTINFO* PLHITTESTINFO;
4933
4934 struct NMLINK {
4935 NMHDR hdr;
4936 LITEM item;
4937 }
4938 alias NMLINK* PNMLINK;
4939 }
4940
4941 uint INDEXTOOVERLAYMASK(uint i) { return i << 8; }
4942 uint INDEXTOSTATEIMAGEMASK(uint i) { return i << 12; }
4943
4944 template HANDLE_WM_NOTIFY(R) {
4945 private alias _prm_HANDLE_WM_NOTIFY = extern (Windows)
4946 R function(HWND, int, NMHDR*); // to inject linkage type
4947 R HANDLE_WM_NOTIFY(HWND hwnd, WPARAM wParam, LPARAM lParam, _prm_HANDLE_WM_NOTIFY fn) {
4948 return fn(hwnd, wParam, cast(NMHDR*) lParam);
4949 }
4950 }
4951 private alias _prm_FORWARD_WM_NOTIFY = extern (Windows)
4952 LRESULT function(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam); // to inject linkage type
4953 LRESULT FORWARD_WM_NOTIFY(HWND hwnd, int idFrom, NMHDR* pnmhdr, _prm_FORWARD_WM_NOTIFY fn) {
4954 return fn(hwnd, WM_NOTIFY, idFrom, cast(LPARAM) pnmhdr);
4955 }
4956
4957 //#define CCSIZEOF_STRUCT(s, m) (((int)((PBYTE)(&((s*)0)->m)-((PBYTE)((s*)0))))+sizeof(((s*)0)->m))
4958
4959 LPARAM MAKEIPADDRESS(ubyte b1, ubyte b2, ubyte b3, ubyte b4) {
4960 return (cast(DWORD) b1 << 24)
4961 | (cast(DWORD) b2 << 16)
4962 | (cast(DWORD) b3 << 8)
4963 | (cast(DWORD) b4);
4964 }
4965
4966 LPARAM MAKEIPRANGE(ubyte low, ubyte high) {
4967 return (cast(int) high << 8) | low;
4968 }
4969
4970 ubyte FIRST_IPADDRESS(LPARAM x) {
4971 return cast(ubyte) (x >> 24);
4972 }
4973
4974 ubyte SECOND_IPADDRESS(LPARAM x) {
4975 return cast(ubyte) (x >> 16);
4976 }
4977
4978 ubyte THIRD_IPADDRESS(LPARAM x) {
4979 return cast(ubyte) (x >> 8);
4980 }
4981
4982 ubyte FOURTH_IPADDRESS(LPARAM x) {
4983 return cast(ubyte) x;
4984 }
4985
4986 HWND Animate_Create(HWND hwndP, UINT id, DWORD dwStyle,
4987 HINSTANCE hInstance) {
4988 return CreateWindow(cast(TCHAR*)ANIMATE_CLASS.ptr, null, dwStyle, 0, 0, 0, 0, hwndP,
4989 cast(HMENU) id, hInstance, null);
4990 }
4991
4992 BOOL Animate_Open(HWND hwnd, LPTSTR szName) {
4993 return cast(BOOL) SendMessage(hwnd, ACM_OPEN, 0, cast(LPARAM) szName);
4994 }
4995
4996 BOOL Animate_OpenEx(HWND hwnd, HINSTANCE hInst, LPTSTR szName) {
4997 return cast(BOOL) SendMessage(hwnd, ACM_OPEN, cast(WPARAM) hInst,
4998 cast(LPARAM) szName);
4999 }
5000
5001 BOOL Animate_Play(HWND hwnd, int from, int to, int rep) {
5002 return cast(BOOL) SendMessage(hwnd, ACM_PLAY, rep,
5003 MAKELONG(cast(ushort) from, cast(ushort) to));
5004 }
5005
5006 BOOL Animate_Stop(HWND hwnd) {
5007 return cast(BOOL) SendMessage(hwnd, ACM_STOP, 0, 0);
5008 }
5009
5010 BOOL Animate_Close(HWND hwnd) {
5011 return Animate_Open(hwnd, null);
5012 }
5013
5014 BOOL Animate_Seek(HWND hwnd, int frame) {
5015 return Animate_Play(hwnd, frame, frame, 1);
5016 }
5017
5018 extern (Windows) {
5019 HBITMAP CreateMappedBitmap(HINSTANCE, INT_PTR, UINT, LPCOLORMAP, int);
5020 HWND CreateStatusWindowA(LONG, LPCSTR, HWND, UINT);
5021 HWND CreateStatusWindowW(LONG, LPCWSTR, HWND, UINT);
5022 HWND CreateToolbarEx(HWND, DWORD, UINT, int, HINSTANCE, UINT_PTR,
5023 LPCTBBUTTON, int, int, int, int, int, UINT);
5024 HWND CreateUpDownControl(DWORD, int, int, int, int, HWND, int, HINSTANCE,
5025 HWND, int, int, int);
5026 }
5027
5028 HWND DateTime_GetMonthCal(HWND hwnd) {
5029 return cast(HWND) SendMessage(hwnd, DTM_GETMONTHCAL, 0, 0);
5030 }
5031
5032 COLORREF DateTime_GetMonthCalColor(HWND hwnd, int iColor) {
5033 return cast(COLORREF) SendMessage(hwnd, DTM_GETMCCOLOR, iColor, 0);
5034 }
5035
5036 HFONT DateTime_GetMonthCalFont(HWND hwnd) {
5037 return cast(HFONT) SendMessage(hwnd, DTM_GETMCFONT, 0, 0);
5038 }
5039
5040 DWORD DateTime_GetRange(HWND hwnd, LPSYSTEMTIME lpSysTimeArray) {
5041 return cast(DWORD) SendMessage(hwnd, DTM_GETRANGE, 0, cast(LPARAM) lpSysTimeArray);
5042 }
5043
5044 DWORD DateTime_GetSystemtime(HWND hwnd, LPSYSTEMTIME lpSysTime) {
5045 return cast(DWORD) SendMessage(hwnd, DTM_GETSYSTEMTIME, 0, cast(LPARAM) lpSysTime);
5046 }
5047
5048 BOOL DateTime_SetFormat(HWND hwnd, LPCTSTR lpszFormat) {
5049 return cast(BOOL) SendMessage(hwnd, DTM_SETFORMAT, 0,
5050 cast(LPARAM) lpszFormat);
5051 }
5052
5053 LRESULT DateTime_SetMonthCalColor(HWND hwnd, int iColor, COLORREF clr) {
5054 return SendMessage(hwnd, DTM_SETMCCOLOR, cast(WPARAM) iColor,
5055 cast(LPARAM) clr);
5056 }
5057
5058 void DateTime_SetMonthCalFont(HWND hwnd, HFONT hfont, BOOL fRedraw) {
5059 SendMessage(hwnd, DTM_SETMCFONT, cast(WPARAM) hfont, fRedraw);
5060 }
5061
5062 BOOL DateTime_SetRange(HWND hwnd, WPARAM flags, LPSYSTEMTIME lpSysTimeArray) {
5063 return cast(BOOL) SendMessage(hwnd, DTM_SETRANGE, flags,
5064 cast(LPARAM) lpSysTimeArray);
5065 }
5066
5067 BOOL DateTime_SetSystemtime(HWND hwnd, WPARAM flag, LPSYSTEMTIME lpSysTime) {
5068 return cast(BOOL) SendMessage(hwnd, DTM_SETSYSTEMTIME, flag,
5069 cast(LPARAM) lpSysTime);
5070 }
5071
5072 extern (Windows) {
5073 void DrawInsert(HWND, HWND, int);
5074 void DrawStatusTextA(HDC, LPRECT, LPCSTR, UINT);
5075 void DrawStatusTextW(HDC, LPRECT, LPCWSTR, UINT);
5076 void GetEffectiveClientRect(HWND, LPRECT, LPINT);
5077 }
5078
5079 int Header_GetItemCount(HWND w) {
5080 return cast(int) SendMessage(w, HDM_GETITEMCOUNT, 0, 0);
5081 }
5082
5083 int Header_InsertItem(HWND w, int i, const(HDITEM)* phdi) {
5084 return cast(int) SendMessage(w, HDM_INSERTITEM, i, cast(LPARAM) phdi);
5085 }
5086
5087 BOOL Header_DeleteItem(HWND w, int i) {
5088 return cast(BOOL) SendMessage(w, HDM_DELETEITEM, i, 0);
5089 }
5090
5091 BOOL Header_GetItem(HWND w, int i, LPHDITEM phdi) {
5092 return cast(BOOL) SendMessage(w, HDM_GETITEM, i, cast(LPARAM) phdi);
5093 }
5094
5095 BOOL Header_SetItem(HWND w, int i, const(HDITEM)* phdi) {
5096 return cast(BOOL) SendMessage(w, HDM_SETITEM, i, cast(LPARAM) phdi);
5097 }
5098
5099 BOOL Header_Layout(HWND w, LPHDLAYOUT playout) {
5100 return cast(BOOL) SendMessage(w, HDM_LAYOUT, 0, cast(LPARAM) playout);
5101 }
5102
5103 static if (_WIN32_IE >= 0x300) {
5104 int Header_OrderToIndex(HWND w, int i) {
5105 return cast(int) SendMessage(w, HDM_ORDERTOINDEX, i, 0);
5106 }
5107
5108 BOOL Header_GetItemRect(HWND w, int i, RECT* r) {
5109 return cast(BOOL) SendMessage(w, HDM_GETITEMRECT, i, cast(LPARAM) r);
5110 }
5111
5112 BOOL Header_GetOrderArray(HWND w, int iSize, LPINT lpiArray) {
5113 return cast(BOOL) SendMessage(w, HDM_GETORDERARRAY, iSize,
5114 cast(LPARAM) lpiArray);
5115 }
5116
5117 BOOL Header_SetOrderArray(HWND w, int iSize, LPINT lpiArray) {
5118 return cast(BOOL) SendMessage(w, HDM_SETORDERARRAY, iSize,
5119 cast(LPARAM) lpiArray);
5120 }
5121
5122 HIMAGELIST Header_CreateDragImage(HWND w, int i) {
5123 return cast(HIMAGELIST) SendMessage(w, HDM_CREATEDRAGIMAGE, i, 0);
5124 }
5125
5126 HIMAGELIST Header_SetImageList(HWND w, HIMAGELIST himl) {
5127 return cast(HIMAGELIST) SendMessage(w, HDM_SETIMAGELIST, 0,
5128 cast(LPARAM) himl);
5129 }
5130
5131 HIMAGELIST Header_GetImageList(HWND w) {
5132 return cast(HIMAGELIST) SendMessage(w, HDM_GETIMAGELIST, 0, 0);
5133 }
5134 }
5135
5136 static if (_WIN32_IE >= 0x400) {
5137 BOOL Header_GetUnicodeFormat(HWND w) {
5138 return cast(BOOL) SendMessage(w, HDM_GETUNICODEFORMAT, 0, 0);
5139 }
5140
5141 BOOL Header_SetUnicodeFormat(HWND w, BOOL fUnicode) {
5142 return cast(BOOL) SendMessage(w, HDM_SETUNICODEFORMAT, fUnicode, 0);
5143 }
5144 }
5145
5146 extern (Windows) {
5147 HDSA DSA_Create(INT, INT);
5148 BOOL DSA_Destroy(HDSA);
5149 VOID DSA_DestroyCallback(HDSA, PFNDSAENUMCALLBACK, PVOID);
5150 PVOID DSA_GetItemPtr(HDSA, INT);
5151 INT DSA_InsertItem(HDSA, INT, PVOID);
5152 HDPA DPA_Create(INT);
5153 BOOL DPA_Destroy(HDPA);
5154 PVOID DPA_DeletePtr(HDPA, INT);
5155 BOOL DPA_DeleteAllPtrs(HDPA);
5156 VOID DPA_EnumCallback(HDPA, PFNDPAENUMCALLBACK, PVOID);
5157 VOID DPA_DestroyCallback(HDPA, PFNDPAENUMCALLBACK, PVOID);
5158 BOOL DPA_SetPtr(HDPA, INT, PVOID);
5159 INT DPA_InsertPtr(HDPA, INT, PVOID);
5160 PVOID DPA_GetPtr(HDPA, INT_PTR);
5161 BOOL DPA_Sort(HDPA, PFNDPACOMPARE, LPARAM);
5162 INT DPA_Search(HDPA, PVOID, INT, PFNDPACOMPARE, LPARAM, UINT);
5163 BOOL Str_SetPtrW(LPWSTR*, LPCWSTR);
5164
5165 static if (_WIN32_IE >= 0x400) {
5166 BOOL FlatSB_EnableScrollBar(HWND, INT, UINT);
5167 BOOL FlatSB_ShowScrollBar(HWND, INT, BOOL);
5168 BOOL FlatSB_GetScrollRange(HWND, INT, LPINT, LPINT);
5169 BOOL FlatSB_GetScrollInfo(HWND, INT, LPSCROLLINFO);
5170 INT FlatSB_GetScrollPos(HWND, INT);
5171 BOOL FlatSB_GetScrollProp(HWND, INT, LPINT);
5172 version (Win64) {
5173 BOOL FlatSB_GetScrollPropPtr(HWND, INT, PINT_PTR);
5174 } else {
5175 alias FlatSB_GetScrollProp FlatSB_GetScrollPropPtr;
5176 }
5177 INT FlatSB_SetScrollPos(HWND, INT, INT, BOOL);
5178 INT FlatSB_SetScrollInfo(HWND, INT, LPSCROLLINFO, BOOL);
5179 INT FlatSB_SetScrollRange(HWND, INT, INT, INT, BOOL);
5180 BOOL FlatSB_SetScrollProp(HWND, UINT, INT_PTR, BOOL);
5181 alias FlatSB_SetScrollProp FlatSB_SetScrollPropPtr;
5182 BOOL InitializeFlatSB(HWND);
5183 HRESULT UninitializeFlatSB(HWND);
5184 }
5185
5186 static if (_WIN32_WINNT >= 0x501) {
5187 BOOL SetWindowSubclass(HWND, SUBCLASSPROC, UINT_PTR, DWORD_PTR);
5188 BOOL GetWindowSubclass(HWND, SUBCLASSPROC, UINT_PTR, DWORD_PTR*);
5189 BOOL RemoveWindowSubclass(HWND, SUBCLASSPROC, UINT_PTR);
5190 LRESULT DefSubclassProc(HWND, UINT, WPARAM, LPARAM);
5191 INT DrawShadowText(HDC, LPCWSTR, UINT, RECT*, DWORD, COLORREF,
5192 COLORREF, INT, INT);
5193 }
5194
5195 int ImageList_Add(HIMAGELIST, HBITMAP, HBITMAP);
5196 int ImageList_AddMasked(HIMAGELIST, HBITMAP, COLORREF);
5197 BOOL ImageList_BeginDrag(HIMAGELIST, int, int, int);
5198 HIMAGELIST ImageList_Create(int, int, UINT, int, int);
5199 BOOL ImageList_Destroy(HIMAGELIST);
5200 BOOL ImageList_DragEnter(HWND, int, int);
5201 BOOL ImageList_DragLeave(HWND);
5202 BOOL ImageList_DragMove(int, int);
5203 BOOL ImageList_DragShowNolock(BOOL);
5204 BOOL ImageList_Draw(HIMAGELIST, int, HDC, int, int, UINT);
5205 BOOL ImageList_DrawEx(HIMAGELIST, int, HDC, int, int, int, int, COLORREF,
5206 COLORREF, UINT);
5207 void ImageList_EndDrag();
5208 COLORREF ImageList_GetBkColor(HIMAGELIST);
5209 HIMAGELIST ImageList_GetDragImage(LPPOINT, LPPOINT);
5210 HICON ImageList_GetIcon(HIMAGELIST, int, UINT);
5211 BOOL ImageList_GetIconSize(HIMAGELIST, int*, int*);
5212 int ImageList_GetImageCount(HIMAGELIST);
5213 BOOL ImageList_GetImageInfo(HIMAGELIST, int, IMAGEINFO*);
5214 HIMAGELIST ImageList_LoadImageA(HINSTANCE, LPCSTR, int, int, COLORREF,
5215 UINT, UINT);
5216 HIMAGELIST ImageList_LoadImageW(HINSTANCE, LPCWSTR, int, int, COLORREF,
5217 UINT, UINT);
5218 HIMAGELIST ImageList_Merge(HIMAGELIST, int, HIMAGELIST, int, int, int);
5219 BOOL ImageList_Remove(HIMAGELIST, int);
5220 BOOL ImageList_Replace(HIMAGELIST, int, HBITMAP, HBITMAP);
5221 int ImageList_ReplaceIcon(HIMAGELIST, int, HICON);
5222 COLORREF ImageList_SetBkColor(HIMAGELIST, COLORREF);
5223 BOOL ImageList_SetDragCursorImage(HIMAGELIST, int, int, int);
5224 BOOL ImageList_SetIconSize(HIMAGELIST, int, int);
5225 BOOL ImageList_SetOverlayImage(HIMAGELIST, int, int);
5226
5227 //#ifdef _OBJIDL_H
5228 HIMAGELIST ImageList_Read(LPSTREAM);
5229 BOOL ImageList_Write(HIMAGELIST, LPSTREAM);
5230 //#endif
5231
5232 static if (_WIN32_IE >= 0x400) {
5233 HIMAGELIST ImageList_Duplicate(HIMAGELIST himl);
5234 }
5235
5236 void InitCommonControls();
5237
5238 static if (_WIN32_IE >= 0x300) {
5239 BOOL InitCommonControlsEx(LPINITCOMMONCONTROLSEX);
5240 }
5241
5242 int LBItemFromPt(HWND, POINT, BOOL);
5243 }
5244
5245 int ImageList_AddIcon(HIMAGELIST himl, HICON hicon) {
5246 return ImageList_ReplaceIcon(himl, -1, hicon);
5247 }
5248
5249 HICON ImageList_ExtractIcon(HINSTANCE hi, HIMAGELIST himl, int i) {
5250 return ImageList_GetIcon(himl, i, 0);
5251 }
5252
5253 HIMAGELIST ImageList_LoadBitmap(HINSTANCE hi, LPCTSTR lpbmp, int cx,
5254 int cGrow, COLORREF crMask) {
5255 return ImageList_LoadImage(hi, lpbmp, cx, cGrow, crMask, IMAGE_BITMAP, 0);
5256 }
5257
5258 BOOL ImageList_RemoveAll(HIMAGELIST himl) {
5259 return ImageList_Remove(himl, -1);
5260 }
5261
5262 COLORREF ListView_GetBkColor(HWND w) {
5263 return cast(COLORREF) SendMessage(w, LVM_GETBKCOLOR, 0, 0);
5264 }
5265
5266 HIMAGELIST ListView_GetImageList(HWND w, int i) {
5267 return cast(HIMAGELIST) SendMessage(w, LVM_GETIMAGELIST, i, 0);
5268 }
5269
5270 int ListView_GetItemCount(HWND w) {
5271 return cast(int) SendMessage(w, LVM_GETITEMCOUNT, 0, 0);
5272 }
5273
5274 BOOL ListView_GetItem(HWND w, LPLVITEM pitem) {
5275 return cast(BOOL) SendMessage(w, LVM_GETITEM, 0, cast(LPARAM) pitem);
5276 }
5277
5278 BOOL ListView_SetBkColor(HWND w, COLORREF c) {
5279 return cast(BOOL) SendMessage(w, LVM_SETBKCOLOR, 0, cast(LPARAM) c);
5280 }
5281
5282 HIMAGELIST ListView_SetImageList(HWND w, HIMAGELIST h, int i) {
5283 return cast(HIMAGELIST) SendMessage(w, LVM_SETIMAGELIST, i,
5284 cast(LPARAM) h);
5285 }
5286
5287 BOOL ListView_SetItem(HWND w, const(LV_ITEM)* i) {
5288 return cast(BOOL) SendMessage(w, LVM_SETITEM, 0, cast(LPARAM) i);
5289 }
5290
5291 int ListView_InsertItem(HWND w, const(LV_ITEM)* i) {
5292 return cast(int) SendMessage(w, LVM_INSERTITEM, 0, cast(LPARAM) i);
5293 }
5294
5295 BOOL ListView_DeleteItem(HWND w, int i) {
5296 return cast(BOOL) SendMessage(w, LVM_DELETEITEM, i, 0);
5297 }
5298
5299 BOOL ListView_DeleteAllItems(HWND w) {
5300 return cast(BOOL) SendMessage(w, LVM_DELETEALLITEMS, 0, 0);
5301 }
5302
5303 UINT ListView_GetCallbackMask(HWND w) {
5304 return cast(UINT) SendMessage(w, LVM_GETCALLBACKMASK, 0, 0);
5305 }
5306
5307 BOOL ListView_SetCallbackMask(HWND w, UINT m) {
5308 return cast(BOOL) SendMessage(w, LVM_SETCALLBACKMASK, m, 0);
5309 }
5310
5311 int ListView_GetNextItem(HWND w, int i, UINT f) {
5312 return cast(int) SendMessage(w, LVM_GETNEXTITEM, i, MAKELPARAM(cast(ushort)f, 0));
5313 }
5314
5315 int ListView_FindItem(HWND w, int i, const(LV_FINDINFO)* p) {
5316 return cast(int) SendMessage(w, LVM_FINDITEM, i, cast(LPARAM) p);
5317 }
5318
5319 BOOL ListView_GetItemRect(HWND w, int i, LPRECT p, int c) {
5320 if (p)
5321 p.left = c;
5322 return cast(BOOL) SendMessage(w, LVM_GETITEMRECT, i, cast(LPARAM) p);
5323 }
5324
5325 BOOL ListView_SetItemPosition(HWND w, int i, int x, int y) {
5326 return cast(BOOL) SendMessage(w, LVM_SETITEMPOSITION, i, MAKELPARAM(cast(ushort)x, cast(ushort)y));
5327 }
5328
5329 BOOL ListView_GetItemPosition(HWND w, int i, POINT* p) {
5330 return cast(BOOL) SendMessage(w, LVM_GETITEMPOSITION, i, cast(LPARAM) p);
5331 }
5332
5333 DWORD ListView_GetItemSpacing(HWND w, BOOL f) {
5334 return cast(DWORD) SendMessage(w, LVM_GETITEMSPACING, f, 0);
5335 }
5336
5337 int ListView_GetStringWidth(HWND w, LPCSTR s) {
5338 return cast(int) SendMessage(w, LVM_GETSTRINGWIDTH, 0, cast(LPARAM) s);
5339 }
5340
5341 int ListView_HitTest(HWND w, LPLVHITTESTINFO p) {
5342 return cast(int) SendMessage(w, LVM_HITTEST, 0, cast(LPARAM) p);
5343 }
5344
5345 BOOL ListView_EnsureVisible(HWND w, int i, BOOL f) {
5346 return cast(BOOL) SendMessage(w, LVM_ENSUREVISIBLE, i, MAKELPARAM(cast(ushort)f, 0));
5347 }
5348
5349 BOOL ListView_Scroll(HWND w, int dx, int dy) {
5350 return cast(BOOL) SendMessage(w, LVM_SCROLL, dx, dy);
5351 }
5352
5353 BOOL ListView_RedrawItems(HWND w, int f, int l) {
5354 return cast(BOOL) SendMessage(w, LVM_REDRAWITEMS, f, l);
5355 }
5356
5357 BOOL ListView_Arrange(HWND w, UINT c) {
5358 return cast(BOOL) SendMessage(w, LVM_ARRANGE, c, 0);
5359 }
5360
5361 HWND ListView_EditLabel(HWND w, int i) {
5362 return cast(HWND) SendMessage(w, LVM_EDITLABEL, i, 0);
5363 }
5364
5365 HWND ListView_GetEditControl(HWND w) {
5366 return cast(HWND) SendMessage(w, LVM_GETEDITCONTROL, 0, 0);
5367 }
5368
5369 BOOL ListView_GetColumn(HWND w, int i, LPLVCOLUMN p) {
5370 return cast(BOOL) SendMessage(w, LVM_GETCOLUMN, i, cast(LPARAM) p);
5371 }
5372
5373 BOOL ListView_SetColumn(HWND w, int i, const(LV_COLUMN)* p) {
5374 return cast(BOOL) SendMessage(w, LVM_SETCOLUMN, i, cast(LPARAM) p);
5375 }
5376
5377 int ListView_InsertColumn(HWND w, int i, const(LV_COLUMN)* p) {
5378 return cast(int) SendMessage(w, LVM_INSERTCOLUMN, i, cast(LPARAM) p);
5379 }
5380
5381 BOOL ListView_DeleteColumn(HWND w, int i) {
5382 return cast(BOOL) SendMessage(w, LVM_DELETECOLUMN, i, 0);
5383 }
5384
5385 int ListView_GetColumnWidth(HWND w, int i) {
5386 return cast(int) SendMessage(w, LVM_GETCOLUMNWIDTH, i, 0);
5387 }
5388
5389 BOOL ListView_SetColumnWidth(HWND w, int i, int x) {
5390 return cast(BOOL) SendMessage(w, LVM_SETCOLUMNWIDTH, i, MAKELPARAM(cast(ushort)x, 0));
5391 }
5392
5393 HIMAGELIST ListView_CreateDragImage(HWND w, int i, LPPOINT p) {
5394 return cast(HIMAGELIST) SendMessage(w, LVM_CREATEDRAGIMAGE, i,
5395 cast(LPARAM) p);
5396 }
5397
5398 BOOL ListView_GetViewRect(HWND w, RECT* p) {
5399 return cast(BOOL) SendMessage(w, LVM_GETVIEWRECT, 0, cast(LPARAM) p);
5400 }
5401
5402 COLORREF ListView_GetTextColor(HWND w) {
5403 return cast(COLORREF) SendMessage(w, LVM_GETTEXTCOLOR, 0, 0);
5404 }
5405
5406 BOOL ListView_SetTextColor(HWND w, COLORREF c) {
5407 return cast(BOOL) SendMessage(w, LVM_SETTEXTCOLOR, 0, cast(LPARAM) c);
5408 }
5409
5410 COLORREF ListView_GetTextBkColor(HWND w) {
5411 return cast(COLORREF) SendMessage(w, LVM_GETTEXTBKCOLOR, 0, 0);
5412 }
5413
5414 BOOL ListView_SetTextBkColor(HWND w, COLORREF c) {
5415 return cast(BOOL) SendMessage(w, LVM_SETTEXTBKCOLOR, 0, cast(LPARAM) c);
5416 }
5417
5418 int ListView_GetTopIndex(HWND w) {
5419 return cast(int) SendMessage(w, LVM_GETTOPINDEX, 0, 0);
5420 }
5421
5422 int ListView_GetCountPerPage(HWND w) {
5423 return cast(int) SendMessage(w, LVM_GETCOUNTPERPAGE, 0, 0);
5424 }
5425
5426 BOOL ListView_GetOrigin(HWND w, LPPOINT p) {
5427 return cast(BOOL) SendMessage(w, LVM_GETORIGIN, 0, cast(LPARAM) p);
5428 }
5429
5430 BOOL ListView_Update(HWND w, WPARAM i) {
5431 return cast(BOOL) SendMessage(w, LVM_UPDATE, i, 0);
5432 }
5433
5434 void ListView_SetItemState(HWND w, int i, UINT d, UINT m) {
5435 LV_ITEM _lvi;
5436 _lvi.stateMask = m;
5437 _lvi.state = d;
5438 SendMessage(w, LVM_SETITEMSTATE, i, cast(LPARAM) &_lvi);
5439 }
5440
5441 UINT ListView_GetItemState(HWND w, int i, UINT m) {
5442 return cast(UINT) SendMessage(w, LVM_GETITEMSTATE, i, m);
5443 }
5444
5445 void ListView_GetItemText(HWND w, int i, int iS, LPTSTR s, int n) {
5446 LV_ITEM _lvi;
5447 _lvi.iSubItem = iS;
5448 _lvi.cchTextMax = n;
5449 _lvi.pszText = s;
5450 SendMessage(w, LVM_GETITEMTEXT, i, cast(LPARAM) &_lvi);
5451 }
5452
5453 void ListView_SetItemText(HWND w, int i, int iS, LPTSTR s) {
5454 LV_ITEM _lvi;
5455 _lvi.iSubItem = iS;
5456 _lvi.pszText = s;
5457 SendMessage(w, LVM_SETITEMTEXT, i, cast(LPARAM) &_lvi);
5458 }
5459
5460 void ListView_SetItemCount(HWND w, int n) {
5461 SendMessage(w, LVM_SETITEMCOUNT, n, 0);
5462 }
5463
5464 BOOL ListView_SortItems(HWND w, PFNLVCOMPARE f, LPARAM l) {
5465 return cast(BOOL) SendMessage(w, LVM_SORTITEMS, l, cast(LPARAM) f);
5466 }
5467
5468 void ListView_SetItemPosition32(HWND w, int i, int x, int y) {
5469 POINT p;
5470 p.x = x;
5471 p.y = y;
5472 SendMessage(w, LVM_SETITEMPOSITION32, i, cast(LPARAM) &p);
5473 }
5474
5475 UINT ListView_GetSelectedCount(HWND w) {
5476 return cast(UINT) SendMessage(w, LVM_GETSELECTEDCOUNT, 0, 0);
5477 }
5478
5479 UINT ListView_GetCheckState(HWND w, UINT i) {
5480 return ((cast(UINT) SendMessage(w, LVM_GETITEMSTATE, i, LVIS_STATEIMAGEMASK)) >> 12) - 1;
5481 }
5482
5483 void ListView_SetCheckState(HWND w, UINT i, BOOL f) {
5484 ListView_SetItemState(w, i, INDEXTOSTATEIMAGEMASK(f ? 2 : 1),
5485 LVIS_STATEIMAGEMASK);
5486 }
5487
5488 BOOL ListView_GetISearchString(HWND w, LPSTR lpsz) {
5489 return cast(BOOL) SendMessage(w, LVM_GETISEARCHSTRING, 0,
5490 cast(LPARAM) lpsz);
5491 }
5492
5493 void ListView_CancelEditLabel(HWND w) {
5494 SendMessage(w, LVM_CANCELEDITLABEL, 0, 0);
5495 }
5496
5497 int ListView_EnableGroupView(HWND w, BOOL i) {
5498 return cast(int) SendMessage(w, LVM_ENABLEGROUPVIEW, i, 0);
5499 }
5500
5501 //static if (_WIN32_WINNT >= 0x500 || _WIN32_IE >= 0x500) {
5502 BOOL ListView_SortItemsEx(HWND w, PFNLVCOMPARE c, LPARAM p) {
5503 return cast(BOOL) SendMessage(w, LVM_SORTITEMSEX, cast(WPARAM) p, cast(LPARAM)c);
5504 }
5505 //}
5506
5507 static if (_WIN32_WINNT >= 0x501) {
5508 int ListView_GetGroupInfo(HWND w, int i, PLVGROUP p) {
5509 return cast(int) SendMessage(w, LVM_GETGROUPINFO, i, cast(LPARAM) p);
5510 }
5511
5512 void ListView_GetGroupMetrics(HWND w, PLVGROUPMETRICS p) {
5513 SendMessage(w, LVM_GETGROUPMETRICS, 0, cast(LPARAM) p);
5514 }
5515
5516 BOOL ListView_GetInsertMark(HWND w, PLVINSERTMARK p) {
5517 return cast(BOOL) SendMessage(w, LVM_GETINSERTMARK, 0, cast(LPARAM) p);
5518 }
5519
5520 COLORREF ListView_GetInsertMarkColor(HWND w) {
5521 return cast(COLORREF) SendMessage(w, LVM_GETINSERTMARKCOLOR, 0, 0);
5522 }
5523
5524 int ListView_GetInsertMarkRect(HWND w, LPRECT p) {
5525 return cast(int) SendMessage(w, LVM_GETINSERTMARKRECT, 0, cast(LPARAM) p);
5526 }
5527
5528 COLORREF ListView_GetOutlineColor(HWND w) {
5529 return cast(COLORREF) SendMessage(w, LVM_GETOUTLINECOLOR, 0, 0);
5530 }
5531
5532 UINT ListView_GetSelectedColumn(HWND w) {
5533 return cast(UINT) SendMessage(w, LVM_GETSELECTEDCOLUMN, 0, 0);
5534 }
5535
5536 void ListView_GetTileInfo(HWND w, PLVTILEINFO p) {
5537 SendMessage(w, LVM_GETTILEINFO, 0, cast(LPARAM) p);
5538 }
5539
5540 void ListView_GetTileViewInfo(HWND w, PLVTILEVIEWINFO p) {
5541 SendMessage(w, LVM_GETTILEVIEWINFO, 0, cast(LPARAM) p);
5542 }
5543
5544 DWORD ListView_GetView(HWND w) {
5545 return cast(DWORD) SendMessage(w, LVM_GETVIEW, 0, 0);
5546 }
5547
5548 BOOL ListView_HasGroup(HWND w, int i) {
5549 return cast(BOOL) SendMessage(w, LVM_HASGROUP, i, 0);
5550 }
5551
5552 int ListView_InsertGroup(HWND w, int i, PLVGROUP p) {
5553 return cast(int) SendMessage(w, LVM_INSERTGROUP, i, cast(LPARAM) p);
5554 }
5555
5556 void ListView_InsertGroupSorted(HWND w, PLVINSERTGROUPSORTED p) {
5557 SendMessage(w, LVM_INSERTGROUPSORTED, cast(WPARAM) p, 0);
5558 }
5559
5560 BOOL ListView_InsertMarkHitTest(HWND w, LPPOINT p, PLVINSERTMARK t) {
5561 return cast(BOOL) SendMessage(w, LVM_INSERTMARKHITTEST, cast(WPARAM) p, cast(LPARAM) t);
5562 }
5563
5564 BOOL ListView_IsGroupViewEnabled(HWND w) {
5565 return cast(BOOL) SendMessage(w, LVM_ISGROUPVIEWENABLED, 0, 0);
5566 }
5567
5568 UINT ListView_MapIDToIndex(HWND w, UINT i) {
5569 return cast(UINT) SendMessage(w, LVM_MAPIDTOINDEX, i, 0);
5570 }
5571
5572 /* ??? MSDN documents this as "Not implemented", except in relation to
5573 * Windows CE/Mobile.
5574 */
5575 void ListView_MoveGroup(HWND w, int i, int t) {
5576 SendMessage(w, LVM_MOVEGROUP, i, t);
5577 }
5578
5579 void ListView_RemoveAllGroups(HWND w) {
5580 SendMessage(w, LVM_REMOVEALLGROUPS, 0, 0);
5581 }
5582
5583 int ListView_RemoveGroup(HWND w, int i) {
5584 return cast(int) SendMessage(w, LVM_REMOVEGROUP, i, 0);
5585 }
5586
5587 int ListView_SetGroupInfo(HWND w, int i, PLVGROUP p) {
5588 return cast(int) SendMessage(w, LVM_SETGROUPINFO, i, cast(LPARAM) p);
5589 }
5590
5591 void ListView_SetGroupMetrics(HWND w, PLVGROUPMETRICS p) {
5592 SendMessage(w, LVM_SETGROUPMETRICS, 0, cast(LPARAM) p);
5593 }
5594
5595 BOOL ListView_SetInfoTip(HWND w, PLVSETINFOTIP p) {
5596 return cast(BOOL) SendMessage(w, LVM_SETINFOTIP, 0, cast(LPARAM) p);
5597 }
5598
5599 BOOL ListView_SetInsertMark(HWND w, PLVINSERTMARK p) {
5600 return cast(BOOL) SendMessage(w, LVM_SETINSERTMARK, 0, cast(LPARAM) p);
5601 }
5602
5603 COLORREF ListView_SetInsertMarkColor(HWND w, COLORREF c) {
5604 return cast(COLORREF) SendMessage(w, LVM_SETINSERTMARKCOLOR, 0, c);
5605 }
5606
5607 COLORREF ListView_SetOutlineColor(HWND w, COLORREF c) {
5608 return cast(COLORREF) SendMessage(w, LVM_SETOUTLINECOLOR, 0, c);
5609 }
5610
5611 void ListView_SetSelectedColumn(HWND w, int i) {
5612 SendMessage(w, LVM_SETSELECTEDCOLUMN, i, 0);
5613 }
5614
5615 BOOL ListView_SetTileInfo(HWND w, PLVTILEINFO p) {
5616 return cast(BOOL) SendMessage(w, LVM_SETTILEINFO, 0, cast(LPARAM) p);
5617 }
5618
5619 BOOL ListView_SetTileViewInfo(HWND w, PLVTILEVIEWINFO p) {
5620 return cast(BOOL) SendMessage(w, LVM_SETTILEVIEWINFO, 0, cast(LPARAM) p);
5621 }
5622
5623 int ListView_SetView(HWND w, DWORD i) {
5624 return cast(int) SendMessage(w, LVM_SETVIEW, i, 0);
5625 }
5626
5627 int ListView_SortGroups(HWND w, PFNLVGROUPCOMPARE c, LPVOID p) {
5628 return cast(int) SendMessage(w, LVM_SORTGROUPS, cast(WPARAM) c, cast(LPARAM) p);
5629 }
5630 }
5631
5632 static if (_WIN32_WINNT >= 0x501) {
5633 enum {
5634 CBM_FIRST = 0x1700,
5635 CB_SETMINVISIBLE = CBM_FIRST + 1,
5636 CB_GETMINVISIBLE = CBM_FIRST + 2,
5637 CB_SETCUEBANNER = CBM_FIRST + 3,
5638 CB_GETCUEBANNER = CBM_FIRST + 4,
5639 }
5640
5641 BOOL ComboBox_SetMinVisible(HWND w, INT i) {
5642 return cast(BOOL) SendMessage(w, CB_SETMINVISIBLE, cast(WPARAM) i, 0);
5643 }
5644
5645 int ComboBox_GetMinVisible(HWND w) {
5646 return cast(int) SendMessage(w, CB_GETMINVISIBLE, 0, 0);
5647 }
5648 }
5649
5650 extern (Windows) BOOL MakeDragList(HWND);
5651 extern (Windows) void MenuHelp(UINT, WPARAM, LPARAM, HMENU, HINSTANCE, HWND,
5652 PUINT);
5653
5654 COLORREF MonthCal_GetColor(HWND hwnd, INT icolor) {
5655 return cast(COLORREF) SendMessage(hwnd, MCM_GETCOLOR,
5656 cast(WPARAM) icolor, 0);
5657 }
5658
5659 BOOL MonthCal_GetCurSel(HWND hwnd, LPSYSTEMTIME lpsystime) {
5660 return cast(BOOL) SendMessage(hwnd, MCM_GETCURSEL, 0,
5661 cast(LPARAM) lpsystime);
5662 }
5663
5664 DWORD MonthCal_GetFirstDayOfWeek(HWND hwnd) {
5665 return cast(DWORD) SendMessage(hwnd, MCM_GETFIRSTDAYOFWEEK, 0, 0);
5666 }
5667
5668 DWORD MonthCal_GetMaxSelCount(HWND hwnd) {
5669 return cast(DWORD) SendMessage(hwnd, MCM_GETMAXSELCOUNT, 0, 0);
5670 }
5671
5672 DWORD MonthCal_GetMaxTodayWidth(HWND hwnd) {
5673 return cast(DWORD) SendMessage(hwnd, MCM_GETMAXTODAYWIDTH, 0, 0);
5674 }
5675
5676 BOOL MonthCal_GetMinReqRect(HWND hwnd, LPRECT lpRectInfo) {
5677 return cast(BOOL) SendMessage(hwnd, MCM_GETMINREQRECT, 0,
5678 cast(LPARAM) lpRectInfo);
5679 }
5680
5681 INT MonthCal_GetMonthDelta(HWND hwnd) {
5682 return cast(INT) SendMessage(hwnd, MCM_GETMONTHDELTA, 0, 0);
5683 }
5684
5685 INT MonthCal_GetMonthRange(HWND hwnd, DWORD flag, LPSYSTEMTIME systimearray) {
5686 return cast(INT) SendMessage(hwnd, MCM_GETMONTHRANGE, cast(WPARAM) flag,
5687 cast(LPARAM) systimearray);
5688 }
5689
5690 DWORD MonthCal_GetRange(HWND hwnd, LPSYSTEMTIME systimearray) {
5691 return cast(DWORD) SendMessage(hwnd, MCM_GETRANGE, 0,
5692 cast(LPARAM) systimearray);
5693 }
5694
5695 BOOL MonthCal_GetSelRange(HWND hwnd, LPSYSTEMTIME systimearray) {
5696 return cast(BOOL) SendMessage(hwnd, MCM_GETSELRANGE, 0,
5697 cast(LPARAM) systimearray);
5698 }
5699
5700 BOOL MonthCal_GetToday(HWND hwnd, LPSYSTEMTIME systime) {
5701 return cast(BOOL) SendMessage(hwnd, MCM_GETTODAY, 0,
5702 cast(LPARAM) systime);
5703 }
5704
5705 BOOL MonthCal_GetUnicodeFormat(HWND hwnd) {
5706 return cast(BOOL) SendMessage(hwnd, MCM_GETUNICODEFORMAT, 0, 0);
5707 }
5708
5709 DWORD MonthCal_HitTest(HWND hwnd, PMCHITTESTINFO pmchittest) {
5710 return cast(DWORD) SendMessage(hwnd, MCM_HITTEST, 0,
5711 cast(LPARAM) pmchittest);
5712 }
5713
5714 COLORREF MonthCal_SetColor(HWND hwnd, INT icolor, COLORREF clr) {
5715 return cast(COLORREF) SendMessage(hwnd, MCM_SETCOLOR, cast(WPARAM) icolor,
5716 cast(LPARAM) clr);
5717 }
5718
5719 BOOL MonthCal_SetCurSel(HWND hwnd, LPSYSTEMTIME lpsystime) {
5720 return cast(BOOL) SendMessage(hwnd, MCM_SETCURSEL, 0,
5721 cast(LPARAM) lpsystime);
5722 }
5723
5724 BOOL MonthCal_SetDayState(HWND hwnd, INT imonths, LPMONTHDAYSTATE lpdatestatearray) {
5725 return cast(BOOL) SendMessage(hwnd, MCM_SETDAYSTATE, cast(WPARAM) imonths,
5726 cast(LPARAM) lpdatestatearray);
5727 }
5728
5729 DWORD MonthCal_SetFirstDayOfWeek(HWND hwnd, INT iday) {
5730 return cast(DWORD) SendMessage(hwnd, MCM_SETFIRSTDAYOFWEEK, 0,
5731 cast(LPARAM) iday);
5732 }
5733
5734 BOOL MonthCal_SetMaxSelCount(HWND hwnd, UINT imax) {
5735 return cast(BOOL) SendMessage(hwnd, MCM_SETMAXSELCOUNT,
5736 cast(WPARAM) imax, 0);
5737 }
5738
5739 INT MonthCal_SetMonthDelta(HWND hwnd, INT idelta) {
5740 return cast(INT) SendMessage(hwnd, MCM_SETMONTHDELTA, cast(WPARAM) idelta, 0);
5741 }
5742
5743 BOOL MonthCal_SetSelRange(HWND hwnd, LPSYSTEMTIME systimearray) {
5744 return cast(BOOL) SendMessage(hwnd, MCM_SETSELRANGE, 0,
5745 cast(LPARAM) systimearray);
5746 }
5747
5748 void MonthCal_SetToday(HWND hwnd, LPSYSTEMTIME systime) {
5749 SendMessage(hwnd, MCM_SETTODAY, 0, cast(LPARAM) systime);
5750 }
5751
5752 BOOL MonthCal_SetUnicodeFormat(HWND hwnd, BOOL unicode) {
5753 return cast(BOOL) SendMessage(hwnd, MCM_SETUNICODEFORMAT,
5754 cast(WPARAM) unicode, 0);
5755 }
5756
5757 BOOL MonthCal_SetRange(HWND w, DWORD f, LPSYSTEMTIME st) {
5758 return cast(BOOL) SendMessage(w, MCM_SETRANGE, cast(WPARAM) f,
5759 cast(LPARAM) st);
5760 }
5761
5762 extern (Windows) BOOL ShowHideMenuCtl(HWND, UINT_PTR, PINT);
5763
5764 BOOL TabCtrl_GetItem(HWND w, int i, LPTCITEM p) {
5765 return cast(BOOL) SendMessage(w, TCM_GETITEM, i, cast(LPARAM) p);
5766 }
5767
5768 BOOL TabCtrl_SetItem(HWND w, int i, LPTCITEM p) {
5769 return cast(BOOL) SendMessage(w, TCM_SETITEM, i, cast(LPARAM) p);
5770 }
5771
5772 int TabCtrl_InsertItem(HWND w, int i, const(TC_ITEM)* p) {
5773 return cast(int) SendMessage(w, TCM_INSERTITEM, i, cast(LPARAM) p);
5774 }
5775
5776 BOOL TabCtrl_DeleteItem(HWND w, int i) {
5777 return cast(BOOL) SendMessage(w, TCM_DELETEITEM, i, 0);
5778 }
5779
5780 BOOL TabCtrl_DeleteAllItems(HWND w) {
5781 return cast(BOOL) SendMessage(w, TCM_DELETEALLITEMS, 0, 0);
5782 }
5783
5784 BOOL TabCtrl_GetItemRect(HWND w, int i, LPRECT p) {
5785 return cast(BOOL) SendMessage(w, TCM_GETITEMRECT, i, cast(LPARAM) p);
5786 }
5787
5788 int TabCtrl_GetCurSel(HWND w) {
5789 return cast(int) SendMessage(w, TCM_GETCURSEL, 0, 0);
5790 }
5791
5792 int TabCtrl_SetCurSel(HWND w, int i) {
5793 return cast(int) SendMessage(w, TCM_SETCURSEL, i, 0);
5794 }
5795
5796 int TabCtrl_HitTest(HWND w, LPTCHITTESTINFO p) {
5797 return cast(int) SendMessage(w, TCM_HITTEST, 0, cast(LPARAM) p);
5798 }
5799
5800 BOOL TabCtrl_SetItemExtra(HWND w, int c) {
5801 return cast(BOOL) SendMessage(w, TCM_SETITEMEXTRA, c, 0);
5802 }
5803
5804 int TabCtrl_AdjustRect(HWND w, BOOL b, LPRECT p) {
5805 return cast(int) SendMessage(w, TCM_ADJUSTRECT, b, cast(LPARAM) p);
5806 }
5807
5808 DWORD TabCtrl_SetItemSize(HWND w, int x, int y) {
5809 return cast(DWORD) SendMessage(w, TCM_SETITEMSIZE, 0, MAKELPARAM(cast(ushort)x, cast(ushort)y));
5810 }
5811
5812 void TabCtrl_RemoveImage(HWND w, int i) {
5813 SendMessage(w, TCM_REMOVEIMAGE, i, 0);
5814 }
5815
5816 void TabCtrl_SetPadding(HWND w, int x, int y) {
5817 SendMessage(w, TCM_SETPADDING, 0, MAKELPARAM(cast(ushort)x, cast(ushort)y));
5818 }
5819
5820 int TabCtrl_GetRowCount(HWND w) {
5821 return cast(int) SendMessage(w, TCM_GETROWCOUNT, 0, 0);
5822 }
5823
5824 HWND TabCtrl_GetToolTips(HWND w) {
5825 return cast(HWND) SendMessage(w, TCM_GETTOOLTIPS, 0, 0);
5826 }
5827
5828 void TabCtrl_SetToolTips(HWND w, HWND t) {
5829 SendMessage(w, TCM_SETTOOLTIPS, cast(WPARAM) t, 0);
5830 }
5831
5832 int TabCtrl_GetCurFocus(HWND w) {
5833 return cast(int) SendMessage(w, TCM_GETCURFOCUS, 0, 0);
5834 }
5835
5836 void TabCtrl_SetCurFocus(HWND w, int i) {
5837 SendMessage(w, TCM_SETCURFOCUS, i, 0);
5838 }
5839
5840 HIMAGELIST TabCtrl_GetImageList(HWND w) {
5841 return cast(HIMAGELIST) SendMessage(w, TCM_GETIMAGELIST, 0, 0);
5842 }
5843
5844 HIMAGELIST TabCtrl_SetImageList(HWND w, HIMAGELIST h) {
5845 return cast(HIMAGELIST) SendMessage(w, TCM_SETIMAGELIST, 0,
5846 cast(LPARAM) h);
5847 }
5848
5849 int TabCtrl_GetItemCount(HWND w) {
5850 return cast(int) SendMessage(w, TCM_GETITEMCOUNT, 0, 0);
5851 }
5852
5853 extern (Windows) BOOL _TrackMouseEvent(LPTRACKMOUSEEVENT);
5854
5855 HTREEITEM TreeView_InsertItem(HWND w, LPTVINSERTSTRUCT i) {
5856 return cast(HTREEITEM) SendMessage(w, TVM_INSERTITEM, 0, cast(LPARAM) i);
5857 }
5858
5859 BOOL TreeView_DeleteItem(HWND w, HTREEITEM i) {
5860 return cast(BOOL) SendMessage(w, TVM_DELETEITEM, 0, cast(LPARAM) i);
5861 }
5862
5863 BOOL TreeView_DeleteAllItems(HWND w) {
5864 return cast(BOOL) SendMessage(w, TVM_DELETEITEM, 0, cast(LPARAM) TVI_ROOT);
5865 }
5866
5867 BOOL TreeView_Expand(HWND w, HTREEITEM i, UINT c) {
5868 return cast(BOOL) SendMessage(w, TVM_EXPAND, c, cast(LPARAM) i);
5869 }
5870
5871 BOOL TreeView_GetItemRect(HWND w, HTREEITEM i, LPRECT p, BOOL c) {
5872 *cast(HTREEITEM*) p = i;
5873 return cast(BOOL) SendMessage(w, TVM_GETITEMRECT, c, cast(LPARAM) p);
5874 }
5875
5876 UINT TreeView_GetCount(HWND w) {
5877 return cast(UINT) SendMessage(w, TVM_GETCOUNT, 0, 0);
5878 }
5879
5880 UINT TreeView_GetIndent(HWND w) {
5881 return cast(UINT) SendMessage(w, TVM_GETINDENT, 0, 0);
5882 }
5883
5884 BOOL TreeView_SetIndent(HWND w, INT i) {
5885 return cast(BOOL) SendMessage(w, TVM_SETINDENT, i, 0);
5886 }
5887
5888 HIMAGELIST TreeView_GetImageList(HWND w, INT i) {
5889 return cast(HIMAGELIST) SendMessage(w, TVM_GETIMAGELIST, i, 0);
5890 }
5891
5892 HIMAGELIST TreeView_SetImageList(HWND w, HIMAGELIST h, INT i) {
5893 return cast(HIMAGELIST) SendMessage(w, TVM_SETIMAGELIST, i,
5894 cast(LPARAM) h);
5895 }
5896
5897 HTREEITEM TreeView_GetNextItem(HWND w, HTREEITEM i, UINT c) {
5898 return cast(HTREEITEM) SendMessage(w, TVM_GETNEXTITEM, c, cast(LPARAM) i);
5899 }
5900
5901 HTREEITEM TreeView_GetChild(HWND w, HTREEITEM i) {
5902 return TreeView_GetNextItem(w, i, TVGN_CHILD);
5903 }
5904
5905 HTREEITEM TreeView_GetNextSibling(HWND w, HTREEITEM i) {
5906 return TreeView_GetNextItem(w, i, TVGN_NEXT);
5907 }
5908
5909 HTREEITEM TreeView_GetPrevSibling(HWND w, HTREEITEM i) {
5910 return TreeView_GetNextItem(w, i, TVGN_PREVIOUS);
5911 }
5912
5913 HTREEITEM TreeView_GetParent(HWND w, HTREEITEM i) {
5914 return TreeView_GetNextItem(w, i, TVGN_PARENT);
5915 }
5916
5917 HTREEITEM TreeView_GetFirstVisible(HWND w) {
5918 return TreeView_GetNextItem(w, null, TVGN_FIRSTVISIBLE);
5919 }
5920
5921 HTREEITEM TreeView_GetNextVisible(HWND w, HTREEITEM i) {
5922 return TreeView_GetNextItem(w, i, TVGN_NEXTVISIBLE);
5923 }
5924
5925 HTREEITEM TreeView_GetPrevVisible(HWND w, HTREEITEM i) {
5926 return TreeView_GetNextItem(w, i, TVGN_PREVIOUSVISIBLE);
5927 }
5928
5929 HTREEITEM TreeView_GetSelection(HWND w) {
5930 return TreeView_GetNextItem(w, null, TVGN_CARET);
5931 }
5932
5933 HTREEITEM TreeView_GetDropHilight(HTREEITEM w) {
5934 return TreeView_GetNextItem(w, null, TVGN_DROPHILITE);
5935 }
5936
5937 HTREEITEM TreeView_GetRoot(HWND w) {
5938 return TreeView_GetNextItem(w, null, TVGN_ROOT);
5939 }
5940
5941 BOOL TreeView_Select(HWND w, HTREEITEM i, UINT c) {
5942 return cast(BOOL) SendMessage(w, TVM_SELECTITEM, c, cast(LPARAM) i);
5943 }
5944
5945 BOOL TreeView_SelectItem(HWND w, HTREEITEM i) {
5946 return TreeView_Select(w, i, TVGN_CARET);
5947 }
5948
5949 BOOL TreeView_SelectDropTarget(HWND w, HTREEITEM i) {
5950 return TreeView_Select(w, i, TVGN_DROPHILITE);
5951 }
5952
5953 BOOL TreeView_SelectSetFirstVisible(HWND w, HTREEITEM i) {
5954 return TreeView_Select(w, i, TVGN_FIRSTVISIBLE);
5955 }
5956
5957 BOOL TreeView_GetItem(HWND w, LPTVITEM i) {
5958 return cast(BOOL) SendMessage(w, TVM_GETITEM, 0, cast(LPARAM) i);
5959 }
5960
5961 BOOL TreeView_SetItem(HWND w, const(TV_ITEM)* i) {
5962 return cast(BOOL) SendMessage(w, TVM_SETITEM, 0, cast(LPARAM) i);
5963 }
5964
5965 HWND TreeView_EditLabel(HWND w, HTREEITEM i) {
5966 return cast(HWND) SendMessage(w, TVM_EDITLABEL, 0, cast(LPARAM) i);
5967 }
5968
5969 HWND TreeView_GetEditControl(HWND w) {
5970 return cast(HWND) SendMessage(w, TVM_GETEDITCONTROL, 0, 0);
5971 }
5972
5973 UINT TreeView_GetVisibleCount(HWND w) {
5974 return cast(UINT) SendMessage(w, TVM_GETVISIBLECOUNT, 0, 0);
5975 }
5976
5977 HTREEITEM TreeView_HitTest(HWND w, LPTVHITTESTINFO p) {
5978 return cast(HTREEITEM) SendMessage(w, TVM_HITTEST, 0, cast(LPARAM) p);
5979 }
5980
5981 HIMAGELIST TreeView_CreateDragImage(HWND w, HTREEITEM i) {
5982 return cast(HIMAGELIST) SendMessage(w, TVM_CREATEDRAGIMAGE, 0,
5983 cast(LPARAM) i);
5984 }
5985
5986 BOOL TreeView_SortChildren(HWND w, HTREEITEM i, BOOL r) {
5987 return cast(BOOL) SendMessage(w, TVM_SORTCHILDREN, r, cast(LPARAM) i);
5988 }
5989
5990 BOOL TreeView_EnsureVisible(HWND w, HTREEITEM i) {
5991 return cast(BOOL) SendMessage(w, TVM_ENSUREVISIBLE, 0, cast(LPARAM) i);
5992 }
5993
5994 BOOL TreeView_SortChildrenCB(HWND w, LPTVSORTCB s, BOOL r) {
5995 return cast(BOOL) SendMessage(w, TVM_SORTCHILDRENCB, r, cast(LPARAM) s);
5996 }
5997
5998 BOOL TreeView_EndEditLabelNow(HWND w, BOOL f) {
5999 return cast(BOOL) SendMessage(w, TVM_ENDEDITLABELNOW, f, 0);
6000 }
6001
6002 BOOL TreeView_GetISearchString(HWND w, LPTSTR s) {
6003 return cast(BOOL) SendMessage(w, TVM_GETISEARCHSTRING, 0, cast(LPARAM) s);
6004 }
6005
6006 static if (_WIN32_IE >= 0x300) {
6007 DWORD ListView_ApproximateViewRect(HWND w, int iw, int ih, int i) {
6008 return cast(DWORD) SendMessage(w, LVM_APPROXIMATEVIEWRECT, i,
6009 MAKELPARAM(cast(ushort)iw, cast(ushort)ih));
6010 }
6011
6012 DWORD ListView_SetExtendedListViewStyle(HWND w, DWORD s) {
6013 return cast(DWORD) SendMessage(w, LVM_SETEXTENDEDLISTVIEWSTYLE, 0, s);
6014 }
6015
6016 DWORD ListView_GetExtendedListViewStyle(HWND w) {
6017 return cast(DWORD) SendMessage(w, LVM_GETEXTENDEDLISTVIEWSTYLE, 0, 0);
6018 }
6019
6020 BOOL ListView_SetColumnOrderArray(HWND w, int i, int* a) {
6021 return cast(BOOL) SendMessage(w, LVM_SETCOLUMNORDERARRAY,
6022 cast(WPARAM) i, cast(LPARAM) a);
6023 }
6024
6025 BOOL ListView_GetColumnOrderArray(HWND w, int i, int* a) {
6026 return cast(BOOL) SendMessage(w, LVM_GETCOLUMNORDERARRAY,
6027 cast(WPARAM) i, cast(LPARAM) a);
6028 }
6029
6030 HWND ListView_GetHeader(HWND w) {
6031 return cast(HWND) SendMessage(w, LVM_GETHEADER, 0, 0);
6032 }
6033
6034 HCURSOR ListView_GetHotCursor(HWND w) {
6035 return cast(HCURSOR) SendMessage(w, LVM_GETHOTCURSOR, 0, 0);
6036 }
6037
6038 INT ListView_GetHotItem(HWND w) {
6039 return cast(INT) SendMessage(w, LVM_GETHOTITEM, 0, 0);
6040 }
6041
6042 BOOL ListView_GetSubItemRect(HWND w, int i, int isi, int c, LPRECT p) {
6043 if (p)
6044 {
6045 p.left = c;
6046 p.top = isi;
6047 }
6048 return cast(BOOL) SendMessage(w, LVM_GETSUBITEMRECT, i, cast(LPARAM) p);
6049 }
6050
6051 HCURSOR ListView_SetHotCursor(HWND w, HCURSOR c) {
6052 return cast(HCURSOR) SendMessage(w, LVM_SETHOTCURSOR, 0,
6053 cast(LPARAM) c);
6054 }
6055
6056 INT ListView_SetHotItem(HWND w, INT i) {
6057 return cast(INT) SendMessage(w, LVM_SETHOTITEM, cast(WPARAM) i, 0);
6058 }
6059
6060 DWORD ListView_SetIconSpacing(HWND w, int x, int y) {
6061 return cast(DWORD) SendMessage(w, LVM_SETICONSPACING, 0,
6062 MAKELONG(cast(ushort)x, cast(ushort)y));
6063 }
6064
6065 INT ListView_SubItemHitTest(HWND w, LPLVHITTESTINFO p) {
6066 return cast(INT) SendMessage(w, LVM_SUBITEMHITTEST, 0, cast(LPARAM) p);
6067 }
6068
6069 BOOL ListView_SetItemCountEx(HWND w, int i, DWORD f) {
6070 return cast(BOOL) SendMessage(w, LVM_SETITEMCOUNT, i, cast(LPARAM) f);
6071 }
6072
6073 extern (Windows) {
6074 WINBOOL ImageList_SetImageCount(HIMAGELIST, UINT);
6075 WINBOOL ImageList_Copy(HIMAGELIST, int, HIMAGELIST, int, UINT);
6076 WINBOOL ImageList_DrawIndirect(IMAGELISTDRAWPARAMS*);
6077 }
6078
6079 int TabCtrl_SetMinTabWidth(HWND hwnd, int x) {
6080 return cast(int) SendMessage(hwnd, TCM_SETMINTABWIDTH, 0, x);
6081 }
6082
6083 VOID TabCtrl_DeselectAll(HWND hwnd, UINT fExcludeFocus) {
6084 SendMessage(hwnd, TCM_DESELECTALL, fExcludeFocus, 0);
6085 }
6086
6087 HWND TreeView_GetToolTips(HWND w) {
6088 return cast(HWND) SendMessage(w, TVM_GETTOOLTIPS, 0, 0);
6089 }
6090
6091 HWND TreeView_SetToolTips(HWND w, HWND wt) {
6092 return cast(HWND) SendMessage(w, TVM_SETTOOLTIPS, cast(WPARAM) wt, 0);
6093 }
6094 }
6095
6096 static if (_WIN32_IE >= 0x400) {
6097 BOOL ListView_GetBkImage(HWND h, LPLVBKIMAGE plvbki) {
6098 return cast(BOOL) SendMessage(h, LVM_GETBKIMAGE, 0,
6099 cast(LPARAM) plvbki);
6100 }
6101
6102 BOOL ListView_SetBkImage(HWND h, LPLVBKIMAGE plvbki) {
6103 return cast(BOOL) SendMessage(h, LVM_SETBKIMAGE, 0,
6104 cast(LPARAM) plvbki);
6105 }
6106
6107 DWORD ListView_SetExtendedListViewStyleEx(HWND w, DWORD m, DWORD s) {
6108 return cast(DWORD) SendMessage(w, LVM_SETEXTENDEDLISTVIEWSTYLE, m, s);
6109 }
6110
6111 VOID ListView_SetWorkAreas(HWND w, INT n, LPRECT r) {
6112 SendMessage(w, LVM_SETWORKAREAS, cast(WPARAM) n, cast(LPARAM) r);
6113 }
6114
6115 VOID ListView_GetWorkAreas(HWND w, INT n, LPRECT r) {
6116 SendMessage(w, LVM_GETWORKAREAS, cast(WPARAM) n, cast(LPARAM) r);
6117 }
6118
6119 BOOL ListView_GetNumberOfWorkAreas(HWND w, LPUINT n) {
6120 return cast(BOOL) SendMessage(w, LVM_GETNUMBEROFWORKAREAS, 0,
6121 cast(LPARAM) n);
6122 }
6123
6124 DWORD ListView_SetHoverTime(HWND w, DWORD t) {
6125 return cast(DWORD) SendMessage(w, LVM_SETHOVERTIME, 0,
6126 cast(LPARAM) t);
6127 }
6128
6129 DWORD ListView_GetHoverTime(HWND w) {
6130 return cast(DWORD) SendMessage(w, LVM_GETHOVERTIME, 0, 0);
6131 }
6132
6133 INT ListView_GetSelectionMark(HWND w) {
6134 return cast(INT) SendMessage(w, LVM_GETSELECTIONMARK, 0, 0);
6135 }
6136
6137 INT ListView_SetSelectionMark(HWND w, INT i) {
6138 return cast(INT) SendMessage(w, LVM_SETSELECTIONMARK, 0, cast(LPARAM) i);
6139 }
6140
6141 HWND ListView_SetToolTips(HWND w, HWND n) {
6142 return cast(HWND) SendMessage(w, LVM_SETTOOLTIPS, cast(WPARAM) n, 0);
6143 }
6144
6145 HWND ListView_GetToolTips(HWND w) {
6146 return cast(HWND) SendMessage(w, LVM_GETTOOLTIPS, 0, 0);
6147 }
6148
6149 BOOL ListView_SetUnicodeFormat(HWND w, BOOL f) {
6150 return cast(BOOL) SendMessage(w, LVM_SETUNICODEFORMAT,
6151 cast(WPARAM) f, 0);
6152 }
6153
6154 BOOL ListView_GetUnicodeFormat(HWND w) {
6155 return cast(BOOL) SendMessage(w, LVM_GETUNICODEFORMAT, 0, 0);
6156 }
6157
6158 BOOL TabCtrl_HighlightItem(HWND hwnd, INT i, WORD fHighlight) {
6159 return cast(BOOL) SendMessage(hwnd, TCM_HIGHLIGHTITEM,
6160 cast(WPARAM) i, cast(LPARAM) MAKELONG(fHighlight, 0));
6161 }
6162
6163 DWORD TabCtrl_SetExtendedStyle(HWND hwnd, DWORD dw) {
6164 return cast(DWORD) SendMessage(hwnd, TCM_SETEXTENDEDSTYLE, 0, dw);
6165 }
6166
6167 DWORD TabCtrl_GetExtendedStyle(HWND hwnd) {
6168 return cast(DWORD) SendMessage(hwnd, TCM_GETEXTENDEDSTYLE, 0, 0);
6169 }
6170
6171 BOOL TabCtrl_SetUnicodeFormat(HWND hwnd, HWND fUnicode) {
6172 return cast(BOOL) SendMessage(hwnd, TCM_SETUNICODEFORMAT,
6173 cast(WPARAM) fUnicode, 0);
6174 }
6175
6176 BOOL TabCtrl_GetUnicodeFormat(HWND hwnd) {
6177 return cast(BOOL) SendMessage(hwnd, TCM_GETUNICODEFORMAT, 0, 0);
6178 }
6179
6180 COLORREF TreeView_GetBkColor(HWND w) {
6181 return cast(COLORREF) SendMessage(w, TVM_GETBKCOLOR, 0, 0);
6182 }
6183
6184 COLORREF TreeView_GetInsertMarkColor(HWND w) {
6185 return cast(COLORREF) SendMessage(w, TVM_GETINSERTMARKCOLOR, 0, 0);
6186 }
6187
6188 int TreeView_GetItemHeight(HWND w) {
6189 return cast(int) SendMessage(w, TVM_GETITEMHEIGHT, 0, 0);
6190 }
6191
6192 UINT TreeView_GetScrollTime(HWND w) {
6193 return cast(UINT) SendMessage(w, TVM_GETSCROLLTIME, 0, 0);
6194 }
6195
6196 COLORREF TreeView_GetTextColor(HWND w) {
6197 return cast(COLORREF) SendMessage(w, TVM_GETTEXTCOLOR, 0, 0);
6198 }
6199
6200 COLORREF TreeView_SetBkColor(HWND w, COLORREF c) {
6201 return cast(COLORREF) SendMessage(w, TVM_SETBKCOLOR, 0,
6202 cast(LPARAM) c);
6203 }
6204
6205 COLORREF TreeView_SetInsertMarkColor(HWND w, COLORREF c) {
6206 return cast(COLORREF) SendMessage(w, TVM_SETINSERTMARKCOLOR, 0,
6207 cast(LPARAM) c);
6208 }
6209
6210 int TreeView_SetItemHeight(HWND w, SHORT h) {
6211 return cast(int) SendMessage(w, TVM_SETITEMHEIGHT, cast(WPARAM) h, 0);
6212 }
6213
6214 UINT TreeView_SetScrollTime(HWND w, UINT t) {
6215 return cast(UINT) SendMessage(w, TVM_SETSCROLLTIME, cast(WPARAM) t, 0);
6216 }
6217
6218 COLORREF TreeView_SetTextColor(HWND w, COLORREF c) {
6219 return cast(COLORREF) SendMessage(w, TVM_SETTEXTCOLOR, 0,
6220 cast(LPARAM) c);
6221 }
6222
6223 BOOL TreeView_SetInsertMark(HWND w, HTREEITEM i, BOOL a) {
6224 return cast(BOOL) SendMessage(w, TVM_SETINSERTMARK, cast(WPARAM) a,
6225 cast(LPARAM) i);
6226 }
6227
6228 BOOL TreeView_SetUnicodeFormat(HWND w, BOOL u) {
6229 return cast(BOOL) SendMessage(w, TVM_SETUNICODEFORMAT,
6230 cast(WPARAM) u, 0);
6231 }
6232
6233 BOOL TreeView_GetUnicodeFormat(HWND w) {
6234 return cast(BOOL) SendMessage(w, TVM_GETUNICODEFORMAT, 0, 0);
6235 }
6236
6237 HTREEITEM TreeView_GetLastVisible(HWND w) {
6238 return TreeView_GetNextItem(w, null, TVGN_LASTVISIBLE);
6239 }
6240 }
6241
6242 static if (_WIN32_IE >= 0x500) {
6243 UINT TreeView_GetItemState(HWND w, HTREEITEM i, UINT m) {
6244 return cast(UINT) SendMessage(w, TVM_GETITEMSTATE, cast(WPARAM) i,
6245 cast(LPARAM) m);
6246 }
6247
6248 BOOL TreeView_SetItemState(HWND w, HTREEITEM i, UINT d, UINT m) {
6249 TVITEM _tvi;
6250 _tvi.mask = TVIF_STATE;
6251 _tvi.hItem = i;
6252 _tvi.stateMask = m;
6253 _tvi.state = d;
6254 return cast(BOOL) SendMessage(w, TVM_SETITEM, 0, cast(LPARAM) &_tvi);
6255 }
6256 }
6257
6258
6259 //#ifdef _WIN32_WCE // these are PPC only
6260 /+
6261 extern (Windows) {
6262 HWND CommandBar_Create(HINSTANCE, HWND, int);
6263 BOOL CommandBar_Show(HWND, BOOL);
6264 int CommandBar_AddBitmap(HWND, HINSTANCE, int, int, int, int);
6265 HWND CommandBar_InsertComboBox(HWND, HINSTANCE, int, UINT, WORD, WORD);
6266 BOOL CommandBar_InsertMenubar(HWND, HINSTANCE, WORD, WORD );
6267 BOOL CommandBar_InsertMenubarEx(HWND, HINSTANCE, LPTSTR, WORD);
6268 BOOL CommandBar_DrawMenuBar(HWND, WORD);
6269 HMENU CommandBar_GetMenu(HWND, WORD);
6270 BOOL CommandBar_AddAdornments(HWND, DWORD, DWORD);
6271 int CommandBar_Height(HWND hwndCB);
6272 }
6273
6274 // MinGW: These two are not in the DLL
6275 void CommandBar_InsertButton(HWND hwnd, int i, LPTBBUTTON lptbbutton) {
6276 SendMessage(hwnd, TB_INSERTBUTTON, i, lptbbutton);
6277 }
6278 alias DestroyWindow CommandBar_Destroy;
6279 +/
6280 //#endif // _WIN32_WCE
6281
6282
6283 static if (_WIN32_WINNT >= 0x501) {
6284 struct EDITBALLOONTIP
6285 {
6286 DWORD cbStruct;
6287 LPCWSTR pszTitle;
6288 LPCWSTR pszText;
6289 INT ttiIcon;
6290 }
6291 alias EDITBALLOONTIP* PEDITBALLOONTIP;
6292
6293 enum EM_SETCUEBANNER = ECM_FIRST + 1;
6294 enum EM_GETCUEBANNER = ECM_FIRST + 2;
6295 enum EM_SHOWBALLOONTIP = ECM_FIRST + 3;
6296 enum EM_HIDEBALLOONTIP = ECM_FIRST + 4;
6297 }
6298
6299 static if (_WIN32_WINNT >= 0x600) {
6300 enum EM_SETHILITE = ECM_FIRST + 5;
6301 enum EM_GETHILITE = ECM_FIRST + 6;
6302 }
6303