blob: f7bf03bf45861d82eb44e627425fc117a0857452 [file] [log] [blame]
Alexandre Julliardebfc0fe1998-06-28 18:40:26 +00001
2 COMMON CONTROLS
3 their development status
4 and their UNDOCUMENTED features and functions
5-----------------------------------------------------
6
7
81. 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
182. 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
Eric Kohl04702221998-12-07 11:01:19 +0000282.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
Alexandre Julliardebfc0fe1998-06-28 18:40:26 +0000773. Controls
78-----------
79 This paragraph describes the development status of the common controls.
80
Alexandre Julliardebfc0fe1998-06-28 18:40:26 +000081
823.1 Animation Control
83---------------------
Alexandre Julliarda0d77311998-09-13 16:32:00 +000084 Author:
85 Dummy written by Eric Kohl. <ekohl@abo.rhein-zeitung.de>
86
Alexandre Julliardebfc0fe1998-06-28 18:40:26 +000087 Status:
Alexandre Julliardd30dfd21998-09-27 18:28:36 +000088 Dummy control. No functionality.
Alexandre Julliarda0d77311998-09-13 16:32:00 +000089
90 Notes:
91 Author needed!! Any volunteers??
Alexandre Julliardebfc0fe1998-06-28 18:40:26 +000092
93
943.2 Combo Box Ex Control
95------------------------
Alexandre Julliarda0d77311998-09-13 16:32:00 +000096 Author:
97 Dummy written by Eric Kohl. <ekohl@abo.rhein-zeitung.de>
98
Alexandre Julliardebfc0fe1998-06-28 18:40:26 +000099 Status:
Alexandre Julliardd30dfd21998-09-27 18:28:36 +0000100 Dummy control. No functionality.
Alexandre Julliarda0d77311998-09-13 16:32:00 +0000101
102 Notes:
103 Author needed!! Any volunteers??
Alexandre Julliardebfc0fe1998-06-28 18:40:26 +0000104
105
1063.3 Date and Time Picker Control
107--------------------------------
Eric Kohlf2809611998-11-08 11:36:04 +0000108 Author:
109 Dummy written by Eric Kohl. <ekohl@abo.rhein-zeitung.de>
110
Alexandre Julliardebfc0fe1998-06-28 18:40:26 +0000111 Status:
Eric Kohlf2809611998-11-08 11:36:04 +0000112 Dummy control. No functionality.
Alexandre Julliardebfc0fe1998-06-28 18:40:26 +0000113
Alexandre Julliarda0d77311998-09-13 16:32:00 +0000114 Notes:
115 Author needed!! Any volunteers??
116
Alexandre Julliardebfc0fe1998-06-28 18:40:26 +0000117
1183.4 Drag List Box Control
119-------------------------
Eric Kohl50d48921999-01-24 19:13:20 +0000120 Author:
121 Dummy written by Eric Kohl. <ekohl@abo.rhein-zeitung.de>
122
Alexandre Julliardebfc0fe1998-06-28 18:40:26 +0000123 Status:
Eric Kohl50d48921999-01-24 19:13:20 +0000124 Dummy control. No functionality.
Alexandre Julliardebfc0fe1998-06-28 18:40:26 +0000125
Alexandre Julliarda0d77311998-09-13 16:32:00 +0000126 Notes:
127 Author needed!! Any volunteers??
128
Alexandre Julliardebfc0fe1998-06-28 18:40:26 +0000129
1303.5 Flat Scroll Bar Control
131---------------------------
Eric Kohl50d48921999-01-24 19:13:20 +0000132 Author:
133 Dummy written by Alex Priem. <alexp@sci.kun.nl>
134
Alexandre Julliardebfc0fe1998-06-28 18:40:26 +0000135 Status:
Eric Kohl50d48921999-01-24 19:13:20 +0000136 Dummy control. No functionality.
Alexandre Julliardebfc0fe1998-06-28 18:40:26 +0000137
Alexandre Julliarda0d77311998-09-13 16:32:00 +0000138 Notes:
139 Author needed!! Any volunteers??
140
Alexandre Julliardebfc0fe1998-06-28 18:40:26 +0000141
1423.6 Header Control
143------------------
144 Author:
145 Eric Kohl <ekohl@abo.rhein-zeitung.de>
146
147 Status:
Alexandre Julliardd30dfd21998-09-27 18:28:36 +0000148 Almost finished.
Eric Kohl0b61d021998-11-22 18:16:22 +0000149 Unicode notifications are not supported (WM_NOTIFYFORMAT).
150 Order array not supported.
Alexandre Julliardebfc0fe1998-06-28 18:40:26 +0000151
152
1533.7 Hot Key Control
154-------------------
Alexandre Julliarda0d77311998-09-13 16:32:00 +0000155 Author:
156 Dummy written by Eric Kohl. <ekohl@abo.rhein-zeitung.de>
157
Alexandre Julliardebfc0fe1998-06-28 18:40:26 +0000158 Status:
Alexandre Julliarda0d77311998-09-13 16:32:00 +0000159 Dummy control. No functionality.
160
161 Notes:
162 Author needed!! Any volunteers??
Alexandre Julliardebfc0fe1998-06-28 18:40:26 +0000163
164
1653.8 Image List (no control)
166---------------------------
167 Author:
168 Eric Kohl <ekohl@abo.rhein-zeitung.de>
169
170 Status:
Alexandre Julliardd30dfd21998-09-27 18:28:36 +0000171 Almost finished.
Alexandre Julliardebfc0fe1998-06-28 18:40:26 +0000172
173
1743.9 IP Address Control
175----------------------
Eric Kohlf2809611998-11-08 11:36:04 +0000176 Author:
177 Dummy written by Eric Kohl. <ekohl@abo.rhein-zeitung.de>
178 Alex Priem <alexp@sci.kun.nl>
179
Alexandre Julliardebfc0fe1998-06-28 18:40:26 +0000180 Status:
Eric Kohlf2809611998-11-08 11:36:04 +0000181 Under construction.
Alexandre Julliardebfc0fe1998-06-28 18:40:26 +0000182
183
1843.10 List View Control
185----------------------
Alexandre Julliard642d3131998-07-12 19:29:36 +0000186 Author:
Alexandre Julliarda0d77311998-09-13 16:32:00 +0000187 Dummy written by Eric Kohl. <ekohl@abo.rhein-zeitung.de>
Alexandre Julliard8da12c41999-01-17 16:55:11 +0000188 Luc Tourangeau <luc@macadamian.com>
Eric Kohl50d48921999-01-24 19:13:20 +0000189 Koen Deforche <jozef@kotnet.org>
190 Francis Beaudet <francis@macadamian.com> and the "Corel-Team"
Alexandre Julliard642d3131998-07-12 19:29:36 +0000191
Alexandre Julliardebfc0fe1998-06-28 18:40:26 +0000192 Status:
Alexandre Julliardd30dfd21998-09-27 18:28:36 +0000193 Under construction.
Alexandre Julliardebfc0fe1998-06-28 18:40:26 +0000194
Alexandre Julliarda0d77311998-09-13 16:32:00 +0000195 Notes:
Alexandre Julliard8da12c41999-01-17 16:55:11 +0000196 Basic data structure with related messages are supported.
197 No painting supported yet.
Alexandre Julliarda0d77311998-09-13 16:32:00 +0000198
Alexandre Julliardebfc0fe1998-06-28 18:40:26 +0000199
2003.11 Month Calendar Control
201---------------------------
Eric Kohlf2809611998-11-08 11:36:04 +0000202 Author:
203 Dummy written by Eric Kohl. <ekohl@abo.rhein-zeitung.de>
204
Alexandre Julliardebfc0fe1998-06-28 18:40:26 +0000205 Status:
Eric Kohlf2809611998-11-08 11:36:04 +0000206 Dummy control. No functionality.
Alexandre Julliardebfc0fe1998-06-28 18:40:26 +0000207
Alexandre Julliarda0d77311998-09-13 16:32:00 +0000208 Notes:
209 Author needed!! Any volunteers??
210
Alexandre Julliardebfc0fe1998-06-28 18:40:26 +0000211
Alexandre Julliardd30dfd21998-09-27 18:28:36 +00002123.12 Native font control
213------------------------
Eric Kohl0b61d021998-11-22 18:16:22 +0000214 Author:
215 Dummy written by Eric Kohl. <ekohl@abo.rhein-zeitung.de>
216
Alexandre Julliardd30dfd21998-09-27 18:28:36 +0000217 Status:
Eric Kohl0b61d021998-11-22 18:16:22 +0000218 Dummy control. No functionality.
Alexandre Julliardd30dfd21998-09-27 18:28:36 +0000219
220 Notes:
221 Author needed!! Any volunteers??
222
223
2243.13 Pager Control
Alexandre Julliardebfc0fe1998-06-28 18:40:26 +0000225------------------
Alexandre Julliard642d3131998-07-12 19:29:36 +0000226 Author:
Eric Kohl0b61d021998-11-22 18:16:22 +0000227 Dummy written by Eric Kohl. <ekohl@abo.rhein-zeitung.de>
Alexandre Julliard642d3131998-07-12 19:29:36 +0000228
Alexandre Julliardebfc0fe1998-06-28 18:40:26 +0000229 Status:
Eric Kohl0b61d021998-11-22 18:16:22 +0000230 Under construction.
231 Many missing features.
Alexandre Julliardebfc0fe1998-06-28 18:40:26 +0000232
233 Notes:
Alexandre Julliard642d3131998-07-12 19:29:36 +0000234 Author needed!! Any volunteers??
Alexandre Julliardebfc0fe1998-06-28 18:40:26 +0000235
236
Alexandre Julliardd30dfd21998-09-27 18:28:36 +00002373.14 Progress Bar Control
Alexandre Julliardebfc0fe1998-06-28 18:40:26 +0000238-------------------------
239 Author:
240 Original implementation by Dimitrie O. Paun.
241 Fixes and improvements by Eric Kohl.
242
243 Status:
Eric Kohl50d48921999-01-24 19:13:20 +0000244 Finished!
Alexandre Julliardebfc0fe1998-06-28 18:40:26 +0000245
246
Alexandre Julliardd30dfd21998-09-27 18:28:36 +00002473.15 Property Sheet
Alexandre Julliardebfc0fe1998-06-28 18:40:26 +0000248-------------------
Alexandre Julliard642d3131998-07-12 19:29:36 +0000249 Author:
250 Anders Carlsson <anders.carlsson@linux.nu>
Eric Kohl50d48921999-01-24 19:13:20 +0000251 Francis Beaudet <francis@macadamian.com>
Alexandre Julliard642d3131998-07-12 19:29:36 +0000252
Alexandre Julliardebfc0fe1998-06-28 18:40:26 +0000253 Status:
Eric Kohl50d48921999-01-24 19:13:20 +0000254 Development in progress.
Alexandre Julliardebfc0fe1998-06-28 18:40:26 +0000255
256 Notes:
Alexandre Julliard642d3131998-07-12 19:29:36 +0000257 Tab control must be implemented first.
Alexandre Julliardebfc0fe1998-06-28 18:40:26 +0000258
259
Alexandre Julliardd30dfd21998-09-27 18:28:36 +00002603.16 Rebar Control (Cool Bar)
Alexandre Julliardebfc0fe1998-06-28 18:40:26 +0000261-----------------------------
Alexandre Julliard642d3131998-07-12 19:29:36 +0000262 Author:
Eric Kohlf2809611998-11-08 11:36:04 +0000263 Eric Kohl <ekohl@abo.rhein-zeitung.de>
Alexandre Julliard642d3131998-07-12 19:29:36 +0000264
Alexandre Julliardebfc0fe1998-06-28 18:40:26 +0000265 Status:
Eric Kohl3ad67461998-10-24 10:48:31 +0000266 Development in progress.
267 Many bugs and missing features.
Alexandre Julliardebfc0fe1998-06-28 18:40:26 +0000268
269 Notes:
Alexandre Julliard642d3131998-07-12 19:29:36 +0000270 Author needed!! Any volunteers??
Alexandre Julliardebfc0fe1998-06-28 18:40:26 +0000271
272
Alexandre Julliardd30dfd21998-09-27 18:28:36 +00002733.17 Status Bar Control
Alexandre Julliardebfc0fe1998-06-28 18:40:26 +0000274-----------------------
275 Author:
276 Original implementation by Bruce Milner.
277 Fixes and improvements by Eric Kohl.
278
279 Status:
Alexandre Julliardd30dfd21998-09-27 18:28:36 +0000280 Almost finished.
Alexandre Julliardebfc0fe1998-06-28 18:40:26 +0000281
282 Notes:
Eric Kohl50d48921999-01-24 19:13:20 +0000283 Tooltip integration is almost complete.
Alexandre Julliardebfc0fe1998-06-28 18:40:26 +0000284
285
Alexandre Julliardd30dfd21998-09-27 18:28:36 +00002863.18 Tab Control
Alexandre Julliardebfc0fe1998-06-28 18:40:26 +0000287----------------
Alexandre Julliard642d3131998-07-12 19:29:36 +0000288 Author:
289 Anders Carlsson <anders.carlsson@linux.nu>
290
Alexandre Julliardebfc0fe1998-06-28 18:40:26 +0000291 Status:
Eric Kohl50d48921999-01-24 19:13:20 +0000292 Development in progress.
Alexandre Julliardebfc0fe1998-06-28 18:40:26 +0000293
294
Alexandre Julliardd30dfd21998-09-27 18:28:36 +00002953.19 Toolbar Control
Alexandre Julliardebfc0fe1998-06-28 18:40:26 +0000296--------------------
297 Author:
298 Eric Kohl <ekohl@abo.rhein-zeitung.de>
299
300 Status:
Eric Kohl50d48921999-01-24 19:13:20 +0000301 Development in progress.
302 Basic functionality is almost done. (dll version 4.0)
Alexandre Julliardebfc0fe1998-06-28 18:40:26 +0000303
Alexandre Julliard642d3131998-07-12 19:29:36 +0000304
Alexandre Julliardebfc0fe1998-06-28 18:40:26 +0000305
Alexandre Julliardd30dfd21998-09-27 18:28:36 +00003063.20 Tooltip Control
Alexandre Julliardebfc0fe1998-06-28 18:40:26 +0000307--------------------
308 Author:
309 Eric Kohl <ekohl@abo.rhein-zeitung.de>
310
311 Status:
Eric Kohl50d48921999-01-24 19:13:20 +0000312 Almost finished.
Alexandre Julliard642d3131998-07-12 19:29:36 +0000313
Alexandre Julliard767e6f61998-08-09 12:47:43 +0000314 Notes:
Eric Kohl50d48921999-01-24 19:13:20 +0000315 Unicode support is incomplete (WM_NOTIFYFORMAT).
Alexandre Julliardebfc0fe1998-06-28 18:40:26 +0000316
317
Alexandre Julliardd30dfd21998-09-27 18:28:36 +00003183.21 Trackbar Control
Alexandre Julliardebfc0fe1998-06-28 18:40:26 +0000319---------------------
320 Author:
Alexandre Julliarda0d77311998-09-13 16:32:00 +0000321 Dummy written by Eric Kohl <ekohl@abo.rhein-zeitung.de>
Eric Kohlf2809611998-11-08 11:36:04 +0000322 Alex Priem <alexp@sci.kun.nl>
Alexandre Julliardebfc0fe1998-06-28 18:40:26 +0000323
324 Status:
Alexandre Julliarda0d77311998-09-13 16:32:00 +0000325 Under construction.
Alexandre Julliardebfc0fe1998-06-28 18:40:26 +0000326
327
Alexandre Julliardd30dfd21998-09-27 18:28:36 +00003283.22 Tree View Control
Alexandre Julliardebfc0fe1998-06-28 18:40:26 +0000329----------------------
Alexandre Julliard829fe321998-07-26 14:27:39 +0000330 Author:
331 Dummy written by Eric Kohl.
Eric Kohlf2809611998-11-08 11:36:04 +0000332 Alex Priem <alexp@sci.kun.nl>
Alexandre Julliard829fe321998-07-26 14:27:39 +0000333
Alexandre Julliardebfc0fe1998-06-28 18:40:26 +0000334 Status:
Eric Kohl0b61d021998-11-22 18:16:22 +0000335 Under construction.
Alexandre Julliard829fe321998-07-26 14:27:39 +0000336
Alexandre Julliardebfc0fe1998-06-28 18:40:26 +0000337
Alexandre Julliardd30dfd21998-09-27 18:28:36 +00003383.23 Updown Control
Alexandre Julliardebfc0fe1998-06-28 18:40:26 +0000339-------------------
340 Author:
341 Original implementation by Dimitrie O. Paun.
342 Some minor changes by Eric Kohl <ekohl@abo.rhein-zeitung.de>.
343
344 Status:
Eric Kohl50d48921999-01-24 19:13:20 +0000345 Unknown.
Alexandre Julliardebfc0fe1998-06-28 18:40:26 +0000346
347 Notes:
Eric Kohl50d48921999-01-24 19:13:20 +0000348 Have a look at controls/updown.c for a list of bugs and missing
349 features.
Alexandre Julliardebfc0fe1998-06-28 18:40:26 +0000350
Eric Kohl50d48921999-01-24 19:13:20 +0000351 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.
Alexandre Julliardebfc0fe1998-06-28 18:40:26 +0000354
355 Any volunteers??
356
357
3584. Additional Information
359-------------------------
360
361 Has to be written...
362
363
3645. Undocumented features
365------------------------
366
367 There are quite a lot of undocumented functions like:
Eric Kohl50d48921999-01-24 19:13:20 +0000368 - DSA (Dynamic Storage Array) functions.
369 - DPA (Dynamic Pointer Array) functions.
Alexandre Julliardebfc0fe1998-06-28 18:40:26 +0000370 - MRU ("Most Recently Used" List) functions.
371 - other unknown functions.
372
373 Have a look at relay32/comctl32.spec.
374
375
Alexandre Julliardd30dfd21998-09-27 18:28:36 +00003765.1 Dymnamic Storage Array (DSA)
Alexandre Julliarda0d77311998-09-13 16:32:00 +0000377---------------------------------
Alexandre Julliardd30dfd21998-09-27 18:28:36 +0000378 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.
Alexandre Julliardebfc0fe1998-06-28 18:40:26 +0000382
383 Have a look at the source code to get more information.
Alexandre Julliard85ed45e1998-08-22 19:03:56 +0000384
Alexandre Julliardebfc0fe1998-06-28 18:40:26 +0000385
Alexandre Julliardd30dfd21998-09-27 18:28:36 +00003865.2 Dynamic Pointer Array (DPA)
Alexandre Julliardebfc0fe1998-06-28 18:40:26 +0000387------------------------------------
Alexandre Julliardd30dfd21998-09-27 18:28:36 +0000388 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.
Alexandre Julliardebfc0fe1998-06-28 18:40:26 +0000391
392 Have a look at the source code to get more information.
Alexandre Julliardebfc0fe1998-06-28 18:40:26 +0000393
394
Alexandre Julliard85ed45e1998-08-22 19:03:56 +00003955.3 "Most Recently Used" - List (MRU)
396-------------------------------------
Alexandre Julliardd30dfd21998-09-27 18:28:36 +0000397 Only stubs are implemented to keep Explorer from bailing out.
398
399 No more information available at this time!
Alexandre Julliard85ed45e1998-08-22 19:03:56 +0000400
401
4025.4 MenuHelp
Alexandre Julliardebfc0fe1998-06-28 18:40:26 +0000403------------
404 Has to be written...
405
406
Alexandre Julliard85ed45e1998-08-22 19:03:56 +00004075.5 GetEffectiveClientRect
Alexandre Julliardebfc0fe1998-06-28 18:40:26 +0000408--------------------------
409 Has to be written...
410
411
Alexandre Julliard85ed45e1998-08-22 19:03:56 +00004125.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
Alexandre Julliardd30dfd21998-09-27 18:28:36 +00004235.7 Other undocumented functions
424--------------------------------
425 Several other undocumented functions are used by IE4.
426
Eric Kohl50d48921999-01-24 19:13:20 +0000427 String functions:
428 (will be written...)
Alexandre Julliardd30dfd21998-09-27 18:28:36 +0000429
430
Alexandre Julliardebfc0fe1998-06-28 18:40:26 +00004316. 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
Eric Kohlf2809611998-11-08 11:36:04 +0000437
438Eric Kohl <ekohl@abo.rhein-zeitung.de>
Alexandre Julliardebfc0fe1998-06-28 18:40:26 +0000439