1 /***********************************************************************\
2 *                               custcntl.d                              *
3 *                                                                       *
4 *                       Windows API header module                       *
5 *                                                                       *
6 *                 Translated from MinGW Windows headers                 *
7 *                           by Stewart Gordon                           *
8 *                                                                       *
9 *                       Placed into public domain                       *
10 \***********************************************************************/
11 module win32.custcntl;
12 version(Windows):
13 
14 private import win32.windef;
15 
16 // FIXME: check type
17 const CCF_NOTEXT = 1;
18 
19 const size_t
20 	CCHCCCLASS =  32,
21 	CCHCCDESC  =  32,
22 	CCHCCTEXT  = 256;
23 
24 struct CCSTYLEA {
25 	DWORD           flStyle;
26 	DWORD           flExtStyle;
27 	CHAR[CCHCCTEXT] szText;
28 	LANGID          lgid;
29 	WORD            wReserved1;
30 }
31 alias CCSTYLEA* LPCCSTYLEA;
32 
33 struct CCSTYLEW {
34 	DWORD            flStyle;
35 	DWORD            flExtStyle;
36 	WCHAR[CCHCCTEXT] szText;
37 	LANGID           lgid;
38 	WORD             wReserved1;
39 }
40 alias CCSTYLEW* LPCCSTYLEW;
41 
42 struct CCSTYLEFLAGA {
43 	DWORD flStyle;
44 	DWORD flStyleMask;
45 	LPSTR pszStyle;
46 }
47 alias CCSTYLEFLAGA* LPCCSTYLEFLAGA;
48 
49 struct CCSTYLEFLAGW {
50 	DWORD  flStyle;
51 	DWORD  flStyleMask;
52 	LPWSTR pszStyle;
53 }
54 alias CCSTYLEFLAGW* LPCCSTYLEFLAGW;
55 
56 struct CCINFOA {
57 	CHAR[CCHCCCLASS]  szClass;
58 	DWORD             flOptions;
59 	CHAR[CCHCCDESC]   szDesc;
60 	UINT              cxDefault;
61 	UINT              cyDefault;
62 	DWORD             flStyleDefault;
63 	DWORD             flExtStyleDefault;
64 	DWORD             flCtrlTypeMask;
65 	CHAR[CCHCCTEXT]   szTextDefault;
66 	INT               cStyleFlags;
67 	LPCCSTYLEFLAGA    aStyleFlags;
68 	LPFNCCSTYLEA      lpfnStyle;
69 	LPFNCCSIZETOTEXTA lpfnSizeToText;
70 	DWORD             dwReserved1;
71 	DWORD             dwReserved2;
72 }
73 alias CCINFOA* LPCCINFOA;
74 
75 struct CCINFOW {
76 	WCHAR[CCHCCCLASS] szClass;
77 	DWORD             flOptions;
78 	WCHAR[CCHCCDESC]  szDesc;
79 	UINT              cxDefault;
80 	UINT              cyDefault;
81 	DWORD             flStyleDefault;
82 	DWORD             flExtStyleDefault;
83 	DWORD             flCtrlTypeMask;
84 	WCHAR[CCHCCTEXT]  szTextDefault;
85 	INT               cStyleFlags;
86 	LPCCSTYLEFLAGW    aStyleFlags;
87 	LPFNCCSTYLEW      lpfnStyle;
88 	LPFNCCSIZETOTEXTW lpfnSizeToText;
89 	DWORD             dwReserved1;
90 	DWORD             dwReserved2;
91 }
92 alias CCINFOW* LPCCINFOW;
93 
94 extern (Windows) {
95 	alias BOOL function(HWND, LPCCSTYLEA) LPFNCCSTYLEA;
96 	alias BOOL function(HWND, LPCCSTYLEW) LPFNCCSTYLEW;
97 	alias INT function(DWORD, DWORD, HFONT, LPSTR) LPFNCCSIZETOTEXTA;
98 	alias INT function(DWORD, DWORD, HFONT, LPWSTR) LPFNCCSIZETOTEXTW;
99 	alias UINT function(LPCCINFOA) LPFNCCINFOA;
100 	alias UINT function(LPCCINFOW) LPFNCCINFOW;
101 	UINT CustomControlInfoA(LPCCINFOA acci);
102 	UINT CustomControlInfoW(LPCCINFOW acci);
103 }
104 
105 version (Unicode) {
106 	alias CCSTYLEW CCSTYLE;
107 	alias CCSTYLEFLAGW CCSTYLEFLAG;
108 	alias CCINFOW CCINFO;
109 	alias LPFNCCSTYLEW LPFNCCSTYLE;
110 	alias LPFNCCSIZETOTEXTW LPFNCCSIZETOTEXT;
111 	alias LPFNCCINFOW LPFNCCINFO;
112 } else {
113 	alias CCSTYLEA CCSTYLE;
114 	alias CCSTYLEFLAGA CCSTYLEFLAG;
115 	alias CCINFOA CCINFO;
116 	alias LPFNCCSTYLEA LPFNCCSTYLE;
117 	alias LPFNCCSIZETOTEXTA LPFNCCSIZETOTEXT;
118 	alias LPFNCCINFOA LPFNCCINFO;
119 }
120 
121 alias CCSTYLE* LPCCSTYLE;
122 alias CCSTYLEFLAG* LPCCSTYLEFLAG;
123 alias CCINFO* LPCCINFO;