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/_commdlg.d) 8 */ 9 /// Automatically imported and edited from the druntime module 10 /// core.sys.windows.commdlg for the auto-generated win32 package. 11 module win32.commdlg; 12 //version (Windows): 13 @system: 14 15 version (ANSI) {} else version = Unicode; 16 version (Win32_UseLib) pragma(lib, "comdlg32"); 17 18 import win32.w32api; 19 import win32.windef, win32.winuser; 20 import win32.wingdi; // for LPLOGFONTA 21 22 const TCHAR[] 23 LBSELCHSTRING = "commdlg_LBSelChangedNotify", 24 SHAREVISTRING = "commdlg_ShareViolation", 25 FILEOKSTRING = "commdlg_FileNameOK", 26 COLOROKSTRING = "commdlg_ColorOK", 27 SETRGBSTRING = "commdlg_SetRGBColor", 28 HELPMSGSTRING = "commdlg_help", 29 FINDMSGSTRING = "commdlg_FindReplace"; 30 31 enum : UINT { 32 CDN_FIRST = -601, // also in commctrl.h 33 CDN_LAST = -699, 34 CDN_INITDONE = CDN_FIRST, 35 CDN_SELCHANGE = CDN_FIRST - 1, 36 CDN_FOLDERCHANGE = CDN_FIRST - 2, 37 CDN_SHAREVIOLATION = CDN_FIRST - 3, 38 CDN_HELP = CDN_FIRST - 4, 39 CDN_FILEOK = CDN_FIRST - 5, 40 CDN_TYPECHANGE = CDN_FIRST - 6, 41 } 42 43 //static if (_WIN32_WINNT >= 0x500) { 44 enum : UINT { 45 CDN_INCLUDEITEM = CDN_FIRST - 7, 46 } 47 //} 48 49 enum : UINT { 50 CDM_FIRST = WM_USER + 100, 51 CDM_LAST = WM_USER + 200, 52 CDM_GETSPEC = CDM_FIRST, 53 CDM_GETFILEPATH, 54 CDM_GETFOLDERPATH, 55 CDM_GETFOLDERIDLIST, 56 CDM_SETCONTROLTEXT, 57 CDM_HIDECONTROL, 58 CDM_SETDEFEXT // = CDM_FIRST + 6 59 } 60 61 // flags for ChooseColor 62 enum : DWORD { 63 CC_RGBINIT = 0x0001, 64 CC_FULLOPEN = 0x0002, 65 CC_PREVENTFULLOPEN = 0x0004, 66 CC_SHOWHELP = 0x0008, 67 CC_ENABLEHOOK = 0x0010, 68 CC_ENABLETEMPLATE = 0x0020, 69 CC_ENABLETEMPLATEHANDLE = 0x0040, 70 CC_SOLIDCOLOR = 0x0080, 71 CC_ANYCOLOR = 0x0100 72 } 73 74 // flags for ChooseFont 75 enum : DWORD { 76 CF_SCREENFONTS = 0x00000001, 77 CF_PRINTERFONTS = 0x00000002, 78 CF_BOTH = 0x00000003, 79 CF_SHOWHELP = 0x00000004, 80 CF_ENABLEHOOK = 0x00000008, 81 CF_ENABLETEMPLATE = 0x00000010, 82 CF_ENABLETEMPLATEHANDLE = 0x00000020, 83 CF_INITTOLOGFONTSTRUCT = 0x00000040, 84 CF_USESTYLE = 0x00000080, 85 CF_EFFECTS = 0x00000100, 86 CF_APPLY = 0x00000200, 87 CF_ANSIONLY = 0x00000400, 88 CF_SCRIPTSONLY = CF_ANSIONLY, 89 CF_NOVECTORFONTS = 0x00000800, 90 CF_NOOEMFONTS = 0x00000800, 91 CF_NOSIMULATIONS = 0x00001000, 92 CF_LIMITSIZE = 0x00002000, 93 CF_FIXEDPITCHONLY = 0x00004000, 94 CF_WYSIWYG = 0x00008000, 95 CF_FORCEFONTEXIST = 0x00010000, 96 CF_SCALABLEONLY = 0x00020000, 97 CF_TTONLY = 0x00040000, 98 CF_NOFACESEL = 0x00080000, 99 CF_NOSTYLESEL = 0x00100000, 100 CF_NOSIZESEL = 0x00200000, 101 CF_SELECTSCRIPT = 0x00400000, 102 CF_NOSCRIPTSEL = 0x00800000, 103 CF_NOVERTFONTS = 0x01000000 104 } 105 106 // Font type for ChooseFont 107 enum : WORD { 108 BOLD_FONTTYPE = 0x0100, 109 ITALIC_FONTTYPE = 0x0200, 110 REGULAR_FONTTYPE = 0x0400, 111 SCREEN_FONTTYPE = 0x2000, 112 PRINTER_FONTTYPE = 0x4000, 113 SIMULATED_FONTTYPE = 0x8000 114 } 115 116 enum : UINT { 117 WM_CHOOSEFONT_GETLOGFONT = WM_USER + 1, 118 WM_CHOOSEFONT_SETLOGFONT = WM_USER + 101, 119 WM_CHOOSEFONT_SETFLAGS = WM_USER + 102 120 } 121 122 // flags for OpenFileName 123 enum : DWORD { 124 OFN_SHAREWARN = 0, 125 OFN_SHARENOWARN = 0x000001, 126 OFN_READONLY = 0x000001, 127 OFN_SHAREFALLTHROUGH = 0x000002, 128 OFN_OVERWRITEPROMPT = 0x000002, 129 OFN_HIDEREADONLY = 0x000004, 130 OFN_NOCHANGEDIR = 0x000008, 131 OFN_SHOWHELP = 0x000010, 132 OFN_ENABLEHOOK = 0x000020, 133 OFN_ENABLETEMPLATE = 0x000040, 134 OFN_ENABLETEMPLATEHANDLE = 0x000080, 135 OFN_NOVALIDATE = 0x000100, 136 OFN_ALLOWMULTISELECT = 0x000200, 137 OFN_EXTENSIONDIFFERENT = 0x000400, 138 OFN_PATHMUSTEXIST = 0x000800, 139 OFN_FILEMUSTEXIST = 0x001000, 140 OFN_CREATEPROMPT = 0x002000, 141 OFN_SHAREAWARE = 0x004000, 142 OFN_NOREADONLYRETURN = 0x008000, 143 OFN_NOTESTFILECREATE = 0x010000, 144 OFN_NONETWORKBUTTON = 0x020000, 145 OFN_NOLONGNAMES = 0x040000, 146 OFN_EXPLORER = 0x080000, 147 OFN_NODEREFERENCELINKS = 0x100000, 148 OFN_LONGNAMES = 0x200000, 149 OFN_ENABLESIZING = 0x800000 150 } 151 152 enum : DWORD { 153 FR_DOWN = 0x00000001, 154 FR_WHOLEWORD = 0x00000002, 155 FR_MATCHCASE = 0x00000004, 156 FR_FINDNEXT = 0x00000008, 157 FR_REPLACE = 0x00000010, 158 FR_REPLACEALL = 0x00000020, 159 FR_DIALOGTERM = 0x00000040, 160 FR_SHOWHELP = 0x00000080, 161 FR_ENABLEHOOK = 0x00000100, 162 FR_ENABLETEMPLATE = 0x00000200, 163 FR_NOUPDOWN = 0x00000400, 164 FR_NOMATCHCASE = 0x00000800, 165 FR_NOWHOLEWORD = 0x00001000, 166 FR_ENABLETEMPLATEHANDLE = 0x00002000, 167 FR_HIDEUPDOWN = 0x00004000, 168 FR_HIDEMATCHCASE = 0x00008000, 169 FR_HIDEWHOLEWORD = 0x00010000, 170 FR_MATCHDIAC = 0x20000000, 171 FR_MATCHKASHIDA = 0x40000000, 172 FR_MATCHALEFHAMZA = 0x80000000 173 } 174 175 enum : DWORD { 176 PD_ALLPAGES = 0, 177 PD_SELECTION = 0x000001, 178 PD_PAGENUMS = 0x000002, 179 PD_NOSELECTION = 0x000004, 180 PD_NOPAGENUMS = 0x000008, 181 PD_COLLATE = 0x000010, 182 PD_PRINTTOFILE = 0x000020, 183 PD_PRINTSETUP = 0x000040, 184 PD_NOWARNING = 0x000080, 185 PD_RETURNDC = 0x000100, 186 PD_RETURNIC = 0x000200, 187 PD_RETURNDEFAULT = 0x000400, 188 PD_SHOWHELP = 0x000800, 189 PD_ENABLEPRINTHOOK = 0x001000, 190 PD_ENABLESETUPHOOK = 0x002000, 191 PD_ENABLEPRINTTEMPLATE = 0x004000, 192 PD_ENABLESETUPTEMPLATE = 0x008000, 193 PD_ENABLEPRINTTEMPLATEHANDLE = 0x010000, 194 PD_ENABLESETUPTEMPLATEHANDLE = 0x020000, 195 PD_USEDEVMODECOPIES = 0x040000, 196 PD_USEDEVMODECOPIESANDCOLLATE = 0x040000, 197 PD_DISABLEPRINTTOFILE = 0x080000, 198 PD_HIDEPRINTTOFILE = 0x100000, 199 PD_NONETWORKBUTTON = 0x200000 200 } 201 202 //static if (_WIN32_WINNT >= 0x500) { 203 enum : DWORD { 204 PD_CURRENTPAGE = 0x00400000, 205 PD_NOCURRENTPAGE = 0x00800000, 206 PD_EXCLUSIONFLAGS = 0x01000000, 207 PD_USELARGETEMPLATE = 0x10000000, 208 } 209 210 enum : HRESULT { 211 PD_RESULT_CANCEL, 212 PD_RESULT_PRINT, 213 PD_RESULT_APPLY 214 } 215 216 enum DWORD START_PAGE_GENERAL = 0xFFFFFFFF; 217 //} 218 219 enum { 220 PSD_DEFAULTMINMARGINS = 0, 221 PSD_INWININIINTLMEASURE = 0, 222 PSD_MINMARGINS = 0x000001, 223 PSD_MARGINS = 0x000002, 224 PSD_INTHOUSANDTHSOFINCHES = 0x000004, 225 PSD_INHUNDREDTHSOFMILLIMETERS = 0x000008, 226 PSD_DISABLEMARGINS = 0x000010, 227 PSD_DISABLEPRINTER = 0x000020, 228 PSD_NOWARNING = 0x000080, 229 PSD_DISABLEORIENTATION = 0x000100, 230 PSD_DISABLEPAPER = 0x000200, 231 PSD_RETURNDEFAULT = 0x000400, 232 PSD_SHOWHELP = 0x000800, 233 PSD_ENABLEPAGESETUPHOOK = 0x002000, 234 PSD_ENABLEPAGESETUPTEMPLATE = 0x008000, 235 PSD_ENABLEPAGESETUPTEMPLATEHANDLE = 0x020000, 236 PSD_ENABLEPAGEPAINTHOOK = 0x040000, 237 PSD_DISABLEPAGEPAINTING = 0x080000 238 } 239 240 enum : UINT { 241 WM_PSD_PAGESETUPDLG = WM_USER, 242 WM_PSD_FULLPAGERECT, 243 WM_PSD_MINMARGINRECT, 244 WM_PSD_MARGINRECT, 245 WM_PSD_GREEKTEXTRECT, 246 WM_PSD_ENVSTAMPRECT, 247 WM_PSD_YAFULLPAGERECT // = WM_USER + 6 248 } 249 250 enum : int { 251 CD_LBSELNOITEMS = -1, 252 CD_LBSELCHANGE, 253 CD_LBSELSUB, 254 CD_LBSELADD 255 } 256 257 enum WORD DN_DEFAULTPRN = 1; 258 259 /+ 260 // Both MinGW and the windows docs indicate that there are macros for the send messages 261 // the controls. These seem to be totally unnecessary -- and at least one of MinGW or 262 // Windows Docs is buggy! 263 264 int CommDlg_OpenSave_GetSpec()(HWND hWndControl, LPARAM lparam, WPARAM wParam) { 265 return SendMessage(hWndControl, CDM_GETSPEC, wParam, lParam); 266 } 267 268 int CommDlg_OpenSave_GetFilePath()(HWND hWndControl, LPARAM lparam, WPARAM wParam) { 269 return SendMessage(hWndControl, CDM_GETFILEPATH, wParam, lParam); 270 } 271 272 int CommDlg_OpenSave_GetFolderPath()(HWND hWndControl, LPARAM lparam, WPARAM wParam) { 273 return SendMessage(hWndControl, CDM_GETFOLDERPATH, wParam, lParam); 274 } 275 276 int CommDlg_OpenSave_GetFolderIDList()(HWND hWndControl, LPARAM lparam, WPARAM wParam) { 277 return SendMessage(hWndControl, CDM_GETFOLDERIDLIST, wParam, lParam); 278 } 279 280 void CommDlg_OpenSave_SetControlText()(HWND hWndControl, LPARAM lparam, WPARAM wParam) { 281 return SendMessage(hWndControl, CDM_SETCONTROLTEXT, wParam, lParam); 282 } 283 284 void CommDlg_OpenSave_HideControl()(HWND hWndControl, WPARAM wParam) { 285 return SendMessage(hWndControl, CDM_HIDECONTROL, wParam, 0); 286 } 287 288 void CommDlg_OpenSave_SetDefExt()(HWND hWndControl, TCHAR* lparam) { 289 return SendMessage(hWndControl, CDM_SETCONTROLTEXT, 0, cast(LPARAM)lParam); 290 } 291 292 // These aliases seem even more unnecessary 293 alias CommDlg_OpenSave_GetSpec 294 CommDlg_OpenSave_GetSpecA, CommDlg_OpenSave_GetSpecW; 295 alias CommDlg_OpenSave_GetFilePath 296 CommDlg_OpenSave_GetFilePathA, CommDlg_OpenSave_GetFilePathW; 297 alias CommDlg_OpenSave_GetFolderPath 298 CommDlg_OpenSave_GetFolderPathA, CommDlg_OpenSave_GetFolderPathW; 299 +/ 300 301 // Callbacks. 302 extern(Windows) { 303 alias UINT_PTR function (HWND, UINT, WPARAM, LPARAM) nothrow 304 LPCCHOOKPROC, LPCFHOOKPROC, LPFRHOOKPROC, LPOFNHOOKPROC, 305 LPPAGEPAINTHOOK, LPPAGESETUPHOOK, LPSETUPHOOKPROC, LPPRINTHOOKPROC; 306 } 307 308 //align (1): // 1 in Win32, default in Win64 309 310 struct CHOOSECOLORA { 311 DWORD lStructSize = CHOOSECOLORA.sizeof; 312 HWND hwndOwner; 313 HWND hInstance; 314 COLORREF rgbResult; 315 COLORREF* lpCustColors; 316 DWORD Flags; 317 LPARAM lCustData; 318 LPCCHOOKPROC lpfnHook; 319 LPCSTR lpTemplateName; 320 } 321 alias CHOOSECOLORA* LPCHOOSECOLORA; 322 323 struct CHOOSECOLORW { 324 DWORD lStructSize = CHOOSECOLORW.sizeof; 325 HWND hwndOwner; 326 HWND hInstance; 327 COLORREF rgbResult; 328 COLORREF* lpCustColors; 329 DWORD Flags; 330 LPARAM lCustData; 331 LPCCHOOKPROC lpfnHook; 332 LPCWSTR lpTemplateName; 333 } 334 alias CHOOSECOLORW* LPCHOOSECOLORW; 335 336 struct CHOOSEFONTA { 337 DWORD lStructSize = CHOOSEFONTA.sizeof; 338 HWND hwndOwner; 339 HDC hDC; 340 LPLOGFONTA lpLogFont; 341 INT iPointSize; 342 DWORD Flags; 343 DWORD rgbColors; 344 LPARAM lCustData; 345 LPCFHOOKPROC lpfnHook; 346 LPCSTR lpTemplateName; 347 HINSTANCE hInstance; 348 LPSTR lpszStyle; 349 WORD nFontType; 350 WORD ___MISSING_ALIGNMENT__; 351 INT nSizeMin; 352 INT nSizeMax; 353 } 354 alias CHOOSEFONTA* LPCHOOSEFONTA; 355 356 struct CHOOSEFONTW { 357 DWORD lStructSize = CHOOSEFONTW.sizeof; 358 HWND hwndOwner; 359 HDC hDC; 360 LPLOGFONTW lpLogFont; 361 INT iPointSize; 362 DWORD Flags; 363 DWORD rgbColors; 364 LPARAM lCustData; 365 LPCFHOOKPROC lpfnHook; 366 LPCWSTR lpTemplateName; 367 HINSTANCE hInstance; 368 LPWSTR lpszStyle; 369 WORD nFontType; 370 WORD ___MISSING_ALIGNMENT__; 371 INT nSizeMin; 372 INT nSizeMax; 373 } 374 alias CHOOSEFONTW* LPCHOOSEFONTW; 375 376 struct DEVNAMES { 377 WORD wDriverOffset; 378 WORD wDeviceOffset; 379 WORD wOutputOffset; 380 WORD wDefault; 381 } 382 alias DEVNAMES* LPDEVNAMES; 383 384 struct FINDREPLACEA { 385 DWORD lStructSize = FINDREPLACEA.sizeof; 386 HWND hwndOwner; 387 HINSTANCE hInstance; 388 DWORD Flags; 389 LPSTR lpstrFindWhat; 390 LPSTR lpstrReplaceWith; 391 WORD wFindWhatLen; 392 WORD wReplaceWithLen; 393 LPARAM lCustData; 394 LPFRHOOKPROC lpfnHook; 395 LPCSTR lpTemplateName; 396 } 397 alias FINDREPLACEA* LPFINDREPLACEA; 398 399 struct FINDREPLACEW { 400 DWORD lStructSize = FINDREPLACEW.sizeof; 401 HWND hwndOwner; 402 HINSTANCE hInstance; 403 DWORD Flags; 404 LPWSTR lpstrFindWhat; 405 LPWSTR lpstrReplaceWith; 406 WORD wFindWhatLen; 407 WORD wReplaceWithLen; 408 LPARAM lCustData; 409 LPFRHOOKPROC lpfnHook; 410 LPCWSTR lpTemplateName; 411 } 412 alias FINDREPLACEW* LPFINDREPLACEW; 413 414 struct OPENFILENAMEA { 415 DWORD lStructSize = OPENFILENAMEA.sizeof; 416 HWND hwndOwner; 417 HINSTANCE hInstance; 418 LPCSTR lpstrFilter; 419 LPSTR lpstrCustomFilter; 420 DWORD nMaxCustFilter; 421 DWORD nFilterIndex; 422 LPSTR lpstrFile; 423 DWORD nMaxFile; 424 LPSTR lpstrFileTitle; 425 DWORD nMaxFileTitle; 426 LPCSTR lpstrInitialDir; 427 LPCSTR lpstrTitle; 428 DWORD Flags; 429 WORD nFileOffset; 430 WORD nFileExtension; 431 LPCSTR lpstrDefExt; 432 LPARAM lCustData; 433 LPOFNHOOKPROC lpfnHook; 434 LPCSTR lpTemplateName; 435 436 //static if (_WIN32_WINNT >= 0x500) { 437 void *pvReserved; 438 DWORD dwReserved; 439 DWORD FlagsEx; 440 //} 441 } 442 alias OPENFILENAMEA* LPOPENFILENAMEA; 443 444 struct OPENFILENAMEW { 445 DWORD lStructSize = OPENFILENAMEW.sizeof; 446 HWND hwndOwner; 447 HINSTANCE hInstance; 448 LPCWSTR lpstrFilter; 449 LPWSTR lpstrCustomFilter; 450 DWORD nMaxCustFilter; 451 DWORD nFilterIndex; 452 LPWSTR lpstrFile; 453 DWORD nMaxFile; 454 LPWSTR lpstrFileTitle; 455 DWORD nMaxFileTitle; 456 LPCWSTR lpstrInitialDir; 457 LPCWSTR lpstrTitle; 458 DWORD Flags; 459 WORD nFileOffset; 460 WORD nFileExtension; 461 LPCWSTR lpstrDefExt; 462 LPARAM lCustData; 463 LPOFNHOOKPROC lpfnHook; 464 LPCWSTR lpTemplateName; 465 466 //static if (_WIN32_WINNT >= 0x500) { 467 void *pvReserved; 468 DWORD dwReserved; 469 DWORD FlagsEx; 470 //} 471 } 472 alias OPENFILENAMEW* LPOPENFILENAMEW; 473 474 enum size_t OPENFILENAME_SIZE_VERSION_400 = 76; 475 476 struct OFNOTIFYA { 477 NMHDR hdr; 478 LPOPENFILENAMEA lpOFN; 479 LPSTR pszFile; 480 } 481 alias OFNOTIFYA* LPOFNOTIFYA; 482 483 struct OFNOTIFYW { 484 NMHDR hdr; 485 LPOPENFILENAMEW lpOFN; 486 LPWSTR pszFile; 487 } 488 alias OFNOTIFYW* LPOFNOTIFYW; 489 490 struct PAGESETUPDLGA { 491 DWORD lStructSize = PAGESETUPDLGA.sizeof; 492 HWND hwndOwner; 493 HGLOBAL hDevMode; 494 HGLOBAL hDevNames; 495 DWORD Flags; 496 POINT ptPaperSize; 497 RECT rtMinMargin; 498 RECT rtMargin; 499 HINSTANCE hInstance; 500 LPARAM lCustData; 501 LPPAGESETUPHOOK lpfnPageSetupHook; 502 LPPAGEPAINTHOOK lpfnPagePaintHook; 503 LPCSTR lpPageSetupTemplateName; 504 HGLOBAL hPageSetupTemplate; 505 } 506 alias PAGESETUPDLGA* LPPAGESETUPDLGA; 507 508 struct PAGESETUPDLGW { 509 DWORD lStructSize = PAGESETUPDLGW.sizeof; 510 HWND hwndOwner; 511 HGLOBAL hDevMode; 512 HGLOBAL hDevNames; 513 DWORD Flags; 514 POINT ptPaperSize; 515 RECT rtMinMargin; 516 RECT rtMargin; 517 HINSTANCE hInstance; 518 LPARAM lCustData; 519 LPPAGESETUPHOOK lpfnPageSetupHook; 520 LPPAGEPAINTHOOK lpfnPagePaintHook; 521 LPCWSTR lpPageSetupTemplateName; 522 HGLOBAL hPageSetupTemplate; 523 } 524 alias PAGESETUPDLGW* LPPAGESETUPDLGW; 525 526 align (1) struct PRINTDLGA { 527 align(1): 528 DWORD lStructSize = PRINTDLGA.sizeof; 529 version (Win64) 530 DWORD padding1; 531 HWND hwndOwner; 532 HANDLE hDevMode; 533 HANDLE hDevNames; 534 HDC hDC; 535 DWORD Flags; 536 WORD nFromPage; 537 WORD nToPage; 538 WORD nMinPage; 539 WORD nMaxPage; 540 WORD nCopies; 541 version (Win64) 542 WORD padding2; 543 HINSTANCE hInstance; 544 LPARAM lCustData; 545 LPPRINTHOOKPROC lpfnPrintHook; 546 LPSETUPHOOKPROC lpfnSetupHook; 547 LPCSTR lpPrintTemplateName; 548 LPCSTR lpSetupTemplateName; 549 HANDLE hPrintTemplate; 550 HANDLE hSetupTemplate; 551 } 552 alias PRINTDLGA* LPPRINTDLGA; 553 554 align (1) struct PRINTDLGW { 555 align(1): 556 DWORD lStructSize = PRINTDLGW.sizeof; 557 version (Win64) 558 DWORD padding1; 559 HWND hwndOwner; 560 HANDLE hDevMode; 561 HANDLE hDevNames; 562 HDC hDC; 563 DWORD Flags; 564 WORD nFromPage; 565 WORD nToPage; 566 WORD nMinPage; 567 WORD nMaxPage; 568 WORD nCopies; 569 version (Win64) 570 WORD padding2; 571 HINSTANCE hInstance; 572 LPARAM lCustData; 573 LPPRINTHOOKPROC lpfnPrintHook; 574 LPSETUPHOOKPROC lpfnSetupHook; 575 LPCWSTR lpPrintTemplateName; 576 LPCWSTR lpSetupTemplateName; 577 HANDLE hPrintTemplate; 578 HANDLE hSetupTemplate; 579 } 580 alias PRINTDLGW* LPPRINTDLGW; 581 582 //static if (_WIN32_WINNT >= 0x500) { 583 import win32.unknwn; // for LPUNKNOWN 584 import win32.prsht; // for HPROPSHEETPAGE 585 586 struct PRINTPAGERANGE { 587 DWORD nFromPage; 588 DWORD nToPage; 589 } 590 alias PRINTPAGERANGE* LPPRINTPAGERANGE; 591 592 struct PRINTDLGEXA { 593 DWORD lStructSize = PRINTDLGEXA.sizeof; 594 HWND hwndOwner; 595 HGLOBAL hDevMode; 596 HGLOBAL hDevNames; 597 HDC hDC; 598 DWORD Flags; 599 DWORD Flags2; 600 DWORD ExclusionFlags; 601 DWORD nPageRanges; 602 DWORD nMaxPageRanges; 603 LPPRINTPAGERANGE lpPageRanges; 604 DWORD nMinPage; 605 DWORD nMaxPage; 606 DWORD nCopies; 607 HINSTANCE hInstance; 608 LPCSTR lpPrintTemplateName; 609 LPUNKNOWN lpCallback; 610 DWORD nPropertyPages; 611 HPROPSHEETPAGE* lphPropertyPages; 612 DWORD nStartPage; 613 DWORD dwResultAction; 614 } 615 alias PRINTDLGEXA* LPPRINTDLGEXA; 616 617 struct PRINTDLGEXW { 618 DWORD lStructSize = PRINTDLGEXW.sizeof; 619 HWND hwndOwner; 620 HGLOBAL hDevMode; 621 HGLOBAL hDevNames; 622 HDC hDC; 623 DWORD Flags; 624 DWORD Flags2; 625 DWORD ExclusionFlags; 626 DWORD nPageRanges; 627 DWORD nMaxPageRanges; 628 LPPRINTPAGERANGE lpPageRanges; 629 DWORD nMinPage; 630 DWORD nMaxPage; 631 DWORD nCopies; 632 HINSTANCE hInstance; 633 LPCWSTR lpPrintTemplateName; 634 LPUNKNOWN lpCallback; 635 DWORD nPropertyPages; 636 HPROPSHEETPAGE* lphPropertyPages; 637 DWORD nStartPage; 638 DWORD dwResultAction; 639 } 640 alias PRINTDLGEXW* LPPRINTDLGEXW; 641 642 //} // _WIN32_WINNT >= 0x500 643 644 extern (Windows) nothrow @nogc { 645 BOOL ChooseColorA(LPCHOOSECOLORA); 646 BOOL ChooseColorW(LPCHOOSECOLORW); 647 BOOL ChooseFontA(LPCHOOSEFONTA); 648 BOOL ChooseFontW(LPCHOOSEFONTW); 649 DWORD CommDlgExtendedError(); 650 HWND FindTextA(LPFINDREPLACEA); 651 HWND FindTextW(LPFINDREPLACEW); 652 short GetFileTitleA(LPCSTR, LPSTR, WORD); 653 short GetFileTitleW(LPCWSTR, LPWSTR, WORD); 654 BOOL GetOpenFileNameA(LPOPENFILENAMEA); 655 BOOL GetOpenFileNameW(LPOPENFILENAMEW); 656 BOOL GetSaveFileNameA(LPOPENFILENAMEA); 657 BOOL GetSaveFileNameW(LPOPENFILENAMEW); 658 BOOL PageSetupDlgA(LPPAGESETUPDLGA); 659 BOOL PageSetupDlgW(LPPAGESETUPDLGW); 660 BOOL PrintDlgA(LPPRINTDLGA); 661 BOOL PrintDlgW(LPPRINTDLGW); 662 HWND ReplaceTextA(LPFINDREPLACEA); 663 HWND ReplaceTextW(LPFINDREPLACEW); 664 665 //static if (_WIN32_WINNT >= 0x500) { 666 HRESULT PrintDlgExA(LPPRINTDLGEXA); 667 HRESULT PrintDlgExW(LPPRINTDLGEXW); 668 //} 669 } 670 671 version (Unicode) { 672 alias CHOOSECOLORW CHOOSECOLOR; 673 alias CHOOSEFONTW CHOOSEFONT; 674 alias FINDREPLACEW FINDREPLACE; 675 alias OPENFILENAMEW OPENFILENAME; 676 alias OFNOTIFYW OFNOTIFY; 677 alias PAGESETUPDLGW PAGESETUPDLG; 678 alias PRINTDLGW PRINTDLG; 679 680 alias ChooseColorW ChooseColor; 681 alias ChooseFontW ChooseFont; 682 alias FindTextW FindText; 683 alias GetFileTitleW GetFileTitle; 684 alias GetOpenFileNameW GetOpenFileName; 685 alias GetSaveFileNameW GetSaveFileName; 686 alias PageSetupDlgW PageSetupDlg; 687 alias PrintDlgW PrintDlg; 688 alias ReplaceTextW ReplaceText; 689 690 //static if (_WIN32_WINNT >= 0x500) { 691 alias PRINTDLGEXW PRINTDLGEX; 692 alias PrintDlgExW PrintDlgEx; 693 //} 694 695 } else { // UNICODE 696 697 alias CHOOSECOLORA CHOOSECOLOR; 698 alias CHOOSEFONTA CHOOSEFONT; 699 alias FINDREPLACEA FINDREPLACE; 700 alias OPENFILENAMEA OPENFILENAME; 701 alias OFNOTIFYA OFNOTIFY; 702 alias PAGESETUPDLGA PAGESETUPDLG; 703 alias PRINTDLGA PRINTDLG; 704 705 alias ChooseColorA ChooseColor; 706 alias ChooseFontA ChooseFont; 707 alias FindTextA FindText; 708 alias GetFileTitleA GetFileTitle; 709 alias GetOpenFileNameA GetOpenFileName; 710 alias GetSaveFileNameA GetSaveFileName; 711 alias PageSetupDlgA PageSetupDlg; 712 alias PrintDlgA PrintDlg; 713 alias ReplaceTextA ReplaceText; 714 715 //static if (_WIN32_WINNT >= 0x500) { 716 alias PRINTDLGEXA PRINTDLGEX; 717 alias PrintDlgExA PrintDlgEx; 718 //} 719 720 } // UNICODE 721 722 alias CHOOSECOLOR* LPCHOOSECOLOR; 723 alias CHOOSEFONT* LPCHOOSEFONT; 724 alias FINDREPLACE* LPFINDREPLACE; 725 alias OPENFILENAME* LPOPENFILENAME; 726 alias OFNOTIFY* LPOFNOTIFY; 727 alias PAGESETUPDLG* LPPAGESETUPDLG; 728 alias PRINTDLG* LPPRINTDLG; 729 //static if (_WIN32_WINNT >= 0x500) { 730 alias PRINTDLGEX* LPPRINTDLGEX; 731 //}