comparison fuhtark_test/include/winapi/commdlg.h @ 1500:91c8c3b7cbf0

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