Added/fixed some documentation reported by winapi_check.
[wine] / documentation / common_controls
1
2                   COMMON CONTROLS
3               their development status
4     and their UNDOCUMENTED features and functions
5 -----------------------------------------------------
6
7
8 1. Introduction
9 ---------------
10   The information provided herein is based on the dll version 4.72 which
11   is included in MS Internet Explorer 4.01.
12
13   All information about common controls should be collected in this document.
14
15   All Wine programmers are encouraged to add their knowledge to this document.
16
17
18 2. General Information
19 ----------------------
20   Further information about common controls can be found in the MS Platform SDK
21   and the MS Internet Client SDK (most recent). Information from these SDK's
22   will NOT be repeated here. Only information which can NOT be found in these
23   SDK's will be collected here. Some information in the SDK's mentioned above
24   is (intentionally???) WRONG. Corrections to wrong information will be
25   collected here too.
26
27
28 2.1 Structure sizes of different common control versions
29 --------------------------------------------------------
30   The common controls have been continously improved in the past. Some of the
31   orignal structures had to be extended and their size changed. Most of the
32   common control structures include their size as the first parameter. If
33   a control gets the wrong size in a message or function a failure is very
34   likely to occur. To avoid this, MS defined new constants that reflect the
35   structure size of older COMCTL32.DLL versions. The following list shows the
36   structure size constants that are currently defined in the original
37   COMCTL32.DLL.
38   NOTE: Some stuctures are NOT defined in wine's COMCTL32 yet.
39
40     HDITEM_V1_SIZE:
41       The size of the HDITEM structure in version 4.00.
42
43     LVCOLUMN_V1_SIZE:
44       The size of the LVCOLUMN structure in version 4.00.
45
46     LVHITTESTINFO_V1_SIZE:
47       The size of the LVHITTESTINFO structure in version 4.00.
48
49     LVITEM_V1_SIZE:
50       The size of the LVITEM structure in version 4.00.
51
52     NMLVCUSTOMDRAW_V3_SIZE:
53       The size of the NMLVCUSTOMDRAW structure in version 4.70.
54
55     NMTTDISPINFO_V1_SIZE:
56       The size of the NMTTDISPINFO structure in version 4.00.
57
58     NMTVCUSTOMDRAW_V3_SIZE:
59       The size of the NMTVCUSTOMDRAW structure in version 4.70.
60
61     PROPSHEETHEADER_V1_SIZE:
62       The size of the PROPSHEETHEADER structure in version 4.00.
63
64     PROPSHEETPAGE_V1_SIZE:
65       The size of the PROPSHEETPAGE structure in version 4.00.
66
67     REBARBANDINFO_V3_SIZE:
68       The size of the REBARBANDINFO structure in version 4.70.
69
70     TTTOOLINFO_V1_SIZE:
71       The size of the TOOLINFO structure in version 4.00.
72
73     TVINSERTSTRUCT_V1_SIZE:
74       The size of the TVINSERTSTRUCT structure in version 4.00.
75
76
77 3. Controls
78 -----------
79   This paragraph describes the development status of the common controls.
80
81
82 3.1 Animation Control
83 ---------------------
84   Author:
85       Dummy written by Eric Kohl. <ekohl@abo.rhein-zeitung.de>
86
87   Status:
88       Dummy control. No functionality.
89
90   Notes:
91       Author needed!! Any volunteers??
92
93
94 3.2 Combo Box Ex Control
95 ------------------------
96   Author:
97       Dummy written by Eric Kohl. <ekohl@abo.rhein-zeitung.de>
98
99   Status:
100       Dummy control. No functionality.
101
102   Notes:
103       Author needed!! Any volunteers??
104
105
106 3.3 Date and Time Picker Control
107 --------------------------------
108   Author:
109       Dummy written by Eric Kohl. <ekohl@abo.rhein-zeitung.de>
110
111   Status:
112       Dummy control. No functionality.
113
114   Notes:
115       Author needed!! Any volunteers??
116
117
118 3.4 Drag List Box Control
119 -------------------------
120   Author:
121       Dummy written by Eric Kohl. <ekohl@abo.rhein-zeitung.de>
122
123   Status:
124       Dummy control. No functionality.
125
126   Notes:
127       Author needed!! Any volunteers??
128
129
130 3.5 Flat Scroll Bar Control
131 ---------------------------
132   Author:
133       Dummy written by Alex Priem. <alexp@sci.kun.nl>
134
135   Status:
136       Dummy control. No functionality.
137
138   Notes:
139       Author needed!! Any volunteers??
140
141
142 3.6 Header Control
143 ------------------
144   Author:
145       Eric Kohl <ekohl@abo.rhein-zeitung.de>
146
147   Status:
148       Almost finished.
149       Unicode notifications are not supported (WM_NOTIFYFORMAT).
150       Order array not supported.
151
152
153 3.7 Hot Key Control
154 -------------------
155   Author:
156       Dummy written by Eric Kohl. <ekohl@abo.rhein-zeitung.de>
157
158   Status:
159       Dummy control. No functionality.
160
161   Notes:
162       Author needed!! Any volunteers??
163
164
165 3.8 Image List (no control)
166 ---------------------------
167   Author:
168       Eric Kohl <ekohl@abo.rhein-zeitung.de>
169
170   Status:
171       Almost finished.
172
173
174 3.9 IP Address Control
175 ----------------------
176   Author:
177       Dummy written by Eric Kohl. <ekohl@abo.rhein-zeitung.de>
178       Alex Priem <alexp@sci.kun.nl>
179
180   Status:
181       Under construction.
182
183
184 3.10 List View Control
185 ----------------------
186   Author:
187       Dummy written by Eric Kohl. <ekohl@abo.rhein-zeitung.de>
188       Luc Tourangeau <luc@macadamian.com>
189       Koen Deforche <jozef@kotnet.org>
190       Francis Beaudet <francis@macadamian.com> and the "Corel-Team"
191
192   Status:
193       Under construction.
194
195   Notes:
196       Basic data structure with related messages are supported.
197       No painting supported yet.
198
199
200 3.11 Month Calendar Control
201 ---------------------------
202   Author:
203       Dummy written by Eric Kohl. <ekohl@abo.rhein-zeitung.de>
204
205   Status:
206       Dummy control. No functionality.
207
208   Notes:
209       Author needed!! Any volunteers??
210
211
212 3.12 Native font control
213 ------------------------
214   Author:
215       Dummy written by Eric Kohl. <ekohl@abo.rhein-zeitung.de>
216
217   Status:
218       Dummy control. No functionality.
219
220   Notes:
221       Author needed!! Any volunteers??
222
223
224 3.13 Pager Control
225 ------------------
226   Author:
227       Dummy written by Eric Kohl. <ekohl@abo.rhein-zeitung.de>
228
229   Status:
230       Under construction.
231       Many missing features.
232
233   Notes:
234       Author needed!! Any volunteers??
235
236
237 3.14 Progress Bar Control
238 -------------------------
239   Author:
240       Original implementation by Dimitrie O. Paun.
241       Fixes and improvements by Eric Kohl.
242
243   Status:
244       Finished!
245
246
247 3.15 Property Sheet
248 -------------------
249   Author:
250       Anders Carlsson <anders.carlsson@linux.nu>
251       Francis Beaudet <francis@macadamian.com>
252
253   Status:
254       Development in progress.
255
256   Notes:
257       Tab control must be implemented first.
258
259
260 3.16 Rebar Control (Cool Bar)
261 -----------------------------
262   Author:
263       Eric Kohl <ekohl@abo.rhein-zeitung.de>
264
265   Status:
266       Development in progress.
267       Many bugs and missing features.
268
269   Notes:
270       Author needed!! Any volunteers??
271
272
273 3.17 Status Bar Control
274 -----------------------
275   Author:
276       Original implementation by Bruce Milner.
277       Fixes and improvements by Eric Kohl.
278
279   Status:
280       Almost finished.
281
282   Notes:
283       Tooltip integration is almost complete.
284
285
286 3.18 Tab Control
287 ----------------
288   Author:
289       Anders Carlsson <anders.carlsson@linux.nu>
290
291   Status:
292       Development in progress.
293
294
295 3.19 Toolbar Control
296 --------------------
297   Author:
298       Eric Kohl <ekohl@abo.rhein-zeitung.de>
299
300   Status:
301       Development in progress.
302       Basic functionality is almost done. (dll version 4.0)
303
304
305
306 3.20 Tooltip Control
307 --------------------
308   Author:
309       Eric Kohl <ekohl@abo.rhein-zeitung.de>
310
311   Status:
312       Almost finished.
313
314   Notes:
315       Unicode support is incomplete (WM_NOTIFYFORMAT).
316
317
318 3.21 Trackbar Control
319 ---------------------
320   Author:
321       Dummy written by Eric Kohl <ekohl@abo.rhein-zeitung.de>
322       Alex Priem <alexp@sci.kun.nl>
323
324   Status:
325       Under construction.
326
327
328 3.22 Tree View Control
329 ----------------------
330   Author:
331       Dummy written by Eric Kohl.
332       Alex Priem <alexp@sci.kun.nl>
333
334   Status:
335       Under construction.
336
337
338 3.23 Updown Control
339 -------------------
340   Author:
341       Original implementation by Dimitrie O. Paun.
342       Some minor changes by Eric Kohl <ekohl@abo.rhein-zeitung.de>.
343
344   Status:
345       Unknown.
346
347   Notes:
348       Have a look at controls/updown.c for a list of bugs and missing
349       features.
350
351       The status is unknown, because I did not have a close look at this
352       control. One test-program looked quite good, but in Win95's
353       cdplayer.exe the control does not show at all.
354       
355       Any volunteers??
356
357
358 4. Additional Information
359 -------------------------
360
361   Has to be written...
362
363
364 5. Undocumented features
365 ------------------------
366
367   There are quite a lot of undocumented functions like:
368      - DSA (Dynamic Storage Array) functions.
369      - DPA (Dynamic Pointer Array) functions.
370      - MRU ("Most Recently Used" List) functions.
371      - other unknown functions.
372
373   Have a look at relay32/comctl32.spec.
374
375
376 5.1 Dymnamic Storage Array (DSA)
377 ---------------------------------
378   The DSA functions are used to store and manage dynamic arrays of fixed size
379   memory blocks. They are used by TASKMAN.EXE, Explorer, IE4 and other
380   Programs and DLL's that are "parts of the Windows Operating System".
381   The implementation should be complete.
382
383   Have a look at the source code to get more information.
384
385
386 5.2 Dynamic Pointer Array (DPA)
387 ------------------------------------
388   Similar to the DSA functions, but they just store pointers. They are used by
389   Explorer, IE4 and other Programs and DLL's that are "parts of the Windows
390   Operating System". The implementation should be complete.
391
392   Have a look at the source code to get more information.
393
394
395 5.3 "Most Recently Used" - List (MRU)
396 -------------------------------------
397   Only stubs are implemented to keep Explorer from bailing out.
398
399   No more information available at this time!
400
401
402 5.4 MenuHelp
403 ------------
404   Has to be written...
405
406
407 5.5 GetEffectiveClientRect
408 --------------------------
409   Has to be written...
410
411
412 5.6 ShowHideMenuCtl
413 -------------------
414   The official documentation provided by MS is incomplete.
415
416   lpInfo:
417   ...
418   Both values of the first pair must be the handle to the applications main
419   menu.
420   ...
421
422
423 5.7 Other undocumented functions
424 --------------------------------
425   Several other undocumented functions are used by IE4.
426
427   String functions:
428   (will be written...)
429
430
431 6. Epilogue
432 -----------
433   You see, much work has still to be done. If you are interested in writing
434   a control send me an e-mail. If you like to fix bugs or add some
435   functionality send an e-mail to the author of the control.
436
437
438 Eric Kohl <ekohl@abo.rhein-zeitung.de>
439