undocumented shell32 stuff

Saulius Krasuckas saulius2 at ar.fi.lt
Fri Aug 26 02:25:19 CDT 2005

I have stumbled upon a unimplemented function shell32.dll.SHLocalAlloc .  
OpenRCE page says it is related to kernel32.dll.LocalAlloc [1], and 
authors of the NSElib (The NameSpace Extension Library) defines it taking 
two int-params [2].  They define the function in ShlExt.h file which says:

// This file can be considered to be in the public domain.
// The latest version can normally be found here:
// http://www.whirlingdervishes.com/nselib/public
// The file is based on various sources, and includes definitions
// that were taken over from various places, including
// Microsoft documentation and header files. It also contains
// many definitions that were introduced by Whirling Dervishes
// Software.

OTOH, there is one page on the web [3], which declares itself as a 
homepage of the ShlExt.h and which describes history of the file.  It 
seems as prototype which was extended by Whirling Dervishes Software and 
based on which their NSElib was built.

Earlier ShlExt.h was beeing included in the PSDK, but now it isn't AFAICS.  
And this is another quote from [2]:

//    februari 2003: Henk Devos: Made compatible with the
//                   october 2003 Platform SDK
//    januari 2003: Henk Devos: added some more undefined flags,
//                  including the ones for CDefFolderMenu_Create2.
//    september 2002: Henk Devos: Made compatible with new Platform SDK
//    januari 2002: Henk Devos: Added comments with ordinals of 
//    all exports in Windows 2000 version of shell32.dll
//    24/06/99  Some changes made by Henk Devos

It stays above the changelog of the old file [4].  What developers think 
about this story? 

Can we start importing it into our tree?  If not, should I declare 
SHLocalAlloc() somewhere?  And where should I put it's code, maybe 
dlls/shell32/utility.c ?

[1] http://www.openrce.org/reference_library/win32_call_chains/2000SP4/SHLWAPI/SHLocalAlloc
[2] http://www.whirlingdervishes.com/nselib/mfc/samples/source.php
[3] http://www.mvps.org/user32/shlext.html#shlext
[4] http://www.mvps.org/user32/shlext.zip

More information about the wine-devel mailing list