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 14 DEFINE_GUID(IID_IPrintDialogCallback,0x5852a2c3,0x6530,0x11d1,0xb6,0xa3,0x0,0x0,0xf8,0x75,0x7b,0xf9); 15 DEFINE_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 27 extern "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 DECLARE_INTERFACE_(IPrintDialogCallback,IUnknown)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 DECLARE_INTERFACE_(IPrintDialogServices,IUnknown)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