	SHELL32/SHLWAPI	development status
            
1. Introduction
---------------
many parts of this DLL are currently under development. 

The missing parts are:

- contextmenus:
  - shell extensions
  - new document

- shellfolder:
  - shell extensions are only partially working

- resources:
  - many build-in icons are missing

- shell notifications
  - not aware of separated address spaces

- iconcache
  - not aware of separated address spaces
  - shell extensions

- BrowseForFolder
  - only core functionality implemented

- drag/drop/shellole
  - only core functionality implemented

- shelllinks
  - read only
  - only core functionality implemented
  - dialogs: nothing done

- functions
  - many functions of shlwapi are not jet implemented
  - many special functions used only by explorer are incomplete
  - SHFileOperation and related dialogs not implemented
    
- guid's
  - should be moved into the module

- property sheets for files and folder
  - noting done

BUGS:
- incorrect behaviour of the IShellFolder within the office-style
  dialogs
 
2. General Information
----------------------

<all additional informations are moved to the header and source files>

3. Informations
---------------
- nearly complete informations about the binary formats of *.lnk avaiable at
  www.wotsit.org

- www.geocities.com/SiliconValley/4942/  

- many examples from MSDN

Feb-21-2000 <juergen.schmied@debitel.net>

4. native shell32
-----------------

4.1 win95/98

IShellFolder_GetAttributesOf sometimes returns more bits set 
than the mask asked for



4.2 NT4

4.3 NT5
----------

SHGetSpecialFolderLocation needs the <winntdir>/Recent directory.
If the directory is missing it returns a x80070002.

needed Registry keys:
----------------------------
[MACHINE\\Software\\Classes\\CLSID\\{00021400-0000-0000-c000-000000000046}] 957887196
@="Desktop"

[MACHINE\\Software\\Classes\\CLSID\\{00021400-0000-0000-c000-000000000046}\\InProcServer32] 957887196
@="shell32.dll"
"ThreadingModel"="Apartment"

[MACHINE\\Software\\Classes\\CLSID\\{000214e6-0000-0000-c000-000000000046}] 957887196
@="Shellfolder"

[MACHINE\\Software\\Classes\\CLSID\\{000214e6-0000-0000-c000-000000000046}\\InProcServer32] 957887196
@="shell32.dll"
"ThreadingModel"="Apartment"
----------------------------
