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