blob: 7ee3b3f7c9b81fd06c302ffee790a4f632a73533 [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-------------------------
120 Status:
Alexandre Julliardd30dfd21998-09-27 18:28:36 +0000121 Nothing done at all.
Alexandre Julliardebfc0fe1998-06-28 18:40:26 +0000122
Alexandre Julliarda0d77311998-09-13 16:32:00 +0000123 Notes:
124 Author needed!! Any volunteers??
125
Alexandre Julliardebfc0fe1998-06-28 18:40:26 +0000126
1273.5 Flat Scroll Bar Control
128---------------------------
129 Status:
Alexandre Julliardd30dfd21998-09-27 18:28:36 +0000130 Nothing done at all.
Alexandre Julliardebfc0fe1998-06-28 18:40:26 +0000131
Alexandre Julliarda0d77311998-09-13 16:32:00 +0000132 Notes:
133 Author needed!! Any volunteers??
134
Alexandre Julliardebfc0fe1998-06-28 18:40:26 +0000135
1363.6 Header Control
137------------------
138 Author:
139 Eric Kohl <ekohl@abo.rhein-zeitung.de>
140
141 Status:
Alexandre Julliardd30dfd21998-09-27 18:28:36 +0000142 Almost finished.
Eric Kohl0b61d021998-11-22 18:16:22 +0000143 Unicode notifications are not supported (WM_NOTIFYFORMAT).
144 Order array not supported.
Alexandre Julliardebfc0fe1998-06-28 18:40:26 +0000145
146
1473.7 Hot Key Control
148-------------------
Alexandre Julliarda0d77311998-09-13 16:32:00 +0000149 Author:
150 Dummy written by Eric Kohl. <ekohl@abo.rhein-zeitung.de>
151
Alexandre Julliardebfc0fe1998-06-28 18:40:26 +0000152 Status:
Alexandre Julliarda0d77311998-09-13 16:32:00 +0000153 Dummy control. No functionality.
154
155 Notes:
156 Author needed!! Any volunteers??
Alexandre Julliardebfc0fe1998-06-28 18:40:26 +0000157
158
1593.8 Image List (no control)
160---------------------------
161 Author:
162 Eric Kohl <ekohl@abo.rhein-zeitung.de>
163
164 Status:
Alexandre Julliardd30dfd21998-09-27 18:28:36 +0000165 Almost finished.
Alexandre Julliardebfc0fe1998-06-28 18:40:26 +0000166
167
1683.9 IP Address Control
169----------------------
Eric Kohlf2809611998-11-08 11:36:04 +0000170 Author:
171 Dummy written by Eric Kohl. <ekohl@abo.rhein-zeitung.de>
172 Alex Priem <alexp@sci.kun.nl>
173
Alexandre Julliardebfc0fe1998-06-28 18:40:26 +0000174 Status:
Eric Kohlf2809611998-11-08 11:36:04 +0000175 Under construction.
Alexandre Julliardebfc0fe1998-06-28 18:40:26 +0000176
Alexandre Julliarda0d77311998-09-13 16:32:00 +0000177 Notes:
178 Author needed!! Any volunteers??
179
Alexandre Julliardebfc0fe1998-06-28 18:40:26 +0000180
1813.10 List View Control
182----------------------
Alexandre Julliard642d3131998-07-12 19:29:36 +0000183 Author:
Alexandre Julliarda0d77311998-09-13 16:32:00 +0000184 Dummy written by Eric Kohl. <ekohl@abo.rhein-zeitung.de>
Eric Kohl98dfbe11998-10-11 13:03:36 +0000185 Ben Williams <biwillia@shrug.isdn.uiuc.edu>
Alexandre Julliard642d3131998-07-12 19:29:36 +0000186
Alexandre Julliardebfc0fe1998-06-28 18:40:26 +0000187 Status:
Alexandre Julliardd30dfd21998-09-27 18:28:36 +0000188 Under construction.
Alexandre Julliardebfc0fe1998-06-28 18:40:26 +0000189
Alexandre Julliarda0d77311998-09-13 16:32:00 +0000190 Notes:
191 Author needed!! Any volunteers??
192
Alexandre Julliardebfc0fe1998-06-28 18:40:26 +0000193
1943.11 Month Calendar Control
195---------------------------
Eric Kohlf2809611998-11-08 11:36:04 +0000196 Author:
197 Dummy written by Eric Kohl. <ekohl@abo.rhein-zeitung.de>
198
Alexandre Julliardebfc0fe1998-06-28 18:40:26 +0000199 Status:
Eric Kohlf2809611998-11-08 11:36:04 +0000200 Dummy control. No functionality.
Alexandre Julliardebfc0fe1998-06-28 18:40:26 +0000201
Alexandre Julliarda0d77311998-09-13 16:32:00 +0000202 Notes:
203 Author needed!! Any volunteers??
204
Alexandre Julliardebfc0fe1998-06-28 18:40:26 +0000205
Alexandre Julliardd30dfd21998-09-27 18:28:36 +00002063.12 Native font control
207------------------------
Eric Kohl0b61d021998-11-22 18:16:22 +0000208 Author:
209 Dummy written by Eric Kohl. <ekohl@abo.rhein-zeitung.de>
210
Alexandre Julliardd30dfd21998-09-27 18:28:36 +0000211 Status:
Eric Kohl0b61d021998-11-22 18:16:22 +0000212 Dummy control. No functionality.
Alexandre Julliardd30dfd21998-09-27 18:28:36 +0000213
214 Notes:
215 Author needed!! Any volunteers??
216
217
2183.13 Pager Control
Alexandre Julliardebfc0fe1998-06-28 18:40:26 +0000219------------------
Alexandre Julliard642d3131998-07-12 19:29:36 +0000220 Author:
Eric Kohl0b61d021998-11-22 18:16:22 +0000221 Dummy written by Eric Kohl. <ekohl@abo.rhein-zeitung.de>
Alexandre Julliard642d3131998-07-12 19:29:36 +0000222
Alexandre Julliardebfc0fe1998-06-28 18:40:26 +0000223 Status:
Eric Kohl0b61d021998-11-22 18:16:22 +0000224 Under construction.
225 Many missing features.
Alexandre Julliardebfc0fe1998-06-28 18:40:26 +0000226
227 Notes:
Alexandre Julliard642d3131998-07-12 19:29:36 +0000228 Author needed!! Any volunteers??
Alexandre Julliardebfc0fe1998-06-28 18:40:26 +0000229
230
Alexandre Julliardd30dfd21998-09-27 18:28:36 +00002313.14 Progress Bar Control
Alexandre Julliardebfc0fe1998-06-28 18:40:26 +0000232-------------------------
233 Author:
234 Original implementation by Dimitrie O. Paun.
235 Fixes and improvements by Eric Kohl.
236
237 Status:
Alexandre Julliardd30dfd21998-09-27 18:28:36 +0000238 Almost finished (should behave like the original).
Alexandre Julliardebfc0fe1998-06-28 18:40:26 +0000239
240 Notes:
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.
245
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>
251
Alexandre Julliardebfc0fe1998-06-28 18:40:26 +0000252 Status:
Alexandre Julliard642d3131998-07-12 19:29:36 +0000253 - Development in progress.
254 - Not yet published.
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:
Alexandre Julliard767e6f61998-08-09 12:47:43 +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:
Alexandre Julliard642d3131998-07-12 19:29:36 +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:
301 - Development in progress.
302 - Basic functionality is almost done. (dll version 4.0)
303
Alexandre Julliard767e6f61998-08-09 12:47:43 +0000304 Notes:
Alexandre Julliard85ed45e1998-08-22 19:03:56 +0000305 - Bitmaps are not correctly displayed.
Alexandre Julliard642d3131998-07-12 19:29:36 +0000306
Alexandre Julliardebfc0fe1998-06-28 18:40:26 +0000307
Alexandre Julliardd30dfd21998-09-27 18:28:36 +00003083.20 Tooltip Control
Alexandre Julliardebfc0fe1998-06-28 18:40:26 +0000309--------------------
310 Author:
311 Eric Kohl <ekohl@abo.rhein-zeitung.de>
312
313 Status:
Alexandre Julliard767e6f61998-08-09 12:47:43 +0000314 - Almost finished.
Alexandre Julliard642d3131998-07-12 19:29:36 +0000315
Alexandre Julliard767e6f61998-08-09 12:47:43 +0000316 Notes:
317 - Unicode support is still missing.
Alexandre Julliardebfc0fe1998-06-28 18:40:26 +0000318
319
Alexandre Julliardd30dfd21998-09-27 18:28:36 +00003203.21 Trackbar Control
Alexandre Julliardebfc0fe1998-06-28 18:40:26 +0000321---------------------
322 Author:
Alexandre Julliarda0d77311998-09-13 16:32:00 +0000323 Dummy written by Eric Kohl <ekohl@abo.rhein-zeitung.de>
Eric Kohlf2809611998-11-08 11:36:04 +0000324 Alex Priem <alexp@sci.kun.nl>
Alexandre Julliardebfc0fe1998-06-28 18:40:26 +0000325
326 Status:
Alexandre Julliarda0d77311998-09-13 16:32:00 +0000327 Under construction.
Alexandre Julliardebfc0fe1998-06-28 18:40:26 +0000328
329
Alexandre Julliardd30dfd21998-09-27 18:28:36 +00003303.22 Tree View Control
Alexandre Julliardebfc0fe1998-06-28 18:40:26 +0000331----------------------
Alexandre Julliard829fe321998-07-26 14:27:39 +0000332 Author:
333 Dummy written by Eric Kohl.
Eric Kohlf2809611998-11-08 11:36:04 +0000334 Alex Priem <alexp@sci.kun.nl>
Alexandre Julliard829fe321998-07-26 14:27:39 +0000335
Alexandre Julliardebfc0fe1998-06-28 18:40:26 +0000336 Status:
Eric Kohl0b61d021998-11-22 18:16:22 +0000337 Under construction.
Alexandre Julliard829fe321998-07-26 14:27:39 +0000338
Alexandre Julliardebfc0fe1998-06-28 18:40:26 +0000339
Alexandre Julliardd30dfd21998-09-27 18:28:36 +00003403.23 Updown Control
Alexandre Julliardebfc0fe1998-06-28 18:40:26 +0000341-------------------
342 Author:
343 Original implementation by Dimitrie O. Paun.
344 Some minor changes by Eric Kohl <ekohl@abo.rhein-zeitung.de>.
345
346 Status:
347 - Unknown.
348
349 Notes:
350 - Have a look at controls/updown.c for a list of bugs and missing
351 features.
352
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.
356
357 Any volunteers??
358
359
3604. Additional Information
361-------------------------
362
363 Has to be written...
364
365
3665. Undocumented features
367------------------------
368
369 There are quite a lot of undocumented functions like:
Alexandre Julliarda0d77311998-09-13 16:32:00 +0000370 - DSA (Dynnamic Storage Array) functions.
371 - DPA (Dymnamic Pointer Array) functions.
Alexandre Julliardebfc0fe1998-06-28 18:40:26 +0000372 - MRU ("Most Recently Used" List) functions.
373 - other unknown functions.
374
375 Have a look at relay32/comctl32.spec.
376
377
Alexandre Julliardd30dfd21998-09-27 18:28:36 +00003785.1 Dymnamic Storage Array (DSA)
Alexandre Julliarda0d77311998-09-13 16:32:00 +0000379---------------------------------
Alexandre Julliardd30dfd21998-09-27 18:28:36 +0000380 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.
Alexandre Julliardebfc0fe1998-06-28 18:40:26 +0000384
385 Have a look at the source code to get more information.
Alexandre Julliard85ed45e1998-08-22 19:03:56 +0000386
Alexandre Julliardebfc0fe1998-06-28 18:40:26 +0000387
Alexandre Julliardd30dfd21998-09-27 18:28:36 +00003885.2 Dynamic Pointer Array (DPA)
Alexandre Julliardebfc0fe1998-06-28 18:40:26 +0000389------------------------------------
Alexandre Julliardd30dfd21998-09-27 18:28:36 +0000390 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.
Alexandre Julliardebfc0fe1998-06-28 18:40:26 +0000393
394 Have a look at the source code to get more information.
Alexandre Julliardebfc0fe1998-06-28 18:40:26 +0000395
396
Alexandre Julliard85ed45e1998-08-22 19:03:56 +00003975.3 "Most Recently Used" - List (MRU)
398-------------------------------------
Alexandre Julliardd30dfd21998-09-27 18:28:36 +0000399 The function 'COMCTL32_157()' could be called 'CreateMRUListEx32A()'.
400 Only stubs are implemented to keep Explorer from bailing out.
401
402 No more information available at this time!
Alexandre Julliard85ed45e1998-08-22 19:03:56 +0000403
404
4055.4 MenuHelp
Alexandre Julliardebfc0fe1998-06-28 18:40:26 +0000406------------
407 Has to be written...
408
409
Alexandre Julliard85ed45e1998-08-22 19:03:56 +00004105.5 GetEffectiveClientRect
Alexandre Julliardebfc0fe1998-06-28 18:40:26 +0000411--------------------------
412 Has to be written...
413
414
Alexandre Julliard85ed45e1998-08-22 19:03:56 +00004155.6 ShowHideMenuCtl
416-------------------
417 The official documentation provided by MS is incomplete.
418
419 lpInfo:
420 ...
421 Both values of the first pair must be the handle to the applications main
422 menu.
423 ...
424
425
Alexandre Julliardd30dfd21998-09-27 18:28:36 +00004265.7 Other undocumented functions
427--------------------------------
428 Several other undocumented functions are used by IE4.
429
430 COMCTL32_11, COMCTL_385, COMCTL32_386 and COMCTL32_388.
431 Their stubs are implemented to keep IE4 from bailing out.
432
433
Alexandre Julliardebfc0fe1998-06-28 18:40:26 +00004346. Epilogue
435-----------
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.
439
Eric Kohlf2809611998-11-08 11:36:04 +0000440
441Eric Kohl <ekohl@abo.rhein-zeitung.de>
Alexandre Julliardebfc0fe1998-06-28 18:40:26 +0000442