Added get_page_size function.
[wine] / include / commdlg.h
1 /* 
2  * COMMDLG - Common Wine Dialog ... :-)
3  */
4
5 #ifndef __WINE_COMMDLG_H
6 #define __WINE_COMMDLG_H
7
8 #ifdef __cplusplus
9 extern "C" {
10 #endif
11
12 #include "windef.h"             /* needed for CHOOSEFONT structure */
13 #include "winuser.h"
14 #include "pshpack1.h"
15
16 #define OFN_READONLY                 0x00000001
17 #define OFN_OVERWRITEPROMPT          0x00000002
18 #define OFN_HIDEREADONLY             0x00000004
19 #define OFN_NOCHANGEDIR              0x00000008
20 #define OFN_SHOWHELP                 0x00000010
21 #define OFN_ENABLEHOOK               0x00000020
22 #define OFN_ENABLETEMPLATE           0x00000040
23 #define OFN_ENABLETEMPLATEHANDLE     0x00000080
24 #define OFN_NOVALIDATE               0x00000100
25 #define OFN_ALLOWMULTISELECT         0x00000200
26 #define OFN_EXTENSIONDIFFERENT       0x00000400
27 #define OFN_PATHMUSTEXIST            0x00000800
28 #define OFN_FILEMUSTEXIST            0x00001000
29 #define OFN_CREATEPROMPT             0x00002000
30 #define OFN_SHAREAWARE               0x00004000
31 #define OFN_NOREADONLYRETURN         0x00008000
32 #define OFN_NOTESTFILECREATE         0x00010000
33 #define OFN_NONETWORKBUTTON          0x00020000 
34 #define OFN_NOLONGNAMES              0x00040000
35 #define OFN_EXPLORER                 0x00080000
36 #define OFN_NODEREFERENCELINKS       0x00100000
37 #define OFN_LONGNAMES                0x00200000
38
39 /* WINE internal flags */
40 #define OFN_UNICODE                  0x40000000 /*to differ between 32W/A hook*/
41 #define OFN_WINE                     0x80000000 /* comdlg32 */
42
43 #define OFN_SHAREFALLTHROUGH     2
44 #define OFN_SHARENOWARN          1
45 #define OFN_SHAREWARN            0
46
47 #define SAVE_DIALOG  1
48 #define OPEN_DIALOG  2
49     
50 typedef UINT16 (CALLBACK *LPOFNHOOKPROC16)(HWND16,UINT16,WPARAM16,LPARAM);
51 typedef UINT (CALLBACK *LPOFNHOOKPROC)(HWND,UINT,WPARAM,LPARAM);
52
53 typedef struct {
54         DWORD           lStructSize;
55         HWND16          hwndOwner;
56         HINSTANCE16     hInstance;
57         SEGPTR          lpstrFilter;
58         SEGPTR          lpstrCustomFilter;
59         DWORD           nMaxCustFilter;
60         DWORD           nFilterIndex;
61         SEGPTR          lpstrFile;
62         DWORD           nMaxFile;
63         SEGPTR          lpstrFileTitle;
64         DWORD           nMaxFileTitle;
65         SEGPTR          lpstrInitialDir;
66         SEGPTR          lpstrTitle;
67         DWORD           Flags;
68         UINT16          nFileOffset;
69         UINT16          nFileExtension;
70         SEGPTR          lpstrDefExt;
71         LPARAM          lCustData;
72         LPOFNHOOKPROC16 lpfnHook;
73         SEGPTR          lpTemplateName;
74 }   OPENFILENAME16,*LPOPENFILENAME16;
75
76 typedef struct {
77         DWORD           lStructSize;
78         HWND            hwndOwner;
79         HINSTANCE       hInstance;
80         LPCSTR          lpstrFilter;
81         LPSTR           lpstrCustomFilter;
82         DWORD           nMaxCustFilter;
83         DWORD           nFilterIndex;
84         LPSTR           lpstrFile;
85         DWORD           nMaxFile;
86         LPSTR           lpstrFileTitle;
87         DWORD           nMaxFileTitle;
88         LPCSTR          lpstrInitialDir;
89         LPCSTR          lpstrTitle;
90         DWORD           Flags;
91         WORD            nFileOffset;
92         WORD            nFileExtension;
93         LPCSTR          lpstrDefExt;
94         LPARAM          lCustData;
95         LPOFNHOOKPROC   lpfnHook;
96         LPCSTR          lpTemplateName;
97 } OPENFILENAMEA,*LPOPENFILENAMEA;
98
99 typedef struct {
100         DWORD           lStructSize;
101         HWND            hwndOwner;
102         HINSTANCE       hInstance;
103         LPCWSTR         lpstrFilter;
104         LPWSTR          lpstrCustomFilter;
105         DWORD           nMaxCustFilter;
106         DWORD           nFilterIndex;
107         LPWSTR          lpstrFile;
108         DWORD           nMaxFile;
109         LPWSTR          lpstrFileTitle;
110         DWORD           nMaxFileTitle;
111         LPCWSTR         lpstrInitialDir;
112         LPCWSTR         lpstrTitle;
113         DWORD           Flags;
114         WORD            nFileOffset;
115         WORD            nFileExtension;
116         LPCWSTR         lpstrDefExt;
117         LPARAM          lCustData;
118         LPOFNHOOKPROC   lpfnHook;
119         LPCWSTR         lpTemplateName;
120 } OPENFILENAMEW,*LPOPENFILENAMEW;
121
122 DECL_WINELIB_TYPE_AW(OPENFILENAME)
123 DECL_WINELIB_TYPE_AW(LPOPENFILENAME)
124
125 typedef struct
126 {
127         NMHDR           hdr;
128         LPOPENFILENAMEA lpOFN;
129         LPSTR           pszFile;
130 } OFNOTIFYA, *LPOFNOTIFYA;
131
132 typedef struct
133 {
134         NMHDR           hdr;
135         LPOPENFILENAMEW lpOFN;
136         LPWSTR          pszFile;
137 } OFNOTIFYW, *LPOFNOTIFYW;
138
139 DECL_WINELIB_TYPE_AW(OFNOTIFY)
140 DECL_WINELIB_TYPE_AW(LPOFNOTIFY)
141  
142 typedef UINT16 (CALLBACK *LPCCHOOKPROC16) (HWND16, UINT16, WPARAM16, LPARAM);
143 typedef UINT (CALLBACK *LPCCHOOKPROC) (HWND, UINT, WPARAM, LPARAM);
144
145 typedef struct {
146         DWORD           lStructSize;
147         HWND16          hwndOwner;
148         HWND16          hInstance;
149         COLORREF        rgbResult;
150         COLORREF       *lpCustColors;
151         DWORD           Flags;
152         LPARAM          lCustData;
153         LPCCHOOKPROC16  lpfnHook;
154         SEGPTR          lpTemplateName;
155 } CHOOSECOLOR16;
156 typedef CHOOSECOLOR16 *LPCHOOSECOLOR16;
157
158 typedef struct {
159         DWORD           lStructSize;
160         HWND            hwndOwner;
161         HWND            hInstance;
162         DWORD           rgbResult;
163         LPDWORD         lpCustColors;
164         DWORD           Flags;
165         DWORD           lCustData;
166         LPCCHOOKPROC    lpfnHook;
167         LPCSTR          lpTemplateName;
168 } CHOOSECOLORA;
169 typedef CHOOSECOLORA *LPCHOOSECOLORA;
170
171 typedef struct {
172         DWORD           lStructSize;
173         HWND            hwndOwner;
174         HWND            hInstance;
175         DWORD           rgbResult;
176         LPDWORD         *lpCustColors;
177         DWORD           Flags;
178         DWORD           lCustData;
179         LPCCHOOKPROC    lpfnHook;
180         LPCWSTR         lpTemplateName;
181 } CHOOSECOLORW;
182 typedef CHOOSECOLORW *LPCHOOSECOLORW;
183
184 DECL_WINELIB_TYPE_AW(CHOOSECOLOR)
185 DECL_WINELIB_TYPE_AW(LPCHOOSECOLOR)
186
187
188 #define CC_RGBINIT               0x00000001
189 #define CC_FULLOPEN              0x00000002
190 #define CC_PREVENTFULLOPEN       0x00000004
191 #define CC_SHOWHELP              0x00000008
192 #define CC_ENABLEHOOK            0x00000010
193 #define CC_ENABLETEMPLATE        0x00000020
194 #define CC_ENABLETEMPLATEHANDLE  0x00000040
195
196 typedef UINT16 (CALLBACK *LPFRHOOKPROC16)(HWND16,UINT16,WPARAM16,LPARAM);
197 typedef UINT (CALLBACK *LPFRHOOKPROC)(HWND,UINT,WPARAM,LPARAM);
198
199 typedef struct {
200         DWORD           lStructSize;                    /* size of this struct 0x20 */
201         HWND16          hwndOwner;                              /* handle to owner's window */
202         HINSTANCE16     hInstance;                              /* instance handle of.EXE that  */
203                                                                                 /*      contains cust. dlg. template */
204         DWORD           Flags;                  /* one or more of the FR_?? */
205         SEGPTR          lpstrFindWhat;          /* ptr. to search string    */
206         SEGPTR          lpstrReplaceWith;       /* ptr. to replace string   */
207         UINT16          wFindWhatLen;           /* size of find buffer      */
208         UINT16          wReplaceWithLen;        /* size of replace buffer   */
209         LPARAM          lCustData;              /* data passed to hook fn.  */
210         LPFRHOOKPROC16  lpfnHook;
211         SEGPTR          lpTemplateName;         /* custom template name     */
212         } FINDREPLACE16, *LPFINDREPLACE16;
213
214 typedef struct {
215         DWORD           lStructSize;
216         HWND            hwndOwner;
217         HINSTANCE       hInstance;
218
219         DWORD           Flags;
220         LPSTR           lpstrFindWhat;
221         LPSTR           lpstrReplaceWith;
222         WORD            wFindWhatLen;
223         WORD            wReplaceWithLen;
224         LPARAM          lCustData;
225         LPFRHOOKPROC    lpfnHook;
226         LPCSTR          lpTemplateName;
227         } FINDREPLACEA, *LPFINDREPLACEA;
228
229 typedef struct {
230         DWORD           lStructSize;
231         HWND            hwndOwner;
232         HINSTANCE       hInstance;
233
234         DWORD           Flags;
235         LPWSTR          lpstrFindWhat;
236         LPWSTR          lpstrReplaceWith;
237         WORD            wFindWhatLen;
238         WORD            wReplaceWithLen;
239         LPARAM          lCustData;
240         LPFRHOOKPROC    lpfnHook;
241         LPCWSTR         lpTemplateName;
242         } FINDREPLACEW, *LPFINDREPLACEW;
243         
244 DECL_WINELIB_TYPE_AW(FINDREPLACE)
245 DECL_WINELIB_TYPE_AW(LPFINDREPLACE)
246         
247 #define FR_DOWN                         0x00000001
248 #define FR_WHOLEWORD                    0x00000002
249 #define FR_MATCHCASE                    0x00000004
250 #define FR_FINDNEXT                     0x00000008
251 #define FR_REPLACE                      0x00000010
252 #define FR_REPLACEALL                   0x00000020
253 #define FR_DIALOGTERM                   0x00000040
254 #define FR_SHOWHELP                     0x00000080
255 #define FR_ENABLEHOOK                   0x00000100
256 #define FR_ENABLETEMPLATE               0x00000200
257 #define FR_NOUPDOWN                     0x00000400
258 #define FR_NOMATCHCASE                  0x00000800
259 #define FR_NOWHOLEWORD                  0x00001000
260 #define FR_ENABLETEMPLATEHANDLE         0x00002000
261 #define FR_HIDEUPDOWN                   0x00004000
262 #define FR_HIDEMATCHCASE                0x00008000
263 #define FR_HIDEWHOLEWORD                0x00010000
264
265 typedef UINT16 (CALLBACK *LPCFHOOKPROC16)(HWND16,UINT16,WPARAM16,LPARAM);
266 typedef UINT (CALLBACK *LPCFHOOKPROC)(HWND,UINT,WPARAM,LPARAM);
267
268 typedef struct 
269 {
270         DWORD                   lStructSize;
271         HWND16                  hwndOwner;          /* caller's window handle   */
272         HDC16                   hDC;                /* printer DC/IC or NULL    */
273         SEGPTR                  lpLogFont;          /* ptr. to a LOGFONT struct */
274         short                   iPointSize;         /* 10 * size in points of selected font */
275         DWORD                   Flags;  /* enum. type flags         */
276         COLORREF                rgbColors;          /* returned text color      */
277         LPARAM                  lCustData;          /* data passed to hook fn.  */
278         LPCFHOOKPROC16          lpfnHook;
279         SEGPTR                  lpTemplateName;     /* custom template name     */
280         HINSTANCE16             hInstance;          /* instance handle of.EXE that   */
281                                                         /* contains cust. dlg. template  */
282         SEGPTR                  lpszStyle;  /* return the style field here   */
283                                                         /* must be LF_FACESIZE or bigger */
284         UINT16                  nFontType;              /* same value reported to the    */
285                                                         /* EnumFonts callback with the   */
286                                                         /* extra FONTTYPE_ bits added    */
287         short                   nSizeMin;   /* minimum pt size allowed & */
288         short                   nSizeMax;   /* max pt size allowed if    */
289                                                         /* CF_LIMITSIZE is used      */
290 } CHOOSEFONT16, *LPCHOOSEFONT16;
291
292
293 typedef struct
294 {
295         UINT    lStructSize; 
296         HWND            hwndOwner; 
297         HDC             hDC; 
298         LPLOGFONTA    lpLogFont; 
299         INT             iPointSize; 
300         DWORD           Flags; 
301         COLORREF        rgbColors; 
302         LPARAM          lCustData; 
303         LPCFHOOKPROC    lpfnHook; 
304         LPCSTR          lpTemplateName; 
305         HINSTANCE       hInstance; 
306         LPSTR           lpszStyle; 
307         UINT16          nFontType; 
308         UINT16  ___MISSING_ALIGNMENT__; 
309         INT     nSizeMin; 
310         INT             nSizeMax; 
311 } CHOOSEFONTA, *LPCHOOSEFONTA;
312
313 typedef struct
314 {
315         UINT    lStructSize; 
316         HWND            hwndOwner; 
317         HDC             hDC; 
318         LPLOGFONTW    lpLogFont; 
319         INT             iPointSize; 
320         DWORD           Flags; 
321         COLORREF        rgbColors; 
322         LPARAM          lCustData; 
323         LPCFHOOKPROC    lpfnHook; 
324         LPCWSTR         lpTemplateName; 
325         HINSTANCE       hInstance; 
326         LPWSTR          lpszStyle; 
327         UINT16          nFontType; 
328         UINT16  ___MISSING_ALIGNMENT__; 
329         INT     nSizeMin; 
330         INT             nSizeMax; 
331 } CHOOSEFONTW, *LPCHOOSEFONTW;
332
333 DECL_WINELIB_TYPE_AW(CHOOSEFONT)
334 DECL_WINELIB_TYPE_AW(LPCHOOSEFONT)
335
336 #define CF_SCREENFONTS               0x00000001
337 #define CF_PRINTERFONTS              0x00000002
338 #define CF_BOTH                      (CF_SCREENFONTS | CF_PRINTERFONTS)
339 #define CF_SHOWHELP                  0x00000004L
340 #define CF_ENABLEHOOK                0x00000008L
341 #define CF_ENABLETEMPLATE            0x00000010L
342 #define CF_ENABLETEMPLATEHANDLE      0x00000020L
343 #define CF_INITTOLOGFONTSTRUCT       0x00000040L
344 #define CF_USESTYLE                  0x00000080L
345 #define CF_EFFECTS                   0x00000100L
346 #define CF_APPLY                     0x00000200L
347 #define CF_ANSIONLY                  0x00000400L
348 #define CF_SCRIPTSONLY               CF_ANSIONLY
349 #define CF_NOVECTORFONTS             0x00000800L
350 #define CF_NOOEMFONTS                CF_NOVECTORFONTS
351 #define CF_NOSIMULATIONS             0x00001000L
352 #define CF_LIMITSIZE                 0x00002000L
353 #define CF_FIXEDPITCHONLY            0x00004000L
354 #define CF_WYSIWYG                   0x00008000L /* use with CF_SCREENFONTS & CF_PRINTERFONTS */
355 #define CF_FORCEFONTEXIST            0x00010000L
356 #define CF_SCALABLEONLY              0x00020000L
357 #define CF_TTONLY                    0x00040000L
358 #define CF_NOFACESEL                 0x00080000L
359 #define CF_NOSTYLESEL                0x00100000L
360 #define CF_NOSIZESEL                 0x00200000L
361 #define CF_SELECTSCRIPT              0x00400000L
362 #define CF_NOSCRIPTSEL               0x00800000L
363 #define CF_NOVERTFONTS               0x01000000L
364
365 #define SIMULATED_FONTTYPE      0x8000
366 #define PRINTER_FONTTYPE        0x4000
367 #define SCREEN_FONTTYPE         0x2000
368 #define BOLD_FONTTYPE           0x0100
369 #define ITALIC_FONTTYPE         0x0200
370 #define REGULAR_FONTTYPE        0x0400
371
372 #define WM_CHOOSEFONT_GETLOGFONT        (WM_USER + 1)
373 #define WM_CHOOSEFONT_SETLOGFONT        (WM_USER + 101)
374 #define WM_CHOOSEFONT_SETFLAGS          (WM_USER + 102)
375
376 #define LBSELCHSTRING  "commdlg_LBSelChangedNotify"
377 #define SHAREVISTRING  "commdlg_ShareViolation"
378 #define FILEOKSTRING   "commdlg_FileNameOK"
379 #define COLOROKSTRING  "commdlg_ColorOK"
380 #define SETRGBSTRING   "commdlg_SetRGBColor"
381 #define FINDMSGSTRING  "commdlg_FindReplace"
382 #define HELPMSGSTRING  "commdlg_help"
383
384 #define CD_LBSELNOITEMS -1
385 #define CD_LBSELCHANGE   0
386 #define CD_LBSELSUB      1
387 #define CD_LBSELADD      2
388
389 #define CDN_FIRST   (0U-601U)
390 #define CDN_LAST    (0U-699U)
391
392 #define CDN_INITDONE            (CDN_FIRST - 0x0000)
393 #define CDN_SELCHANGE           (CDN_FIRST - 0x0001)
394 #define CDN_FOLDERCHANGE        (CDN_FIRST - 0x0002)
395 #define CDN_SHAREVIOLATION      (CDN_FIRST - 0x0003)
396 #define CDN_HELP                (CDN_FIRST - 0x0004)
397 #define CDN_FILEOK              (CDN_FIRST - 0x0005)
398 #define CDN_TYPECHANGE          (CDN_FIRST - 0x0006)
399
400 #define CDM_FIRST               (WM_USER + 100)
401 #define CDM_LAST                (WM_USER + 200)
402
403 #define CDM_GETSPEC             (CDM_FIRST + 0x0000)
404 #define CDM_GETFILEPATH         (CDM_FIRST + 0x0001)
405 #define CDM_GETFOLDERPATH       (CDM_FIRST + 0x0002)
406 #define CDM_GETFOLDERLIST       (CDM_FIRST + 0x0003)
407 #define CDM_SETCONTROLTEXT      (CDM_FIRST + 0x0004)
408 #define CDM_HIDECONTROL         (CDM_FIRST + 0x0005)
409 #define CDM_SETDEFEXT           (CDM_FIRST + 0x0006)
410
411 typedef UINT16 (CALLBACK *LPPRINTHOOKPROC16) (HWND16, UINT16, WPARAM16, LPARAM);
412 typedef UINT (CALLBACK *LPPRINTHOOKPROC) (HWND, UINT, WPARAM, LPARAM);
413
414 typedef UINT16 (CALLBACK *LPSETUPHOOKPROC16) (HWND16, UINT16, WPARAM16, LPARAM);
415 typedef UINT (CALLBACK *LPSETUPHOOKPROC) (HWND, UINT, WPARAM, LPARAM);
416
417 typedef struct
418 {
419     DWORD            lStructSize;
420     HWND16           hwndOwner;
421     HGLOBAL16        hDevMode;
422     HGLOBAL16        hDevNames;
423     HDC16            hDC;
424     DWORD            Flags;
425     WORD             nFromPage;
426     WORD             nToPage;
427     WORD             nMinPage;
428     WORD             nMaxPage;
429     WORD             nCopies;
430     HINSTANCE16      hInstance;
431     LPARAM           lCustData;
432     LPPRINTHOOKPROC16 lpfnPrintHook;
433     LPSETUPHOOKPROC16 lpfnSetupHook;
434     SEGPTR           lpPrintTemplateName;
435     SEGPTR           lpSetupTemplateName;
436     HGLOBAL16        hPrintTemplate;
437     HGLOBAL16        hSetupTemplate;
438 } PRINTDLG16, *LPPRINTDLG16;
439
440 typedef struct tagPDA
441 {
442     DWORD            lStructSize;
443     HWND           hwndOwner;
444     HGLOBAL        hDevMode;
445     HGLOBAL        hDevNames;
446     HDC            hDC;
447     DWORD            Flags;
448     WORD             nFromPage;
449     WORD             nToPage;
450     WORD             nMinPage;
451     WORD             nMaxPage;
452     WORD             nCopies;
453     HINSTANCE      hInstance;
454     LPARAM           lCustData;
455     LPPRINTHOOKPROC  lpfnPrintHook;
456     LPSETUPHOOKPROC  lpfnSetupHook;
457     LPCSTR           lpPrintTemplateName;
458     LPCSTR           lpSetupTemplateName;
459     HGLOBAL        hPrintTemplate;
460     HGLOBAL        hSetupTemplate;
461 } PRINTDLGA, *LPPRINTDLGA;
462
463 typedef struct tagPDW
464 {
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     LPCWSTR          lpPrintTemplateName;
481     LPCWSTR          lpSetupTemplateName;
482     HGLOBAL        hPrintTemplate;
483     HGLOBAL        hSetupTemplate;
484 } PRINTDLGW, *LPPRINTDLGW;
485
486 DECL_WINELIB_TYPE_AW(PRINTDLG)
487 DECL_WINELIB_TYPE_AW(LPPRINTDLG)
488
489 #define PD_ALLPAGES                  0x00000000
490 #define PD_SELECTION                 0x00000001
491 #define PD_PAGENUMS                  0x00000002
492 #define PD_NOSELECTION               0x00000004
493 #define PD_NOPAGENUMS                0x00000008
494 #define PD_COLLATE                   0x00000010
495 #define PD_PRINTTOFILE               0x00000020
496 #define PD_PRINTSETUP                0x00000040
497 #define PD_NOWARNING                 0x00000080
498 #define PD_RETURNDC                  0x00000100
499 #define PD_RETURNIC                  0x00000200
500 #define PD_RETURNDEFAULT             0x00000400
501 #define PD_SHOWHELP                  0x00000800
502 #define PD_ENABLEPRINTHOOK           0x00001000
503 #define PD_ENABLESETUPHOOK           0x00002000
504 #define PD_ENABLEPRINTTEMPLATE       0x00004000
505 #define PD_ENABLESETUPTEMPLATE       0x00008000
506 #define PD_ENABLEPRINTTEMPLATEHANDLE 0x00010000
507 #define PD_ENABLESETUPTEMPLATEHANDLE 0x00020000
508 #define PD_USEDEVMODECOPIES          0x00040000
509 #define PD_USEDEVMODECOPIESANDCOLLATE 0x00040000
510 #define PD_DISABLEPRINTTOFILE        0x00080000
511 #define PD_HIDEPRINTTOFILE           0x00100000
512
513 typedef struct {
514         UINT16  wDriverOffset;
515         UINT16  wDeviceOffset;
516         UINT16  wOutputOffset;
517         UINT16  wDefault;
518         } DEVNAMES;
519 typedef DEVNAMES * LPDEVNAMES;
520
521 #define DN_DEFAULTPRN      0x0001
522
523 /* PageSetupDlg stuff ... */
524 #define WM_PSD_PAGESETUPDLG     (WM_USER  )
525 #define WM_PSD_FULLPAGERECT     (WM_USER+1)
526 #define WM_PSD_MINMARGINRECT    (WM_USER+2)
527 #define WM_PSD_MARGINRECT       (WM_USER+3)
528 #define WM_PSD_GREEKTEXTRECT    (WM_USER+4)
529 #define WM_PSD_ENVSTAMPRECT     (WM_USER+5)
530 #define WM_PSD_YAFULLPAGERECT   (WM_USER+6)
531
532 typedef UINT (CALLBACK* LPPAGEPAINTHOOK)( HWND, UINT, WPARAM, LPARAM );
533 typedef UINT (CALLBACK* LPPAGESETUPHOOK)( HWND, UINT, WPARAM, LPARAM );
534
535 typedef struct tagPSDA
536 {
537         DWORD           lStructSize;
538         HWND            hwndOwner;
539         HGLOBAL hDevMode;
540         HGLOBAL hDevNames;
541         DWORD           Flags;
542         POINT           ptPaperSize;
543         RECT            rtMinMargin;
544         RECT            rtMargin;
545         HINSTANCE       hInstance;
546         LPARAM          lCustData;
547         LPPAGESETUPHOOK lpfnPageSetupHook;
548         LPPAGEPAINTHOOK lpfnPagePaintHook;
549         LPCSTR          lpPageSetupTemplateName;
550         HGLOBAL hPageSetupTemplate;
551 } PAGESETUPDLGA,*LPPAGESETUPDLGA;
552
553 typedef struct tagPSDW
554 {
555         DWORD           lStructSize;
556         HWND            hwndOwner;
557         HGLOBAL hDevMode;
558         HGLOBAL hDevNames;
559         DWORD           Flags;
560         POINT           ptPaperSize;
561         RECT            rtMinMargin;
562         RECT            rtMargin;
563         HINSTANCE       hInstance;
564         LPARAM          lCustData;
565         LPPAGESETUPHOOK lpfnPageSetupHook;
566         LPPAGEPAINTHOOK lpfnPagePaintHook;
567         LPCWSTR         lpPageSetupTemplateName;
568         HGLOBAL hPageSetupTemplate;
569 } PAGESETUPDLGW,*LPPAGESETUPDLGW;
570 DECL_WINELIB_TYPE_AW(PAGESETUPDLG)
571 DECL_WINELIB_TYPE_AW(LPPAGESETUPDLG)
572
573 #define PSD_DEFAULTMINMARGINS             0x00000000
574 #define PSD_INWININIINTLMEASURE           0x00000000
575
576 #define PSD_MINMARGINS                    0x00000001
577 #define PSD_MARGINS                       0x00000002
578 #define PSD_INTHOUSANDTHSOFINCHES         0x00000004
579 #define PSD_INHUNDREDTHSOFMILLIMETERS     0x00000008
580 #define PSD_DISABLEMARGINS                0x00000010
581 #define PSD_DISABLEPRINTER                0x00000020
582 #define PSD_NOWARNING                     0x00000080
583 #define PSD_DISABLEORIENTATION            0x00000100
584 #define PSD_RETURNDEFAULT                 0x00000400
585 #define PSD_DISABLEPAPER                  0x00000200
586 #define PSD_SHOWHELP                      0x00000800
587 #define PSD_ENABLEPAGESETUPHOOK           0x00002000
588 #define PSD_ENABLEPAGESETUPTEMPLATE       0x00008000
589 #define PSD_ENABLEPAGESETUPTEMPLATEHANDLE 0x00020000
590 #define PSD_ENABLEPAGEPAINTHOOK           0x00040000
591 #define PSD_DISABLEPAGEPAINTING           0x00080000
592
593 BOOL16  WINAPI ChooseColor16(LPCHOOSECOLOR16 lpChCol);
594 BOOL  WINAPI ChooseColorA(LPCHOOSECOLORA lpChCol);
595 BOOL  WINAPI ChooseColorW(LPCHOOSECOLORW lpChCol);
596 #define ChooseColor WINELIB_NAME_AW(ChooseColor)
597 DWORD   WINAPI CommDlgExtendedError(void);
598 HWND16  WINAPI FindText16( SEGPTR find);
599 HWND  WINAPI FindTextA(LPFINDREPLACEA lpFind);
600 HWND  WINAPI FindTextW(LPFINDREPLACEW lpFind);
601 #define FindText WINELIB_NAME_AW(FindText)
602 INT16   WINAPI GetFileTitle16(LPCSTR lpFile, LPSTR lpTitle, UINT16 cbBuf);
603 INT16   WINAPI GetFileTitleA(LPCSTR lpFile, LPSTR lpTitle, UINT cbBuf);
604 INT16   WINAPI GetFileTitleW(LPCWSTR lpFile, LPWSTR lpTitle, UINT cbBuf);
605 #define GetFileTitle WINELIB_NAME_AW(GetFileTitle)
606 BOOL16  WINAPI GetOpenFileName16(SEGPTR ofn);
607 BOOL  WINAPI GetOpenFileNameA(LPOPENFILENAMEA ofn);
608 BOOL  WINAPI GetOpenFileNameW(LPOPENFILENAMEW ofn);
609 BOOL  WINAPI GetFileDialog95A(LPOPENFILENAMEA ofn,UINT iDlgType);
610 BOOL  WINAPI GetFileDialog95W(LPOPENFILENAMEW ofn,UINT iDlgType);
611 #define GetOpenFileName WINELIB_NAME_AW(GetOpenFileName)
612 BOOL16  WINAPI GetSaveFileName16(SEGPTR ofn);
613 BOOL  WINAPI GetSaveFileNameA(LPOPENFILENAMEA ofn);
614 BOOL  WINAPI GetSaveFileNameW(LPOPENFILENAMEW ofn);
615 #define GetSaveFileName WINELIB_NAME_AW(GetSaveFileName)
616 BOOL WINAPI PageSetupDlgA( LPPAGESETUPDLGA );
617 BOOL WINAPI PageSetupDlgW( LPPAGESETUPDLGW );
618 #define PageSetupDlg WINELIB_NAME_AW(PageSetupDlg)
619 BOOL16  WINAPI PrintDlg16( LPPRINTDLG16 print);
620 BOOL  WINAPI PrintDlgA( LPPRINTDLGA printdlg);
621 BOOL  WINAPI PrintDlgW( LPPRINTDLGW printdlg);
622 #define PrintDlg WINELIB_NAME_AW(PrintDlg)
623 HWND16  WINAPI ReplaceText16( SEGPTR find);
624 HWND  WINAPI ReplaceTextA( LPFINDREPLACEA lpFind);
625 HWND  WINAPI ReplaceTextW( LPFINDREPLACEW lpFind);
626 #define ReplaceText WINELIB_NAME_AW(ReplaceText)
627 BOOL16  WINAPI ChooseFont16(LPCHOOSEFONT16);
628 BOOL  WINAPI ChooseFontA(LPCHOOSEFONTA);
629 BOOL  WINAPI ChooseFontW(LPCHOOSEFONTW);
630 #define ChooseFont WINELIB_NAME_AW(ChooseFont)
631 LRESULT WINAPI FileOpenDlgProc16(HWND16 hWnd, UINT16 wMsg, WPARAM16 wParam, LPARAM lParam);
632 LRESULT WINAPI FileSaveDlgProc16(HWND16 hWnd, UINT16 wMsg, WPARAM16 wParam, LPARAM lParam);
633 LRESULT WINAPI ColorDlgProc16(HWND16 hWnd, UINT16 wMsg, WPARAM16 wParam, LPARAM lParam);
634 LRESULT WINAPI FindTextDlgProc16(HWND16 hWnd, UINT16 wMsg, WPARAM16 wParam, LPARAM lParam);
635 LRESULT WINAPI ReplaceTextDlgProc16(HWND16 hWnd, UINT16 wMsg, WPARAM16 wParam, LPARAM lParam);
636 LRESULT WINAPI PrintDlgProc16(HWND16 hWnd, UINT16 wMsg, WPARAM16 wParam, LPARAM lParam);
637 LRESULT WINAPI PrintDlgProcA(HWND hWnd, UINT wMsg, WPARAM wParam, LPARAM lParam);
638 LRESULT WINAPI PrintDlgProcW(HWND hWnd, UINT wMsg, WPARAM wParam, LPARAM lParam);
639 LRESULT WINAPI PrintSetupDlgProc16(HWND16 hWnd, UINT16 wMsg, WPARAM16 wParam, LPARAM lParam);
640 LRESULT WINAPI FormatCharDlgProc16(HWND16,UINT16,WPARAM16,LPARAM);
641 LRESULT WINAPI FormatCharDlgProcA(HWND,UINT,WPARAM,LPARAM);
642 LRESULT WINAPI FormatCharDlgProcW(HWND,UINT,WPARAM,LPARAM);
643 #define FormatCharDlgProc WINELIB_NAME_AW(FormatCharDlgProc)
644
645 void COMDLG32_SetCommDlgExtendedError(DWORD err); 
646
647
648 #include "poppack.h"
649
650 #ifdef __cplusplus
651 }
652 #endif
653
654 #endif  /* __WINE_COMMDLG_H */