| COMMON CONTROLS | |
| their development status | |
| and their UNDOCUMENTED features and functions | |
| ----------------------------------------------------- | |
| 1. Introduction | |
| --------------- | |
| The information provided herein is based on the dll version 4.72 which | |
| is included in MS Internet Explorer 4.01. | |
| All information about common controls should be collected in this document. | |
| All Wine programmers are encouraged to add their knowledge to this document. | |
| 2. General Information | |
| ---------------------- | |
| Further information about common controls can be found in the MS Platform SDK | |
| and the MS Internet Client SDK (most recent). Information from these SDK's | |
| will NOT be repeated here. Only information which can NOT be found in these | |
| SDK's will be collected here. Some information in the SDK's mentioned above | |
| is (intentionally???) WRONG. Corrections to wrong information will be | |
| collected here too. | |
| 2.1 Structure sizes of different common control versions | |
| -------------------------------------------------------- | |
| The common controls have been continously improved in the past. Some of the | |
| orignal structures had to be extended and their size changed. Most of the | |
| common control structures include their size as the first parameter. If | |
| a control gets the wrong size in a message or function a failure is very | |
| likely to occur. To avoid this, MS defined new constants that reflect the | |
| structure size of older COMCTL32.DLL versions. The following list shows the | |
| structure size constants that are currently defined in the original | |
| COMCTL32.DLL. | |
| NOTE: Some stuctures are NOT defined in wine's COMCTL32 yet. | |
| HDITEM_V1_SIZE: | |
| The size of the HDITEM structure in version 4.00. | |
| LVCOLUMN_V1_SIZE: | |
| The size of the LVCOLUMN structure in version 4.00. | |
| LVHITTESTINFO_V1_SIZE: | |
| The size of the LVHITTESTINFO structure in version 4.00. | |
| LVITEM_V1_SIZE: | |
| The size of the LVITEM structure in version 4.00. | |
| NMLVCUSTOMDRAW_V3_SIZE: | |
| The size of the NMLVCUSTOMDRAW structure in version 4.70. | |
| NMTTDISPINFO_V1_SIZE: | |
| The size of the NMTTDISPINFO structure in version 4.00. | |
| NMTVCUSTOMDRAW_V3_SIZE: | |
| The size of the NMTVCUSTOMDRAW structure in version 4.70. | |
| PROPSHEETHEADER_V1_SIZE: | |
| The size of the PROPSHEETHEADER structure in version 4.00. | |
| PROPSHEETPAGE_V1_SIZE: | |
| The size of the PROPSHEETPAGE structure in version 4.00. | |
| REBARBANDINFO_V3_SIZE: | |
| The size of the REBARBANDINFO structure in version 4.70. | |
| TTTOOLINFO_V1_SIZE: | |
| The size of the TOOLINFO structure in version 4.00. | |
| TVINSERTSTRUCT_V1_SIZE: | |
| The size of the TVINSERTSTRUCT structure in version 4.00. | |
| 3. Controls | |
| ----------- | |
| This paragraph describes the development status of the common controls. | |
| 3.1 Animation Control | |
| --------------------- | |
| Author: | |
| Dummy written by Eric Kohl. <ekohl@abo.rhein-zeitung.de> | |
| Status: | |
| Dummy control. No functionality. | |
| Notes: | |
| Author needed!! Any volunteers?? | |
| 3.2 Combo Box Ex Control | |
| ------------------------ | |
| Author: | |
| Dummy written by Eric Kohl. <ekohl@abo.rhein-zeitung.de> | |
| Status: | |
| Dummy control. No functionality. | |
| Notes: | |
| Author needed!! Any volunteers?? | |
| 3.3 Date and Time Picker Control | |
| -------------------------------- | |
| Author: | |
| Dummy written by Eric Kohl. <ekohl@abo.rhein-zeitung.de> | |
| Status: | |
| Dummy control. No functionality. | |
| Notes: | |
| Author needed!! Any volunteers?? | |
| 3.4 Drag List Box Control | |
| ------------------------- | |
| Author: | |
| Dummy written by Eric Kohl. <ekohl@abo.rhein-zeitung.de> | |
| Status: | |
| Dummy control. No functionality. | |
| Notes: | |
| Author needed!! Any volunteers?? | |
| 3.5 Flat Scroll Bar Control | |
| --------------------------- | |
| Author: | |
| Dummy written by Alex Priem. <alexp@sci.kun.nl> | |
| Status: | |
| Dummy control. No functionality. | |
| Notes: | |
| Author needed!! Any volunteers?? | |
| 3.6 Header Control | |
| ------------------ | |
| Author: | |
| Eric Kohl <ekohl@abo.rhein-zeitung.de> | |
| Status: | |
| Almost finished. | |
| Unicode notifications are not supported (WM_NOTIFYFORMAT). | |
| Order array not supported. | |
| 3.7 Hot Key Control | |
| ------------------- | |
| Author: | |
| Dummy written by Eric Kohl. <ekohl@abo.rhein-zeitung.de> | |
| Status: | |
| Dummy control. No functionality. | |
| Notes: | |
| Author needed!! Any volunteers?? | |
| 3.8 Image List (no control) | |
| --------------------------- | |
| Author: | |
| Eric Kohl <ekohl@abo.rhein-zeitung.de> | |
| Status: | |
| Almost finished. | |
| 3.9 IP Address Control | |
| ---------------------- | |
| Author: | |
| Dummy written by Eric Kohl. <ekohl@abo.rhein-zeitung.de> | |
| Alex Priem <alexp@sci.kun.nl> | |
| Status: | |
| Under construction. | |
| 3.10 List View Control | |
| ---------------------- | |
| Author: | |
| Dummy written by Eric Kohl. <ekohl@abo.rhein-zeitung.de> | |
| Luc Tourangeau <luc@macadamian.com> | |
| Koen Deforche <jozef@kotnet.org> | |
| Francis Beaudet <francis@macadamian.com> and the "Corel-Team" | |
| Status: | |
| Under construction. | |
| Notes: | |
| Basic data structure with related messages are supported. | |
| No painting supported yet. | |
| 3.11 Month Calendar Control | |
| --------------------------- | |
| Author: | |
| Dummy written by Eric Kohl. <ekohl@abo.rhein-zeitung.de> | |
| Status: | |
| Dummy control. No functionality. | |
| Notes: | |
| Author needed!! Any volunteers?? | |
| 3.12 Native font control | |
| ------------------------ | |
| Author: | |
| Dummy written by Eric Kohl. <ekohl@abo.rhein-zeitung.de> | |
| Status: | |
| Dummy control. No functionality. | |
| Notes: | |
| Author needed!! Any volunteers?? | |
| 3.13 Pager Control | |
| ------------------ | |
| Author: | |
| Dummy written by Eric Kohl. <ekohl@abo.rhein-zeitung.de> | |
| Status: | |
| Under construction. | |
| Many missing features. | |
| Notes: | |
| Author needed!! Any volunteers?? | |
| 3.14 Progress Bar Control | |
| ------------------------- | |
| Author: | |
| Original implementation by Dimitrie O. Paun. | |
| Fixes and improvements by Eric Kohl. | |
| Status: | |
| Finished! | |
| 3.15 Property Sheet | |
| ------------------- | |
| Author: | |
| Anders Carlsson <anders.carlsson@linux.nu> | |
| Francis Beaudet <francis@macadamian.com> | |
| Status: | |
| Development in progress. | |
| Notes: | |
| Tab control must be implemented first. | |
| 3.16 Rebar Control (Cool Bar) | |
| ----------------------------- | |
| Author: | |
| Eric Kohl <ekohl@abo.rhein-zeitung.de> | |
| Status: | |
| Development in progress. | |
| Many bugs and missing features. | |
| Notes: | |
| Author needed!! Any volunteers?? | |
| 3.17 Status Bar Control | |
| ----------------------- | |
| Author: | |
| Original implementation by Bruce Milner. | |
| Fixes and improvements by Eric Kohl. | |
| Status: | |
| Almost finished. | |
| Notes: | |
| Tooltip integration is almost complete. | |
| 3.18 Tab Control | |
| ---------------- | |
| Author: | |
| Anders Carlsson <anders.carlsson@linux.nu> | |
| Status: | |
| Development in progress. | |
| 3.19 Toolbar Control | |
| -------------------- | |
| Author: | |
| Eric Kohl <ekohl@abo.rhein-zeitung.de> | |
| Status: | |
| Development in progress. | |
| Basic functionality is almost done. (dll version 4.0) | |
| 3.20 Tooltip Control | |
| -------------------- | |
| Author: | |
| Eric Kohl <ekohl@abo.rhein-zeitung.de> | |
| Status: | |
| Almost finished. | |
| Notes: | |
| Unicode support is incomplete (WM_NOTIFYFORMAT). | |
| 3.21 Trackbar Control | |
| --------------------- | |
| Author: | |
| Dummy written by Eric Kohl <ekohl@abo.rhein-zeitung.de> | |
| Alex Priem <alexp@sci.kun.nl> | |
| Status: | |
| Under construction. | |
| 3.22 Tree View Control | |
| ---------------------- | |
| Author: | |
| Dummy written by Eric Kohl. | |
| Alex Priem <alexp@sci.kun.nl> | |
| Status: | |
| Under construction. | |
| 3.23 Updown Control | |
| ------------------- | |
| Author: | |
| Original implementation by Dimitrie O. Paun. | |
| Some minor changes by Eric Kohl <ekohl@abo.rhein-zeitung.de>. | |
| Status: | |
| Unknown. | |
| Notes: | |
| Have a look at controls/updown.c for a list of bugs and missing | |
| features. | |
| The status is unknown, because I did not have a close look at this | |
| control. One test-program looked quite good, but in Win95's | |
| cdplayer.exe the control does not show at all. | |
| Any volunteers?? | |
| 4. Additional Information | |
| ------------------------- | |
| Has to be written... | |
| 5. Undocumented features | |
| ------------------------ | |
| There are quite a lot of undocumented functions like: | |
| - DSA (Dynamic Storage Array) functions. | |
| - DPA (Dynamic Pointer Array) functions. | |
| - MRU ("Most Recently Used" List) functions. | |
| - other unknown functions. | |
| Have a look at relay32/comctl32.spec. | |
| 5.1 Dymnamic Storage Array (DSA) | |
| --------------------------------- | |
| The DSA functions are used to store and manage dynamic arrays of fixed size | |
| memory blocks. They are used by TASKMAN.EXE, Explorer, IE4 and other | |
| Programs and DLL's that are "parts of the Windows Operating System". | |
| The implementation should be complete. | |
| Have a look at the source code to get more information. | |
| 5.2 Dynamic Pointer Array (DPA) | |
| ------------------------------------ | |
| Similar to the DSA functions, but they just store pointers. They are used by | |
| Explorer, IE4 and other Programs and DLL's that are "parts of the Windows | |
| Operating System". The implementation should be complete. | |
| Have a look at the source code to get more information. | |
| 5.3 "Most Recently Used" - List (MRU) | |
| ------------------------------------- | |
| Only stubs are implemented to keep Explorer from bailing out. | |
| No more information available at this time! | |
| 5.4 MenuHelp | |
| ------------ | |
| Has to be written... | |
| 5.5 GetEffectiveClientRect | |
| -------------------------- | |
| Has to be written... | |
| 5.6 ShowHideMenuCtl | |
| ------------------- | |
| The official documentation provided by MS is incomplete. | |
| lpInfo: | |
| ... | |
| Both values of the first pair must be the handle to the applications main | |
| menu. | |
| ... | |
| 5.7 Other undocumented functions | |
| -------------------------------- | |
| Several other undocumented functions are used by IE4. | |
| String functions: | |
| (will be written...) | |
| 6. Epilogue | |
| ----------- | |
| You see, much work has still to be done. If you are interested in writing | |
| a control send me an e-mail. If you like to fix bugs or add some | |
| functionality send an e-mail to the author of the control. | |
| Eric Kohl <ekohl@abo.rhein-zeitung.de> | |