Differences From Artifact [6d620068807bb293]:
- File
src/win32/commdlg.d
- 2011-02-23 12:53:16 - part of checkin [c2b7a98c21] on branch trunk - Initial import (user: kinaba) [annotate]
To Artifact [dce8014c88d4101f]:
- File
src/win32/commdlg.d
- 2015-04-21 10:46:55 - part of checkin [4e2933c620] on branch trunk - Rebased to the latest verson dmd 2.067. Not yet verified the outcome. (user: kinaba) [annotate]
1 +/***********************************************************************\
2 +* commdlg.d *
3 +* *
4 +* Windows API header module *
5 +* *
6 +* Translated from MinGW API for MS-Windows 3.12 *
7 +* *
8 +* Placed into public domain *
9 +\***********************************************************************/
1 10 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;
11 +pragma(lib, "comdlg32.lib");
12 +
13 +private import win32.w32api;
14 +import win32.windef, win32.winuser;
15 +import win32.wingdi; // for LPLOGFONTA
16 +
17 +const TCHAR[]
18 + LBSELCHSTRING = "commdlg_LBSelChangedNotify",
19 + SHAREVISTRING = "commdlg_ShareViolation",
20 + FILEOKSTRING = "commdlg_FileNameOK",
21 + COLOROKSTRING = "commdlg_ColorOK",
22 + SETRGBSTRING = "commdlg_SetRGBColor",
23 + HELPMSGSTRING = "commdlg_help",
24 + FINDMSGSTRING = "commdlg_FindReplace";
25 +
26 +enum : UINT {
27 + CDN_FIRST = -601, // also in commctrl.h
28 + CDN_LAST = -699,
29 + CDN_INITDONE = CDN_FIRST,
30 + CDN_SELCHANGE = CDN_FIRST - 1,
31 + CDN_FOLDERCHANGE = CDN_FIRST - 2,
32 + CDN_SHAREVIOLATION = CDN_FIRST - 3,
33 + CDN_HELP = CDN_FIRST - 4,
34 + CDN_FILEOK = CDN_FIRST - 5,
35 + CDN_TYPECHANGE = CDN_FIRST - 6
36 +}
37 +
38 +enum : UINT {
39 + CDM_FIRST = WM_USER + 100,
40 + CDM_LAST = WM_USER + 200,
41 + CDM_GETSPEC = CDM_FIRST,
42 + CDM_GETFILEPATH,
43 + CDM_GETFOLDERPATH,
44 + CDM_GETFOLDERIDLIST,
45 + CDM_SETCONTROLTEXT,
46 + CDM_HIDECONTROL,
47 + CDM_SETDEFEXT // = CDM_FIRST + 6
48 +}
49 +
50 +// flags for ChooseColor
51 +enum : DWORD {
52 + CC_RGBINIT = 0x0001,
53 + CC_FULLOPEN = 0x0002,
54 + CC_PREVENTFULLOPEN = 0x0004,
55 + CC_SHOWHELP = 0x0008,
56 + CC_ENABLEHOOK = 0x0010,
57 + CC_ENABLETEMPLATE = 0x0020,
58 + CC_ENABLETEMPLATEHANDLE = 0x0040,
59 + CC_SOLIDCOLOR = 0x0080,
60 + CC_ANYCOLOR = 0x0100
61 +}
62 +
63 +// flags for ChooseFont
64 +enum : DWORD {
65 + CF_SCREENFONTS = 0x00000001,
66 + CF_PRINTERFONTS = 0x00000002,
67 + CF_BOTH = 0x00000003,
68 + CF_SHOWHELP = 0x00000004,
69 + CF_ENABLEHOOK = 0x00000008,
70 + CF_ENABLETEMPLATE = 0x00000010,
71 + CF_ENABLETEMPLATEHANDLE = 0x00000020,
72 + CF_INITTOLOGFONTSTRUCT = 0x00000040,
73 + CF_USESTYLE = 0x00000080,
74 + CF_EFFECTS = 0x00000100,
75 + CF_APPLY = 0x00000200,
76 + CF_ANSIONLY = 0x00000400,
77 + CF_SCRIPTSONLY = CF_ANSIONLY,
78 + CF_NOVECTORFONTS = 0x00000800,
79 + CF_NOOEMFONTS = 0x00000800,
80 + CF_NOSIMULATIONS = 0x00001000,
81 + CF_LIMITSIZE = 0x00002000,
82 + CF_FIXEDPITCHONLY = 0x00004000,
83 + CF_WYSIWYG = 0x00008000,
84 + CF_FORCEFONTEXIST = 0x00010000,
85 + CF_SCALABLEONLY = 0x00020000,
86 + CF_TTONLY = 0x00040000,
87 + CF_NOFACESEL = 0x00080000,
88 + CF_NOSTYLESEL = 0x00100000,
89 + CF_NOSIZESEL = 0x00200000,
90 + CF_SELECTSCRIPT = 0x00400000,
91 + CF_NOSCRIPTSEL = 0x00800000,
92 + CF_NOVERTFONTS = 0x01000000
93 +}
94 +
95 +// Font type for ChooseFont
96 +enum : WORD {
97 + BOLD_FONTTYPE = 0x0100,
98 + ITALIC_FONTTYPE = 0x0200,
99 + REGULAR_FONTTYPE = 0x0400,
100 + SCREEN_FONTTYPE = 0x2000,
101 + PRINTER_FONTTYPE = 0x4000,
102 + SIMULATED_FONTTYPE = 0x8000
103 +}
104 +
105 +enum : UINT {
106 + WM_CHOOSEFONT_GETLOGFONT = WM_USER + 1,
107 + WM_CHOOSEFONT_SETLOGFONT = WM_USER + 101,
108 + WM_CHOOSEFONT_SETFLAGS = WM_USER + 102
109 +}
110 +
111 +// flags for OpenFileName
112 +enum : DWORD {
113 + OFN_SHAREWARN = 0,
114 + OFN_SHARENOWARN = 0x000001,
115 + OFN_READONLY = 0x000001,
116 + OFN_SHAREFALLTHROUGH = 0x000002,
117 + OFN_OVERWRITEPROMPT = 0x000002,
118 + OFN_HIDEREADONLY = 0x000004,
119 + OFN_NOCHANGEDIR = 0x000008,
120 + OFN_SHOWHELP = 0x000010,
121 + OFN_ENABLEHOOK = 0x000020,
122 + OFN_ENABLETEMPLATE = 0x000040,
123 + OFN_ENABLETEMPLATEHANDLE = 0x000080,
124 + OFN_NOVALIDATE = 0x000100,
125 + OFN_ALLOWMULTISELECT = 0x000200,
126 + OFN_EXTENSIONDIFFERENT = 0x000400,
127 + OFN_PATHMUSTEXIST = 0x000800,
128 + OFN_FILEMUSTEXIST = 0x001000,
129 + OFN_CREATEPROMPT = 0x002000,
130 + OFN_SHAREAWARE = 0x004000,
131 + OFN_NOREADONLYRETURN = 0x008000,
132 + OFN_NOTESTFILECREATE = 0x010000,
133 + OFN_NONETWORKBUTTON = 0x020000,
134 + OFN_NOLONGNAMES = 0x040000,
135 + OFN_EXPLORER = 0x080000,
136 + OFN_NODEREFERENCELINKS = 0x100000,
137 + OFN_LONGNAMES = 0x200000,
138 + OFN_ENABLESIZING = 0x800000
139 +}
140 +
141 +enum : DWORD {
142 + FR_DOWN = 0x00000001,
143 + FR_WHOLEWORD = 0x00000002,
144 + FR_MATCHCASE = 0x00000004,
145 + FR_FINDNEXT = 0x00000008,
146 + FR_REPLACE = 0x00000010,
147 + FR_REPLACEALL = 0x00000020,
148 + FR_DIALOGTERM = 0x00000040,
149 + FR_SHOWHELP = 0x00000080,
150 + FR_ENABLEHOOK = 0x00000100,
151 + FR_ENABLETEMPLATE = 0x00000200,
152 + FR_NOUPDOWN = 0x00000400,
153 + FR_NOMATCHCASE = 0x00000800,
154 + FR_NOWHOLEWORD = 0x00001000,
155 + FR_ENABLETEMPLATEHANDLE = 0x00002000,
156 + FR_HIDEUPDOWN = 0x00004000,
157 + FR_HIDEMATCHCASE = 0x00008000,
158 + FR_HIDEWHOLEWORD = 0x00010000,
159 + FR_MATCHDIAC = 0x20000000,
160 + FR_MATCHKASHIDA = 0x40000000,
161 + FR_MATCHALEFHAMZA = 0x80000000
162 +}
163 +
164 +enum : DWORD {
165 + PD_ALLPAGES = 0,
166 + PD_SELECTION = 0x000001,
167 + PD_PAGENUMS = 0x000002,
168 + PD_NOSELECTION = 0x000004,
169 + PD_NOPAGENUMS = 0x000008,
170 + PD_COLLATE = 0x000010,
171 + PD_PRINTTOFILE = 0x000020,
172 + PD_PRINTSETUP = 0x000040,
173 + PD_NOWARNING = 0x000080,
174 + PD_RETURNDC = 0x000100,
175 + PD_RETURNIC = 0x000200,
176 + PD_RETURNDEFAULT = 0x000400,
177 + PD_SHOWHELP = 0x000800,
178 + PD_ENABLEPRINTHOOK = 0x001000,
179 + PD_ENABLESETUPHOOK = 0x002000,
180 + PD_ENABLEPRINTTEMPLATE = 0x004000,
181 + PD_ENABLESETUPTEMPLATE = 0x008000,
182 + PD_ENABLEPRINTTEMPLATEHANDLE = 0x010000,
183 + PD_ENABLESETUPTEMPLATEHANDLE = 0x020000,
184 + PD_USEDEVMODECOPIES = 0x040000,
185 + PD_USEDEVMODECOPIESANDCOLLATE = 0x040000,
186 + PD_DISABLEPRINTTOFILE = 0x080000,
187 + PD_HIDEPRINTTOFILE = 0x100000,
188 + PD_NONETWORKBUTTON = 0x200000
189 +}
190 +
191 +static if (_WIN32_WINNT_ONLY && _WIN32_WINNT >= 0x500) {
192 + enum : DWORD {
193 + PD_CURRENTPAGE = 0x00400000,
194 + PD_NOCURRENTPAGE = 0x00800000,
195 + PD_EXCLUSIONFLAGS = 0x01000000,
196 + PD_USELARGETEMPLATE = 0x10000000,
197 + }
198 +
199 + enum : HRESULT {
200 + PD_RESULT_CANCEL,
201 + PD_RESULT_PRINT,
202 + PD_RESULT_APPLY
203 + }
204 +
205 + const DWORD START_PAGE_GENERAL = 0xFFFFFFFF;
206 +}
207 +
208 +enum {
209 + PSD_DEFAULTMINMARGINS = 0,
210 + PSD_INWININIINTLMEASURE = 0,
211 + PSD_MINMARGINS = 0x000001,
212 + PSD_MARGINS = 0x000002,
213 + PSD_INTHOUSANDTHSOFINCHES = 0x000004,
214 + PSD_INHUNDREDTHSOFMILLIMETERS = 0x000008,
215 + PSD_DISABLEMARGINS = 0x000010,
216 + PSD_DISABLEPRINTER = 0x000020,
217 + PSD_NOWARNING = 0x000080,
218 + PSD_DISABLEORIENTATION = 0x000100,
219 + PSD_DISABLEPAPER = 0x000200,
220 + PSD_RETURNDEFAULT = 0x000400,
221 + PSD_SHOWHELP = 0x000800,
222 + PSD_ENABLEPAGESETUPHOOK = 0x002000,
223 + PSD_ENABLEPAGESETUPTEMPLATE = 0x008000,
224 + PSD_ENABLEPAGESETUPTEMPLATEHANDLE = 0x020000,
225 + PSD_ENABLEPAGEPAINTHOOK = 0x040000,
226 + PSD_DISABLEPAGEPAINTING = 0x080000
227 +}
228 +
229 +enum : UINT {
230 + WM_PSD_PAGESETUPDLG = WM_USER,
231 + WM_PSD_FULLPAGERECT,
232 + WM_PSD_MINMARGINRECT,
233 + WM_PSD_MARGINRECT,
234 + WM_PSD_GREEKTEXTRECT,
235 + WM_PSD_ENVSTAMPRECT,
236 + WM_PSD_YAFULLPAGERECT // = WM_USER + 6
237 +}
238 +
239 +enum : int {
240 + CD_LBSELNOITEMS = -1,
241 + CD_LBSELCHANGE,
242 + CD_LBSELSUB,
243 + CD_LBSELADD
244 +}
245 +
246 +const WORD DN_DEFAULTPRN = 1;
247 +
248 +/+
249 +// Both MinGW and the windows docs indicate that there are macros for the send messages
250 +// the controls. These seem to be totally unnecessary -- and at least one of MinGW or
251 +// Windows Docs is buggy!
252 +
253 +int CommDlg_OpenSave_GetSpec(HWND hWndControl, LPARAM lparam, WPARAM wParam) {
254 + return SendMessage(hWndControl, CDM_GETSPEC, wParam, lParam);
255 +}
256 +
257 +int CommDlg_OpenSave_GetFilePath(HWND hWndControl, LPARAM lparam, WPARAM wParam) {
258 + return SendMessage(hWndControl, CDM_GETFILEPATH, wParam, lParam);
259 +}
260 +
261 +int CommDlg_OpenSave_GetFolderPath(HWND hWndControl, LPARAM lparam, WPARAM wParam) {
262 + return SendMessage(hWndControl, CDM_GETFOLDERPATH, wParam, lParam);
263 +}
264 +
265 +int CommDlg_OpenSave_GetFolderIDList(HWND hWndControl, LPARAM lparam, WPARAM wParam) {
266 + return SendMessage(hWndControl, CDM_GETFOLDERIDLIST, wParam, lParam);
267 +}
268 +
269 +void CommDlg_OpenSave_SetControlText(HWND hWndControl, LPARAM lparam, WPARAM wParam) {
270 + return SendMessage(hWndControl, CDM_SETCONTROLTEXT, wParam, lParam);
271 +}
272 +
273 +void CommDlg_OpenSave_HideControl(HWND hWndControl, WPARAM wParam) {
274 + return SendMessage(hWndControl, CDM_HIDECONTROL, wParam, 0);
275 +}
276 +
277 +void CommDlg_OpenSave_SetDefExt(HWND hWndControl, TCHAR* lparam) {
278 + return SendMessage(hWndControl, CDM_SETCONTROLTEXT, 0, cast(LPARAM)lParam);
279 +}
280 +
281 +// These aliases seem even more unnecessary
282 +alias CommDlg_OpenSave_GetSpec
283 + CommDlg_OpenSave_GetSpecA, CommDlg_OpenSave_GetSpecW;
284 +alias CommDlg_OpenSave_GetFilePath
285 + CommDlg_OpenSave_GetFilePathA, CommDlg_OpenSave_GetFilePathW;
286 +alias CommDlg_OpenSave_GetFolderPath
287 + CommDlg_OpenSave_GetFolderPathA, CommDlg_OpenSave_GetFolderPathW;
288 ++/
289 +
290 +// Callbacks.
291 +extern(Windows) {
292 +alias UINT function (HWND, UINT, WPARAM, LPARAM)
293 + LPCCHOOKPROC, LPCFHOOKPROC, LPFRHOOKPROC, LPOFNHOOKPROC,
294 + LPPAGEPAINTHOOK, LPPAGESETUPHOOK, LPSETUPHOOKPROC, LPPRINTHOOKPROC;
295 +}
296 +
297 +align (1):
298 +
299 +struct CHOOSECOLORA {
300 + DWORD lStructSize = CHOOSECOLORA.sizeof;
301 + HWND hwndOwner;
302 + HWND hInstance;
303 + COLORREF rgbResult;
304 + COLORREF* lpCustColors;
305 + DWORD Flags;
306 + LPARAM lCustData;
307 + LPCCHOOKPROC lpfnHook;
308 + LPCSTR lpTemplateName;
309 +}
310 +alias CHOOSECOLORA* LPCHOOSECOLORA;
311 +
312 +struct CHOOSECOLORW {
313 + DWORD lStructSize = CHOOSECOLORW.sizeof;
314 + HWND hwndOwner;
315 + HWND hInstance;
316 + COLORREF rgbResult;
317 + COLORREF* lpCustColors;
318 + DWORD Flags;
319 + LPARAM lCustData;
320 + LPCCHOOKPROC lpfnHook;
321 + LPCWSTR lpTemplateName;
322 +}
323 +alias CHOOSECOLORW* LPCHOOSECOLORW;
324 +
325 +align (4) struct CHOOSEFONTA {
326 + DWORD lStructSize = CHOOSEFONTA.sizeof;
327 + HWND hwndOwner;
328 + HDC hDC;
329 + LPLOGFONTA lpLogFont;
330 + INT iPointSize;
331 + DWORD Flags;
332 + DWORD rgbColors;
333 + LPARAM lCustData;
334 + LPCFHOOKPROC lpfnHook;
335 + LPCSTR lpTemplateName;
336 + HINSTANCE hInstance;
337 + LPSTR lpszStyle;
338 + WORD nFontType;
339 + //WORD ___MISSING_ALIGNMENT__;
340 + INT nSizeMin;
341 + INT nSizeMax;
342 +}
343 +alias CHOOSEFONTA* LPCHOOSEFONTA;
344 +
345 +align (4) struct CHOOSEFONTW {
346 + DWORD lStructSize = CHOOSEFONTW.sizeof;
347 + HWND hwndOwner;
348 + HDC hDC;
349 + LPLOGFONTW lpLogFont;
350 + INT iPointSize;
351 + DWORD Flags;
352 + DWORD rgbColors;
353 + LPARAM lCustData;
354 + LPCFHOOKPROC lpfnHook;
355 + LPCWSTR lpTemplateName;
356 + HINSTANCE hInstance;
357 + LPWSTR lpszStyle;
358 + WORD nFontType;
359 + //WORD ___MISSING_ALIGNMENT__;
360 + INT nSizeMin;
361 + INT nSizeMax;
362 +}
363 +alias CHOOSEFONTW* LPCHOOSEFONTW;
364 +
365 +struct DEVNAMES {
366 + WORD wDriverOffset;
367 + WORD wDeviceOffset;
368 + WORD wOutputOffset;
369 + WORD wDefault;
370 +}
371 +alias DEVNAMES* LPDEVNAMES;
372 +
373 +struct FINDREPLACEA {
374 + DWORD lStructSize = FINDREPLACEA.sizeof;
375 + HWND hwndOwner;
376 + HINSTANCE hInstance;
377 + DWORD Flags;
378 + LPSTR lpstrFindWhat;
379 + LPSTR lpstrReplaceWith;
380 + WORD wFindWhatLen;
381 + WORD wReplaceWithLen;
382 + LPARAM lCustData;
383 + LPFRHOOKPROC lpfnHook;
384 + LPCSTR lpTemplateName;
385 +}
386 +alias FINDREPLACEA* LPFINDREPLACEA;
387 +
388 +struct FINDREPLACEW {
389 + DWORD lStructSize = FINDREPLACEW.sizeof;
390 + HWND hwndOwner;
391 + HINSTANCE hInstance;
392 + DWORD Flags;
393 + LPWSTR lpstrFindWhat;
394 + LPWSTR lpstrReplaceWith;
395 + WORD wFindWhatLen;
396 + WORD wReplaceWithLen;
397 + LPARAM lCustData;
398 + LPFRHOOKPROC lpfnHook;
399 + LPCWSTR lpTemplateName;
400 +}
401 +alias FINDREPLACEW* LPFINDREPLACEW;
402 +
403 +struct OPENFILENAMEA {
404 + DWORD lStructSize = OPENFILENAMEA.sizeof;
405 + HWND hwndOwner;
406 + HINSTANCE hInstance;
407 + LPCSTR lpstrFilter;
408 + LPSTR lpstrCustomFilter;
409 + DWORD nMaxCustFilter;
410 + DWORD nFilterIndex;
411 + LPSTR lpstrFile;
412 + DWORD nMaxFile;
413 + LPSTR lpstrFileTitle;
414 + DWORD nMaxFileTitle;
415 + LPCSTR lpstrInitialDir;
416 + LPCSTR lpstrTitle;
417 + DWORD Flags;
418 + WORD nFileOffset;
419 + WORD nFileExtension;
420 + LPCSTR lpstrDefExt;
421 + DWORD lCustData;
422 + LPOFNHOOKPROC lpfnHook;
423 + LPCSTR lpTemplateName;
424 +
425 + static if (_WIN32_WINNT_ONLY && _WIN32_WINNT >= 0x0500) {
426 + void *pvReserved;
427 + DWORD dwReserved;
428 + DWORD FlagsEx;
429 + }
430 +}
431 +alias OPENFILENAMEA* LPOPENFILENAMEA;
432 +
433 +struct OPENFILENAMEW {
434 + DWORD lStructSize = OPENFILENAMEW.sizeof;
435 + HWND hwndOwner;
436 + HINSTANCE hInstance;
437 + LPCWSTR lpstrFilter;
438 + LPWSTR lpstrCustomFilter;
439 + DWORD nMaxCustFilter;
440 + DWORD nFilterIndex;
441 + LPWSTR lpstrFile;
442 + DWORD nMaxFile;
443 + LPWSTR lpstrFileTitle;
444 + DWORD nMaxFileTitle;
445 + LPCWSTR lpstrInitialDir;
446 + LPCWSTR lpstrTitle;
447 + DWORD Flags;
448 + WORD nFileOffset;
449 + WORD nFileExtension;
450 + LPCWSTR lpstrDefExt;
451 + DWORD lCustData;
452 + LPOFNHOOKPROC lpfnHook;
453 + LPCWSTR lpTemplateName;
454 +
455 + static if (_WIN32_WINNT_ONLY && _WIN32_WINNT >= 0x0500) {
456 + void *pvReserved;
457 + DWORD dwReserved;
458 + DWORD FlagsEx;
459 + }
460 +}
461 +alias OPENFILENAMEW* LPOPENFILENAMEW;
462 +
463 +const size_t OPENFILENAME_SIZE_VERSION_400 = 76;
464 +
465 +struct OFNOTIFYA {
466 + NMHDR hdr;
467 + LPOPENFILENAMEA lpOFN;
468 + LPSTR pszFile;
469 +}
470 +alias OFNOTIFYA* LPOFNOTIFYA;
471 +
472 +struct OFNOTIFYW {
473 + NMHDR hdr;
474 + LPOPENFILENAMEW lpOFN;
475 + LPWSTR pszFile;
476 +}
477 +alias OFNOTIFYW* LPOFNOTIFYW;
478 +
479 +struct PAGESETUPDLGA {
480 + DWORD lStructSize = PAGESETUPDLGA.sizeof;
481 + HWND hwndOwner;
482 + HGLOBAL hDevMode;
483 + HGLOBAL hDevNames;
484 + DWORD Flags;
485 + POINT ptPaperSize;
486 + RECT rtMinMargin;
487 + RECT rtMargin;
488 + HINSTANCE hInstance;
489 + LPARAM lCustData;
490 + LPPAGESETUPHOOK lpfnPageSetupHook;
491 + LPPAGEPAINTHOOK lpfnPagePaintHook;
492 + LPCSTR lpPageSetupTemplateName;
493 + HGLOBAL hPageSetupTemplate;
494 +}
495 +alias PAGESETUPDLGA* LPPAGESETUPDLGA;
496 +
497 +struct PAGESETUPDLGW {
498 + DWORD lStructSize = PAGESETUPDLGW.sizeof;
499 + HWND hwndOwner;
500 + HGLOBAL hDevMode;
501 + HGLOBAL hDevNames;
502 + DWORD Flags;
503 + POINT ptPaperSize;
504 + RECT rtMinMargin;
505 + RECT rtMargin;
506 + HINSTANCE hInstance;
507 + LPARAM lCustData;
508 + LPPAGESETUPHOOK lpfnPageSetupHook;
509 + LPPAGEPAINTHOOK lpfnPagePaintHook;
510 + LPCWSTR lpPageSetupTemplateName;
511 + HGLOBAL hPageSetupTemplate;
155 512 }
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)
513 +alias PAGESETUPDLGW* LPPAGESETUPDLGW;
514 +
515 +struct PRINTDLGA {
516 + DWORD lStructSize = PRINTDLGA.sizeof;
517 + HWND hwndOwner;
518 + HANDLE hDevMode;
519 + HANDLE hDevNames;
520 + HDC hDC;
521 + DWORD Flags;
522 + WORD nFromPage;
523 + WORD nToPage;
524 + WORD nMinPage;
525 + WORD nMaxPage;
526 + WORD nCopies;
527 + HINSTANCE hInstance;
528 + DWORD lCustData;
529 + LPPRINTHOOKPROC lpfnPrintHook;
530 + LPSETUPHOOKPROC lpfnSetupHook;
531 + LPCSTR lpPrintTemplateName;
532 + LPCSTR lpSetupTemplateName;
533 + HANDLE hPrintTemplate;
534 + HANDLE hSetupTemplate;
253 535 }
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;
536 +alias PRINTDLGA* LPPRINTDLGA;
537 +
538 +struct PRINTDLGW {
539 + DWORD lStructSize = PRINTDLGW.sizeof;
540 + HWND hwndOwner;
541 + HANDLE hDevMode;
542 + HANDLE hDevNames;
543 + HDC hDC;
544 + DWORD Flags;
545 + WORD nFromPage;
546 + WORD nToPage;
547 + WORD nMinPage;
548 + WORD nMaxPage;
549 + WORD nCopies;
550 + HINSTANCE hInstance;
551 + DWORD lCustData;
552 + LPPRINTHOOKPROC lpfnPrintHook;
553 + LPSETUPHOOKPROC lpfnSetupHook;
554 + LPCWSTR lpPrintTemplateName;
555 + LPCWSTR lpSetupTemplateName;
556 + HANDLE hPrintTemplate;
557 + HANDLE hSetupTemplate;
344 558 }
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;
559 +alias PRINTDLGW* LPPRINTDLGW;
560 +
561 +static if (_WIN32_WINNT_ONLY && _WIN32_WINNT >= 0x500) {
562 + import win32.unknwn; // for LPUNKNOWN
563 + import win32.prsht; // for HPROPSHEETPAGE
564 +
565 + struct PRINTPAGERANGE {
566 + DWORD nFromPage;
567 + DWORD nToPage;
568 + }
569 + alias PRINTPAGERANGE* LPPRINTPAGERANGE;
570 +
571 + struct PRINTDLGEXA {
572 + DWORD lStructSize = PRINTDLGEXA.sizeof;
573 + HWND hwndOwner;
574 + HGLOBAL hDevMode;
575 + HGLOBAL hDevNames;
576 + HDC hDC;
577 + DWORD Flags;
578 + DWORD Flags2;
579 + DWORD ExclusionFlags;
580 + DWORD nPageRanges;
581 + DWORD nMaxPageRanges;
582 + LPPRINTPAGERANGE lpPageRanges;
583 + DWORD nMinPage;
584 + DWORD nMaxPage;
585 + DWORD nCopies;
586 + HINSTANCE hInstance;
587 + LPCSTR lpPrintTemplateName;
588 + LPUNKNOWN lpCallback;
589 + DWORD nPropertyPages;
590 + HPROPSHEETPAGE* lphPropertyPages;
591 + DWORD nStartPage;
592 + DWORD dwResultAction;
593 + }
594 + alias PRINTDLGEXA* LPPRINTDLGEXA;
595 +
596 + struct PRINTDLGEXW {
597 + DWORD lStructSize = PRINTDLGEXW.sizeof;
598 + HWND hwndOwner;
599 + HGLOBAL hDevMode;
600 + HGLOBAL hDevNames;
601 + HDC hDC;
602 + DWORD Flags;
603 + DWORD Flags2;
604 + DWORD ExclusionFlags;
605 + DWORD nPageRanges;
606 + DWORD nMaxPageRanges;
607 + LPPRINTPAGERANGE lpPageRanges;
608 + DWORD nMinPage;
609 + DWORD nMaxPage;
610 + DWORD nCopies;
611 + HINSTANCE hInstance;
612 + LPCWSTR lpPrintTemplateName;
613 + LPUNKNOWN lpCallback;
614 + DWORD nPropertyPages;
615 + HPROPSHEETPAGE* lphPropertyPages;
616 + DWORD nStartPage;
617 + DWORD dwResultAction;
618 + }
619 + alias PRINTDLGEXW* LPPRINTDLGEXW;
371 620
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
621 +} // _WIN32_WINNT_ONLY && _WIN32_WINNT >= 0x500
387 622
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
623 +extern (Windows) {
624 + BOOL ChooseColorA(LPCHOOSECOLORA);
625 + BOOL ChooseColorW(LPCHOOSECOLORW);
626 + BOOL ChooseFontA(LPCHOOSEFONTA);
627 + BOOL ChooseFontW(LPCHOOSEFONTW);
628 + DWORD CommDlgExtendedError();
629 + HWND FindTextA(LPFINDREPLACEA);
630 + HWND FindTextW(LPFINDREPLACEW);
631 + short GetFileTitleA(LPCSTR, LPSTR, WORD);
632 + short GetFileTitleW(LPCWSTR, LPWSTR, WORD);
633 + BOOL GetOpenFileNameA(LPOPENFILENAMEA);
634 + BOOL GetOpenFileNameW(LPOPENFILENAMEW);
635 + BOOL GetSaveFileNameA(LPOPENFILENAMEA);
636 + BOOL GetSaveFileNameW(LPOPENFILENAMEW);
637 + BOOL PageSetupDlgA(LPPAGESETUPDLGA);
638 + BOOL PageSetupDlgW(LPPAGESETUPDLGW);
639 + BOOL PrintDlgA(LPPRINTDLGA);
640 + BOOL PrintDlgW(LPPRINTDLGW);
641 + HWND ReplaceTextA(LPFINDREPLACEA);
642 + HWND ReplaceTextW(LPFINDREPLACEW);
429 643
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 + static if (_WIN32_WINNT_ONLY && _WIN32_WINNT >= 0x500) {
645 + HRESULT PrintDlgExA(LPPRINTDLGEXA);
646 + HRESULT PrintDlgExW(LPPRINTDLGEXW);
647 + }
644 648 }
645 -alias tagCHOOSEFONTW CHOOSEFONTW;
646 -alias tagCHOOSEFONTW* LPCHOOSEFONTW;
649 +
650 +version (Unicode) {
651 + alias CHOOSECOLORW CHOOSECOLOR;
652 + alias CHOOSEFONTW CHOOSEFONT;
653 + alias FINDREPLACEW FINDREPLACE;
654 + alias OPENFILENAMEW OPENFILENAME;
655 + alias OFNOTIFYW OFNOTIFY;
656 + alias PAGESETUPDLGW PAGESETUPDLG;
657 + alias PRINTDLGW PRINTDLG;
658 +
659 + alias ChooseColorW ChooseColor;
660 + alias ChooseFontW ChooseFont;
661 + alias FindTextW FindText;
662 + alias GetFileTitleW GetFileTitle;
663 + alias GetOpenFileNameW GetOpenFileName;
664 + alias GetSaveFileNameW GetSaveFileName;
665 + alias PageSetupDlgW PageSetupDlg;
666 + alias PrintDlgW PrintDlg;
667 + alias ReplaceTextW ReplaceText;
668 +
669 + static if (_WIN32_WINNT_ONLY && _WIN32_WINNT >= 0x500) {
670 + alias PRINTDLGEXW PRINTDLGEX;
671 + alias PrintDlgExW PrintDlgEx;
672 + }
673 +
674 +} else { // UNICODE
647 675
648 -// #ifdef UNICODE
649 -alias CHOOSEFONTW CHOOSEFONT;
650 -alias LPCHOOSEFONTW LPCHOOSEFONT;
651 -// #else
652 -// ...
653 -// #endif // UNICODE
676 + alias CHOOSECOLORA CHOOSECOLOR;
677 + alias CHOOSEFONTA CHOOSEFONT;
678 + alias FINDREPLACEA FINDREPLACE;
679 + alias OPENFILENAMEA OPENFILENAME;
680 + alias OFNOTIFYA OFNOTIFY;
681 + alias PAGESETUPDLGA PAGESETUPDLG;
682 + alias PRINTDLGA PRINTDLG;
654 683
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
684 + alias ChooseColorA ChooseColor;
685 + alias ChooseFontA ChooseFont;
686 + alias FindTextA FindText;
687 + alias GetFileTitleA GetFileTitle;
688 + alias GetOpenFileNameA GetOpenFileName;
689 + alias GetSaveFileNameA GetSaveFileName;
690 + alias PageSetupDlgA PageSetupDlg;
691 + alias PrintDlgA PrintDlg;
692 + alias ReplaceTextA ReplaceText;
662 693
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 */
694 + static if (_WIN32_WINNT_ONLY && _WIN32_WINNT >= 0x500) {
695 + alias PRINTDLGEXA PRINTDLGEX;
696 + alias PrintDlgExA PrintDlgEx;
697 + }
695 698
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 }
699 +} // UNICODE
702 700
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 -
701 +alias CHOOSECOLOR* LPCHOOSECOLOR;
702 +alias CHOOSEFONT* LPCHOOSEFONT;
703 +alias FINDREPLACE* LPFINDREPLACE;
704 +alias OPENFILENAME* LPOPENFILENAME;
705 +alias OFNOTIFY* LPOFNOTIFY;
706 +alias PAGESETUPDLG* LPPAGESETUPDLG;
707 +alias PRINTDLG* LPPRINTDLG;
708 +static if (_WIN32_WINNT_ONLY && _WIN32_WINNT >= 0x500) {
709 + alias PRINTDLGEX* LPPRINTDLGEX;
710 +}