1/** 2 * This file is part of the mingw-w64 runtime package. 3 * No warranty is given; refer to the file DISCLAIMER within this package. 4 */ 5 6#include <winapifamily.h> 7 8#ifndef _INC_COMMDLG 9#define _INC_COMMDLG 10 11#include <_mingw_unicode.h> 12 13#ifdef DEFINE_GUID 14DEFINE_GUID(IID_IPrintDialogCallback,0x5852a2c3,0x6530,0x11d1,0xb6,0xa3,0x0,0x0,0xf8,0x75,0x7b,0xf9); 15DEFINE_GUID(IID_IPrintDialogServices,0x509aaeda,0x5639,0x11d1,0xb6,0xa1,0x0,0x0,0xf8,0x75,0x7b,0xf9); 16#endif 17 18#ifndef GUID_DEFS_ONLY 19#include <prsht.h> 20#if !defined(_WIN64) 21#include <pshpack1.h> 22#endif 23 24#if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP) 25 26#ifdef __cplusplus 27extern "C" { 28#endif 29 30#ifndef WINCOMMDLGAPI 31#ifndef _COMDLG32_ 32#define WINCOMMDLGAPI DECLSPEC_IMPORT 33#else 34#define WINCOMMDLGAPI 35#endif 36#endif 37 38#ifndef SNDMSG 39#ifdef __cplusplus 40#define SNDMSG ::SendMessage 41#else 42#define SNDMSG SendMessage 43#endif 44#endif 45 46 typedef UINT_PTR (CALLBACK *LPOFNHOOKPROC) (HWND,UINT,WPARAM,LPARAM); 47 48#ifndef CDSIZEOF_STRUCT 49#define CDSIZEOF_STRUCT(structname,member) (((int)((LPBYTE)(&((structname*)0)->member) - ((LPBYTE)((structname*)0)))) + sizeof(((structname*)0)->member)) 50#endif 51 52 typedef struct tagOFN_NT4A { 53 DWORD lStructSize; 54 HWND hwndOwner; 55 HINSTANCE hInstance; 56 LPCSTR lpstrFilter; 57 LPSTR lpstrCustomFilter; 58 DWORD nMaxCustFilter; 59 DWORD nFilterIndex; 60 LPSTR lpstrFile; 61 DWORD nMaxFile; 62 LPSTR lpstrFileTitle; 63 DWORD nMaxFileTitle; 64 LPCSTR lpstrInitialDir; 65 LPCSTR lpstrTitle; 66 DWORD Flags; 67 WORD nFileOffset; 68 WORD nFileExtension; 69 LPCSTR lpstrDefExt; 70 LPARAM lCustData; 71 LPOFNHOOKPROC lpfnHook; 72 LPCSTR lpTemplateName; 73 } OPENFILENAME_NT4A,*LPOPENFILENAME_NT4A; 74 typedef struct tagOFN_NT4W { 75 DWORD lStructSize; 76 HWND hwndOwner; 77 HINSTANCE hInstance; 78 LPCWSTR lpstrFilter; 79 LPWSTR lpstrCustomFilter; 80 DWORD nMaxCustFilter; 81 DWORD nFilterIndex; 82 LPWSTR lpstrFile; 83 DWORD nMaxFile; 84 LPWSTR lpstrFileTitle; 85 DWORD nMaxFileTitle; 86 LPCWSTR lpstrInitialDir; 87 LPCWSTR lpstrTitle; 88 DWORD Flags; 89 WORD nFileOffset; 90 WORD nFileExtension; 91 LPCWSTR lpstrDefExt; 92 LPARAM lCustData; 93 LPOFNHOOKPROC lpfnHook; 94 LPCWSTR lpTemplateName; 95 } OPENFILENAME_NT4W,*LPOPENFILENAME_NT4W; 96 97 __MINGW_TYPEDEF_AW(OPENFILENAME_NT4) 98 __MINGW_TYPEDEF_AW(LPOPENFILENAME_NT4) 99 100 typedef struct tagOFNA { 101 DWORD lStructSize; 102 HWND hwndOwner; 103 HINSTANCE hInstance; 104 LPCSTR lpstrFilter; 105 LPSTR lpstrCustomFilter; 106 DWORD nMaxCustFilter; 107 DWORD nFilterIndex; 108 LPSTR lpstrFile; 109 DWORD nMaxFile; 110 LPSTR lpstrFileTitle; 111 DWORD nMaxFileTitle; 112 LPCSTR lpstrInitialDir; 113 LPCSTR lpstrTitle; 114 DWORD Flags; 115 WORD nFileOffset; 116 WORD nFileExtension; 117 LPCSTR lpstrDefExt; 118 LPARAM lCustData; 119 LPOFNHOOKPROC lpfnHook; 120 LPCSTR lpTemplateName; 121 void *pvReserved; 122 DWORD dwReserved; 123 DWORD FlagsEx; 124 } OPENFILENAMEA,*LPOPENFILENAMEA; 125 typedef struct tagOFNW { 126 DWORD lStructSize; 127 HWND hwndOwner; 128 HINSTANCE hInstance; 129 LPCWSTR lpstrFilter; 130 LPWSTR lpstrCustomFilter; 131 DWORD nMaxCustFilter; 132 DWORD nFilterIndex; 133 LPWSTR lpstrFile; 134 DWORD nMaxFile; 135 LPWSTR lpstrFileTitle; 136 DWORD nMaxFileTitle; 137 LPCWSTR lpstrInitialDir; 138 LPCWSTR lpstrTitle; 139 DWORD Flags; 140 WORD nFileOffset; 141 WORD nFileExtension; 142 LPCWSTR lpstrDefExt; 143 LPARAM lCustData; 144 LPOFNHOOKPROC lpfnHook; 145 LPCWSTR lpTemplateName; 146 void *pvReserved; 147 DWORD dwReserved; 148 DWORD FlagsEx; 149 } OPENFILENAMEW,*LPOPENFILENAMEW; 150 151 __MINGW_TYPEDEF_AW(OPENFILENAME) 152 __MINGW_TYPEDEF_AW(LPOPENFILENAME) 153 154#define OPENFILENAME_SIZE_VERSION_400A CDSIZEOF_STRUCT(OPENFILENAMEA,lpTemplateName) 155#define OPENFILENAME_SIZE_VERSION_400W CDSIZEOF_STRUCT(OPENFILENAMEW,lpTemplateName) 156 157#define OPENFILENAME_SIZE_VERSION_400 __MINGW_NAME_AW(OPENFILENAME_SIZE_VERSION_400) 158 159 WINCOMMDLGAPI WINBOOL WINAPI GetOpenFileNameA(LPOPENFILENAMEA); 160 WINCOMMDLGAPI WINBOOL WINAPI GetOpenFileNameW(LPOPENFILENAMEW); 161 162#define GetOpenFileName __MINGW_NAME_AW(GetOpenFileName) 163 164 WINCOMMDLGAPI WINBOOL WINAPI GetSaveFileNameA(LPOPENFILENAMEA); 165 WINCOMMDLGAPI WINBOOL WINAPI GetSaveFileNameW(LPOPENFILENAMEW); 166 167#define GetSaveFileName __MINGW_NAME_AW(GetSaveFileName) 168 169 WINCOMMDLGAPI short WINAPI GetFileTitleA(LPCSTR,LPSTR,WORD); 170 WINCOMMDLGAPI short WINAPI GetFileTitleW(LPCWSTR,LPWSTR,WORD); 171 172#define GetFileTitle __MINGW_NAME_AW(GetFileTitle) 173 174#define OFN_READONLY 0x1 175#define OFN_OVERWRITEPROMPT 0x2 176#define OFN_HIDEREADONLY 0x4 177#define OFN_NOCHANGEDIR 0x8 178#define OFN_SHOWHELP 0x10 179#define OFN_ENABLEHOOK 0x20 180#define OFN_ENABLETEMPLATE 0x40 181#define OFN_ENABLETEMPLATEHANDLE 0x80 182#define OFN_NOVALIDATE 0x100 183#define OFN_ALLOWMULTISELECT 0x200 184#define OFN_EXTENSIONDIFFERENT 0x400 185#define OFN_PATHMUSTEXIST 0x800 186#define OFN_FILEMUSTEXIST 0x1000 187#define OFN_CREATEPROMPT 0x2000 188#define OFN_SHAREAWARE 0x4000 189#define OFN_NOREADONLYRETURN 0x8000 190#define OFN_NOTESTFILECREATE 0x10000 191#define OFN_NONETWORKBUTTON 0x20000 192#define OFN_NOLONGNAMES 0x40000 193#define OFN_EXPLORER 0x80000 194#define OFN_NODEREFERENCELINKS 0x100000 195#define OFN_LONGNAMES 0x200000 196#define OFN_ENABLEINCLUDENOTIFY 0x400000 197#define OFN_ENABLESIZING 0x800000 198#define OFN_DONTADDTORECENT 0x2000000 199#define OFN_FORCESHOWHIDDEN 0x10000000 200#define OFN_EX_NOPLACESBAR 0x1 201#define OFN_SHAREFALLTHROUGH 2 202#define OFN_SHARENOWARN 1 203#define OFN_SHAREWARN 0 204 205 typedef UINT_PTR (CALLBACK *LPCCHOOKPROC) (HWND,UINT,WPARAM,LPARAM); 206 207 typedef struct _OFNOTIFYA { 208 NMHDR hdr; 209 LPOPENFILENAMEA lpOFN; 210 LPSTR pszFile; 211 } OFNOTIFYA,*LPOFNOTIFYA; 212 213 typedef struct _OFNOTIFYW { 214 NMHDR hdr; 215 LPOPENFILENAMEW lpOFN; 216 LPWSTR pszFile; 217 } OFNOTIFYW,*LPOFNOTIFYW; 218 219 __MINGW_TYPEDEF_AW(OFNOTIFY) 220 __MINGW_TYPEDEF_AW(LPOFNOTIFY) 221 222 typedef struct _OFNOTIFYEXA { 223 NMHDR hdr; 224 LPOPENFILENAMEA lpOFN; 225 LPVOID psf; 226 LPVOID pidl; 227 } OFNOTIFYEXA,*LPOFNOTIFYEXA; 228 229 typedef struct _OFNOTIFYEXW { 230 NMHDR hdr; 231 LPOPENFILENAMEW lpOFN; 232 LPVOID psf; 233 LPVOID pidl; 234 } OFNOTIFYEXW,*LPOFNOTIFYEXW; 235 236 __MINGW_TYPEDEF_AW(OFNOTIFYEX) 237 __MINGW_TYPEDEF_AW(LPOFNOTIFYEX) 238 239#define CDN_FIRST (0U-601U) 240#define CDN_LAST (0U-699U) 241 242#define CDN_INITDONE (CDN_FIRST) 243#define CDN_SELCHANGE (CDN_FIRST - 1) 244#define CDN_FOLDERCHANGE (CDN_FIRST - 2) 245#define CDN_SHAREVIOLATION (CDN_FIRST - 3) 246#define CDN_HELP (CDN_FIRST - 4) 247#define CDN_FILEOK (CDN_FIRST - 5) 248#define CDN_TYPECHANGE (CDN_FIRST - 6) 249#define CDN_INCLUDEITEM (CDN_FIRST - 7) 250 251#define CDM_FIRST (WM_USER + 100) 252#define CDM_LAST (WM_USER + 200) 253 254#define CDM_GETSPEC (CDM_FIRST) 255#define CommDlg_OpenSave_GetSpecA(_hdlg,_psz,_cbmax) (int)SNDMSG(_hdlg,CDM_GETSPEC,(WPARAM)_cbmax,(LPARAM)(LPSTR)_psz) 256#define CommDlg_OpenSave_GetSpecW(_hdlg,_psz,_cbmax) (int)SNDMSG(_hdlg,CDM_GETSPEC,(WPARAM)_cbmax,(LPARAM)(LPWSTR)_psz) 257 258#define CommDlg_OpenSave_GetSpec __MINGW_NAME_AW(CommDlg_OpenSave_GetSpec) 259 260#define CDM_GETFILEPATH (CDM_FIRST + 1) 261#define CommDlg_OpenSave_GetFilePathA(_hdlg,_psz,_cbmax) (int)SNDMSG(_hdlg,CDM_GETFILEPATH,(WPARAM)_cbmax,(LPARAM)(LPSTR)_psz) 262#define CommDlg_OpenSave_GetFilePathW(_hdlg,_psz,_cbmax) (int)SNDMSG(_hdlg,CDM_GETFILEPATH,(WPARAM)_cbmax,(LPARAM)(LPWSTR)_psz) 263 264#define CommDlg_OpenSave_GetFilePath __MINGW_NAME_AW(CommDlg_OpenSave_GetFilePath) 265 266#define CDM_GETFOLDERPATH (CDM_FIRST + 2) 267#define CommDlg_OpenSave_GetFolderPathA(_hdlg,_psz,_cbmax) (int)SNDMSG(_hdlg,CDM_GETFOLDERPATH,(WPARAM)_cbmax,(LPARAM)(LPSTR)_psz) 268#define CommDlg_OpenSave_GetFolderPathW(_hdlg,_psz,_cbmax) (int)SNDMSG(_hdlg,CDM_GETFOLDERPATH,(WPARAM)_cbmax,(LPARAM)(LPWSTR)_psz) 269 270#define CommDlg_OpenSave_GetFolderPath __MINGW_NAME_AW(CommDlg_OpenSave_GetFolderPath) 271 272#define CDM_GETFOLDERIDLIST (CDM_FIRST + 3) 273#define CommDlg_OpenSave_GetFolderIDList(_hdlg,_pidl,_cbmax) (int)SNDMSG(_hdlg,CDM_GETFOLDERIDLIST,(WPARAM)_cbmax,(LPARAM)(LPVOID)_pidl) 274#define CDM_SETCONTROLTEXT (CDM_FIRST + 4) 275#define CommDlg_OpenSave_SetControlText(_hdlg,_id,_text) (void)SNDMSG(_hdlg,CDM_SETCONTROLTEXT,(WPARAM)_id,(LPARAM)(LPSTR)_text) 276#define CDM_HIDECONTROL (CDM_FIRST + 5) 277#define CommDlg_OpenSave_HideControl(_hdlg,_id) (void)SNDMSG(_hdlg,CDM_HIDECONTROL,(WPARAM)_id,0) 278#define CDM_SETDEFEXT (CDM_FIRST + 6) 279#define CommDlg_OpenSave_SetDefExt(_hdlg,_pszext) (void)SNDMSG(_hdlg,CDM_SETDEFEXT,0,(LPARAM)(LPSTR)_pszext) 280 281 typedef struct tagCHOOSECOLORA { 282 DWORD lStructSize; 283 HWND hwndOwner; 284 HWND hInstance; 285 COLORREF rgbResult; 286 COLORREF *lpCustColors; 287 DWORD Flags; 288 LPARAM lCustData; 289 LPCCHOOKPROC lpfnHook; 290 LPCSTR lpTemplateName; 291 } CHOOSECOLORA,*LPCHOOSECOLORA; 292 typedef struct tagCHOOSECOLORW { 293 DWORD lStructSize; 294 HWND hwndOwner; 295 HWND hInstance; 296 COLORREF rgbResult; 297 COLORREF *lpCustColors; 298 DWORD Flags; 299 LPARAM lCustData; 300 LPCCHOOKPROC lpfnHook; 301 LPCWSTR lpTemplateName; 302 } CHOOSECOLORW,*LPCHOOSECOLORW; 303 304 __MINGW_TYPEDEF_AW(CHOOSECOLOR) 305 __MINGW_TYPEDEF_AW(LPCHOOSECOLOR) 306 307 WINCOMMDLGAPI WINBOOL WINAPI ChooseColorA(LPCHOOSECOLORA); 308 WINCOMMDLGAPI WINBOOL WINAPI ChooseColorW(LPCHOOSECOLORW); 309 310#define ChooseColor __MINGW_NAME_AW(ChooseColor) 311 312#define CC_RGBINIT 0x1 313#define CC_FULLOPEN 0x2 314#define CC_PREVENTFULLOPEN 0x4 315#define CC_SHOWHELP 0x8 316#define CC_ENABLEHOOK 0x10 317#define CC_ENABLETEMPLATE 0x20 318#define CC_ENABLETEMPLATEHANDLE 0x40 319#define CC_SOLIDCOLOR 0x80 320#define CC_ANYCOLOR 0x100 321 322 typedef UINT_PTR (CALLBACK *LPFRHOOKPROC) (HWND,UINT,WPARAM,LPARAM); 323 324 typedef struct tagFINDREPLACEA { 325 DWORD lStructSize; 326 HWND hwndOwner; 327 HINSTANCE hInstance; 328 DWORD Flags; 329 LPSTR lpstrFindWhat; 330 LPSTR lpstrReplaceWith; 331 WORD wFindWhatLen; 332 WORD wReplaceWithLen; 333 LPARAM lCustData; 334 LPFRHOOKPROC lpfnHook; 335 LPCSTR lpTemplateName; 336 } FINDREPLACEA,*LPFINDREPLACEA; 337 338 typedef struct tagFINDREPLACEW { 339 DWORD lStructSize; 340 HWND hwndOwner; 341 HINSTANCE hInstance; 342 DWORD Flags; 343 LPWSTR lpstrFindWhat; 344 LPWSTR lpstrReplaceWith; 345 WORD wFindWhatLen; 346 WORD wReplaceWithLen; 347 LPARAM lCustData; 348 LPFRHOOKPROC lpfnHook; 349 LPCWSTR lpTemplateName; 350 } FINDREPLACEW,*LPFINDREPLACEW; 351 352 __MINGW_TYPEDEF_AW(FINDREPLACE) 353 __MINGW_TYPEDEF_AW(LPFINDREPLACE) 354 355#define FR_DOWN 0x1 356#define FR_WHOLEWORD 0x2 357#define FR_MATCHCASE 0x4 358#define FR_FINDNEXT 0x8 359#define FR_REPLACE 0x10 360#define FR_REPLACEALL 0x20 361#define FR_DIALOGTERM 0x40 362#define FR_SHOWHELP 0x80 363#define FR_ENABLEHOOK 0x100 364#define FR_ENABLETEMPLATE 0x200 365#define FR_NOUPDOWN 0x400 366#define FR_NOMATCHCASE 0x800 367#define FR_NOWHOLEWORD 0x1000 368#define FR_ENABLETEMPLATEHANDLE 0x2000 369#define FR_HIDEUPDOWN 0x4000 370#define FR_HIDEMATCHCASE 0x8000 371#define FR_HIDEWHOLEWORD 0x10000 372#define FR_RAW 0x20000 373#define FR_MATCHDIAC 0x20000000 374#define FR_MATCHKASHIDA 0x40000000 375#define FR_MATCHALEFHAMZA 0x80000000 376 377 WINCOMMDLGAPI HWND WINAPI FindTextA(LPFINDREPLACEA); 378 WINCOMMDLGAPI HWND WINAPI FindTextW(LPFINDREPLACEW); 379 380#define FindText __MINGW_NAME_AW(FindText) 381 382 WINCOMMDLGAPI HWND WINAPI ReplaceTextA(LPFINDREPLACEA); 383 WINCOMMDLGAPI HWND WINAPI ReplaceTextW(LPFINDREPLACEW); 384 385#define ReplaceText __MINGW_NAME_AW(ReplaceText) 386 387 typedef UINT_PTR (CALLBACK *LPCFHOOKPROC) (HWND,UINT,WPARAM,LPARAM); 388 389 typedef struct tagCHOOSEFONTA { 390 DWORD lStructSize; 391 HWND hwndOwner; 392 HDC hDC; 393 LPLOGFONTA lpLogFont; 394 INT iPointSize; 395 DWORD Flags; 396 COLORREF rgbColors; 397 LPARAM lCustData; 398 LPCFHOOKPROC lpfnHook; 399 LPCSTR lpTemplateName; 400 HINSTANCE hInstance; 401 LPSTR lpszStyle; 402 WORD nFontType; 403 WORD ___MISSING_ALIGNMENT__; 404 INT nSizeMin; 405 INT nSizeMax; 406 } CHOOSEFONTA,*LPCHOOSEFONTA; 407 408 typedef struct tagCHOOSEFONTW { 409 DWORD lStructSize; 410 HWND hwndOwner; 411 HDC hDC; 412 LPLOGFONTW lpLogFont; 413 INT iPointSize; 414 DWORD Flags; 415 COLORREF rgbColors; 416 LPARAM lCustData; 417 LPCFHOOKPROC lpfnHook; 418 LPCWSTR lpTemplateName; 419 HINSTANCE hInstance; 420 LPWSTR lpszStyle; 421 WORD nFontType; 422 WORD ___MISSING_ALIGNMENT__; 423 INT nSizeMin; 424 INT nSizeMax; 425 } CHOOSEFONTW,*LPCHOOSEFONTW; 426 427 __MINGW_TYPEDEF_AW(CHOOSEFONT) 428 __MINGW_TYPEDEF_AW(LPCHOOSEFONT) 429 430 WINCOMMDLGAPI WINBOOL WINAPI ChooseFontA(LPCHOOSEFONTA); 431 WINCOMMDLGAPI WINBOOL WINAPI ChooseFontW(LPCHOOSEFONTW); 432 433#define ChooseFont __MINGW_NAME_AW(ChooseFont) 434 435#define CF_SCREENFONTS 0x1 436#define CF_PRINTERFONTS 0x2 437#define CF_BOTH (CF_SCREENFONTS | CF_PRINTERFONTS) 438#define CF_SHOWHELP __MSABI_LONG(0x4) 439#define CF_ENABLEHOOK __MSABI_LONG(0x8) 440#define CF_ENABLETEMPLATE __MSABI_LONG(0x10) 441#define CF_ENABLETEMPLATEHANDLE __MSABI_LONG(0x20) 442#define CF_INITTOLOGFONTSTRUCT __MSABI_LONG(0x40) 443#define CF_USESTYLE __MSABI_LONG(0x80) 444#define CF_EFFECTS __MSABI_LONG(0x100) 445#define CF_APPLY __MSABI_LONG(0x200) 446#define CF_ANSIONLY __MSABI_LONG(0x400) 447#define CF_SCRIPTSONLY CF_ANSIONLY 448#define CF_NOVECTORFONTS __MSABI_LONG(0x800) 449#define CF_NOOEMFONTS CF_NOVECTORFONTS 450#define CF_NOSIMULATIONS __MSABI_LONG(0x1000) 451#define CF_LIMITSIZE __MSABI_LONG(0x2000) 452#define CF_FIXEDPITCHONLY __MSABI_LONG(0x4000) 453#define CF_WYSIWYG __MSABI_LONG(0x8000) 454#define CF_FORCEFONTEXIST __MSABI_LONG(0x10000) 455#define CF_SCALABLEONLY __MSABI_LONG(0x20000) 456#define CF_TTONLY __MSABI_LONG(0x40000) 457#define CF_NOFACESEL __MSABI_LONG(0x80000) 458#define CF_NOSTYLESEL __MSABI_LONG(0x100000) 459#define CF_NOSIZESEL __MSABI_LONG(0x200000) 460#define CF_SELECTSCRIPT __MSABI_LONG(0x400000) 461#define CF_NOSCRIPTSEL __MSABI_LONG(0x800000) 462#define CF_NOVERTFONTS __MSABI_LONG(0x1000000) 463#if WINVER >= 0x0601 464#define CF_INACTIVEFONTS __MSABI_LONG (0x02000000) 465#endif 466 467#define SIMULATED_FONTTYPE 0x8000 468#define PRINTER_FONTTYPE 0x4000 469#define SCREEN_FONTTYPE 0x2000 470#define BOLD_FONTTYPE 0x100 471#define ITALIC_FONTTYPE 0x200 472#define REGULAR_FONTTYPE 0x400 473 474#ifdef WINNT 475#define PS_OPENTYPE_FONTTYPE 0x10000 476#define TT_OPENTYPE_FONTTYPE 0x20000 477#define TYPE1_FONTTYPE 0x40000 478#if WINVER >= 0x0601 479#define SYMBOL_FONTTYPE 0x80000 480#endif 481#endif 482 483#define WM_CHOOSEFONT_GETLOGFONT (WM_USER + 1) 484#define WM_CHOOSEFONT_SETLOGFONT (WM_USER + 101) 485#define WM_CHOOSEFONT_SETFLAGS (WM_USER + 102) 486 487#define LBSELCHSTRINGA "commdlg_LBSelChangedNotify" 488#define SHAREVISTRINGA "commdlg_ShareViolation" 489#define FILEOKSTRINGA "commdlg_FileNameOK" 490#define COLOROKSTRINGA "commdlg_ColorOK" 491#define SETRGBSTRINGA "commdlg_SetRGBColor" 492#define HELPMSGSTRINGA "commdlg_help" 493#define FINDMSGSTRINGA "commdlg_FindReplace" 494 495#define LBSELCHSTRINGW L"commdlg_LBSelChangedNotify" 496#define SHAREVISTRINGW L"commdlg_ShareViolation" 497#define FILEOKSTRINGW L"commdlg_FileNameOK" 498#define COLOROKSTRINGW L"commdlg_ColorOK" 499#define SETRGBSTRINGW L"commdlg_SetRGBColor" 500#define HELPMSGSTRINGW L"commdlg_help" 501#define FINDMSGSTRINGW L"commdlg_FindReplace" 502 503#define LBSELCHSTRING __MINGW_NAME_AW(LBSELCHSTRING) 504#define SHAREVISTRING __MINGW_NAME_AW(SHAREVISTRING) 505#define FILEOKSTRING __MINGW_NAME_AW(FILEOKSTRING) 506#define COLOROKSTRING __MINGW_NAME_AW(COLOROKSTRING) 507#define SETRGBSTRING __MINGW_NAME_AW(SETRGBSTRING) 508#define HELPMSGSTRING __MINGW_NAME_AW(HELPMSGSTRING) 509#define FINDMSGSTRING __MINGW_NAME_AW(FINDMSGSTRING) 510 511#define CD_LBSELNOITEMS -1 512#define CD_LBSELCHANGE 0 513#define CD_LBSELSUB 1 514#define CD_LBSELADD 2 515 516 typedef UINT_PTR (CALLBACK *LPPRINTHOOKPROC) (HWND,UINT,WPARAM,LPARAM); 517 typedef UINT_PTR (CALLBACK *LPSETUPHOOKPROC) (HWND,UINT,WPARAM,LPARAM); 518 519 typedef struct tagPDA { 520 DWORD lStructSize; 521 HWND hwndOwner; 522 HGLOBAL hDevMode; 523 HGLOBAL hDevNames; 524 HDC hDC; 525 DWORD Flags; 526 WORD nFromPage; 527 WORD nToPage; 528 WORD nMinPage; 529 WORD nMaxPage; 530 WORD nCopies; 531 HINSTANCE hInstance; 532 LPARAM lCustData; 533 LPPRINTHOOKPROC lpfnPrintHook; 534 LPSETUPHOOKPROC lpfnSetupHook; 535 LPCSTR lpPrintTemplateName; 536 LPCSTR lpSetupTemplateName; 537 HGLOBAL hPrintTemplate; 538 HGLOBAL hSetupTemplate; 539 } PRINTDLGA,*LPPRINTDLGA; 540 541 typedef struct tagPDW { 542 DWORD lStructSize; 543 HWND hwndOwner; 544 HGLOBAL hDevMode; 545 HGLOBAL hDevNames; 546 HDC hDC; 547 DWORD Flags; 548 WORD nFromPage; 549 WORD nToPage; 550 WORD nMinPage; 551 WORD nMaxPage; 552 WORD nCopies; 553 HINSTANCE hInstance; 554 LPARAM lCustData; 555 LPPRINTHOOKPROC lpfnPrintHook; 556 LPSETUPHOOKPROC lpfnSetupHook; 557 LPCWSTR lpPrintTemplateName; 558 LPCWSTR lpSetupTemplateName; 559 HGLOBAL hPrintTemplate; 560 HGLOBAL hSetupTemplate; 561 } PRINTDLGW,*LPPRINTDLGW; 562 563 __MINGW_TYPEDEF_AW(PRINTDLG) 564 __MINGW_TYPEDEF_AW(LPPRINTDLG) 565 566 WINCOMMDLGAPI WINBOOL WINAPI PrintDlgA(LPPRINTDLGA); 567 WINCOMMDLGAPI WINBOOL WINAPI PrintDlgW(LPPRINTDLGW); 568 569#define PrintDlg __MINGW_NAME_AW(PrintDlg) 570 571#ifdef STDMETHOD 572#undef INTERFACE 573#define INTERFACE IPrintDialogCallback 574 575 DECLARE_INTERFACE_(IPrintDialogCallback,IUnknown) { 576#ifndef __cplusplus 577 STDMETHOD(QueryInterface) (THIS_ REFIID riid,LPVOID *ppvObj) PURE; 578 STDMETHOD_(ULONG,AddRef) (THIS) PURE; 579 STDMETHOD_(ULONG,Release) (THIS) PURE; 580#endif 581 STDMETHOD(InitDone) (THIS) PURE; 582 STDMETHOD(SelectionChange) (THIS) PURE; 583 STDMETHOD(HandleMessage) (THIS_ HWND hDlg,UINT uMsg,WPARAM wParam,LPARAM lParam,LRESULT *pResult) PURE; 584 }; 585 586#undef INTERFACE 587#define INTERFACE IPrintDialogServices 588 DECLARE_INTERFACE_(IPrintDialogServices,IUnknown) { 589#ifndef __cplusplus 590 STDMETHOD(QueryInterface) (THIS_ REFIID riid,LPVOID *ppvObj) PURE; 591 STDMETHOD_(ULONG,AddRef) (THIS) PURE; 592 STDMETHOD_(ULONG,Release) (THIS) PURE; 593#endif 594 STDMETHOD(GetCurrentDevMode) (THIS_ LPDEVMODE pDevMode,UINT *pcbSize) PURE; 595 STDMETHOD(GetCurrentPrinterName) (THIS_ LPTSTR pPrinterName,UINT *pcchSize) PURE; 596 STDMETHOD(GetCurrentPortName) (THIS_ LPTSTR pPortName,UINT *pcchSize) PURE; 597 }; 598 599 typedef struct tagPRINTPAGERANGE { 600 DWORD nFromPage; 601 DWORD nToPage; 602 } PRINTPAGERANGE,*LPPRINTPAGERANGE; 603 604 typedef struct tagPDEXA { 605 DWORD lStructSize; 606 HWND hwndOwner; 607 HGLOBAL hDevMode; 608 HGLOBAL hDevNames; 609 HDC hDC; 610 DWORD Flags; 611 DWORD Flags2; 612 DWORD ExclusionFlags; 613 DWORD nPageRanges; 614 DWORD nMaxPageRanges; 615 LPPRINTPAGERANGE lpPageRanges; 616 DWORD nMinPage; 617 DWORD nMaxPage; 618 DWORD nCopies; 619 HINSTANCE hInstance; 620 LPCSTR lpPrintTemplateName; 621 LPUNKNOWN lpCallback; 622 DWORD nPropertyPages; 623 HPROPSHEETPAGE *lphPropertyPages; 624 DWORD nStartPage; 625 DWORD dwResultAction; 626 } PRINTDLGEXA,*LPPRINTDLGEXA; 627 628 typedef struct tagPDEXW { 629 DWORD lStructSize; 630 HWND hwndOwner; 631 HGLOBAL hDevMode; 632 HGLOBAL hDevNames; 633 HDC hDC; 634 DWORD Flags; 635 DWORD Flags2; 636 DWORD ExclusionFlags; 637 DWORD nPageRanges; 638 DWORD nMaxPageRanges; 639 LPPRINTPAGERANGE lpPageRanges; 640 DWORD nMinPage; 641 DWORD nMaxPage; 642 DWORD nCopies; 643 HINSTANCE hInstance; 644 LPCWSTR lpPrintTemplateName; 645 LPUNKNOWN lpCallback; 646 DWORD nPropertyPages; 647 HPROPSHEETPAGE *lphPropertyPages; 648 DWORD nStartPage; 649 DWORD dwResultAction; 650 } PRINTDLGEXW,*LPPRINTDLGEXW; 651 652 __MINGW_TYPEDEF_AW(PRINTDLGEX) 653 __MINGW_TYPEDEF_AW(LPPRINTDLGEX) 654 655 WINCOMMDLGAPI HRESULT WINAPI PrintDlgExA(LPPRINTDLGEXA); 656 WINCOMMDLGAPI HRESULT WINAPI PrintDlgExW(LPPRINTDLGEXW); 657 658#define PrintDlgEx __MINGW_NAME_AW(PrintDlgEx) 659#endif 660 661#define PD_ALLPAGES 0x0 662#define PD_SELECTION 0x1 663#define PD_PAGENUMS 0x2 664#define PD_NOSELECTION 0x4 665#define PD_NOPAGENUMS 0x8 666#define PD_COLLATE 0x10 667#define PD_PRINTTOFILE 0x20 668#define PD_PRINTSETUP 0x40 669#define PD_NOWARNING 0x80 670#define PD_RETURNDC 0x100 671#define PD_RETURNIC 0x200 672#define PD_RETURNDEFAULT 0x400 673#define PD_SHOWHELP 0x800 674#define PD_ENABLEPRINTHOOK 0x1000 675#define PD_ENABLESETUPHOOK 0x2000 676#define PD_ENABLEPRINTTEMPLATE 0x4000 677#define PD_ENABLESETUPTEMPLATE 0x8000 678#define PD_ENABLEPRINTTEMPLATEHANDLE 0x10000 679#define PD_ENABLESETUPTEMPLATEHANDLE 0x20000 680#define PD_USEDEVMODECOPIES 0x40000 681#define PD_USEDEVMODECOPIESANDCOLLATE 0x40000 682#define PD_DISABLEPRINTTOFILE 0x80000 683#define PD_HIDEPRINTTOFILE 0x100000 684#define PD_NONETWORKBUTTON 0x200000 685#define PD_CURRENTPAGE 0x400000 686#define PD_NOCURRENTPAGE 0x800000 687#define PD_EXCLUSIONFLAGS 0x1000000 688#define PD_USELARGETEMPLATE 0x10000000 689 690#define PD_EXCL_COPIESANDCOLLATE (DM_COPIES | DM_COLLATE) 691#define START_PAGE_GENERAL 0xffffffff 692 693#define PD_RESULT_CANCEL 0 694#define PD_RESULT_PRINT 1 695#define PD_RESULT_APPLY 2 696 697 typedef struct tagDEVNAMES { 698 WORD wDriverOffset; 699 WORD wDeviceOffset; 700 WORD wOutputOffset; 701 WORD wDefault; 702 } DEVNAMES,*LPDEVNAMES; 703 704#define DN_DEFAULTPRN 0x1 705 706 WINCOMMDLGAPI DWORD WINAPI CommDlgExtendedError(VOID); 707 708#define WM_PSD_PAGESETUPDLG (WM_USER) 709#define WM_PSD_FULLPAGERECT (WM_USER+1) 710#define WM_PSD_MINMARGINRECT (WM_USER+2) 711#define WM_PSD_MARGINRECT (WM_USER+3) 712#define WM_PSD_GREEKTEXTRECT (WM_USER+4) 713#define WM_PSD_ENVSTAMPRECT (WM_USER+5) 714#define WM_PSD_YAFULLPAGERECT (WM_USER+6) 715 716 typedef UINT_PTR (CALLBACK *LPPAGEPAINTHOOK)(HWND,UINT,WPARAM,LPARAM); 717 typedef UINT_PTR (CALLBACK *LPPAGESETUPHOOK)(HWND,UINT,WPARAM,LPARAM); 718 719 typedef struct tagPSDA { 720 DWORD lStructSize; 721 HWND hwndOwner; 722 HGLOBAL hDevMode; 723 HGLOBAL hDevNames; 724 DWORD Flags; 725 POINT ptPaperSize; 726 RECT rtMinMargin; 727 RECT rtMargin; 728 HINSTANCE hInstance; 729 LPARAM lCustData; 730 LPPAGESETUPHOOK lpfnPageSetupHook; 731 LPPAGEPAINTHOOK lpfnPagePaintHook; 732 LPCSTR lpPageSetupTemplateName; 733 HGLOBAL hPageSetupTemplate; 734 } PAGESETUPDLGA,*LPPAGESETUPDLGA; 735 736 typedef struct tagPSDW { 737 DWORD lStructSize; 738 HWND hwndOwner; 739 HGLOBAL hDevMode; 740 HGLOBAL hDevNames; 741 DWORD Flags; 742 POINT ptPaperSize; 743 RECT rtMinMargin; 744 RECT rtMargin; 745 HINSTANCE hInstance; 746 LPARAM lCustData; 747 LPPAGESETUPHOOK lpfnPageSetupHook; 748 LPPAGEPAINTHOOK lpfnPagePaintHook; 749 LPCWSTR lpPageSetupTemplateName; 750 HGLOBAL hPageSetupTemplate; 751 } PAGESETUPDLGW,*LPPAGESETUPDLGW; 752 753 __MINGW_TYPEDEF_AW(PAGESETUPDLG) 754 __MINGW_TYPEDEF_AW(LPPAGESETUPDLG) 755 756 WINCOMMDLGAPI WINBOOL WINAPI PageSetupDlgA(LPPAGESETUPDLGA); 757 WINCOMMDLGAPI WINBOOL WINAPI PageSetupDlgW(LPPAGESETUPDLGW); 758 759#define PageSetupDlg __MINGW_NAME_AW(PageSetupDlg) 760 761#define PSD_DEFAULTMINMARGINS 0x0 762#define PSD_INWININIINTLMEASURE 0x0 763#define PSD_MINMARGINS 0x1 764#define PSD_MARGINS 0x2 765#define PSD_INTHOUSANDTHSOFINCHES 0x4 766#define PSD_INHUNDREDTHSOFMILLIMETERS 0x8 767#define PSD_DISABLEMARGINS 0x10 768#define PSD_DISABLEPRINTER 0x20 769#define PSD_NOWARNING 0x80 770#define PSD_DISABLEORIENTATION 0x100 771#define PSD_RETURNDEFAULT 0x400 772#define PSD_DISABLEPAPER 0x200 773#define PSD_SHOWHELP 0x800 774#define PSD_ENABLEPAGESETUPHOOK 0x2000 775#define PSD_ENABLEPAGESETUPTEMPLATE 0x8000 776#define PSD_ENABLEPAGESETUPTEMPLATEHANDLE 0x20000 777#define PSD_ENABLEPAGEPAINTHOOK 0x40000 778#define PSD_DISABLEPAGEPAINTING 0x80000 779#define PSD_NONETWORKBUTTON 0x200000 780 781#ifdef __cplusplus 782} 783#endif 784 785#endif 786 787#ifndef _WIN64 788#include <poppack.h> 789#endif 790#endif 791#endif 792