mixing SHELL32.DLL and SHFOLDER.DLL

Juan Lang juan_lang at yahoo.com
Mon Aug 30 11:00:41 CDT 2004


Salius wrote:
> I am sure shfolder.dll from win98se installation
> calls GetProcAddress() to get the address of
> SHGetFolderPathW @ shell32.dll.  Moreover, my
> shell32.dll doesn't export SHGetSpecialFolderPath*
> by a name, also.  

Hm.  I'm sorry, I wasn't clear enough.  From MSDN on
SHGetFolderPath:

This function is a superset of SHGetSpecialFolderPath,
included with earlier versions of the Shell. On
systems preceeding those including Shell32.dll version
5.0 (Windows Millennium Edition (Windows Me) and
Windows 2000), SHGetFolderPath was obtained through
SHFolder.dll, distributed with Microsoft Internet
Explorer 4.0 and later versions. SHFolder.dll always
calls the current platform's version of this function.
If that fails, it will try to simulate the appropriate
behavior.

So, I think your patch is a good first step, to use
GetProcAddress rather than letting the linker do it. 
A next step would be, I think, to do what I suggested:
if this fails, try to GetProcAddress for
SHGetSpecialFolderPath, since this was available on
older versions of shell32.  You might have to search
by ordinal if searching by name fails.

So, I don't think my suggestion is that different from
Juergen's, just that I suggest an implementation of
"try to simulate the appropriate behavior" if the
function is not in fact in shell32.

--Juan


		
_______________________________
Do you Yahoo!?
Win 1 of 4,000 free domain names from Yahoo! Enter now.
http://promotions.yahoo.com/goldrush



More information about the wine-devel mailing list