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