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