1 module win32.commdlg;
2
3 // Translated from Microsoft Platform SDK August 2001 Edition
4 // by Y.Tomino
5
6 import win32.windef;
7 import win32.winuser;
8 // inline #include <cderr.h>
9 // ----
10
11 // #ifndef _INC_CDERR
12 // #define _INC_CDERR
13
14 // #if _MSC_VER > 1000
15 // #pragma once
16 // #endif
17
18 enum : uint { CDERR_DIALOGFAILURE = 0xFFFF }
19
20 enum : uint { CDERR_GENERALCODES = 0x0000 }
21 enum : uint { CDERR_STRUCTSIZE = 0x0001 }
22 enum : uint { CDERR_INITIALIZATION = 0x0002 }
23 enum : uint { CDERR_NOTEMPLATE = 0x0003 }
24 enum : uint { CDERR_NOHINSTANCE = 0x0004 }
25 enum : uint { CDERR_LOADSTRFAILURE = 0x0005 }
26 enum : uint { CDERR_FINDRESFAILURE = 0x0006 }
27 enum : uint { CDERR_LOADRESFAILURE = 0x0007 }
28 enum : uint { CDERR_LOCKRESFAILURE = 0x0008 }
29 enum : uint { CDERR_MEMALLOCFAILURE = 0x0009 }
30 enum : uint { CDERR_MEMLOCKFAILURE = 0x000A }
31 enum : uint { CDERR_NOHOOK = 0x000B }
32 enum : uint { CDERR_REGISTERMSGFAIL = 0x000C }
33
34 enum : uint { PDERR_PRINTERCODES = 0x1000 }
35 enum : uint { PDERR_SETUPFAILURE = 0x1001 }
36 enum : uint { PDERR_PARSEFAILURE = 0x1002 }
37 enum : uint { PDERR_RETDEFFAILURE = 0x1003 }
38 enum : uint { PDERR_LOADDRVFAILURE = 0x1004 }
39 enum : uint { PDERR_GETDEVMODEFAIL = 0x1005 }
40 enum : uint { PDERR_INITFAILURE = 0x1006 }
41 enum : uint { PDERR_NODEVICES = 0x1007 }
42 enum : uint { PDERR_NODEFAULTPRN = 0x1008 }
43 enum : uint { PDERR_DNDMMISMATCH = 0x1009 }
44 enum : uint { PDERR_CREATEICFAILURE = 0x100A }
45 enum : uint { PDERR_PRINTERNOTFOUND = 0x100B }
46 enum : uint { PDERR_DEFAULTDIFFERENT = 0x100C }
47
48 enum : uint { CFERR_CHOOSEFONTCODES = 0x2000 }
49 enum : uint { CFERR_NOFONTS = 0x2001 }
50 enum : uint { CFERR_MAXLESSTHANMIN = 0x2002 }
51
52 enum : uint { FNERR_FILENAMECODES = 0x3000 }
53 enum : uint { FNERR_SUBCLASSFAILURE = 0x3001 }
54 enum : uint { FNERR_INVALIDFILENAME = 0x3002 }
55 enum : uint { FNERR_BUFFERTOOSMALL = 0x3003 }
56
57 enum : uint { FRERR_FINDREPLACECODES = 0x4000 }
58 enum : uint { FRERR_BUFFERLENGTHZERO = 0x4001 }
59
60 enum : uint { CCERR_CHOOSECOLORCODES = 0x5000 }
61
62 // #endif /* !_INC_CDERR */
63 // ----
64
65 // #ifndef _INC_COMMDLG
66 // #define _INC_COMMDLG
67
68 // #if(WINVER >= 0x0500)
69
70 // #ifdef DEFINE_GUID
71
72 // ...
73
74 // ...
75
76 // #endif
77
78 // #endif /* WINVER >= 0x0500 */
79
80 // #ifndef GUID_DEFS_ONLY
81
82 // #include <prsht.h>
83
84 // #if !defined(_WIN64)
85 align(1):
86 // #endif
87
88 // #ifdef __cplusplus
89 // extern "C" { /* Assume C declarations for C++ */
90 // #endif /* __cplusplus */
91
92 // #ifndef WINCOMMDLGAPI
93 // #if !defined(_COMDLG32_)
94 // #define WINCOMMDLGAPI DECLSPEC_IMPORT
95 // #else
96 // #...
97 // #endif
98 // #endif // WINCOMMDLGAPI
99
100 // #if(WINVER >= 0x0400)
101 // #ifndef SNDMSG
102 // #ifdef __cplusplus
103 // #ifndef _MAC
104 // #define SNDMSG ::SendMessage
105 // #else
106 // #...
107 // #endif
108 // #else /* __cplusplus */
109 // #ifndef _MAC
110 // #...
111 // #else
112 // #...
113 // #endif
114 // #endif /* __cplusplus */
115 // #endif // ifndef SNDMSG
116 // #endif /* WINVER >= 0x0400 */
117
118 // #ifdef _MAC
119 // ...
120 // #endif
121
122 extern(Windows) alias UINT_PTR function(HWND, UINT, WPARAM, LPARAM) LPOFNHOOKPROC;
123
124 // #ifndef CDSIZEOF_STRUCT
125 // #define CDSIZEOF_STRUCT(structname, member) (((int)((LPBYTE)(&((structname*)0)->member) - ((LPBYTE)((structname*)0)))) + sizeof(((structname*)0)->member))
126 // #endif
127
128 // #ifndef DUMMYUNIONNAME
129 // #ifdef NONAMELESSUNION
130 // #...
131 // #endif // NONAMELESSUNION
132 // #endif // DUMMYUNIONNAME
133
134 struct tagOFN_NT4A {
135 DWORD lStructSize;
136 HWND hwndOwner;
137 HINSTANCE hInstance;
138 LPCSTR lpstrFilter;
139 LPSTR lpstrCustomFilter;
140 DWORD nMaxCustFilter;
141 DWORD nFilterIndex;
142 LPSTR lpstrFile;
143 DWORD nMaxFile;
144 LPSTR lpstrFileTitle;
145 DWORD nMaxFileTitle;
146 LPCSTR lpstrInitialDir;
147 LPCSTR lpstrTitle;
148 DWORD Flags;
149 WORD nFileOffset;
150 WORD nFileExtension;
151 LPCSTR lpstrDefExt;
152 LPARAM lCustData;
153 LPOFNHOOKPROC lpfnHook;
154 LPCSTR lpTemplateName;
155 }
156 alias tagOFN_NT4A OPENFILENAME_NT4A;
157 alias tagOFN_NT4A* LPOPENFILENAME_NT4A;
158
159 struct tagOFN_NT4W {
160 DWORD lStructSize;
161 HWND hwndOwner;
162 HINSTANCE hInstance;
163 LPCWSTR lpstrFilter;
164 LPWSTR lpstrCustomFilter;
165 DWORD nMaxCustFilter;
166 DWORD nFilterIndex;
167 LPWSTR lpstrFile;
168 DWORD nMaxFile;
169 LPWSTR lpstrFileTitle;
170 DWORD nMaxFileTitle;
171 LPCWSTR lpstrInitialDir;
172 LPCWSTR lpstrTitle;
173 DWORD Flags;
174 WORD nFileOffset;
175 WORD nFileExtension;
176 LPCWSTR lpstrDefExt;
177 LPARAM lCustData;
178 LPOFNHOOKPROC lpfnHook;
179 LPCWSTR lpTemplateName;
180 }
181 alias tagOFN_NT4W OPENFILENAME_NT4W;
182 alias tagOFN_NT4W* LPOPENFILENAME_NT4W;
183
184 // #ifdef UNICODE
185 alias OPENFILENAME_NT4W OPENFILENAME_NT4;
186 alias LPOPENFILENAME_NT4W LPOPENFILENAME_NT4;
187 // #else
188 // ...
189 // #endif // UNICODE
190
191 struct tagOFNA {
192 DWORD lStructSize;
193 HWND hwndOwner;
194 HINSTANCE hInstance;
195 LPCSTR lpstrFilter;
196 LPSTR lpstrCustomFilter;
197 DWORD nMaxCustFilter;
198 DWORD nFilterIndex;
199 LPSTR lpstrFile;
200 DWORD nMaxFile;
201 LPSTR lpstrFileTitle;
202 DWORD nMaxFileTitle;
203 LPCSTR lpstrInitialDir;
204 LPCSTR lpstrTitle;
205 DWORD Flags;
206 WORD nFileOffset;
207 WORD nFileExtension;
208 LPCSTR lpstrDefExt;
209 LPARAM lCustData;
210 LPOFNHOOKPROC lpfnHook;
211 LPCSTR lpTemplateName;
212 // #ifdef _MAC
213 // ...
214 // #endif
215 // #if (_WIN32_WINNT >= 0x0500)
216 void * pvReserved;
217 DWORD dwReserved;
218 DWORD FlagsEx;
219 // #endif // (_WIN32_WINNT >= 0x0500)
220 }
221 alias tagOFNA OPENFILENAMEA;
222 alias tagOFNA* LPOPENFILENAMEA;
223
224 struct tagOFNW {
225 DWORD lStructSize;
226 HWND hwndOwner;
227 HINSTANCE hInstance;
228 LPCWSTR lpstrFilter;
229 LPWSTR lpstrCustomFilter;
230 DWORD nMaxCustFilter;
231 DWORD nFilterIndex;
232 LPWSTR lpstrFile;
233 DWORD nMaxFile;
234 LPWSTR lpstrFileTitle;
235 DWORD nMaxFileTitle;
236 LPCWSTR lpstrInitialDir;
237 LPCWSTR lpstrTitle;
238 DWORD Flags;
239 WORD nFileOffset;
240 WORD nFileExtension;
241 LPCWSTR lpstrDefExt;
242 LPARAM lCustData;
243 LPOFNHOOKPROC lpfnHook;
244 LPCWSTR lpTemplateName;
245 // #ifdef _MAC
246 // ...
247 // #endif
248 // #if (_WIN32_WINNT >= 0x0500)
249 void * pvReserved;
250 DWORD dwReserved;
251 DWORD FlagsEx;
252 // #endif // (_WIN32_WINNT >= 0x0500)
253 }
254 alias tagOFNW OPENFILENAMEW;
255 alias tagOFNW* LPOPENFILENAMEW;
256
257 // #ifdef UNICODE
258 alias OPENFILENAMEW OPENFILENAME;
259 alias LPOPENFILENAMEW LPOPENFILENAME;
260 // #else
261 // ...
262 // #endif // UNICODE
263
264 // #if (_WIN32_WINNT >= 0x0500)
265 // #define OPENFILENAME_SIZE_VERSION_400A CDSIZEOF_STRUCT(OPENFILENAMEA,lpTemplateName)
266 // #define OPENFILENAME_SIZE_VERSION_400W CDSIZEOF_STRUCT(OPENFILENAMEW,lpTemplateName)
267 // #ifdef UNICODE
268 // #define OPENFILENAME_SIZE_VERSION_400 OPENFILENAME_SIZE_VERSION_400W
269 // #else
270 // #...
271 // #endif // !UNICODE
272 // #endif // (_WIN32_WINNT >= 0x0500)
273
274 extern(Windows) export BOOL GetOpenFileNameA(LPOPENFILENAMEA);
275 extern(Windows) export BOOL GetOpenFileNameW(LPOPENFILENAMEW);
276 // #ifdef UNICODE
277 alias GetOpenFileNameW GetOpenFileName;
278 // #else
279 // #...
280 // #endif // !UNICODE
281 extern(Windows) export BOOL GetSaveFileNameA(LPOPENFILENAMEA);
282 extern(Windows) export BOOL GetSaveFileNameW(LPOPENFILENAMEW);
283 // #ifdef UNICODE
284 alias GetSaveFileNameW GetSaveFileName;
285 // #else
286 // #...
287 // #endif // !UNICODE
288
289 extern(Windows) export short GetFileTitleA(LPCSTR, LPSTR, WORD);
290 extern(Windows) export short GetFileTitleW(LPCWSTR, LPWSTR, WORD);
291 // #ifdef UNICODE
292 alias GetFileTitleW GetFileTitle;
293 // #else
294 // #...
295 // #endif // !UNICODE
296
297 enum : uint { OFN_READONLY = 0x00000001 }
298 enum : uint { OFN_OVERWRITEPROMPT = 0x00000002 }
299 enum : uint { OFN_HIDEREADONLY = 0x00000004 }
300 enum : uint { OFN_NOCHANGEDIR = 0x00000008 }
301 enum : uint { OFN_SHOWHELP = 0x00000010 }
302 enum : uint { OFN_ENABLEHOOK = 0x00000020 }
303 enum : uint { OFN_ENABLETEMPLATE = 0x00000040 }
304 enum : uint { OFN_ENABLETEMPLATEHANDLE = 0x00000080 }
305 enum : uint { OFN_NOVALIDATE = 0x00000100 }
306 enum : uint { OFN_ALLOWMULTISELECT = 0x00000200 }
307 enum : uint { OFN_EXTENSIONDIFFERENT = 0x00000400 }
308 enum : uint { OFN_PATHMUSTEXIST = 0x00000800 }
309 enum : uint { OFN_FILEMUSTEXIST = 0x00001000 }
310 enum : uint { OFN_CREATEPROMPT = 0x00002000 }
311 enum : uint { OFN_SHAREAWARE = 0x00004000 }
312 enum : uint { OFN_NOREADONLYRETURN = 0x00008000 }
313 enum : uint { OFN_NOTESTFILECREATE = 0x00010000 }
314 enum : uint { OFN_NONETWORKBUTTON = 0x00020000 }
315 enum : uint { OFN_NOLONGNAMES = 0x00040000 }
316 // #if(WINVER >= 0x0400)
317 enum : uint { OFN_EXPLORER = 0x00080000 }
318 enum : uint { OFN_NODEREFERENCELINKS = 0x00100000 }
319 enum : uint { OFN_LONGNAMES = 0x00200000 }
320 enum : uint { OFN_ENABLEINCLUDENOTIFY = 0x00400000 }
321 enum : uint { OFN_ENABLESIZING = 0x00800000 }
322 // #endif /* WINVER >= 0x0400 */
323 // #if (_WIN32_WINNT >= 0x0500)
324 enum : uint { OFN_DONTADDTORECENT = 0x02000000 }
325 enum : uint { OFN_FORCESHOWHIDDEN = 0x10000000 }
326 // #endif // (_WIN32_WINNT >= 0x0500)
327
328 // #if (_WIN32_WINNT >= 0x0500)
329 enum : uint { OFN_EX_NOPLACESBAR = 0x00000001 }
330 // #endif // (_WIN32_WINNT >= 0x0500)
331
332 enum : uint { OFN_SHAREFALLTHROUGH = 2 }
333 enum : uint { OFN_SHARENOWARN = 1 }
334 enum : uint { OFN_SHAREWARN = 0 }
335
336 extern(Windows) alias UINT_PTR function(HWND, UINT, WPARAM, LPARAM) LPCCHOOKPROC;
337
338 // #if(WINVER >= 0x0400)
339
340 struct _OFNOTIFYA {
341 NMHDR hdr;
342 LPOPENFILENAMEA lpOFN;
343 LPSTR pszFile;
344 }
345 alias _OFNOTIFYA OFNOTIFYA;
346 alias _OFNOTIFYA* LPOFNOTIFYA;
347
348 struct _OFNOTIFYW {
349 NMHDR hdr;
350 LPOPENFILENAMEW lpOFN;
351 LPWSTR pszFile;
352 }
353 alias _OFNOTIFYW OFNOTIFYW;
354 alias _OFNOTIFYW* LPOFNOTIFYW;
355
356 // #ifdef UNICODE
357 alias OFNOTIFYW OFNOTIFY;
358 alias LPOFNOTIFYW LPOFNOTIFY;
359 // #else
360 // ...
361 // #endif // UNICODE
362
363 struct _OFNOTIFYEXA {
364 NMHDR hdr;
365 LPOPENFILENAMEA lpOFN;
366 LPVOID psf;
367 LPVOID pidl;
368 }
369 alias _OFNOTIFYEXA OFNOTIFYEXA;
370 alias _OFNOTIFYEXA* LPOFNOTIFYEXA;
371
372 struct _OFNOTIFYEXW {
373 NMHDR hdr;
374 LPOPENFILENAMEW lpOFN;
375 LPVOID psf;
376 LPVOID pidl;
377 }
378 alias _OFNOTIFYEXW OFNOTIFYEXW;
379 alias _OFNOTIFYEXW* LPOFNOTIFYEXW;
380
381 // #ifdef UNICODE
382 alias OFNOTIFYEXW OFNOTIFYEX;
383 alias LPOFNOTIFYEXW LPOFNOTIFYEX;
384 // #else
385 // ...
386 // #endif // UNICODE
387
388 const uint CDN_FIRST = 0U-601U;
389 const uint CDN_LAST = 0U-699U;
390
391 const uint CDN_INITDONE = CDN_FIRST - 0x0000;
392 const uint CDN_SELCHANGE = CDN_FIRST - 0x0001;
393 const uint CDN_FOLDERCHANGE = CDN_FIRST - 0x0002;
394 const uint CDN_SHAREVIOLATION = CDN_FIRST - 0x0003;
395 const uint CDN_HELP = CDN_FIRST - 0x0004;
396 const uint CDN_FILEOK = CDN_FIRST - 0x0005;
397 const uint CDN_TYPECHANGE = CDN_FIRST - 0x0006;
398 const uint CDN_INCLUDEITEM = CDN_FIRST - 0x0007;
399
400 const uint CDM_FIRST = WM_USER + 100;
401 const uint CDM_LAST = WM_USER + 200;
402
403 const uint CDM_GETSPEC = CDM_FIRST + 0x0000;
404 // #define CommDlg_OpenSave_GetSpecA(_hdlg, _psz, _cbmax) (int)SNDMSG(_hdlg, CDM_GETSPEC, (WPARAM)_cbmax, (LPARAM)(LPSTR)_psz)
405 // #define CommDlg_OpenSave_GetSpecW(_hdlg, _psz, _cbmax) (int)SNDMSG(_hdlg, CDM_GETSPEC, (WPARAM)_cbmax, (LPARAM)(LPWSTR)_psz)
406 // #ifdef UNICODE
407 // #define CommDlg_OpenSave_GetSpec CommDlg_OpenSave_GetSpecW
408 // #else
409 // #...
410 // #endif // !UNICODE
411
412 const uint CDM_GETFILEPATH = CDM_FIRST + 0x0001;
413 // #define CommDlg_OpenSave_GetFilePathA(_hdlg, _psz, _cbmax) (int)SNDMSG(_hdlg, CDM_GETFILEPATH, (WPARAM)_cbmax, (LPARAM)(LPSTR)_psz)
414 // #define CommDlg_OpenSave_GetFilePathW(_hdlg, _psz, _cbmax) (int)SNDMSG(_hdlg, CDM_GETFILEPATH, (WPARAM)_cbmax, (LPARAM)(LPWSTR)_psz)
415 // #ifdef UNICODE
416 // #define CommDlg_OpenSave_GetFilePath CommDlg_OpenSave_GetFilePathW
417 // #else
418 // #...
419 // #endif // !UNICODE
420
421 const uint CDM_GETFOLDERPATH = CDM_FIRST + 0x0002;
422 // #define CommDlg_OpenSave_GetFolderPathA(_hdlg, _psz, _cbmax) (int)SNDMSG(_hdlg, CDM_GETFOLDERPATH, (WPARAM)_cbmax, (LPARAM)(LPSTR)_psz)
423 // #define CommDlg_OpenSave_GetFolderPathW(_hdlg, _psz, _cbmax) (int)SNDMSG(_hdlg, CDM_GETFOLDERPATH, (WPARAM)_cbmax, (LPARAM)(LPWSTR)_psz)
424 // #ifdef UNICODE
425 // #define CommDlg_OpenSave_GetFolderPath CommDlg_OpenSave_GetFolderPathW
426 // #else
427 // #...
428 // #endif // !UNICODE
429
430 const uint CDM_GETFOLDERIDLIST = CDM_FIRST + 0x0003;
431 // #define CommDlg_OpenSave_GetFolderIDList(_hdlg, _pidl, _cbmax) (int)SNDMSG(_hdlg, CDM_GETFOLDERIDLIST, (WPARAM)_cbmax, (LPARAM)(LPVOID)_pidl)
432
433 const uint CDM_SETCONTROLTEXT = CDM_FIRST + 0x0004;
434 // #define CommDlg_OpenSave_SetControlText(_hdlg, _id, _text) (void)SNDMSG(_hdlg, CDM_SETCONTROLTEXT, (WPARAM)_id, (LPARAM)(LPSTR)_text)
435
436 const uint CDM_HIDECONTROL = CDM_FIRST + 0x0005;
437 // #define CommDlg_OpenSave_HideControl(_hdlg, _id) (void)SNDMSG(_hdlg, CDM_HIDECONTROL, (WPARAM)_id, 0)
438
439 const uint CDM_SETDEFEXT = CDM_FIRST + 0x0006;
440 // #define CommDlg_OpenSave_SetDefExt(_hdlg, _pszext) (void)SNDMSG(_hdlg, CDM_SETDEFEXT, 0, (LPARAM)(LPSTR)_pszext)
441 // #endif /* WINVER >= 0x0400 */
442
443 // #ifndef _MAC
444 struct tagCHOOSECOLORA {
445 DWORD lStructSize;
446 HWND hwndOwner;
447 HWND hInstance;
448 COLORREF rgbResult;
449 COLORREF * lpCustColors;
450 DWORD Flags;
451 LPARAM lCustData;
452 LPCCHOOKPROC lpfnHook;
453 LPCSTR lpTemplateName;
454 }
455 alias tagCHOOSECOLORA CHOOSECOLORA;
456 alias tagCHOOSECOLORA* LPCHOOSECOLORA;
457
458 struct tagCHOOSECOLORW {
459 DWORD lStructSize;
460 HWND hwndOwner;
461 HWND hInstance;
462 COLORREF rgbResult;
463 COLORREF * lpCustColors;
464 DWORD Flags;
465 LPARAM lCustData;
466 LPCCHOOKPROC lpfnHook;
467 LPCWSTR lpTemplateName;
468 }
469 alias tagCHOOSECOLORW CHOOSECOLORW;
470 alias tagCHOOSECOLORW* LPCHOOSECOLORW;
471
472 // #ifdef UNICODE
473 alias CHOOSECOLORW CHOOSECOLOR;
474 alias LPCHOOSECOLORW LPCHOOSECOLOR;
475 // #else
476 // ...
477 // #endif // UNICODE
478 // #else
479 // ...
480 // #ifdef UNICODE
481 // ...
482 // #else
483 // ...
484 // #endif // UNICODE
485 // #endif //_MAC
486
487 extern(Windows) export BOOL ChooseColorA(LPCHOOSECOLORA);
488 extern(Windows) export BOOL ChooseColorW(LPCHOOSECOLORW);
489 // #ifdef UNICODE
490 alias ChooseColorW ChooseColor;
491 // #else
492 // #...
493 // #endif // !UNICODE
494
495 enum : uint { CC_RGBINIT = 0x00000001 }
496 enum : uint { CC_FULLOPEN = 0x00000002 }
497 enum : uint { CC_PREVENTFULLOPEN = 0x00000004 }
498 enum : uint { CC_SHOWHELP = 0x00000008 }
499 enum : uint { CC_ENABLEHOOK = 0x00000010 }
500 enum : uint { CC_ENABLETEMPLATE = 0x00000020 }
501 enum : uint { CC_ENABLETEMPLATEHANDLE = 0x00000040 }
502 // #if(WINVER >= 0x0400)
503 enum : uint { CC_SOLIDCOLOR = 0x00000080 }
504 enum : uint { CC_ANYCOLOR = 0x00000100 }
505 // #endif /* WINVER >= 0x0400 */
506
507 extern(Windows) alias UINT_PTR function(HWND, UINT, WPARAM, LPARAM) LPFRHOOKPROC;
508
509 struct tagFINDREPLACEA {
510 DWORD lStructSize;
511 HWND hwndOwner;
512 HINSTANCE hInstance;
513
514 DWORD Flags;
515 LPSTR lpstrFindWhat;
516 LPSTR lpstrReplaceWith;
517 WORD wFindWhatLen;
518 WORD wReplaceWithLen;
519 LPARAM lCustData;
520 LPFRHOOKPROC lpfnHook;
521 LPCSTR lpTemplateName;
522 }
523 alias tagFINDREPLACEA FINDREPLACEA;
524 alias tagFINDREPLACEA* LPFINDREPLACEA;
525
526 struct tagFINDREPLACEW {
527 DWORD lStructSize;
528 HWND hwndOwner;
529 HINSTANCE hInstance;
530
531 DWORD Flags;
532 LPWSTR lpstrFindWhat;
533 LPWSTR lpstrReplaceWith;
534 WORD wFindWhatLen;
535 WORD wReplaceWithLen;
536 LPARAM lCustData;
537 LPFRHOOKPROC lpfnHook;
538 LPCWSTR lpTemplateName;
539 }
540 alias tagFINDREPLACEW FINDREPLACEW;
541 alias tagFINDREPLACEW* LPFINDREPLACEW;
542
543 // #ifdef UNICODE
544 alias FINDREPLACEW FINDREPLACE;
545 alias LPFINDREPLACEW LPFINDREPLACE;
546 // #else
547 // ...
548 // #endif // UNICODE
549
550 enum : uint { FR_DOWN = 0x00000001 }
551 enum : uint { FR_WHOLEWORD = 0x00000002 }
552 enum : uint { FR_MATCHCASE = 0x00000004 }
553 enum : uint { FR_FINDNEXT = 0x00000008 }
554 enum : uint { FR_REPLACE = 0x00000010 }
555 enum : uint { FR_REPLACEALL = 0x00000020 }
556 enum : uint { FR_DIALOGTERM = 0x00000040 }
557 enum : uint { FR_SHOWHELP = 0x00000080 }
558 enum : uint { FR_ENABLEHOOK = 0x00000100 }
559 enum : uint { FR_ENABLETEMPLATE = 0x00000200 }
560 enum : uint { FR_NOUPDOWN = 0x00000400 }
561 enum : uint { FR_NOMATCHCASE = 0x00000800 }
562 enum : uint { FR_NOWHOLEWORD = 0x00001000 }
563 enum : uint { FR_ENABLETEMPLATEHANDLE = 0x00002000 }
564 enum : uint { FR_HIDEUPDOWN = 0x00004000 }
565 enum : uint { FR_HIDEMATCHCASE = 0x00008000 }
566 enum : uint { FR_HIDEWHOLEWORD = 0x00010000 }
567 enum : uint { FR_RAW = 0x00020000 }
568 enum : uint { FR_MATCHDIAC = 0x20000000 }
569 enum : uint { FR_MATCHKASHIDA = 0x40000000 }
570 enum : uint { FR_MATCHALEFHAMZA = 0x80000000 }
571
572 extern(Windows) export HWND FindTextA(LPFINDREPLACEA);
573 extern(Windows) export HWND FindTextW(LPFINDREPLACEW);
574 // #ifdef UNICODE
575 alias FindTextW FindText;
576 // #else
577 // #...
578 // #endif // !UNICODE
579 // #ifndef _MAC
580 extern(Windows) export HWND ReplaceTextA(LPFINDREPLACEA);
581 extern(Windows) export HWND ReplaceTextW(LPFINDREPLACEW);
582 // #ifdef UNICODE
583 alias ReplaceTextW ReplaceText;
584 // #else
585 // #...
586 // #endif // !UNICODE
587 // #else
588 // ...
589 // #ifdef UNICODE
590 // #...
591 // #else
592 // #...
593 // #endif // !UNICODE
594 // #endif
595
596 extern(Windows) alias UINT_PTR function(HWND, UINT, WPARAM, LPARAM) LPCFHOOKPROC;
597
598 struct tagCHOOSEFONTA {
599 DWORD lStructSize;
600 HWND hwndOwner;
601 HDC hDC;
602 LPLOGFONTA lpLogFont;
603 INT iPointSize;
604 DWORD Flags;
605 COLORREF rgbColors;
606 LPARAM lCustData;
607 LPCFHOOKPROC lpfnHook;
608 LPCSTR lpTemplateName;
609 HINSTANCE hInstance;
610
611 LPSTR lpszStyle;
612
613 WORD nFontType;
614
615 WORD ___MISSING_ALIGNMENT__;
616 INT nSizeMin;
617 INT nSizeMax;
618
619 }
620 alias tagCHOOSEFONTA CHOOSEFONTA;
621 alias tagCHOOSEFONTA* LPCHOOSEFONTA;
622
623 struct tagCHOOSEFONTW {
624 DWORD lStructSize;
625 HWND hwndOwner;
626 HDC hDC;
627 LPLOGFONTW lpLogFont;
628 INT iPointSize;
629 DWORD Flags;
630 COLORREF rgbColors;
631 LPARAM lCustData;
632 LPCFHOOKPROC lpfnHook;
633 LPCWSTR lpTemplateName;
634 HINSTANCE hInstance;
635
636 LPWSTR lpszStyle;
637
638 WORD nFontType;
639
640 WORD ___MISSING_ALIGNMENT__;
641 INT nSizeMin;
642 INT nSizeMax;
643
644 }
645 alias tagCHOOSEFONTW CHOOSEFONTW;
646 alias tagCHOOSEFONTW* LPCHOOSEFONTW;
647
648 // #ifdef UNICODE
649 alias CHOOSEFONTW CHOOSEFONT;
650 alias LPCHOOSEFONTW LPCHOOSEFONT;
651 // #else
652 // ...
653 // #endif // UNICODE
654
655 extern(Windows) export BOOL ChooseFontA(LPCHOOSEFONTA);
656 extern(Windows) export BOOL ChooseFontW(LPCHOOSEFONTW);
657 // #ifdef UNICODE
658 alias ChooseFontW ChooseFont;
659 // #else
660 // #...
661 // #endif // !UNICODE
662
663 enum : uint { CF_SCREENFONTS = 0x00000001 }
664 enum : uint { CF_PRINTERFONTS = 0x00000002 }
665 const uint CF_BOTH = CF_SCREENFONTS | CF_PRINTERFONTS;
666 enum : uint { CF_SHOWHELP = 0x00000004 }
667 enum : uint { CF_ENABLEHOOK = 0x00000008 }
668 enum : uint { CF_ENABLETEMPLATE = 0x00000010 }
669 enum : uint { CF_ENABLETEMPLATEHANDLE = 0x00000020 }
670 enum : uint { CF_INITTOLOGFONTSTRUCT = 0x00000040 }
671 enum : uint { CF_USESTYLE = 0x00000080 }
672 enum : uint { CF_EFFECTS = 0x00000100 }
673 enum : uint { CF_APPLY = 0x00000200 }
674 enum : uint { CF_ANSIONLY = 0x00000400 }
675 // #if(WINVER >= 0x0400)
676 alias CF_ANSIONLY CF_SCRIPTSONLY;
677 // #endif /* WINVER >= 0x0400 */
678 enum : uint { CF_NOVECTORFONTS = 0x00000800 }
679 alias CF_NOVECTORFONTS CF_NOOEMFONTS;
680 enum : uint { CF_NOSIMULATIONS = 0x00001000 }
681 enum : uint { CF_LIMITSIZE = 0x00002000 }
682 enum : uint { CF_FIXEDPITCHONLY = 0x00004000 }
683 enum : uint { CF_WYSIWYG = 0x00008000 }
684 enum : uint { CF_FORCEFONTEXIST = 0x00010000 }
685 enum : uint { CF_SCALABLEONLY = 0x00020000 }
686 enum : uint { CF_TTONLY = 0x00040000 }
687 enum : uint { CF_NOFACESEL = 0x00080000 }
688 enum : uint { CF_NOSTYLESEL = 0x00100000 }
689 enum : uint { CF_NOSIZESEL = 0x00200000 }
690 // #if(WINVER >= 0x0400)
691 enum : uint { CF_SELECTSCRIPT = 0x00400000 }
692 enum : uint { CF_NOSCRIPTSEL = 0x00800000 }
693 enum : uint { CF_NOVERTFONTS = 0x01000000 }
694 // #endif /* WINVER >= 0x0400 */
695
696 enum : uint { SIMULATED_FONTTYPE = 0x8000 }
697 enum : uint { PRINTER_FONTTYPE = 0x4000 }
698 enum : uint { SCREEN_FONTTYPE = 0x2000 }
699 enum : uint { BOLD_FONTTYPE = 0x0100 }
700 enum : uint { ITALIC_FONTTYPE = 0x0200 }
701 enum : uint { REGULAR_FONTTYPE = 0x0400 }
702
703 // #ifdef WINNT
704 // #...
705 // #...
706 // #...
707 // #endif
708
709 const uint WM_CHOOSEFONT_GETLOGFONT = WM_USER + 1;
710 const uint WM_CHOOSEFONT_SETLOGFONT = WM_USER + 101;
711 const uint WM_CHOOSEFONT_SETFLAGS = WM_USER + 102;
712
713 const char[] LBSELCHSTRINGA = "commdlg_LBSelChangedNotify";
714 const char[] SHAREVISTRINGA = "commdlg_ShareViolation";
715 const char[] FILEOKSTRINGA = "commdlg_FileNameOK";
716 const char[] COLOROKSTRINGA = "commdlg_ColorOK";
717 const char[] SETRGBSTRINGA = "commdlg_SetRGBColor";
718 const char[] HELPMSGSTRINGA = "commdlg_help";
719 const char[] FINDMSGSTRINGA = "commdlg_FindReplace";
720
721 const wchar[] LBSELCHSTRINGW = "commdlg_LBSelChangedNotify";
722 const wchar[] SHAREVISTRINGW = "commdlg_ShareViolation";
723 const wchar[] FILEOKSTRINGW = "commdlg_FileNameOK";
724 const wchar[] COLOROKSTRINGW = "commdlg_ColorOK";
725 const wchar[] SETRGBSTRINGW = "commdlg_SetRGBColor";
726 const wchar[] HELPMSGSTRINGW = "commdlg_help";
727 const wchar[] FINDMSGSTRINGW = "commdlg_FindReplace";
728
729 // #ifdef UNICODE
730 alias LBSELCHSTRINGW LBSELCHSTRING;
731 alias SHAREVISTRINGW SHAREVISTRING;
732 alias FILEOKSTRINGW FILEOKSTRING;
733 alias COLOROKSTRINGW COLOROKSTRING;
734 alias SETRGBSTRINGW SETRGBSTRING;
735 alias HELPMSGSTRINGW HELPMSGSTRING;
736 alias FINDMSGSTRINGW FINDMSGSTRING;
737 // #else
738 // #...
739 // #...
740 // #...
741 // #...
742 // #...
743 // #...
744 // #...
745 // #endif
746
747 enum { CD_LBSELNOITEMS = -1 }
748 enum : uint { CD_LBSELCHANGE = 0 }
749 enum : uint { CD_LBSELSUB = 1 }
750 enum : uint { CD_LBSELADD = 2 }
751
752 extern(Windows) alias UINT_PTR function(HWND, UINT, WPARAM, LPARAM) LPPRINTHOOKPROC;
753 extern(Windows) alias UINT_PTR function(HWND, UINT, WPARAM, LPARAM) LPSETUPHOOKPROC;
754
755 struct tagPDA {
756 DWORD lStructSize;
757 HWND hwndOwner;
758 HGLOBAL hDevMode;
759 HGLOBAL hDevNames;
760 HDC hDC;
761 DWORD Flags;
762 WORD nFromPage;
763 WORD nToPage;
764 WORD nMinPage;
765 WORD nMaxPage;
766 WORD nCopies;
767 HINSTANCE hInstance;
768 LPARAM lCustData;
769 LPPRINTHOOKPROC lpfnPrintHook;
770 LPSETUPHOOKPROC lpfnSetupHook;
771 LPCSTR lpPrintTemplateName;
772 LPCSTR lpSetupTemplateName;
773 HGLOBAL hPrintTemplate;
774 HGLOBAL hSetupTemplate;
775 }
776 alias tagPDA PRINTDLGA;
777 alias tagPDA* LPPRINTDLGA;
778
779 struct tagPDW {
780 DWORD lStructSize;
781 HWND hwndOwner;
782 HGLOBAL hDevMode;
783 HGLOBAL hDevNames;
784 HDC hDC;
785 DWORD Flags;
786 WORD nFromPage;
787 WORD nToPage;
788 WORD nMinPage;
789 WORD nMaxPage;
790 WORD nCopies;
791 HINSTANCE hInstance;
792 LPARAM lCustData;
793 LPPRINTHOOKPROC lpfnPrintHook;
794 LPSETUPHOOKPROC lpfnSetupHook;
795 LPCWSTR lpPrintTemplateName;
796 LPCWSTR lpSetupTemplateName;
797 HGLOBAL hPrintTemplate;
798 HGLOBAL hSetupTemplate;
799 }
800 alias tagPDW PRINTDLGW;
801 alias tagPDW* LPPRINTDLGW;
802
803 // #ifdef UNICODE
804 alias PRINTDLGW PRINTDLG;
805 alias LPPRINTDLGW LPPRINTDLG;
806 // #else
807 // ...
808 // #endif // UNICODE
809
810 extern(Windows) export BOOL PrintDlgA(LPPRINTDLGA);
811 extern(Windows) export BOOL PrintDlgW(LPPRINTDLGW);
812 // #ifdef UNICODE
813 alias PrintDlgW PrintDlg;
814 // #else
815 // #...
816 // #endif // !UNICODE
817
818 // #if(WINVER >= 0x0500)
819
820 // #ifdef STDMETHOD
821
822 // #...
823 // #...
824
825 // ...
826
827 // ...
828
829 // #...
830 // #...
831
832 // ...
833
834 // ...
835
836 // ...
837
838 // ...
839 // #ifdef UNICODE
840 // ...
841 // #else
842 // ...
843 // #endif // UNICODE
844
845 // ...
846 // #ifdef UNICODE
847 // #...
848 // #else
849 // #...
850 // #endif // !UNICODE
851
852 // #endif
853
854 // #endif /* WINVER >= 0x0500 */
855
856 enum : uint { PD_ALLPAGES = 0x00000000 }
857 enum : uint { PD_SELECTION = 0x00000001 }
858 enum : uint { PD_PAGENUMS = 0x00000002 }
859 enum : uint { PD_NOSELECTION = 0x00000004 }
860 enum : uint { PD_NOPAGENUMS = 0x00000008 }
861 enum : uint { PD_COLLATE = 0x00000010 }
862 enum : uint { PD_PRINTTOFILE = 0x00000020 }
863 enum : uint { PD_PRINTSETUP = 0x00000040 }
864 enum : uint { PD_NOWARNING = 0x00000080 }
865 enum : uint { PD_RETURNDC = 0x00000100 }
866 enum : uint { PD_RETURNIC = 0x00000200 }
867 enum : uint { PD_RETURNDEFAULT = 0x00000400 }
868 enum : uint { PD_SHOWHELP = 0x00000800 }
869 enum : uint { PD_ENABLEPRINTHOOK = 0x00001000 }
870 enum : uint { PD_ENABLESETUPHOOK = 0x00002000 }
871 enum : uint { PD_ENABLEPRINTTEMPLATE = 0x00004000 }
872 enum : uint { PD_ENABLESETUPTEMPLATE = 0x00008000 }
873 enum : uint { PD_ENABLEPRINTTEMPLATEHANDLE = 0x00010000 }
874 enum : uint { PD_ENABLESETUPTEMPLATEHANDLE = 0x00020000 }
875 enum : uint { PD_USEDEVMODECOPIES = 0x00040000 }
876 enum : uint { PD_USEDEVMODECOPIESANDCOLLATE = 0x00040000 }
877 enum : uint { PD_DISABLEPRINTTOFILE = 0x00080000 }
878 enum : uint { PD_HIDEPRINTTOFILE = 0x00100000 }
879 enum : uint { PD_NONETWORKBUTTON = 0x00200000 }
880 // #if(WINVER >= 0x0500)
881 enum : uint { PD_CURRENTPAGE = 0x00400000 }
882 enum : uint { PD_NOCURRENTPAGE = 0x00800000 }
883 enum : uint { PD_EXCLUSIONFLAGS = 0x01000000 }
884 enum : uint { PD_USELARGETEMPLATE = 0x10000000 }
885 // #endif /* WINVER >= 0x0500 */
886
887 // #if(WINVER >= 0x0500)
888
889 const uint PD_EXCL_COPIESANDCOLLATE = DM_COPIES | DM_COLLATE;
890
891 enum : uint { START_PAGE_GENERAL = 0xffffffff }
892
893 enum : uint { PD_RESULT_CANCEL = 0 }
894 enum : uint { PD_RESULT_PRINT = 1 }
895 enum : uint { PD_RESULT_APPLY = 2 }
896
897 // #endif /* WINVER >= 0x0500 */
898
899 struct tagDEVNAMES {
900 WORD wDriverOffset;
901 WORD wDeviceOffset;
902 WORD wOutputOffset;
903 WORD wDefault;
904 }
905 alias tagDEVNAMES DEVNAMES;
906 alias tagDEVNAMES* LPDEVNAMES;
907
908 enum : uint { DN_DEFAULTPRN = 0x0001 }
909
910 extern(Windows) export DWORD CommDlgExtendedError();
911
912 // #if(WINVER >= 0x0400)
913 const uint WM_PSD_PAGESETUPDLG = WM_USER ;
914 const uint WM_PSD_FULLPAGERECT = WM_USER+1;
915 const uint WM_PSD_MINMARGINRECT = WM_USER+2;
916 const uint WM_PSD_MARGINRECT = WM_USER+3;
917 const uint WM_PSD_GREEKTEXTRECT = WM_USER+4;
918 const uint WM_PSD_ENVSTAMPRECT = WM_USER+5;
919 const uint WM_PSD_YAFULLPAGERECT = WM_USER+6;
920
921 extern(Windows) alias UINT_PTR function( HWND, UINT, WPARAM, LPARAM ) LPPAGEPAINTHOOK;
922 extern(Windows) alias UINT_PTR function( HWND, UINT, WPARAM, LPARAM ) LPPAGESETUPHOOK;
923
924 struct tagPSDA {
925 DWORD lStructSize;
926 HWND hwndOwner;
927 HGLOBAL hDevMode;
928 HGLOBAL hDevNames;
929 DWORD Flags;
930 POINT ptPaperSize;
931 RECT rtMinMargin;
932 RECT rtMargin;
933 HINSTANCE hInstance;
934 LPARAM lCustData;
935 LPPAGESETUPHOOK lpfnPageSetupHook;
936 LPPAGEPAINTHOOK lpfnPagePaintHook;
937 LPCSTR lpPageSetupTemplateName;
938 HGLOBAL hPageSetupTemplate;
939 }
940 alias tagPSDA PAGESETUPDLGA;
941 alias tagPSDA* LPPAGESETUPDLGA;
942
943 struct tagPSDW {
944 DWORD lStructSize;
945 HWND hwndOwner;
946 HGLOBAL hDevMode;
947 HGLOBAL hDevNames;
948 DWORD Flags;
949 POINT ptPaperSize;
950 RECT rtMinMargin;
951 RECT rtMargin;
952 HINSTANCE hInstance;
953 LPARAM lCustData;
954 LPPAGESETUPHOOK lpfnPageSetupHook;
955 LPPAGEPAINTHOOK lpfnPagePaintHook;
956 LPCWSTR lpPageSetupTemplateName;
957 HGLOBAL hPageSetupTemplate;
958 }
959 alias tagPSDW PAGESETUPDLGW;
960 alias tagPSDW* LPPAGESETUPDLGW;
961
962 // #ifdef UNICODE
963 alias PAGESETUPDLGW PAGESETUPDLG;
964 alias LPPAGESETUPDLGW LPPAGESETUPDLG;
965 // #else
966 // ...
967 // #endif // UNICODE
968
969 extern(Windows) export BOOL PageSetupDlgA( LPPAGESETUPDLGA );
970 extern(Windows) export BOOL PageSetupDlgW( LPPAGESETUPDLGW );
971 // #ifdef UNICODE
972 alias PageSetupDlgW PageSetupDlg;
973 // #else
974 // #...
975 // #endif // !UNICODE
976
977 enum : uint { PSD_DEFAULTMINMARGINS = 0x00000000 }
978 enum : uint { PSD_INWININIINTLMEASURE = 0x00000000 }
979
980 enum : uint { PSD_MINMARGINS = 0x00000001 }
981 enum : uint { PSD_MARGINS = 0x00000002 }
982 enum : uint { PSD_INTHOUSANDTHSOFINCHES = 0x00000004 }
983 enum : uint { PSD_INHUNDREDTHSOFMILLIMETERS = 0x00000008 }
984 enum : uint { PSD_DISABLEMARGINS = 0x00000010 }
985 enum : uint { PSD_DISABLEPRINTER = 0x00000020 }
986 enum : uint { PSD_NOWARNING = 0x00000080 }
987 enum : uint { PSD_DISABLEORIENTATION = 0x00000100 }
988 enum : uint { PSD_RETURNDEFAULT = 0x00000400 }
989 enum : uint { PSD_DISABLEPAPER = 0x00000200 }
990 enum : uint { PSD_SHOWHELP = 0x00000800 }
991 enum : uint { PSD_ENABLEPAGESETUPHOOK = 0x00002000 }
992 enum : uint { PSD_ENABLEPAGESETUPTEMPLATE = 0x00008000 }
993 enum : uint { PSD_ENABLEPAGESETUPTEMPLATEHANDLE = 0x00020000 }
994 enum : uint { PSD_ENABLEPAGEPAINTHOOK = 0x00040000 }
995 enum : uint { PSD_DISABLEPAGEPAINTING = 0x00080000 }
996 enum : uint { PSD_NONETWORKBUTTON = 0x00200000 }
997 // #endif /* WINVER >= 0x0400 */
998
999 // #if !defined(RC_INVOKED) /* RC complains about long symbols in #ifs */
1000 // #if ISOLATION_AWARE_ENABLED
1001
1002 // #if !defined(ISOLATION_AWARE_INLINE)
1003 // #if defined(__cplusplus)
1004 // #...
1005 // #else
1006 // #...
1007 // #endif
1008 // #endif
1009
1010 // ...
1011
1012 // ...
1013 // #if defined(STDMETHOD) && (WINVER >= 0x0500)
1014 // ...
1015 // #endif /* defined(STDMETHOD) && (WINVER >= 0x0500) */
1016 // ...
1017
1018 // #if defined(UNICODE)
1019
1020 // #...
1021 // #...
1022 // #...
1023 // #...
1024 // #...
1025 // #...
1026 // #...
1027 // #...
1028 // #...
1029 // #...
1030
1031 // #else /* UNICODE */
1032
1033 // #...
1034 // #...
1035 // #...
1036 // #...
1037 // #...
1038 // #...
1039 // #...
1040 // #...
1041 // #...
1042 // #...
1043
1044 // #endif /* UNICODE */
1045
1046 // ...
1047
1048 // ...
1049
1050 // ...
1051
1052 // ...
1053
1054 // ...
1055
1056 // ...
1057
1058 // ...
1059
1060 // ...
1061
1062 // ...
1063
1064 // ...
1065
1066 // ...
1067
1068 // ...
1069
1070 // ...
1071
1072 // ...
1073
1074 // ...
1075
1076 // ...
1077
1078 // #if defined(STDMETHOD) && (WINVER >= 0x0500)
1079
1080 // ...
1081
1082 // ...
1083
1084 // ...
1085
1086 // ...
1087
1088 // #endif /* defined(STDMETHOD) && (WINVER >= 0x0500) */
1089
1090 // ...
1091
1092 // ...
1093
1094 // ...
1095
1096 // ...
1097
1098 // #...
1099 // #...
1100 // #...
1101 // #...
1102 // #...
1103 // #...
1104 // #...
1105 // #...
1106 // #...
1107 // #...
1108 // #...
1109 // #...
1110 // #...
1111 // #...
1112 // #...
1113 // #...
1114 // #...
1115 // #...
1116 // #...
1117 // #...
1118 // #...
1119
1120 // #endif /* ISOLATION_AWARE_ENABLED */
1121 // #endif /* RC */
1122
1123 // #ifdef __cplusplus
1124 // }
1125 // #endif /* __cplusplus */
1126
1127 // #if !defined(_WIN64)
1128 align:
1129 // #endif
1130 // #endif /* GUID_DEFS_ONLY */
1131 // #endif /* !_INC_COMMDLG */
1132