445 lines
10 KiB
Plaintext
445 lines
10 KiB
Plaintext
|
|
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
|
|
-------------------------
|
|
Status:
|
|
Nothing done at all.
|
|
|
|
Notes:
|
|
Author needed!! Any volunteers??
|
|
|
|
|
|
3.5 Flat Scroll Bar Control
|
|
---------------------------
|
|
Status:
|
|
Nothing done at all.
|
|
|
|
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.
|
|
|
|
Notes:
|
|
Author needed!! Any volunteers??
|
|
|
|
|
|
3.10 List View Control
|
|
----------------------
|
|
Author:
|
|
Dummy written by Eric Kohl. <ekohl@abo.rhein-zeitung.de>
|
|
Ben Williams <biwillia@shrug.isdn.uiuc.edu>
|
|
Luc Tourangeau <luc@macadamian.com>
|
|
|
|
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:
|
|
Almost finished (should behave like the original).
|
|
|
|
Notes:
|
|
WM_GETFONT and WM_SETFONT are not implemented yet. They seem to be
|
|
useless because progress bars usually don't display any textual
|
|
information. But if M$ implemented an undocumented flag to display
|
|
textual information (e.g. percentage) these messages would make sense.
|
|
|
|
|
|
3.15 Property Sheet
|
|
-------------------
|
|
Author:
|
|
Anders Carlsson <anders.carlsson@linux.nu>
|
|
|
|
Status:
|
|
- Development in progress.
|
|
- Not yet published.
|
|
|
|
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)
|
|
|
|
Notes:
|
|
- Bitmaps are not correctly displayed.
|
|
|
|
|
|
3.20 Tooltip Control
|
|
--------------------
|
|
Author:
|
|
Eric Kohl <ekohl@abo.rhein-zeitung.de>
|
|
|
|
Status:
|
|
- Almost finished.
|
|
|
|
Notes:
|
|
- Unicode support is still missing.
|
|
|
|
|
|
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 (Dynnamic Storage Array) functions.
|
|
- DPA (Dymnamic 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)
|
|
-------------------------------------
|
|
The function 'COMCTL32_157()' could be called 'CreateMRUListEx32A()'.
|
|
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.
|
|
|
|
COMCTL32_11, COMCTL_385, COMCTL32_386 and COMCTL32_388.
|
|
Their stubs are implemented to keep IE4 from bailing out.
|
|
|
|
|
|
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>
|
|
|