Partial implementation for the following DDE APIs:
[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   Status:
121       Nothing done at all.
122
123   Notes:
124       Author needed!! Any volunteers??
125
126
127 3.5 Flat Scroll Bar Control
128 ---------------------------
129   Status:
130       Nothing done at all.
131
132   Notes:
133       Author needed!! Any volunteers??
134
135
136 3.6 Header Control
137 ------------------
138   Author:
139       Eric Kohl <ekohl@abo.rhein-zeitung.de>
140
141   Status:
142       Almost finished.
143       Unicode notifications are not supported (WM_NOTIFYFORMAT).
144       Order array not supported.
145
146
147 3.7 Hot Key Control
148 -------------------
149   Author:
150       Dummy written by Eric Kohl. <ekohl@abo.rhein-zeitung.de>
151
152   Status:
153       Dummy control. No functionality.
154
155   Notes:
156       Author needed!! Any volunteers??
157
158
159 3.8 Image List (no control)
160 ---------------------------
161   Author:
162       Eric Kohl <ekohl@abo.rhein-zeitung.de>
163
164   Status:
165       Almost finished.
166
167
168 3.9 IP Address Control
169 ----------------------
170   Author:
171       Dummy written by Eric Kohl. <ekohl@abo.rhein-zeitung.de>
172       Alex Priem <alexp@sci.kun.nl>
173
174   Status:
175       Under construction.
176
177   Notes:
178       Author needed!! Any volunteers??
179
180
181 3.10 List View Control
182 ----------------------
183   Author:
184       Dummy written by Eric Kohl. <ekohl@abo.rhein-zeitung.de>
185       Ben Williams <biwillia@shrug.isdn.uiuc.edu>
186
187   Status:
188       Under construction.
189
190   Notes:
191       Author needed!! Any volunteers??
192
193
194 3.11 Month Calendar Control
195 ---------------------------
196   Author:
197       Dummy written by Eric Kohl. <ekohl@abo.rhein-zeitung.de>
198
199   Status:
200       Dummy control. No functionality.
201
202   Notes:
203       Author needed!! Any volunteers??
204
205
206 3.12 Native font control
207 ------------------------
208   Author:
209       Dummy written by Eric Kohl. <ekohl@abo.rhein-zeitung.de>
210
211   Status:
212       Dummy control. No functionality.
213
214   Notes:
215       Author needed!! Any volunteers??
216
217
218 3.13 Pager Control
219 ------------------
220   Author:
221       Dummy written by Eric Kohl. <ekohl@abo.rhein-zeitung.de>
222
223   Status:
224       Under construction.
225       Many missing features.
226
227   Notes:
228       Author needed!! Any volunteers??
229
230
231 3.14 Progress Bar Control
232 -------------------------
233   Author:
234       Original implementation by Dimitrie O. Paun.
235       Fixes and improvements by Eric Kohl.
236
237   Status:
238       Almost finished (should behave like the original).
239
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
247 3.15 Property Sheet
248 -------------------
249   Author:
250       Anders Carlsson <anders.carlsson@linux.nu>
251
252   Status:
253       - Development in progress.
254       - Not yet published.
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   Notes:
305       - Bitmaps are not correctly displayed.
306
307
308 3.20 Tooltip Control
309 --------------------
310   Author:
311       Eric Kohl <ekohl@abo.rhein-zeitung.de>
312
313   Status:
314       - Almost finished.
315
316   Notes:
317       - Unicode support is still missing.
318
319
320 3.21 Trackbar Control
321 ---------------------
322   Author:
323       Dummy written by Eric Kohl <ekohl@abo.rhein-zeitung.de>
324       Alex Priem <alexp@sci.kun.nl>
325
326   Status:
327       Under construction.
328
329
330 3.22 Tree View Control
331 ----------------------
332   Author:
333       Dummy written by Eric Kohl.
334       Alex Priem <alexp@sci.kun.nl>
335
336   Status:
337       Under construction.
338
339
340 3.23 Updown Control
341 -------------------
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
360 4. Additional Information
361 -------------------------
362
363   Has to be written...
364
365
366 5. Undocumented features
367 ------------------------
368
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.
374
375   Have a look at relay32/comctl32.spec.
376
377
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.
384
385   Have a look at the source code to get more information.
386
387
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.
393
394   Have a look at the source code to get more information.
395
396
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.
401
402   No more information available at this time!
403
404
405 5.4 MenuHelp
406 ------------
407   Has to be written...
408
409
410 5.5 GetEffectiveClientRect
411 --------------------------
412   Has to be written...
413
414
415 5.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
426 5.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
434 6. 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
440
441 Eric Kohl <ekohl@abo.rhein-zeitung.de>
442