3
|
1 /*
|
|
2 * This module declared types required by DWT but not in std.c.windows.windows
|
|
3 */
|
|
4
|
|
5 module dwt.internal.win32.WINTYPES;
|
|
6
|
|
7 public import tango.sys.win32.Types;
|
|
8
|
|
9 // missing in tango
|
|
10 //alias TLOGFONTA* LPLOGFONTA;
|
|
11 //alias TLOGFONTA LOGFONTA;
|
|
12 alias char CHAR;
|
|
13 alias OPENFILENAME OPENFILENAMEW;
|
|
14 alias OPENFILENAME OPENFILENAMEA;
|
|
15 alias WNDCLASS WNDCLASSA;
|
|
16 alias WNDCLASSA* LPWNDCLASSA;
|
|
17
|
|
18
|
|
19 // ....
|
|
20
|
|
21
|
|
22 const int LF_FACESIZE = 32;
|
|
23 const int LF_FULLFACESIZE = 64;
|
|
24
|
|
25 alias HANDLE HIMC;
|
|
26 alias HANDLE HTREEITEM;
|
|
27 alias HANDLE HDWP;
|
|
28 alias HANDLE HIMAGELIST;
|
|
29 alias HANDLE HMONITOR;
|
|
30 alias HANDLE HHOOK;
|
|
31 alias HANDLE HDROP;
|
|
32 //alias HANDLE *LPHANDLE;
|
|
33
|
|
34 alias HRESULT WINOLEAPI;
|
|
35 alias LPRECT LPCRECT;
|
|
36 alias LPRECT LPCRECTL;
|
|
37 alias DWORD LGRPID;
|
|
38 //alias LONG LONG_PTR;
|
|
39 alias ULONG ULONG_PTR;
|
|
40 alias DWORD DWORD_PTR;
|
|
41 alias int INT_PTR;
|
|
42 //alias uint UINT_PTR;
|
|
43 alias DWORD LCID;
|
|
44 alias DWORD LCTYPE;
|
|
45 alias USHORT COLOR16;
|
|
46
|
|
47 alias POINT POINTL;
|
|
48
|
|
49 alias long LONGLONG;
|
|
50 alias ulong DWORDLONG;
|
|
51
|
|
52 alias LONGLONG *PLONGLONG;
|
|
53 alias DWORDLONG *PDWORDLONG;
|
|
54 alias size_t SIZE_T;
|
|
55 alias int WPARAM_I;
|
|
56
|
|
57 version(ANSI){
|
|
58 alias char TCHAR;
|
|
59 }else{
|
|
60 alias wchar TCHAR;
|
|
61 }
|
|
62
|
|
63
|
|
64 extern(Windows){
|
|
65
|
|
66 /**
|
|
67 * Since Eclipse/SWT uses int as (msg, wparam, lparam) and some times check the value against (-1),
|
|
68 * but WNDPROC_I declared in windows header the (msg, wparam) is UINT which will never be -1 but 0xFFFF or
|
|
69 * something else. This made some DWT API failed. to fix the problem, it better to declare (msg, wparam)
|
|
70 * as int like Eclispe/SWT does. and we alias int to WPARAM_I.
|
|
71 */
|
|
72 alias LRESULT function(HWND, int, int, int) WNDPROC_I;
|
|
73 alias LRESULT function(int code, int wParam, LPARAM lParam) HOOKPROC_I;
|
|
74
|
|
75 // Windows CALLBACK declaration here
|
|
76 alias WNDPROC_I BFFCALLBACK; // browse for fold
|
|
77 alias WNDPROC_I LPCCHOOKPROC_I; // choose color
|
|
78 alias WNDPROC_I LPCFHOOKPROC_I; // choose font
|
|
79 alias WNDPROC_I LPPRINTHOOKPROC_I; // print hook
|
|
80 alias WNDPROC_I LPSETUPHOOKPROC_I; // print setup
|
|
81 alias WNDPROC_I TIMERPROC_I; // timer
|
|
82
|
|
83 alias LRESULT function (
|
|
84 int code, // hook code
|
|
85 int wParam, // undefined
|
|
86 int lParam // address of structure with message data
|
|
87 ) MESSAGEPROC;
|
|
88
|
|
89
|
|
90 //alias BOOL function (
|
|
91 // HMONITOR hMonitor, // handle to display monitor
|
|
92 // HDC hdcMonitor, // handle to monitor-appropriate device context
|
|
93 // LPRECT lprcMonitor, // pointer to monitor intersection rectangle
|
|
94 // LPARAM dwData // data passed from EnumDisplayMonitors
|
|
95 //) MONITORENUMPROC;
|
|
96
|
|
97 //alias int function(
|
|
98 // ENUMLOGFONT *lpelf, // logical-font data
|
|
99 // NEWTEXTMETRIC *lpntm, // physical-font data
|
|
100 // DWORD FontType, // type of font
|
|
101 // LPARAM lParam // application-defined data
|
|
102 //)FONTENUMPROC;
|
|
103
|
|
104 //alias int function(
|
|
105 // ENUMLOGFONTEX *lpelfe, // logical-font data
|
|
106 // NEWTEXTMETRICEX *lpntme, // physical-font data
|
|
107 // DWORD FontType, // type of font
|
|
108 // LPARAM lParam // application-defined data
|
|
109 //)FONTENUMEXPROC;
|
|
110
|
|
111 alias BOOL function (
|
|
112 LGRPID LanguageGroup, // language-group identifier
|
|
113 TCHAR* lpLanguageGroupString, // language-group identifier string
|
|
114 TCHAR* lpLanguageGroupNameString, // language-group name string
|
|
115 DWORD dwFlags, // options
|
|
116 LONG_PTR lParam // callback parameter
|
|
117 )LANGUAGEGROUP_ENUMPROC;
|
|
118
|
|
119 //alias BOOL function (
|
|
120 // TCHAR* lpLocaleString // locale identifier string
|
|
121 //)LOCALE_ENUMPROC;
|
|
122
|
|
123
|
|
124 // end of Windows CALLBACK declaration
|
|
125
|
|
126
|
|
127
|
|
128 //struct ABC {
|
|
129 // int abcA;
|
|
130 // UINT abcB;
|
|
131 // int abcC;
|
|
132 //}
|
|
133 //alias ABC* PABC, LPABC;
|
|
134
|
|
135 // declared in tango
|
|
136 //struct ACCEL {
|
|
137 // align(1):
|
|
138 // BYTE fVirt;
|
|
139 // WORD key;
|
|
140 // WORD cmd;
|
|
141 //}
|
|
142 //alias ACCEL* PACCEL, LPACCEL;
|
|
143
|
|
144 // declared in phobos
|
|
145 //struct BITMAP {
|
|
146 // int bmType;
|
|
147 // int bmWidth;
|
|
148 // int bmHeight;
|
|
149 // int bmWidthBytes;
|
|
150 // short bmPlanes;
|
|
151 // short bmBitsPixel;
|
|
152 // void* bmBits;
|
|
153 //}
|
|
154
|
|
155 //struct RGBQUAD { // rgbq
|
|
156 // byte rgbBlue;
|
|
157 // byte rgbGreen;
|
|
158 // byte rgbRed;
|
|
159 // byte rgbReserved;
|
|
160 //}
|
|
161
|
|
162 // declared in phobos
|
|
163 //struct BITMAPINFO { // bmi
|
|
164 // BITMAPINFOHEADER bmiHeader;
|
|
165 // RGBQUAD bmiColors[1];
|
|
166 //}
|
|
167
|
|
168 //struct BITMAPINFOHEADER {
|
|
169 // int biSize;
|
|
170 // int biWidth;
|
|
171 // int biHeight;
|
|
172 // short biPlanes;
|
|
173 // short biBitCount;
|
|
174 // int biCompression;
|
|
175 // int biSizeImage;
|
|
176 // int biXPelsPerMeter;
|
|
177 // int biYPelsPerMeter;
|
|
178 // int biClrUsed;
|
|
179 // int biClrImportant;
|
|
180 //}
|
|
181
|
|
182
|
|
183 struct BROWSEINFOA {
|
|
184 HWND hwndOwner;
|
|
185 LPCITEMIDLIST pidlRoot;
|
|
186 LPSTR pszDisplayName;
|
|
187 LPCSTR lpszTitle;
|
|
188 UINT ulFlags;
|
|
189 BFFCALLBACK lpfn;
|
|
190 LPARAM lParam;
|
|
191 int iImage;
|
|
192 }
|
|
193
|
|
194 struct BROWSEINFOW {
|
|
195 HWND hwndOwner;
|
|
196 LPCITEMIDLIST pidlRoot;
|
|
197 LPWSTR pszDisplayName;
|
|
198 LPCWSTR lpszTitle;
|
|
199 UINT ulFlags;
|
|
200 BFFCALLBACK lpfn;
|
|
201 LPARAM lParam;
|
|
202 int iImage;
|
|
203 }
|
|
204 version(ANSI){
|
|
205 alias BROWSEINFOA BROWSEINFO;
|
|
206 } else {
|
|
207 alias BROWSEINFOW BROWSEINFO;
|
|
208 }
|
|
209 alias BROWSEINFO* PBROWSEINFO, LPBROWSEINFO;
|
|
210
|
|
211 //struct CHARSETINFO {
|
|
212 // UINT ciCharset;
|
|
213 // UINT ciACP;
|
|
214 // FONTSIGNATURE fs;
|
|
215 //}alias CHARSETINFO* PCHARSETINFO, LPCHARSETINFO;
|
|
216
|
|
217
|
|
218 struct CHOOSECOLORA {
|
|
219 DWORD lStructSize;
|
|
220 HWND hwndOwner;
|
|
221 HWND hInstance;
|
|
222 COLORREF rgbResult;
|
|
223 COLORREF* lpCustColors;
|
|
224 DWORD Flags;
|
|
225 LPARAM lCustData;
|
|
226 LPCCHOOKPROC_I lpfnHook;
|
|
227 LPCSTR lpTemplateName;
|
|
228 }
|
|
229 alias CHOOSECOLORA* PCHOOSECOLORA, LPCHOOSECOLORA;
|
|
230 struct CHOOSECOLORW {
|
|
231 DWORD lStructSize;
|
|
232 HWND hwndOwner;
|
|
233 HWND hInstance;
|
|
234 COLORREF rgbResult;
|
|
235 COLORREF* lpCustColors;
|
|
236 DWORD Flags;
|
|
237 LPARAM lCustData;
|
|
238 LPCCHOOKPROC_I lpfnHook;
|
|
239 LPCWSTR lpTemplateName;
|
|
240 }
|
|
241 alias CHOOSECOLORW* PCHOOSECOLORW, LPCHOOSECOLORW;
|
|
242 version(ANSI){
|
|
243 alias CHOOSECOLORA CHOOSECOLOR;
|
|
244 }else{
|
|
245 alias CHOOSECOLORW CHOOSECOLOR;
|
|
246 }
|
|
247 alias CHOOSECOLOR* PCHOOSECOLOR, LPCHOOSECOLOR;
|
|
248
|
|
249
|
|
250 struct CHOOSEFONTA {
|
|
251 // sizeof = 60 ???
|
|
252 // align(2):
|
|
253 DWORD lStructSize;
|
|
254 HWND hwndOwner;
|
|
255 HDC hDC;
|
|
256 LPLOGFONTA lpLogFont;
|
|
257 INT iPointSize;
|
|
258 DWORD Flags;
|
|
259 DWORD rgbColors;
|
|
260 LPARAM lCustData;
|
|
261 LPCFHOOKPROC_I lpfnHook;
|
|
262 LPCSTR lpTemplateName;
|
|
263 HINSTANCE hInstance;
|
|
264 LPSTR lpszStyle;
|
|
265 WORD nFontType;
|
|
266 WORD ___MISSING_ALIGNMENT__;
|
|
267 INT nSizeMin;
|
|
268 INT nSizeMax;
|
|
269 }alias CHOOSEFONTA* PCHOOSEFONTA, LPCHOOSEFONTA;
|
|
270
|
|
271 struct CHOOSEFONTW {
|
|
272 // sizeof = 60 ???
|
|
273 // align(2):
|
|
274 DWORD lStructSize;
|
|
275 HWND hwndOwner;
|
|
276 HDC hDC;
|
|
277 LOGFONTW* lpLogFont;
|
|
278 INT iPointSize;
|
|
279 DWORD Flags;
|
|
280 DWORD rgbColors;
|
|
281 LPARAM lCustData;
|
|
282 LPCFHOOKPROC_I lpfnHook;
|
|
283 LPCWSTR lpTemplateName;
|
|
284 HINSTANCE hInstance;
|
|
285 LPWSTR lpszStyle;
|
|
286 WORD nFontType;
|
|
287 WORD ___MISSING_ALIGNMENT__;
|
|
288 INT nSizeMin;
|
|
289 INT nSizeMax;
|
|
290 }alias CHOOSEFONTW* PCHOOSEFONTW, LPCHOOSEFONTW;
|
|
291 version(ANSI){
|
|
292 alias CHOOSEFONTA CHOOSEFONT;
|
|
293 }else{
|
|
294 alias CHOOSEFONTW CHOOSEFONT;
|
|
295 }
|
|
296
|
|
297 struct COMBOBOXINFO {
|
|
298 DWORD cbSize;
|
|
299 RECT rcItem;
|
|
300 RECT rcButton;
|
|
301 DWORD stateButton;
|
|
302 HWND hwndCombo;
|
|
303 HWND hwndItem;
|
|
304 HWND hwndList;
|
|
305 } alias COMBOBOXINFO* PCOMBOBOXINFO, LPCOMBOBOXINFO;
|
|
306
|
|
307 //struct COMPOSITIONFORM {
|
|
308 // DWORD dwStyle;
|
|
309 // POINT ptCurrentPos;
|
|
310 // RECT rcArea;
|
|
311 //}
|
|
312 //alias COMPOSITIONFORM* LPCOMPOSITIONFORM;
|
|
313
|
|
314 struct CREATESTRUCT {
|
|
315 int lpCreateParams;
|
|
316 HINSTANCE hInstance;
|
|
317 HMENU hMenu;
|
|
318 HWND hwndParent;
|
|
319 int cy;
|
|
320 int cx;
|
|
321 int y;
|
|
322 int x;
|
|
323 int style;
|
|
324 int lpszName;
|
|
325 int lpszClass;
|
|
326 int dwExStyle;
|
|
327 }
|
|
328
|
|
329 const uint CCHDEVICENAME = 32;
|
|
330 const uint CCHFORMNAME = 32;
|
|
331
|
|
332 struct DEVMODEA { // dvmd
|
|
333 BYTE dmDeviceName[CCHDEVICENAME];
|
|
334 WORD dmSpecVersion;
|
|
335 WORD dmDriverVersion;
|
|
336 WORD dmSize;
|
|
337 WORD dmDriverExtra;
|
|
338 DWORD dmFields;
|
|
339 // union {
|
|
340 // struct {
|
|
341 // short dmOrientation;
|
|
342 // short dmPaperSize;
|
|
343 // short dmPaperLength;
|
|
344 // short dmPaperWidth;
|
|
345 // };
|
|
346 // POINTL dmPosition;
|
|
347 // };
|
|
348 POINT dmPosition;
|
|
349 short dmScale;
|
|
350 short dmCopies;
|
|
351 short dmDefaultSource;
|
|
352 short dmPrintQuality;
|
|
353 short dmColor;
|
|
354 short dmDuplex;
|
|
355 short dmYResolution;
|
|
356 short dmTTOption;
|
|
357 short dmCollate;
|
|
358 BYTE dmFormName[CCHFORMNAME];
|
|
359 WORD dmLogPixels;
|
|
360 DWORD dmBitsPerPel;
|
|
361 DWORD dmPelsWidth;
|
|
362 DWORD dmPelsHeight;
|
|
363 DWORD dmDisplayFlags;
|
|
364 DWORD dmDisplayFrequency;
|
|
365 //#if(WINVER >= 0x0400)
|
|
366 DWORD dmICMMethod;
|
|
367 DWORD dmICMIntent;
|
|
368 DWORD dmMediaType;
|
|
369 DWORD dmDitherType;
|
|
370 DWORD dmReserved1;
|
|
371 DWORD dmReserved2;
|
|
372 //#if (WINVER >= 0x0500) || (_WIN32_WINNT >= 0x0400)
|
|
373 DWORD dmPanningWidth;
|
|
374 DWORD dmPanningHeight;
|
|
375 //#endif
|
|
376 //#endif /* WINVER >= 0x0400 */
|
|
377 }
|
|
378
|
|
379 struct DEVMODEW { // dvmd
|
|
380 WCHAR dmDeviceName[CCHDEVICENAME];
|
|
381 WORD dmSpecVersion;
|
|
382 WORD dmDriverVersion;
|
|
383 WORD dmSize;
|
|
384 WORD dmDriverExtra;
|
|
385 DWORD dmFields;
|
|
386 // union {
|
|
387 // struct {
|
|
388 // short dmOrientation;
|
|
389 // short dmPaperSize;
|
|
390 // short dmPaperLength;
|
|
391 // short dmPaperWidth;
|
|
392 // };
|
|
393 POINTL dmPosition;
|
|
394 // };
|
|
395 short dmScale;
|
|
396 short dmCopies;
|
|
397 short dmDefaultSource;
|
|
398 short dmPrintQuality;
|
|
399 short dmColor;
|
|
400 short dmDuplex;
|
|
401 short dmYResolution;
|
|
402 short dmTTOption;
|
|
403 short dmCollate;
|
|
404 WCHAR dmFormName[CCHFORMNAME];
|
|
405 WORD dmLogPixels;
|
|
406 DWORD dmBitsPerPel;
|
|
407 DWORD dmPelsWidth;
|
|
408 DWORD dmPelsHeight;
|
|
409 DWORD dmDisplayFlags;
|
|
410 DWORD dmDisplayFrequency;
|
|
411 //#if(WINVER >= 0x0400)
|
|
412 DWORD dmICMMethod;
|
|
413 DWORD dmICMIntent;
|
|
414 DWORD dmMediaType;
|
|
415 DWORD dmDitherType;
|
|
416 DWORD dmReserved1;
|
|
417 DWORD dmReserved2;
|
|
418 //#if (WINVER >= 0x0500) || (_WIN32_WINNT >= 0x0400)
|
|
419 DWORD dmPanningWidth;
|
|
420 DWORD dmPanningHeight;
|
|
421 //#endif
|
|
422 //#endif /* WINVER >= 0x0400 */
|
|
423 }
|
|
424
|
|
425 //PORTING_TODO: defined in tango
|
|
426 //version(ANSI){
|
|
427 // alias DEVMODEA DEVMODE;
|
|
428 //}else{
|
|
429 // alias DEVMODEW DEVMODE;
|
|
430 //}
|
|
431 struct DEVNAMES {
|
|
432 WORD wDriverOffset;
|
|
433 WORD wDeviceOffset;
|
|
434 WORD wOutputOffset;
|
|
435 WORD wDefault;
|
|
436 }
|
|
437
|
|
438 struct DIBSECTION {
|
|
439 // BITMAP
|
|
440 int bmType;
|
|
441 int bmWidth;
|
|
442 int bmHeight;
|
|
443 int bmWidthBytes;
|
|
444 short bmPlanes;
|
|
445 short bmBitsPixel;
|
|
446 void* bmBits;
|
|
447 // end BITMAP
|
|
448 int biSize;
|
|
449 int biWidth;
|
|
450 int biHeight;
|
|
451 short biPlanes;
|
|
452 short biBitCount;
|
|
453 int biCompression;
|
|
454 int biSizeImage;
|
|
455 int biXPelsPerMeter;
|
|
456 int biYPelsPerMeter;
|
|
457 int biClrUsed;
|
|
458 int biClrImportant;
|
|
459 int dsBitfields0;
|
|
460 int dsBitfields1;
|
|
461 int dsBitfields2;
|
|
462 int dshSection;
|
|
463 int dsOffset;
|
|
464 }
|
|
465
|
|
466 struct DLLVERSIONINFO {
|
|
467 DWORD cbSize;
|
|
468 DWORD dwMajorVersion;
|
|
469 DWORD dwMinorVersion;
|
|
470 DWORD dwBuildNumber;
|
|
471 DWORD dwPlatformID;
|
|
472 }
|
|
473
|
|
474 struct DOCINFOA {
|
|
475 int cbSize;
|
|
476 LPCSTR lpszDocName;
|
|
477 LPCSTR lpszOutput;
|
|
478 LPCSTR lpszDatatype;
|
|
479 DWORD fwType;
|
|
480 }
|
|
481
|
|
482 struct DOCINFOW {
|
|
483 int cbSize;
|
|
484 LPCWSTR lpszDocName;
|
|
485 LPCWSTR lpszOutput;
|
|
486 LPCWSTR lpszDatatype;
|
|
487 DWORD fwType;
|
|
488 }
|
|
489 version(ANSI){
|
|
490 alias DOCINFOA DOCINFO;
|
|
491 }else{
|
|
492 alias DOCINFOW DOCINFO;
|
|
493 }
|
|
494 alias DOCINFO* LPDOCINFO;
|
|
495
|
|
496
|
|
497 struct DRAWITEMSTRUCT {
|
|
498 UINT CtlType;
|
|
499 UINT CtlID;
|
|
500 UINT itemID;
|
|
501 UINT itemAction;
|
|
502 UINT itemState;
|
|
503 HWND hwndItem;
|
|
504 HDC hDC;
|
|
505 RECT rcItem;
|
|
506 DWORD itemData;
|
|
507 }
|
|
508
|
|
509 struct DROPFILES {
|
|
510 DWORD pFiles; // Offset of the file list from the beginning of this structure, in bytes.
|
|
511 POINT pt; // Drop point. The coordinates depend on fNC.
|
|
512 BOOL fNC; // Nonclient area flag. If this member is TRUE, pt specifies the screen
|
|
513 // coordinates of a point in a window's nonclient area. If it is FALSE,
|
|
514 // pt specifies the client coordinates of a point in the client area.
|
|
515 BOOL fWide; // Value that indicates whether the file contains ANSI or Unicode
|
|
516 // characters. If it is zero, it contains ANSI characters. Otherwise, it
|
|
517 // contains Unicode characters.
|
|
518
|
|
519 }
|
|
520
|
|
521
|
|
522 struct ENUMLOGFONTA {
|
|
523 LOGFONTA elfLogFont;
|
|
524 CHAR elfFullName[LF_FULLFACESIZE];
|
|
525 CHAR elfStyle[LF_FACESIZE];
|
|
526 }
|
|
527 struct ENUMLOGFONTW {
|
|
528 LOGFONTW elfLogFont;
|
|
529 WCHAR elfFullName[LF_FULLFACESIZE];
|
|
530 WCHAR elfStyle[LF_FACESIZE];
|
|
531 }
|
|
532 struct ENUMLOGFONTEXA {
|
|
533 LOGFONTA elfLogFont;
|
|
534 BYTE elfFullName[LF_FULLFACESIZE];
|
|
535 BYTE elfStyle[LF_FACESIZE];
|
|
536 BYTE elfScript[LF_FACESIZE];
|
|
537 }
|
|
538 struct ENUMLOGFONTEXW {
|
|
539 LOGFONTW elfLogFont;
|
|
540 WCHAR elfFullName[LF_FULLFACESIZE];
|
|
541 WCHAR elfStyle[LF_FACESIZE];
|
|
542 WCHAR elfScript[LF_FACESIZE];
|
|
543 }
|
|
544 version(ANSI){
|
|
545 alias ENUMLOGFONTA ENUMLOGFONT;
|
|
546 alias ENUMLOGFONTEXA ENUMLOGFONTEX;
|
|
547 }else {
|
|
548 alias ENUMLOGFONTW ENUMLOGFONT;
|
|
549 alias ENUMLOGFONTEXW ENUMLOGFONTEX;
|
|
550 }
|
|
551
|
|
552 // in phobos aready
|
|
553 //struct FILETIME {
|
|
554 // DWORD dwLowDateTime;
|
|
555 // DWORD dwHighDateTime;
|
|
556 //}
|
|
557
|
|
558 struct FONTSIGNATURE {
|
|
559 DWORD fsUsb[4];
|
|
560 DWORD fsCsb[2];
|
|
561 }
|
|
562
|
|
563 struct GCP_RESULTSA {
|
|
564 DWORD lStructSize;
|
|
565 LPSTR lpOutString;
|
|
566 UINT *lpOrder;
|
|
567 int *lpDx;
|
|
568 int *lpCaretPos;
|
|
569 LPSTR lpClass;
|
|
570 LPWSTR lpGlyphs;
|
|
571 UINT nGlyphs;
|
|
572 int nMaxFit;
|
|
573 }
|
|
574
|
|
575 struct GCP_RESULTSW {
|
|
576 DWORD lStructSize;
|
|
577 LPWSTR lpOutString;
|
|
578 UINT *lpOrder;
|
|
579 int *lpDx;
|
|
580 int *lpCaretPos;
|
|
581 LPSTR lpClass;
|
|
582 LPWSTR lpGlyphs;
|
|
583 UINT nGlyphs;
|
|
584 int nMaxFit;
|
|
585 }
|
|
586 version(ANSI){
|
|
587 alias GCP_RESULTSA GCP_RESULTS;
|
|
588 }else{
|
|
589 alias GCP_RESULTSW GCP_RESULTS;
|
|
590 }
|
|
591 //alias GCP_RESULTS* LPGCP_RESULTS;
|
|
592
|
|
593
|
|
594 struct GOFFSET {
|
|
595 LONG du;
|
|
596 LONG dv;
|
|
597 }
|
|
598
|
|
599 struct GRADIENT_RECT {
|
|
600 ULONG UpperLeft;
|
|
601 ULONG LowerRight;
|
|
602 }
|
|
603
|
|
604 struct GUITHREADINFO {
|
|
605 DWORD cbSize;
|
|
606 DWORD flags;
|
|
607 HWND hwndActive;
|
|
608 HWND hwndFocus;
|
|
609 HWND hwndCapture;
|
|
610 HWND hwndMenuOwner;
|
|
611 HWND hwndMoveSize;
|
|
612 HWND hwndCaret;
|
|
613 RECT rcCaret;
|
|
614 }alias GUITHREADINFO* PGUITHREADINFO, LPGUITHREADINFO;
|
|
615
|
|
616 struct HDITEMA {
|
|
617 UINT mask;
|
|
618 int cxy;
|
|
619 LPSTR pszText;
|
|
620 HBITMAP hbm;
|
|
621 int cchTextMax;
|
|
622 int fmt;
|
|
623 LPARAM lParam;
|
|
624 int iImage;
|
|
625 int iOrder;
|
|
626 }
|
|
627 struct HDITEMW {
|
|
628 UINT mask;
|
|
629 int cxy;
|
|
630 LPWSTR pszText;
|
|
631 HBITMAP hbm;
|
|
632 int cchTextMax;
|
|
633 int fmt;
|
|
634 LPARAM lParam;
|
|
635 int iImage;
|
|
636 int iOrder;
|
|
637 }
|
|
638 version(ANSI){
|
|
639 alias HDITEMA HDITEM;
|
|
640 }else{
|
|
641 alias HDITEMW HDITEM;
|
|
642 }
|
|
643 alias HDITEM* LPHDITEM;
|
|
644
|
|
645 struct HELPINFO {
|
|
646 UINT cbSize;
|
|
647 int iContextType;
|
|
648 int iCtrlId;
|
|
649 HANDLE hItemHandle;
|
|
650 DWORD dwContextId;
|
|
651 POINT MousePos;
|
|
652 }
|
|
653
|
|
654 struct HIGHCONTRASTA {
|
|
655 UINT cbSize;
|
|
656 DWORD dwFlags;
|
|
657 LPSTR lpszDefaultScheme;
|
|
658 }
|
|
659 struct HIGHCONTRASTW {
|
|
660 UINT cbSize;
|
|
661 DWORD dwFlags;
|
|
662 LPWSTR lpszDefaultScheme;
|
|
663 }
|
|
664 version(ANSI){
|
|
665 alias HIGHCONTRASTA HIGHCONTRAST;
|
|
666 }else{
|
|
667 alias HIGHCONTRASTW HIGHCONTRAST;
|
|
668 }
|
|
669
|
|
670
|
|
671 //struct ICONINFO {
|
|
672 // BOOL fIcon;
|
|
673 // DWORD xHotspot;
|
|
674 // DWORD yHotspot;
|
|
675 // HBITMAP hbmMask;
|
|
676 // HBITMAP hbmColor;
|
|
677 //}
|
|
678 //alias ICONINFO* PICONINFO, LPICONINFO;
|
|
679
|
|
680 struct INITCOMMONCONTROLSEX {
|
|
681 DWORD dwSize;
|
|
682 DWORD dwICC;
|
|
683 }alias INITCOMMONCONTROLSEX* PINITCOMMONCONTROLSEX, LPINITCOMMONCONTROLSEX;
|
|
684
|
|
685 struct INPUT {
|
|
686 // Note: <Shawn> sizeof = 28
|
|
687 int type;
|
|
688 // union {
|
|
689 MOUSEINPUT mi;
|
|
690 // KEYBOARDINPUT ki;
|
|
691 // HARDWAREINPUT hi;
|
|
692 // }
|
|
693 }alias INPUT* PINPUT, LPINPUT;
|
|
694
|
|
695 //struct ITEMIDLIST {
|
|
696 // SHITEMID mkid;
|
|
697 //}
|
|
698 //alias ITEMIDLIST* PITEMIDLIST, LPITEMIDLIST, LPCITEMIDLIST;
|
|
699
|
|
700 struct KEYBDINPUT {
|
|
701 WORD wVk;
|
|
702 WORD wScan;
|
|
703 DWORD dwFlags;
|
|
704 DWORD time;
|
|
705 ULONG_PTR dwExtraInfo;
|
|
706 }
|
|
707
|
|
708 union LARGE_INTEGER {
|
|
709 struct {
|
|
710 DWORD LowPart;
|
|
711 LONG HighPart;
|
|
712 };
|
|
713 struct u {
|
|
714 DWORD LowPart;
|
|
715 LONG HighPart;
|
|
716 };
|
|
717 LONGLONG QuadPart;
|
|
718 }
|
|
719 alias LARGE_INTEGER * PLARGE_INTEGER;
|
|
720
|
|
721
|
|
722 struct LOGBRUSH {
|
|
723 UINT lbStyle;
|
|
724 COLORREF lbColor;
|
|
725 LONG lbHatch;
|
|
726 }
|
|
727
|
|
728 struct LOGFONTA {
|
|
729 int lfHeight;
|
|
730 int lfWidth;
|
|
731 int lfEscapement;
|
|
732 int lfOrientation;
|
|
733 int lfWeight;
|
|
734 byte lfItalic;
|
|
735 byte lfUnderline;
|
|
736 byte lfStrikeOut;
|
|
737 byte lfCharSet;
|
|
738 byte lfOutPrecision;
|
|
739 byte lfClipPrecision;
|
|
740 byte lfQuality;
|
|
741 byte lfPitchAndFamily;
|
|
742 char lfFaceName[LF_FACESIZE];
|
|
743 }
|
|
744 alias LOGFONTA* LPLOGFONTA;
|
|
745
|
|
746 //struct LOGFONTW {
|
|
747 // LONG lfHeight;
|
|
748 // LONG lfWidth;
|
|
749 // LONG lfEscapement;
|
|
750 // LONG lfOrientation;
|
|
751 // LONG lfWeight;
|
|
752 // BYTE lfItalic;
|
|
753 // BYTE lfUnderline;
|
|
754 // BYTE lfStrikeOut;
|
|
755 // BYTE lfCharSet;
|
|
756 // BYTE lfOutPrecision;
|
|
757 // BYTE lfClipPrecision;
|
|
758 // BYTE lfQuality;
|
|
759 // BYTE lfPitchAndFamily;
|
|
760 // WCHAR lfFaceName[LF_FACESIZE];
|
|
761 //}
|
|
762 //alias LOGFONTW* PLOGFONTW, LPLOGFONTW;
|
|
763 version(ANSI){
|
|
764 alias LOGFONTA LOGFONT;
|
|
765 } else {
|
|
766 alias LOGFONTW LOGFONT;
|
|
767 }
|
|
768
|
|
769
|
|
770 struct LOGPEN {
|
|
771 UINT lopnStyle;
|
|
772 POINT lopnWidth;
|
|
773 COLORREF lopnColor;
|
|
774 }
|
|
775
|
|
776 struct LVCOLUMNA {
|
|
777 UINT mask;
|
|
778 int fmt;
|
|
779 int cx;
|
|
780 LPSTR pszText;
|
|
781 int cchTextMax;
|
|
782 int iSubItem;
|
|
783 int iImage;
|
|
784 int iOrder;
|
|
785 }
|
|
786 struct LVCOLUMNW {
|
|
787 UINT mask;
|
|
788 int fmt;
|
|
789 int cx;
|
|
790 LPWSTR pszText;
|
|
791 int cchTextMax;
|
|
792 int iSubItem;
|
|
793 int iImage;
|
|
794 int iOrder;
|
|
795 }
|
|
796 version(ANSI){
|
|
797 alias LVCOLUMNA LVCOLUMN;
|
|
798 }else{
|
|
799 alias LVCOLUMNW LVCOLUMN;
|
|
800 }
|
|
801 alias LVCOLUMN* LPLVCOLUMN;
|
|
802
|
|
803 struct LVFINDINFOA {
|
|
804 UINT flags;
|
|
805 LPCSTR psz;
|
|
806 LPARAM lParam;
|
|
807 POINT pt;
|
|
808 UINT vkDirection;
|
|
809 }
|
|
810 alias LVFINDINFOA* LPFINDINFOA;
|
|
811 struct LVFINDINFOW {
|
|
812 UINT flags;
|
|
813 LPCWSTR psz;
|
|
814 LPARAM lParam;
|
|
815 POINT pt;
|
|
816 UINT vkDirection;
|
|
817 }
|
|
818 alias LVFINDINFOW* LPFINDINFOW;
|
|
819
|
|
820 version(ANSI){
|
|
821 alias LVFINDINFOA LVFINDINFO;
|
|
822 }else{
|
|
823 alias LVFINDINFOW LVFINDINFO;
|
|
824 }
|
|
825
|
|
826 struct LVHITTESTINFO {
|
|
827 POINT pt;
|
|
828 UINT flags;
|
|
829 int iItem;
|
|
830 int iSubItem;
|
|
831 }
|
|
832
|
|
833
|
|
834 struct LVITEMA {
|
|
835 UINT mask;
|
|
836 int iItem;
|
|
837 int iSubItem;
|
|
838 UINT state;
|
|
839 UINT stateMask;
|
|
840 LPSTR pszText;
|
|
841 int cchTextMax;
|
|
842 int iImage;
|
|
843 LPARAM lParam;
|
|
844 int iIndent;
|
|
845 }
|
|
846 struct LVITEMW {
|
|
847 UINT mask;
|
|
848 int iItem;
|
|
849 int iSubItem;
|
|
850 UINT state;
|
|
851 UINT stateMask;
|
|
852 LPWSTR pszText;
|
|
853 int cchTextMax;
|
|
854 int iImage;
|
|
855 LPARAM lParam;
|
|
856 int iIndent;
|
|
857 }
|
|
858 version(ANSI){
|
|
859 alias LVITEMA LVITEM;
|
|
860 }else{
|
|
861 alias LVITEMW LVITEM;
|
|
862 }
|
|
863 alias LVITEM* LPLVITEM;
|
|
864
|
|
865 struct MARGINS {
|
|
866 int cxLeftWidth;
|
|
867 int cxRightWidth;
|
|
868 int cyTopHeight;
|
|
869 int cyBottomHeight;
|
|
870 }
|
|
871
|
|
872 struct MEASUREITEMSTRUCT {
|
|
873 UINT CtlType;
|
|
874 UINT CtlID;
|
|
875 UINT itemID;
|
|
876 UINT itemWidth;
|
|
877 UINT itemHeight;
|
|
878 DWORD itemData;
|
|
879 }
|
|
880
|
|
881 struct MENUBARINFO {
|
|
882 DWORD cbSize;
|
|
883 RECT rcBar;
|
|
884 HMENU hMenu;
|
|
885 HWND hwndMenu;
|
|
886 BOOL fBarFocused;
|
|
887 BOOL fFocused;
|
|
888 }alias MENUBARINFO* PMENUBARINFO, LPMENUBARINFO;
|
|
889
|
|
890 struct MENUINFO {
|
|
891 DWORD cbSize;
|
|
892 DWORD fMask;
|
|
893 DWORD dwStyle;
|
|
894 UINT cyMax;
|
|
895 HBRUSH hbrBack;
|
|
896 DWORD dwContextHelpID;
|
|
897 ULONG_PTR dwMenuData;
|
|
898 }
|
|
899 alias MENUINFO* PCMENUINFO, LPCMENUINFO, LPCCMENUINFO;
|
|
900
|
|
901 /*
|
|
902 * Feature in Windows. The hbmpItem field requires Windows 4.10
|
|
903 * or greater. On Windows NT 4.0, passing in a larger struct size
|
|
904 * in the cbSize field does nothing. On Windows 95, the MENUITEMINFO
|
|
905 * calls fail when the struct size is too large. The fix is to ensure
|
|
906 * that the correct struct size is used for the Windows platform.
|
|
907 */
|
|
908 struct MENUITEMINFOA
|
|
909 {
|
|
910 UINT cbSize;
|
|
911 UINT fMask;
|
|
912 UINT fType; // used if MIIM_TYPE
|
|
913 UINT fState; // used if MIIM_STATE
|
|
914 UINT wID; // used if MIIM_ID
|
|
915 HMENU hSubMenu; // used if MIIM_SUBMENU
|
|
916 HBITMAP hbmpChecked; // used if MIIM_CHECKMARKS
|
|
917 HBITMAP hbmpUnchecked; // used if MIIM_CHECKMARKS
|
|
918 DWORD dwItemData; // used if MIIM_DATA
|
|
919 LPSTR dwTypeData; // used if MIIM_TYPE
|
|
920 UINT cch; // used if MIIM_TYPE
|
|
921 HBITMAP hbmpItem;
|
|
922 }
|
|
923 alias MENUITEMINFOA* PMENUITEMINFOA, LPMENUITEMINFOA;
|
|
924 struct MENUITEMINFOW
|
|
925 {
|
|
926 UINT cbSize;
|
|
927 UINT fMask;
|
|
928 UINT fType; // used if MIIM_TYPE
|
|
929 UINT fState; // used if MIIM_STATE
|
|
930 UINT wID; // used if MIIM_ID
|
|
931 HMENU hSubMenu; // used if MIIM_SUBMENU
|
|
932 HBITMAP hbmpChecked; // used if MIIM_CHECKMARKS
|
|
933 HBITMAP hbmpUnchecked; // used if MIIM_CHECKMARKS
|
|
934 DWORD dwItemData; // used if MIIM_DATA
|
|
935 LPWSTR dwTypeData; // used if MIIM_TYPE
|
|
936 UINT cch; // used if MIIM_TYPE
|
|
937 HBITMAP hbmpItem;
|
|
938 } alias MENUITEMINFOW* PMENUITEMINFOW, LPMENUITEMINFOW;
|
|
939 //version(ANSI){
|
|
940 // alias MENUITEMINFOA MENUITEMINFO;
|
|
941 //}else{
|
|
942 // alias MENUITEMINFOW MENUITEMINFO;
|
|
943 //}
|
|
944 //alias MENUITEMINFO * LPMENUITEMINFO;
|
|
945
|
|
946
|
|
947 struct MINMAXINFO {
|
|
948 POINT ptReserved;
|
|
949 POINT ptMaxSize;
|
|
950 POINT ptMaxPosition;
|
|
951 POINT ptMinTrackSize;
|
|
952 POINT ptMaxTrackSize;
|
|
953 }
|
|
954
|
|
955 //struct MONITORINFO {
|
|
956 // DWORD cbSize;
|
|
957 // RECT rcMonitor;
|
|
958 // RECT rcWork;
|
|
959 // DWORD dwFlags;
|
|
960 //}
|
|
961 //alias MONITORINFO* PMONITORINFO, LPMONITORINFO;
|
|
962
|
|
963 struct MOUSEINPUT {
|
|
964 LONG dx;
|
|
965 LONG dy;
|
|
966 DWORD mouseData;
|
|
967 DWORD dwFlags;
|
|
968 DWORD dwExtraInfo;
|
|
969 }
|
|
970
|
|
971 //struct MSG {
|
|
972 // int hwnd;
|
|
973 // int message;
|
|
974 // int wParam;
|
|
975 // int lParam;
|
|
976 // int time;
|
|
977 //// POINT pt;
|
|
978 // int x, y;
|
|
979 //}
|
|
980
|
|
981 struct NEWTEXTMETRICA { // ntm
|
|
982 LONG tmHeight;
|
|
983 LONG tmAscent;
|
|
984 LONG tmDescent;
|
|
985 LONG tmInternalLeading;
|
|
986 LONG tmExternalLeading;
|
|
987 LONG tmAveCharWidth;
|
|
988 LONG tmMaxCharWidth;
|
|
989 LONG tmWeight;
|
|
990 LONG tmOverhang;
|
|
991 LONG tmDigitizedAspectX;
|
|
992 LONG tmDigitizedAspectY;
|
|
993 BYTE tmFirstChar;
|
|
994 BYTE tmLastChar;
|
|
995 BYTE tmDefaultChar;
|
|
996 BYTE tmBreakChar;
|
|
997 BYTE tmItalic;
|
|
998 BYTE tmUnderlined;
|
|
999 BYTE tmStruckOut;
|
|
1000 BYTE tmPitchAndFamily;
|
|
1001 BYTE tmCharSet;
|
|
1002 DWORD ntmFlags;
|
|
1003 UINT ntmSizeEM;
|
|
1004 UINT ntmCellHeight;
|
|
1005 UINT ntmAvgWidth;
|
|
1006 }
|
|
1007 struct NEWTEXTMETRICW { // ntm
|
|
1008 LONG tmHeight;
|
|
1009 LONG tmAscent;
|
|
1010 LONG tmDescent;
|
|
1011 LONG tmInternalLeading;
|
|
1012 LONG tmExternalLeading;
|
|
1013 LONG tmAveCharWidth;
|
|
1014 LONG tmMaxCharWidth;
|
|
1015 LONG tmWeight;
|
|
1016 LONG tmOverhang;
|
|
1017 LONG tmDigitizedAspectX;
|
|
1018 LONG tmDigitizedAspectY;
|
|
1019 WCHAR tmFirstChar;
|
|
1020 WCHAR tmLastChar;
|
|
1021 WCHAR tmDefaultChar;
|
|
1022 WCHAR tmBreakChar;
|
|
1023 BYTE tmItalic;
|
|
1024 BYTE tmUnderlined;
|
|
1025 BYTE tmStruckOut;
|
|
1026 BYTE tmPitchAndFamily;
|
|
1027 BYTE tmCharSet;
|
|
1028 DWORD ntmFlags;
|
|
1029 UINT ntmSizeEM;
|
|
1030 UINT ntmCellHeight;
|
|
1031 UINT ntmAvgWidth;
|
|
1032 }
|
|
1033 struct NEWTEXTMETRICEXA {
|
|
1034 NEWTEXTMETRICA ntmentm;
|
|
1035 FONTSIGNATURE ntmeFontSignature;
|
|
1036 }
|
|
1037 struct NEWTEXTMETRICEXW {
|
|
1038 NEWTEXTMETRICW ntmentm;
|
|
1039 FONTSIGNATURE ntmeFontSignature;
|
|
1040 }
|
|
1041 version(ANSI){
|
|
1042 alias NEWTEXTMETRICA NEWTEXTMETRIC;
|
|
1043 alias NEWTEXTMETRICEXA NEWTEXTMETRICEX;
|
|
1044 }else{
|
|
1045 alias NEWTEXTMETRICW NEWTEXTMETRIC;
|
|
1046 alias NEWTEXTMETRICEXW NEWTEXTMETRICEX;
|
|
1047 }
|
|
1048
|
|
1049 struct NMCUSTOMDRAW {
|
|
1050 NMHDR hdr;
|
|
1051 DWORD dwDrawStage;
|
|
1052 HDC hdc;
|
|
1053 RECT rc;
|
|
1054 DWORD dwItemSpec;
|
|
1055 UINT uItemState;
|
|
1056 LPARAM lItemlParam;
|
|
1057 }
|
|
1058
|
|
1059 struct NMHDR {
|
|
1060 HWND hwndFrom;
|
|
1061 UINT idFrom;
|
|
1062 UINT code;
|
|
1063 }
|
|
1064
|
|
1065 struct NMHEADER {
|
|
1066 NMHDR hdr;
|
|
1067 int iItem;
|
|
1068 int iButton;
|
|
1069 HDITEM *pitem;
|
|
1070 }
|
|
1071
|
|
1072 struct NMLISTVIEW {
|
|
1073 NMHDR hdr;
|
|
1074 int iItem;
|
|
1075 int iSubItem;
|
|
1076 UINT uNewState;
|
|
1077 UINT uOldState;
|
|
1078 UINT uChanged;
|
|
1079 POINT ptAction;
|
|
1080 LPARAM lParam;
|
|
1081 }
|
|
1082
|
|
1083 struct NMLVCUSTOMDRAW {
|
|
1084 NMCUSTOMDRAW nmcd;
|
|
1085 COLORREF clrText;
|
|
1086 COLORREF clrTextBk;
|
|
1087 //#if (_WIN32_IE >= 0x0400)
|
|
1088 int iSubItem;
|
|
1089 //#endif
|
|
1090 }
|
|
1091
|
|
1092 struct NMLVDISPINFOA {
|
|
1093 NMHDR hdr;
|
|
1094 LVITEMA item;
|
|
1095 }
|
|
1096 struct NMLVDISPINFOW {
|
|
1097 NMHDR hdr;
|
|
1098 LVITEMW item;
|
|
1099 }
|
|
1100 version(ANSI){
|
|
1101 alias NMLVDISPINFOA NMLVDISPINFO;
|
|
1102 }else{
|
|
1103 alias NMLVDISPINFOW NMLVDISPINFO;
|
|
1104 }
|
|
1105
|
|
1106 struct NMLVFINDITEMA {
|
|
1107 NMHDR hdr;
|
|
1108 int iStart;
|
|
1109 LVFINDINFOA lvfi;
|
|
1110 }
|
|
1111
|
|
1112 struct NMLVFINDITEMW {
|
|
1113 NMHDR hdr;
|
|
1114 int iStart;
|
|
1115 LVFINDINFOW lvfi;
|
|
1116 }
|
|
1117 version(ANSI){
|
|
1118 alias NMLVFINDITEMA NMLVFINDITEM;
|
|
1119 }else{
|
|
1120 alias NMLVFINDITEMW NMLVFINDITEM;
|
|
1121 }
|
|
1122
|
|
1123 struct NMREBARCHEVRON {
|
|
1124 NMHDR hdr;
|
|
1125 UINT uBand;
|
|
1126 UINT wID;
|
|
1127 LPARAM lParam;
|
|
1128 RECT rc;
|
|
1129 LPARAM lParamNM;
|
|
1130 }
|
|
1131
|
|
1132 struct NMRGINFO {
|
|
1133 // NMHDR
|
|
1134 HWND hwndFrom;
|
|
1135 int idFrom;
|
|
1136 int code;
|
|
1137 // -end- NMHDR
|
|
1138 // POINT ptAction;
|
|
1139 int x;
|
|
1140 int y;
|
|
1141 int dwItemSpec;
|
|
1142 }
|
|
1143 struct NMTOOLBARA {
|
|
1144 align(2):
|
|
1145 NMHDR hdr;
|
|
1146 int iItem;
|
|
1147 TBBUTTON tbButton;
|
|
1148 int cchText;
|
|
1149 LPSTR pszText;
|
|
1150 }
|
|
1151 struct NMTOOLBARW {
|
|
1152 align(2):
|
|
1153 NMHDR hdr;
|
|
1154 int iItem;
|
|
1155 TBBUTTON tbButton;
|
|
1156 int cchText;
|
|
1157 LPWSTR pszText;
|
|
1158 }
|
|
1159 version(ANSI){
|
|
1160 alias NMTOOLBARA NMTOOLBAR;
|
|
1161 }else{
|
|
1162 alias NMTOOLBARW NMTOOLBAR;
|
|
1163 }
|
|
1164 alias NMTOOLBAR* LPNMTOOLBAR;
|
|
1165
|
|
1166
|
|
1167 struct NMTTDISPINFOA {
|
|
1168 NMHDR hdr;
|
|
1169 LPSTR lpszText;
|
|
1170 char szText[80];
|
|
1171 HINSTANCE hinst;
|
|
1172 UINT uFlags;
|
|
1173 LPARAM lParam;
|
|
1174 }
|
|
1175
|
|
1176 struct NMTTDISPINFOW {
|
|
1177 NMHDR hdr;
|
|
1178 LPWSTR lpszText;
|
|
1179 WCHAR szText[80];
|
|
1180 HINSTANCE hinst;
|
|
1181 UINT uFlags;
|
|
1182 LPARAM lParam;
|
|
1183 }
|
|
1184 version(ANSI){
|
|
1185 alias NMTTDISPINFOA NMTTDISPINFO;
|
|
1186 } else {
|
|
1187 alias NMTTDISPINFOW NMTTDISPINFO;
|
|
1188 }
|
|
1189
|
|
1190 struct NMTVCUSTOMDRAW {
|
|
1191 NMCUSTOMDRAW nmcd;
|
|
1192 COLORREF clrText;
|
|
1193 COLORREF clrTextBk;
|
|
1194 //#if (_WIN32_IE >= 0x0400)
|
|
1195 int iLevel; // the iLevel field does not appear on WinCE
|
|
1196 //#endif
|
|
1197 }
|
|
1198
|
|
1199 version(ANSI){
|
|
1200 alias NONCLIENTMETRICSA NONCLIENTMETRICS;
|
|
1201 } else {
|
|
1202 alias NONCLIENTMETRICSW NONCLIENTMETRICS;
|
|
1203 }
|
|
1204 struct NONCLIENTMETRICSA {
|
|
1205 int cbSize;
|
|
1206 int iBorderWidth;
|
|
1207 int iScrollWidth;
|
|
1208 int iScrollHeight;
|
|
1209 int iCaptionWidth;
|
|
1210 int iCaptionHeight;
|
|
1211 LOGFONTA lfCaptionFont;
|
|
1212 int iSmCaptionWidth;
|
|
1213 int iSmCaptionHeight;
|
|
1214 LOGFONTA lfSmCaptionFont;
|
|
1215 int iMenuWidth;
|
|
1216 int iMenuHeight;
|
|
1217 LOGFONTA lfMenuFont;
|
|
1218 LOGFONTA lfStatusFont;
|
|
1219 LOGFONTA lfMessageFont;
|
|
1220 }
|
|
1221 struct NONCLIENTMETRICSW {
|
|
1222 int cbSize;
|
|
1223 int iBorderWidth;
|
|
1224 int iScrollWidth;
|
|
1225 int iScrollHeight;
|
|
1226 int iCaptionWidth;
|
|
1227 int iCaptionHeight;
|
|
1228 LOGFONTW lfCaptionFont;
|
|
1229 int iSmCaptionWidth;
|
|
1230 int iSmCaptionHeight;
|
|
1231 LOGFONTW lfSmCaptionFont;
|
|
1232 int iMenuWidth;
|
|
1233 int iMenuHeight;
|
|
1234 LOGFONTW lfMenuFont;
|
|
1235 LOGFONTW lfStatusFont;
|
|
1236 LOGFONTW lfMessageFont;
|
|
1237 }
|
|
1238
|
|
1239 struct NOTIFYICONDATAA {
|
|
1240 DWORD cbSize;
|
|
1241 HWND hWnd;
|
|
1242 UINT uID;
|
|
1243 UINT uFlags;
|
|
1244 UINT uCallbackMessage;
|
|
1245 HICON hIcon;
|
|
1246 char szTip[64];
|
|
1247 DWORD dwState;
|
|
1248 DWORD dwStateMask;
|
|
1249 char szInfo[256];
|
|
1250 // union {
|
|
1251 // UINT uTimeout;
|
|
1252 UINT uVersion;
|
|
1253 // };
|
|
1254 char szInfoTitle[64];
|
|
1255 DWORD dwInfoFlags;
|
|
1256 // GUID guidItem;
|
|
1257 } alias NOTIFYICONDATAA* PNOTIFYICONDATAA, LPNOTIFYICONDATAA;
|
|
1258
|
|
1259 struct NOTIFYICONDATAW {
|
|
1260 DWORD cbSize;
|
|
1261 HWND hWnd;
|
|
1262 UINT uID;
|
|
1263 UINT uFlags;
|
|
1264 UINT uCallbackMessage;
|
|
1265 HICON hIcon;
|
|
1266 WCHAR szTip[64];
|
|
1267 DWORD dwState;
|
|
1268 DWORD dwStateMask;
|
|
1269 WCHAR szInfo[256];
|
|
1270 // union {
|
|
1271 // UINT uTimeout;
|
|
1272 UINT uVersion;
|
|
1273 // };
|
|
1274 WCHAR szInfoTitle[64];
|
|
1275 DWORD dwInfoFlags;
|
|
1276 // GUID guidItem;
|
|
1277 }
|
|
1278 alias NOTIFYICONDATAW* PNOTIFYICONDATAW, LPNOTIFYICONDATAW;
|
|
1279 version(ANSI){
|
|
1280 alias NOTIFYICONDATAA NOTIFYICONDATA;
|
|
1281 }else{
|
|
1282 alias NOTIFYICONDATAW NOTIFYICONDATA;
|
|
1283 }
|
|
1284
|
|
1285 /* already in phobos now
|
|
1286
|
|
1287 struct OPENFILENAMEA {
|
|
1288 DWORD lStructSize;
|
|
1289 HWND hwndOwner;
|
|
1290 HINSTANCE hInstance;
|
|
1291 LPCSTR lpstrFilter;
|
|
1292 LPSTR lpstrCustomFilter;
|
|
1293 DWORD nMaxCustFilter;
|
|
1294 DWORD nFilterIndex;
|
|
1295 LPSTR lpstrFile;
|
|
1296 DWORD nMaxFile;
|
|
1297 LPSTR lpstrFileTitle;
|
|
1298 DWORD nMaxFileTitle;
|
|
1299 LPCSTR lpstrInitialDir;
|
|
1300 LPCSTR lpstrTitle;
|
|
1301 DWORD Flags;
|
|
1302 WORD nFileOffset;
|
|
1303 WORD nFileExtension;
|
|
1304 LPCSTR lpstrDefExt;
|
|
1305 LPARAM lCustData;
|
|
1306 LPOFNHOOKPROC lpfnHook;
|
|
1307 LPCSTR lpTemplateName;
|
|
1308 }
|
|
1309
|
|
1310 struct OPENFILENAMEW {
|
|
1311 DWORD lStructSize;
|
|
1312 HWND hwndOwner;
|
|
1313 HINSTANCE hInstance;
|
|
1314 LPCWSTR lpstrFilter;
|
|
1315 LPWSTR lpstrCustomFilter;
|
|
1316 DWORD nMaxCustFilter;
|
|
1317 DWORD nFilterIndex;
|
|
1318 LPWSTR lpstrFile;
|
|
1319 DWORD nMaxFile;
|
|
1320 LPWSTR lpstrFileTitle;
|
|
1321 DWORD nMaxFileTitle;
|
|
1322 LPCWSTR lpstrInitialDir;
|
|
1323 LPCWSTR lpstrTitle;
|
|
1324 DWORD Flags;
|
|
1325 WORD nFileOffset;
|
|
1326 WORD nFileExtension;
|
|
1327 LPCWSTR lpstrDefExt;
|
|
1328 LPARAM lCustData;
|
|
1329 LPOFNHOOKPROC lpfnHook;
|
|
1330 LPCWSTR lpTemplateName;
|
|
1331 }
|
|
1332 */
|
|
1333
|
|
1334 //PORTING_TODO: is needed?
|
|
1335 //version(ANSI){
|
|
1336 // alias OPENFILENAMEA OPENFILENAME;
|
|
1337 //}else{
|
|
1338 // alias OPENFILENAMEW OPENFILENAME;
|
|
1339 //}
|
|
1340
|
|
1341
|
|
1342 struct OSVERSIONINFOA {
|
|
1343 DWORD dwOSVersionInfoSize;
|
|
1344 DWORD dwMajorVersion;
|
|
1345 DWORD dwMinorVersion;
|
|
1346 DWORD dwBuildNumber;
|
|
1347 DWORD dwPlatformId;
|
|
1348 CHAR szCSDVersion[ 128 ];
|
|
1349 }alias OSVERSIONINFOA* POSVERSIONINFOA, LPOSVERSIONINFOA;
|
|
1350
|
|
1351 struct OSVERSIONINFOW {
|
|
1352 DWORD dwOSVersionInfoSize;
|
|
1353 DWORD dwMajorVersion;
|
|
1354 DWORD dwMinorVersion;
|
|
1355 DWORD dwBuildNumber;
|
|
1356 DWORD dwPlatformId;
|
|
1357 WCHAR szCSDVersion[ 128 ];
|
|
1358 }alias OSVERSIONINFOW* POSVERSIONINFOW, LPOSVERSIONINFOW;
|
|
1359 version(ANSI){
|
|
1360 alias OSVERSIONINFOA OSVERSIONINFO;
|
|
1361 }else{
|
|
1362 alias OSVERSIONINFOW OSVERSIONINFO;
|
|
1363 }
|
|
1364 //struct PAINTSTRUCT {
|
|
1365 // int hdc;
|
|
1366 // int fErase;
|
|
1367 //// RECT rcPaint;
|
|
1368 // public int left, top, right, bottom;
|
|
1369 // int fRestore;
|
|
1370 // int fIncUpdate;
|
|
1371 // byte rgbReserved[32];
|
|
1372 //}
|
|
1373 //alias windows.PAINTSTRUCT PAINTSTRUCT;
|
|
1374
|
|
1375 //struct POINT {
|
|
1376 // LONG x, y;
|
|
1377 //}
|
|
1378
|
|
1379
|
|
1380 struct PRINTDLGA { // pd
|
|
1381 align(2):
|
|
1382 DWORD lStructSize;
|
|
1383 HWND hwndOwner;
|
|
1384 HANDLE hDevMode;
|
|
1385 HANDLE hDevNames;
|
|
1386 HDC hDC;
|
|
1387 DWORD Flags;
|
|
1388 WORD nFromPage;
|
|
1389 WORD nToPage;
|
|
1390 WORD nMinPage;
|
|
1391 WORD nMaxPage;
|
|
1392 WORD nCopies;
|
|
1393 HINSTANCE hInstance;
|
|
1394 DWORD lCustData;
|
|
1395 LPPRINTHOOKPROC_I lpfnPrintHook;
|
|
1396 LPSETUPHOOKPROC_I lpfnSetupHook;
|
|
1397 LPCSTR lpPrintTemplateName;
|
|
1398 LPCSTR lpSetupTemplateName;
|
|
1399 HANDLE hPrintTemplate;
|
|
1400 HANDLE hSetupTemplate;
|
|
1401 }
|
|
1402 alias PRINTDLGA* PPRINTDLGA, LPPRINTDLGA;
|
|
1403 struct PRINTDLGW { // pd
|
|
1404 align(2):
|
|
1405 DWORD lStructSize;
|
|
1406 HWND hwndOwner;
|
|
1407 HANDLE hDevMode;
|
|
1408 HANDLE hDevNames;
|
|
1409 HDC hDC;
|
|
1410 DWORD Flags;
|
|
1411 WORD nFromPage;
|
|
1412 WORD nToPage;
|
|
1413 WORD nMinPage;
|
|
1414 WORD nMaxPage;
|
|
1415 WORD nCopies;
|
|
1416 HINSTANCE hInstance;
|
|
1417 DWORD lCustData;
|
|
1418 LPPRINTHOOKPROC_I lpfnPrintHook;
|
|
1419 LPSETUPHOOKPROC_I lpfnSetupHook;
|
|
1420 LPCWSTR lpPrintTemplateName;
|
|
1421 LPCWSTR lpSetupTemplateName;
|
|
1422 HANDLE hPrintTemplate;
|
|
1423 HANDLE hSetupTemplate;
|
|
1424 }
|
|
1425 alias PRINTDLGW* PPRINTDLGW, LPPRINTDLGW;
|
|
1426 version(ANSI){
|
|
1427 alias PRINTDLGA PRINTDLG;
|
|
1428 }else{
|
|
1429 alias PRINTDLGW PRINTDLG;
|
|
1430 }
|
|
1431
|
|
1432 struct REBARBANDINFOA {
|
|
1433 UINT cbSize;
|
|
1434 UINT fMask;
|
|
1435 UINT fStyle;
|
|
1436 COLORREF clrFore;
|
|
1437 COLORREF clrBack;
|
|
1438 LPSTR lpText;
|
|
1439 UINT cch;
|
|
1440 int iImage;
|
|
1441 HWND hwndChild;
|
|
1442 UINT cxMinChild;
|
|
1443 UINT cyMinChild;
|
|
1444 UINT cx;
|
|
1445 HBITMAP hbmBack;
|
|
1446 UINT wID;
|
|
1447 UINT cyChild;
|
|
1448 UINT cyMaxChild;
|
|
1449 UINT cyIntegral;
|
|
1450 UINT cxIdeal;
|
|
1451 LPARAM lParam;
|
|
1452 UINT cxHeader;
|
|
1453 /* Note in WinCE. The field cxHeader is not defined. */
|
|
1454 }
|
|
1455 struct REBARBANDINFOW {
|
|
1456 UINT cbSize;
|
|
1457 UINT fMask;
|
|
1458 UINT fStyle;
|
|
1459 COLORREF clrFore;
|
|
1460 COLORREF clrBack;
|
|
1461 LPWSTR lpText;
|
|
1462 UINT cch;
|
|
1463 int iImage;
|
|
1464 HWND hwndChild;
|
|
1465 UINT cxMinChild;
|
|
1466 UINT cyMinChild;
|
|
1467 UINT cx;
|
|
1468 HBITMAP hbmBack;
|
|
1469 UINT wID;
|
|
1470 UINT cyChild;
|
|
1471 UINT cyMaxChild;
|
|
1472 UINT cyIntegral;
|
|
1473 UINT cxIdeal;
|
|
1474 LPARAM lParam;
|
|
1475 UINT cxHeader;
|
|
1476 /* Note in WinCE. The field cxHeader is not defined. */
|
|
1477 }
|
|
1478 version(ANSI){
|
|
1479 alias REBARBANDINFOA REBARBANDINFO;
|
|
1480 }else{
|
|
1481 alias REBARBANDINFOW REBARBANDINFO;
|
|
1482 }
|
|
1483
|
|
1484 //struct RECT {
|
|
1485 // int left;
|
|
1486 // int top;
|
|
1487 // int right;
|
|
1488 // int bottom;
|
|
1489 //}
|
|
1490
|
|
1491 //struct RGNDATA {
|
|
1492 // RGNDATAHEADER rdh;
|
|
1493 // char Buffer[1];
|
|
1494 //} alias RGNDATA* PRGNDATA, LPRGNDATA;
|
|
1495
|
|
1496 struct RGNDATAHEADER {
|
|
1497 DWORD dwSize;
|
|
1498 DWORD iType;
|
|
1499 DWORD nCount;
|
|
1500 DWORD nRgnSize;
|
|
1501 RECT rcBound;
|
|
1502 } alias RGNDATAHEADER* PRGNDATAHEADER, LPRGNDATAHEADER;
|
|
1503
|
|
1504
|
|
1505 template BITWISE(T)
|
|
1506 {
|
|
1507 // bit value set
|
|
1508 void btvs(T* pData, uint bitnum, uint val){
|
|
1509 *pData &= ~(0x01 << bitnum);
|
|
1510 if(val) *pData |= (0x01 << bitnum);
|
|
1511 }
|
|
1512 // bit value get
|
|
1513 T btvg(T* pData, uint bitnum){
|
|
1514 return cast(T)((*pData >> bitnum) & 0x01);
|
|
1515 }
|
|
1516 }
|
|
1517 alias BITWISE!(BYTE).btvs btvs;
|
|
1518 alias BITWISE!(WORD).btvs btvs;
|
|
1519 alias BITWISE!(DWORD).btvs btvs;
|
|
1520 alias BITWISE!(BYTE).btvg btvg;
|
|
1521 alias BITWISE!(WORD).btvg btvg;
|
|
1522 alias BITWISE!(DWORD).btvg btvg;
|
|
1523
|
|
1524
|
|
1525 struct SCRIPT_ANALYSIS {
|
|
1526 WORD BITS;
|
|
1527 SCRIPT_STATE s;
|
|
1528
|
|
1529 // getter
|
|
1530 uint eScript() { return BITS & 0x03FFU; }
|
|
1531 uint fRTL() { return btvg(&BITS, 10); }
|
|
1532 uint fLayoutRTL() { return btvg(&BITS, 11); }
|
|
1533 uint fLinkBefore() { return btvg(&BITS, 12); }
|
|
1534 uint fLinkAfter() { return btvg(&BITS, 13); }
|
|
1535 uint fLogicalOrder(){ return btvg(&BITS, 14); }
|
|
1536 uint fNoGlyphIndex(){ return btvg(&BITS, 15); }
|
|
1537 // setter
|
|
1538 void eScript(uint val) { BITS &= 0xFC00; BITS |= (val & 0x03FF); }
|
|
1539 void fRTL(uint val) { btvs(&BITS, 10, val); }
|
|
1540 void fLayoutRTL(uint val) { btvs(&BITS, 11, val); }
|
|
1541 void fLinkBefore(uint val) { btvs(&BITS, 12, val); }
|
|
1542 void fLinkAfter(uint val) { btvs(&BITS, 13, val); }
|
|
1543 void fLogicalOrder(uint val){ btvs(&BITS, 14, val); }
|
|
1544 void fNoGlyphIndex(uint val){ btvs(&BITS, 15, val); }
|
|
1545 }
|
|
1546
|
|
1547 alias void *SCRIPT_CACHE;
|
|
1548
|
|
1549 struct SCRIPT_CONTROL {
|
|
1550 align(1):
|
|
1551 WORD uDefaultLanguage;
|
|
1552 BYTE BITS;
|
|
1553 BYTE fReserved;
|
|
1554
|
|
1555 // getter
|
|
1556 uint fContextDigits() { return btvg(&BITS, 0); }
|
|
1557 uint fInvertPreBoundDir() { return btvg(&BITS, 1); }
|
|
1558 uint fInvertPostBoundDir() { return btvg(&BITS, 2); }
|
|
1559 uint fLinkStringBefore() { return btvg(&BITS, 3); }
|
|
1560 uint fLinkStringAfter() { return btvg(&BITS, 4); }
|
|
1561 uint fNeutralOverride() { return btvg(&BITS, 5); }
|
|
1562 uint fNumericOverride() { return btvg(&BITS, 6); }
|
|
1563 uint fLegacyBidiClass() { return btvg(&BITS, 7); }
|
|
1564
|
|
1565 void fContextDigits(uint val) { btvs(&BITS, 0, val); }
|
|
1566 void fInvertPreBoundDir(uint val) { btvs(&BITS, 1, val); }
|
|
1567 void fInvertPostBoundDir(uint val) { btvs(&BITS, 2, val); }
|
|
1568 void fLinkStringBefore(uint val) { btvs(&BITS, 3, val); }
|
|
1569 void fLinkStringAfter(uint val) { btvs(&BITS, 4, val); }
|
|
1570 void fNeutralOverride(uint val) { btvs(&BITS, 5, val); }
|
|
1571 void fNumericOverride(uint val) { btvs(&BITS, 6, val); }
|
|
1572 void fLegacyBidiClass(uint val) { btvs(&BITS, 7, val); }
|
|
1573 }
|
|
1574
|
|
1575 struct SCRIPT_FONTPROPERTIES {
|
|
1576 int cBytes;
|
|
1577 WORD wgBlank;
|
|
1578 WORD wgDefault;
|
|
1579 WORD wgInvalid;
|
|
1580 WORD wgKashida;
|
|
1581 int iKashidaWidth;
|
|
1582 }
|
|
1583
|
|
1584 struct SCRIPT_ITEM {
|
|
1585 int iCharPos;
|
|
1586 SCRIPT_ANALYSIS a;
|
|
1587 }
|
|
1588
|
|
1589 struct SCRIPT_LOGATTR {
|
|
1590 align(1):
|
|
1591 BYTE BITS;
|
|
1592
|
|
1593 // gettter
|
|
1594 uint fSoftBreak() { return btvg(&BITS, 0); }
|
|
1595 uint fWhiteSpace() { return btvg(&BITS, 1); }
|
|
1596 uint fCharStop() { return btvg(&BITS, 2); }
|
|
1597 uint fWordStop() { return btvg(&BITS, 3); }
|
|
1598 uint fInvalid() { return btvg(&BITS, 4); }
|
|
1599 uint fReserved() { return cast(BYTE)(BITS>>5); }
|
|
1600
|
|
1601 void fSoftBreak(uint val) { btvs(&BITS, 0, val); }
|
|
1602 void fWhiteSpace(uint val) { btvs(&BITS, 1, val); }
|
|
1603 void fCharStop(uint val) { btvs(&BITS, 2, val); }
|
|
1604 void fWordStop(uint val) { btvs(&BITS, 3, val); }
|
|
1605 void fInvalid(uint val) { btvs(&BITS, 4, val); }
|
|
1606 void fReserved(uint val) { BITS &= 0x1F; BITS |= (val & 0x07)<<5; }
|
|
1607 }
|
|
1608
|
|
1609
|
|
1610 struct SCRIPT_PROPERTIES {
|
|
1611 DWORD BITS1;
|
|
1612 DWORD BITS2;
|
|
1613
|
|
1614 uint langid() { return BITS1 >> 16; }
|
|
1615 uint fNumeric() { return btvg(&BITS1, 16); }
|
|
1616 uint fComplex() { return btvg(&BITS1, 17); }
|
|
1617 uint fNeedsWordBreaking() { return btvg(&BITS1, 18); }
|
|
1618 uint fNeedsCaretInfo() { return btvg(&BITS1, 19); }
|
|
1619 uint bCharSet() { return (BITS1 >> 20) & 0xFF; }
|
|
1620 uint fControl() { return btvg(&BITS1, 28); }
|
|
1621 uint fPrivateUseArea() { return btvg(&BITS1, 29); }
|
|
1622 uint fNeedsCharacterJustify(){ return btvg(&BITS1, 30); }
|
|
1623 uint fInvalidGlyph() { return btvg(&BITS1, 31); }
|
|
1624 uint fInvalidLogAttr() { return btvg(&BITS2, 0); }
|
|
1625 uint fCDM() { return btvg(&BITS2, 1); }
|
|
1626 uint fAmbiguousCharSet() { return btvg(&BITS2, 2); }
|
|
1627 uint fClusterSizeVaries() { return btvg(&BITS2, 3); }
|
|
1628 uint fRejectInvalid() { return btvg(&BITS2, 4); }
|
|
1629
|
|
1630 void langid(uint val) { BITS1 &= 0xFFFF0000; BITS1 |= (val & 0xFFFF); }
|
|
1631 void fNumeric(uint val) { btvs(&BITS1, 16, val); }
|
|
1632 void fComplex(uint val) { btvs(&BITS1, 17, val); }
|
|
1633 void fNeedsWordBreaking(uint val) { btvs(&BITS1, 18, val); }
|
|
1634 void fNeedsCaretInfo(uint val) { btvs(&BITS1, 19, val); }
|
|
1635 void bCharSet(uint val) { BITS1 &= 0xF00FFFFF; BITS1 |= (val & 0xFF)<<20; }
|
|
1636 void fControl(uint val) { btvs(&BITS1, 28, val); }
|
|
1637 void fPrivateUseArea(uint val) { btvs(&BITS1, 29, val); }
|
|
1638 void fNeedsCharacterJustify(uint val){ btvs(&BITS1, 30, val); }
|
|
1639 void fInvalidGlyph(uint val) { btvs(&BITS1, 31, val); }
|
|
1640 void fInvalidLogAttr(uint val) { btvs(&BITS2, 0, val); }
|
|
1641 void fCDM(uint val) { btvs(&BITS2, 1, val); }
|
|
1642 void fAmbiguousCharSet(uint val) { btvs(&BITS2, 2, val); }
|
|
1643 void fClusterSizeVaries(uint val) { btvs(&BITS2, 3, val); }
|
|
1644 void fRejectInvalid(uint val) { btvs(&BITS2, 4, val); }
|
|
1645 }
|
|
1646
|
|
1647
|
|
1648 struct SCRIPT_STATE {
|
|
1649 WORD BITS;
|
|
1650 // getter
|
|
1651 uint uBidiLevel() { return (BITS & 0x1F);}
|
|
1652 uint fOverrideDirection() { return btvg(&BITS, 5); }
|
|
1653 uint fInhibitSymSwap() { return btvg(&BITS, 6); }
|
|
1654 uint fCharShape() { return btvg(&BITS, 7); }
|
|
1655 uint fDigitSubstitute() { return btvg(&BITS, 8); }
|
|
1656 uint fInhibitLigate() { return btvg(&BITS, 9); }
|
|
1657 uint fDisplayZWG() { return btvg(&BITS, 10); }
|
|
1658 uint fArabicNumContext() { return btvg(&BITS, 11); }
|
|
1659 uint fGcpClusters() { return btvg(&BITS, 12); }
|
|
1660 uint fReserved() { return btvg(&BITS, 13); }
|
|
1661 uint fEngineReserved() { return (BITS >> 14) & 0x03;}
|
|
1662 // setter
|
|
1663 void uBidiLevel(uint val) { BITS &= 0xFFE0; BITS |= (val & 0x1F); }
|
|
1664 void fOverrideDirection(uint val) { btvs(&BITS, 5, val); }
|
|
1665 void fInhibitSymSwap(uint val) { btvs(&BITS, 6, val); }
|
|
1666 void fCharShape(uint val) { btvs(&BITS, 7, val); }
|
|
1667 void fDigitSubstitute(uint val) { btvs(&BITS, 8, val); }
|
|
1668 void fInhibitLigate(uint val) { btvs(&BITS, 9, val); }
|
|
1669 void fDisplayZWG(uint val) { btvs(&BITS, 10, val); }
|
|
1670 void fArabicNumContext(uint val) { btvs(&BITS, 11, val); }
|
|
1671 void fGcpClusters(uint val) { btvs(&BITS, 12, val); }
|
|
1672 void fReserved(uint val) { btvs(&BITS, 13, val); }
|
|
1673 void fEngineReserved(uint val) { BITS &= 0x3FFF; BITS |= ((val & 0x03) << 14); }
|
|
1674 }
|
|
1675
|
|
1676
|
|
1677 struct SCRIPT_VISATTR {
|
|
1678 align(1):
|
|
1679 BYTE BITS;
|
|
1680 BYTE fShapeReserved;
|
|
1681
|
|
1682 // getter
|
|
1683 uint uJustification() { return BITS & 0x0F; }
|
|
1684 uint fClusterStart() { return btvg(&BITS, 4); }
|
|
1685 uint fDiacritic() { return btvg(&BITS, 5); }
|
|
1686 uint fZeroWidth() { return btvg(&BITS, 6); }
|
|
1687 uint fReserved() { return btvg(&BITS, 7); }
|
|
1688
|
|
1689 // setter
|
|
1690 void uJustification(uint val) { BITS &= 0xF0; BITS |= (val & 0x0F); }
|
|
1691 void fClusterStart(uint val) { btvs(&BITS, 4, val); }
|
|
1692 void fDiacritic(uint val) { btvs(&BITS, 5, val); }
|
|
1693 void fZeroWidth(uint val) { btvs(&BITS, 6, val); }
|
|
1694 void fReserved(uint val) { btvs(&BITS, 7, val); }
|
|
1695 }
|
|
1696
|
|
1697 //struct SCROLLINFO {
|
|
1698 // UINT cbSize;
|
|
1699 // UINT fMask;
|
|
1700 // int nMin;
|
|
1701 // int nMax;
|
|
1702 // UINT nPage;
|
|
1703 // int nPos;
|
|
1704 // int nTrackPos;
|
|
1705 //}
|
|
1706 //alias SCROLLINFO* PSCROLLINFO, LPSCROLLINFO, LPCSCROLLINFO;
|
|
1707
|
|
1708 version(WinCE)
|
|
1709 {
|
|
1710 struct SHACTIVATEINFO {
|
|
1711 int cbSize;
|
|
1712 HWND hwndLastFocus;
|
|
1713 int fSipUp;
|
|
1714 int fSipOnDeactivation;
|
|
1715 int fActive;
|
|
1716 int fReserved;
|
|
1717 }
|
|
1718 }
|
|
1719
|
|
1720 struct SHELLEXECUTEINFOA {
|
|
1721 DWORD cbSize;
|
|
1722 ULONG fMask;
|
|
1723 HWND hwnd;
|
|
1724 LPCSTR lpVerb;
|
|
1725 LPCSTR lpFile;
|
|
1726 LPCSTR lpParameters;
|
|
1727 LPCSTR lpDirectory;
|
|
1728 int nShow;
|
|
1729 HINSTANCE hInstApp;
|
|
1730
|
|
1731 // Optional members
|
|
1732 LPVOID lpIDList;
|
|
1733 LPCSTR lpClass;
|
|
1734 HKEY hkeyClass;
|
|
1735 DWORD dwHotKey;
|
|
1736 HANDLE hIcon;
|
|
1737 HANDLE hProcess;
|
|
1738 } alias SHELLEXECUTEINFOA* PSHELLEXECUTEINFOA, LPSHELLEXECUTEINFOA;
|
|
1739 struct SHELLEXECUTEINFOW {
|
|
1740 DWORD cbSize;
|
|
1741 ULONG fMask;
|
|
1742 HWND hwnd;
|
|
1743 LPCWSTR lpVerb;
|
|
1744 LPCWSTR lpFile;
|
|
1745 LPCWSTR lpParameters;
|
|
1746 LPCWSTR lpDirectory;
|
|
1747 int nShow;
|
|
1748 HINSTANCE hInstApp;
|
|
1749
|
|
1750 // Optional members
|
|
1751 LPVOID lpIDList;
|
|
1752 LPCWSTR lpClass;
|
|
1753 HKEY hkeyClass;
|
|
1754 DWORD dwHotKey;
|
|
1755 HANDLE hIcon;
|
|
1756 HANDLE hProcess;
|
|
1757 } alias SHELLEXECUTEINFOW* PSHELLEXECUTEINFOW, LPSHELLEXECUTEINFOW;
|
|
1758 version(ANSI){
|
|
1759 alias SHELLEXECUTEINFOA SHELLEXECUTEINFO;
|
|
1760 }else{
|
|
1761 alias SHELLEXECUTEINFOW SHELLEXECUTEINFO;
|
|
1762 }
|
|
1763 alias SHELLEXECUTEINFO* LPSHELLEXECUTEINFO;
|
|
1764
|
|
1765 struct SHITEMID {
|
|
1766 USHORT cb;
|
|
1767 BYTE abID[1];
|
|
1768 }
|
|
1769 alias SHITEMID* LPCSHITEMID;
|
|
1770
|
|
1771 version(WinCE)
|
|
1772 {
|
|
1773 struct SHMENUBARINFO {
|
|
1774 int cbSize;
|
|
1775 HWND hwndParent;
|
|
1776 int dwFlags;
|
|
1777 int nToolBarId;
|
|
1778 HINSTANCE hInstRes;
|
|
1779 int nBmpId;
|
|
1780 int cBmpImages;
|
|
1781 HWND hwndMB;
|
|
1782 }
|
|
1783
|
|
1784 struct SHRGINFO {
|
|
1785 DWORD cbSize;
|
|
1786 HWND hwndClient;
|
|
1787 POINT ptDown;
|
|
1788 DWORD dwFlags;
|
|
1789 }
|
|
1790
|
|
1791 struct SIPINFO {
|
|
1792 DWORD cbSize;
|
|
1793 DWORD fdwFlags;
|
|
1794 RECT rcVisibleDesktop;
|
|
1795 RECT rcSipRect;
|
|
1796 DWORD dwImDataSize;
|
|
1797 VOID *pvImData;
|
|
1798 }
|
|
1799 } // end of version WinCE
|
|
1800
|
|
1801 //struct SIZE {
|
|
1802 // LONG cx;
|
|
1803 // LONG cy;
|
|
1804 //}
|
|
1805 //alias SIZE* LPSIZE, LPSIZEL;
|
|
1806 //alias SIZE SIZEL;
|
|
1807
|
|
1808
|
|
1809 struct TBBUTTON {
|
|
1810 align(2):
|
|
1811 int iBitmap;
|
|
1812 int idCommand;
|
|
1813 BYTE fsState;
|
|
1814 BYTE fsStyle;
|
|
1815 //#ifdef _WIN64
|
|
1816 // BYTE bReserved[6] // padding for alignment
|
|
1817 //#elif defined(_WIN32)
|
|
1818 // BYTE bReserved[2] // padding for alignment
|
|
1819 //#endif
|
|
1820 DWORD_PTR dwData;
|
|
1821 INT_PTR iString;
|
|
1822 }
|
|
1823 alias TBBUTTON* PTBBUTTON, LPTBBUTTON;
|
|
1824
|
|
1825 struct TBBUTTONINFOA{
|
|
1826 align(2):
|
|
1827 UINT cbSize;
|
|
1828 DWORD dwMask;
|
|
1829 int idCommand;
|
|
1830 int iImage;
|
|
1831 BYTE fsState;
|
|
1832 BYTE fsStyle;
|
|
1833 WORD cx;
|
|
1834 DWORD_PTR lParam;
|
|
1835 LPSTR pszText;
|
|
1836 int cchText;
|
|
1837 }
|
|
1838 struct TBBUTTONINFOW{
|
|
1839 align(2):
|
|
1840 UINT cbSize;
|
|
1841 DWORD dwMask;
|
|
1842 int idCommand;
|
|
1843 int iImage;
|
|
1844 BYTE fsState;
|
|
1845 BYTE fsStyle;
|
|
1846 WORD cx;
|
|
1847 DWORD_PTR lParam;
|
|
1848 LPWSTR pszText;
|
|
1849 int cchText;
|
|
1850 }
|
|
1851 version(ANSI){
|
|
1852 alias TBBUTTONINFOA TBBUTTONINFO;
|
|
1853 }else{
|
|
1854 alias TBBUTTONINFOW TBBUTTONINFO;
|
|
1855 }
|
|
1856 alias TBBUTTONINFO* LPTBBUTTONINFO;
|
|
1857
|
|
1858
|
|
1859 struct TCITEMA {
|
|
1860 UINT mask;
|
|
1861 DWORD dwState;
|
|
1862 DWORD dwStateMask;
|
|
1863 LPSTR pszText;
|
|
1864 int cchTextMax;
|
|
1865 int iImage;
|
|
1866 }
|
|
1867 struct TCITEMW {
|
|
1868 UINT mask;
|
|
1869 DWORD dwState;
|
|
1870 DWORD dwStateMask;
|
|
1871 LPWSTR pszText;
|
|
1872 int cchTextMax;
|
|
1873 int iImage;
|
|
1874 LPARAM lParam;
|
|
1875 }
|
|
1876 version(ANSI){
|
|
1877 alias TCITEMA TCITEM;
|
|
1878 }else{
|
|
1879 alias TCITEMW TCITEM;
|
|
1880 }
|
|
1881
|
|
1882 // declared in phobos alread
|
|
1883 //struct TEXTMETRICA {
|
|
1884 //}
|
|
1885 struct TEXTMETRICW {
|
|
1886 align(1):
|
|
1887 LONG tmHeight;
|
|
1888 LONG tmAscent;
|
|
1889 LONG tmDescent;
|
|
1890 LONG tmInternalLeading;
|
|
1891 LONG tmExternalLeading;
|
|
1892 LONG tmAveCharWidth;
|
|
1893 LONG tmMaxCharWidth;
|
|
1894 LONG tmWeight;
|
|
1895 LONG tmOverhang;
|
|
1896 LONG tmDigitizedAspectX;
|
|
1897 LONG tmDigitizedAspectY;
|
|
1898
|
|
1899 wchar tmFirstChar;
|
|
1900 wchar tmLastChar;
|
|
1901 wchar tmDefaultChar;
|
|
1902 wchar tmBreakChar;
|
|
1903
|
|
1904 BYTE tmItalic;
|
|
1905 BYTE tmUnderlined;
|
|
1906 BYTE tmStruckOut;
|
|
1907 BYTE tmPitchAndFamily;
|
|
1908 BYTE tmCharSet;
|
|
1909 }
|
|
1910 version(ANSI){
|
|
1911 alias TEXTMETRICA TEXTMETRIC;
|
|
1912 } else {
|
|
1913 alias TEXTMETRICW TEXTMETRIC;
|
|
1914 }
|
|
1915
|
|
1916 struct TOOLINFOA {
|
|
1917 UINT cbSize;
|
|
1918 UINT uFlags;
|
|
1919 HWND hwnd;
|
|
1920 UINT uId;
|
|
1921 RECT rect;
|
|
1922 HINSTANCE hinst;
|
|
1923 LPSTR lpszText;
|
|
1924 LPARAM lParam;
|
|
1925 }
|
|
1926 struct TOOLINFOW {
|
|
1927 UINT cbSize;
|
|
1928 UINT uFlags;
|
|
1929 HWND hwnd;
|
|
1930 UINT uId;
|
|
1931 RECT rect;
|
|
1932 HINSTANCE hinst;
|
|
1933 LPWSTR lpszText;
|
|
1934 LPARAM lParam;
|
|
1935 }
|
|
1936 version(ANSI){
|
|
1937 alias TOOLINFOA TOOLINFO;
|
|
1938 }else{
|
|
1939 alias TOOLINFOW TOOLINFO;
|
|
1940 }
|
|
1941
|
|
1942 struct TRACKMOUSEEVENT {
|
|
1943 DWORD cbSize;
|
|
1944 DWORD dwFlags;
|
|
1945 HWND hwndTrack;
|
|
1946 DWORD dwHoverTime;
|
|
1947 }
|
|
1948 alias TRACKMOUSEEVENT* PTRACKMOUSEEVENT, LPTRACKMOUSEEVENT;
|
|
1949
|
|
1950 struct TRIVERTEX {
|
|
1951 LONG x;
|
|
1952 LONG y;
|
|
1953 COLOR16 Red;
|
|
1954 COLOR16 Green;
|
|
1955 COLOR16 Blue;
|
|
1956 COLOR16 Alpha;
|
|
1957 }
|
|
1958 alias TRIVERTEX* PTRIVERTEX, LPTRIVERTEX;
|
|
1959
|
|
1960
|
|
1961 struct TVHITTESTINFO {
|
|
1962 POINT pt;
|
|
1963 UINT flags;
|
|
1964 HTREEITEM hItem;
|
|
1965 }
|
|
1966
|
|
1967
|
|
1968 struct TVINSERTSTRUCTA {
|
|
1969 HTREEITEM hParent;
|
|
1970 HTREEITEM hInsertAfter;
|
|
1971 TVITEMA item;
|
|
1972 }
|
|
1973 struct TVINSERTSTRUCTW {
|
|
1974 HTREEITEM hParent;
|
|
1975 HTREEITEM hInsertAfter;
|
|
1976 TVITEMW item;
|
|
1977 }
|
|
1978 version(ANSI){
|
|
1979 alias TVINSERTSTRUCTA TVINSERTSTRUCT;
|
|
1980 }else{
|
|
1981 alias TVINSERTSTRUCTW TVINSERTSTRUCT;
|
|
1982 }
|
|
1983
|
|
1984
|
|
1985 struct TVITEMA {
|
|
1986 UINT mask;
|
|
1987 HTREEITEM hItem;
|
|
1988 UINT state;
|
|
1989 UINT stateMask;
|
|
1990 LPSTR pszText;
|
|
1991 int cchTextMax;
|
|
1992 int iImage;
|
|
1993 int iSelectedImage;
|
|
1994 int cChildren;
|
|
1995 LPARAM lParam;
|
|
1996 }
|
|
1997 struct TVITEMW {
|
|
1998 UINT mask;
|
|
1999 HTREEITEM hItem;
|
|
2000 UINT state;
|
|
2001 UINT stateMask;
|
|
2002 LPWSTR pszText;
|
|
2003 int cchTextMax;
|
|
2004 int iImage;
|
|
2005 int iSelectedImage;
|
|
2006 int cChildren;
|
|
2007 LPARAM lParam;
|
|
2008 }
|
|
2009 version(ANSI){
|
|
2010 alias TVITEMA TVITEM;
|
|
2011 }else{
|
|
2012 alias TVITEMW TVITEM;
|
|
2013 }
|
|
2014 alias TVITEM* LPTVITEM;
|
|
2015
|
|
2016 union ULARGE_INTEGER {
|
|
2017 struct {
|
|
2018 DWORD LowPart;
|
|
2019 DWORD HighPart;
|
|
2020 };
|
|
2021 struct u {
|
|
2022 DWORD LowPart;
|
|
2023 DWORD HighPart;
|
|
2024 };
|
|
2025 DWORDLONG QuadPart;
|
|
2026 }
|
|
2027 alias ULARGE_INTEGER * PULARGE_INTEGER;
|
|
2028
|
|
2029 //struct WINDOWPLACEMENT {
|
|
2030 // UINT length;
|
|
2031 // UINT flags;
|
|
2032 // UINT showCmd;
|
|
2033 // POINT ptMinPosition;
|
|
2034 // POINT ptMaxPosition;
|
|
2035 // RECT rcNormalPosition;
|
|
2036 //}
|
|
2037 //
|
|
2038 struct WINDOWPOS {
|
|
2039 HWND hwnd;
|
|
2040 HWND hwndInsertAfter;
|
|
2041 int x;
|
|
2042 int y;
|
|
2043 int cx;
|
|
2044 int cy;
|
|
2045 UINT flags;
|
|
2046 }
|
|
2047
|
|
2048 // WNDCLASSA is declared in phobos
|
|
2049 struct WNDCLASSW {
|
|
2050 UINT style;
|
|
2051 WNDPROC_I lpfnWndProc;
|
|
2052 int cbClsExtra;
|
|
2053 int cbWndExtra;
|
|
2054 HINSTANCE hInstance;
|
|
2055 HICON hIcon;
|
|
2056 HCURSOR hCursor;
|
|
2057 HBRUSH hbrBackground;
|
|
2058 LPCWSTR lpszMenuName;
|
|
2059 LPCWSTR lpszClassName;
|
|
2060 }alias WNDCLASSW* PWNDCLASSW, LPWNDCLASSW;
|
|
2061
|
|
2062 // since phobos has alias WNDCLASSA to WNDCLASS, we have to alias it another name
|
|
2063 version(ANSI){
|
|
2064 alias WNDCLASSA WNDCLASS_T;
|
|
2065 }else{
|
|
2066 alias WNDCLASSW WNDCLASS_T;
|
|
2067 }
|
|
2068
|
|
2069 } // end of extern(Windows)
|
|
2070
|
|
2071
|
|
2072
|
|
2073
|
|
2074
|
|
2075
|