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