
                  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.


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
--------------------------------
  Status:
      Nothing done at all.

  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.


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
----------------------
  Status:
      Nothing done at all.

  Notes:
      Author needed!! Any volunteers??


3.10 List View Control
----------------------
  Author:
      Dummy written by Eric Kohl. <ekohl@abo.rhein-zeitung.de>
      Ben Williams <.edu>

  Status:
      Under construction.

  Notes:
      Author needed!! Any volunteers??


3.11 Month Calendar Control
---------------------------
  Status:
      Nothing done at all.

  Notes:
      Author needed!! Any volunteers??


3.12 Native font control
------------------------
  Status:
      Nothing done at all.

  Notes:
      Author needed!! Any volunteers??


3.13 Pager Control
------------------
  Author:
      Dummy written by Eric Kohl.

  Status:
      Dummy control. No functionality.

  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:
      Dummy written by Eric Kohl.

  Status:
      Dummy control. No functionality.

  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:
      - Unicode support is still missing.
      - Tooltip integration is almost complete.


3.18 Tab Control
----------------
  Author:
      Anders Carlsson <anders.carlsson@linux.nu>

  Status:
      - Development in progress.
      - Not yet published.


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 contstruction.


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>

