mixing SHELL32.DLL and SHFOLDER.DLL
juan_lang at yahoo.com
Mon Aug 30 11:00:41 CDT 2004
> 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
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
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.
Do you Yahoo!?
Win 1 of 4,000 free domain names from Yahoo! Enter now.
More information about the wine-devel