3 their development status
4 and their UNDOCUMENTED features and functions
5 -----------------------------------------------------
10 The information provided herein is based on the dll version 4.72 which
11 is included in MS Internet Explorer 4.01.
13 All information about common controls should be collected in this document.
15 All Wine programmers are encouraged to add their knowledge to this document.
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
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
38 NOTE: Some stuctures are NOT defined in wine's COMCTL32 yet.
41 The size of the HDITEM structure in version 4.00.
44 The size of the LVCOLUMN structure in version 4.00.
46 LVHITTESTINFO_V1_SIZE:
47 The size of the LVHITTESTINFO structure in version 4.00.
50 The size of the LVITEM structure in version 4.00.
52 NMLVCUSTOMDRAW_V3_SIZE:
53 The size of the NMLVCUSTOMDRAW structure in version 4.70.
56 The size of the NMTTDISPINFO structure in version 4.00.
58 NMTVCUSTOMDRAW_V3_SIZE:
59 The size of the NMTVCUSTOMDRAW structure in version 4.70.
61 PROPSHEETHEADER_V1_SIZE:
62 The size of the PROPSHEETHEADER structure in version 4.00.
64 PROPSHEETPAGE_V1_SIZE:
65 The size of the PROPSHEETPAGE structure in version 4.00.
67 REBARBANDINFO_V3_SIZE:
68 The size of the REBARBANDINFO structure in version 4.70.
71 The size of the TOOLINFO structure in version 4.00.
73 TVINSERTSTRUCT_V1_SIZE:
74 The size of the TVINSERTSTRUCT structure in version 4.00.
79 This paragraph describes the development status of the common controls.
85 Dummy written by Eric Kohl. <ekohl@abo.rhein-zeitung.de>
88 Dummy control. No functionality.
91 Author needed!! Any volunteers??
94 3.2 Combo Box Ex Control
95 ------------------------
97 Dummy written by Eric Kohl. <ekohl@abo.rhein-zeitung.de>
100 Dummy control. No functionality.
103 Author needed!! Any volunteers??
106 3.3 Date and Time Picker Control
107 --------------------------------
109 Dummy written by Eric Kohl. <ekohl@abo.rhein-zeitung.de>
112 Dummy control. No functionality.
115 Author needed!! Any volunteers??
118 3.4 Drag List Box Control
119 -------------------------
124 Author needed!! Any volunteers??
127 3.5 Flat Scroll Bar Control
128 ---------------------------
133 Author needed!! Any volunteers??
139 Eric Kohl <ekohl@abo.rhein-zeitung.de>
143 Unicode notifications are not supported (WM_NOTIFYFORMAT).
144 Order array not supported.
150 Dummy written by Eric Kohl. <ekohl@abo.rhein-zeitung.de>
153 Dummy control. No functionality.
156 Author needed!! Any volunteers??
159 3.8 Image List (no control)
160 ---------------------------
162 Eric Kohl <ekohl@abo.rhein-zeitung.de>
168 3.9 IP Address Control
169 ----------------------
171 Dummy written by Eric Kohl. <ekohl@abo.rhein-zeitung.de>
172 Alex Priem <alexp@sci.kun.nl>
178 Author needed!! Any volunteers??
181 3.10 List View Control
182 ----------------------
184 Dummy written by Eric Kohl. <ekohl@abo.rhein-zeitung.de>
185 Ben Williams <biwillia@shrug.isdn.uiuc.edu>
191 Author needed!! Any volunteers??
194 3.11 Month Calendar Control
195 ---------------------------
197 Dummy written by Eric Kohl. <ekohl@abo.rhein-zeitung.de>
200 Dummy control. No functionality.
203 Author needed!! Any volunteers??
206 3.12 Native font control
207 ------------------------
209 Dummy written by Eric Kohl. <ekohl@abo.rhein-zeitung.de>
212 Dummy control. No functionality.
215 Author needed!! Any volunteers??
221 Dummy written by Eric Kohl. <ekohl@abo.rhein-zeitung.de>
225 Many missing features.
228 Author needed!! Any volunteers??
231 3.14 Progress Bar Control
232 -------------------------
234 Original implementation by Dimitrie O. Paun.
235 Fixes and improvements by Eric Kohl.
238 Almost finished (should behave like the original).
241 WM_GETFONT and WM_SETFONT are not implemented yet. They seem to be
242 useless because progress bars usually don't display any textual
243 information. But if M$ implemented an undocumented flag to display
244 textual information (e.g. percentage) these messages would make sense.
250 Anders Carlsson <anders.carlsson@linux.nu>
253 - Development in progress.
257 Tab control must be implemented first.
260 3.16 Rebar Control (Cool Bar)
261 -----------------------------
263 Eric Kohl <ekohl@abo.rhein-zeitung.de>
266 Development in progress.
267 Many bugs and missing features.
270 Author needed!! Any volunteers??
273 3.17 Status Bar Control
274 -----------------------
276 Original implementation by Bruce Milner.
277 Fixes and improvements by Eric Kohl.
283 - Tooltip integration is almost complete.
289 Anders Carlsson <anders.carlsson@linux.nu>
292 - Development in progress.
298 Eric Kohl <ekohl@abo.rhein-zeitung.de>
301 - Development in progress.
302 - Basic functionality is almost done. (dll version 4.0)
305 - Bitmaps are not correctly displayed.
311 Eric Kohl <ekohl@abo.rhein-zeitung.de>
317 - Unicode support is still missing.
320 3.21 Trackbar Control
321 ---------------------
323 Dummy written by Eric Kohl <ekohl@abo.rhein-zeitung.de>
324 Alex Priem <alexp@sci.kun.nl>
330 3.22 Tree View Control
331 ----------------------
333 Dummy written by Eric Kohl.
334 Alex Priem <alexp@sci.kun.nl>
343 Original implementation by Dimitrie O. Paun.
344 Some minor changes by Eric Kohl <ekohl@abo.rhein-zeitung.de>.
350 - Have a look at controls/updown.c for a list of bugs and missing
353 - The status is unknown, because I did not have a close look at this
354 control. One test-program looked quite good, but in Win95's
355 cdplayer.exe the control does not show at all.
360 4. Additional Information
361 -------------------------
366 5. Undocumented features
367 ------------------------
369 There are quite a lot of undocumented functions like:
370 - DSA (Dynnamic Storage Array) functions.
371 - DPA (Dymnamic Pointer Array) functions.
372 - MRU ("Most Recently Used" List) functions.
373 - other unknown functions.
375 Have a look at relay32/comctl32.spec.
378 5.1 Dymnamic Storage Array (DSA)
379 ---------------------------------
380 The DSA functions are used to store and manage dynamic arrays of fixed size
381 memory blocks. They are used by TASKMAN.EXE, Explorer, IE4 and other
382 Programs and DLL's that are "parts of the Windows Operating System".
383 The implementation should be complete.
385 Have a look at the source code to get more information.
388 5.2 Dynamic Pointer Array (DPA)
389 ------------------------------------
390 Similar to the DSA functions, but they just store pointers. They are used by
391 Explorer, IE4 and other Programs and DLL's that are "parts of the Windows
392 Operating System". The implementation should be complete.
394 Have a look at the source code to get more information.
397 5.3 "Most Recently Used" - List (MRU)
398 -------------------------------------
399 The function 'COMCTL32_157()' could be called 'CreateMRUListEx32A()'.
400 Only stubs are implemented to keep Explorer from bailing out.
402 No more information available at this time!
410 5.5 GetEffectiveClientRect
411 --------------------------
417 The official documentation provided by MS is incomplete.
421 Both values of the first pair must be the handle to the applications main
426 5.7 Other undocumented functions
427 --------------------------------
428 Several other undocumented functions are used by IE4.
430 COMCTL32_11, COMCTL_385, COMCTL32_386 and COMCTL32_388.
431 Their stubs are implemented to keep IE4 from bailing out.
436 You see, much work has still to be done. If you are interested in writing
437 a control send me an e-mail. If you like to fix bugs or add some
438 functionality send an e-mail to the author of the control.
441 Eric Kohl <ekohl@abo.rhein-zeitung.de>