comparison win32/commctrl.d @ 1:4a9dcbd9e54f

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