				SHELL32
			development status

      Author needed!! Any volunteers?? 
      mail to <juergen.schmied@metronet.de>
            
1. Introduction
---------------
All parts of this DLL are currently under development. About a third of
base functionality is roughly in place. The missing parts are the icon
(shell icon cache) handling and the dialogs provided from the dll like
the file copy status window.

The basis comes from Marcus Meissner and I <juergen.schmied@metronet.de>
implemented the classes and filled in function stubs.
            
2. General Information
----------------------

3. Functions
------------

4. Classes
----------

4.1 IContextMenu
----------------
    Status:
	- development started

    Undocumented:
    word95 gets a IContextMenu Interface and calls HandleMenuMsg()
    whitch should only a member of IContextMenu2. 
    I suppose IContextMenu and IContextMenu2/3 are using the same vtable
    and are in effect the same.
 
4.2 IShellExtInit
-----------------
 only interface definition
 
4.3 IEnumIDList
---------------
  Status:
      - Almost finished.

 
4.4.IShellFolder
----------------
  Status:
      - roughly finished.


4.5 IShellView
--------------
  Status:
      - under development


4.6 IShellBrowser
-----------------
  Status:
	- only interface definition
	  it's implemented by the explorer
	  don't know if we need it 
 
4.7. PIDL Manager
-----------------
  Status:
    - roughly complete will be migrated to a set of functions because it's
    not holding any instance data,

  Undocumented:
  MS says: the abID of SHITEMID should be treated as binary data and not
  be interpreted by applications. Applies to everyone but MS itself.
  Word95 interprets the contents of abID (Filesize/Date) so we have to go
  for binary compatibility here.
  I expect the file open/close dialog in comctl32 does so also.


5. Structures
-------------

5.1 PIDL
--------

