Hi,
While I was looking through some of the wine dlls' code I found that the function SHGetFolderPath is in the shell32 dll and the shfolder dll. Is this ment to be like this? Because the docs that I read says that the function is meant to be in shfolder. Anyway are the two functions meant to do the same thing? If so then why is the one in shell32 implemented and working and the one on shfolder doesn't eaven appear to give a fixme message?
Nog
"nog" == nog nog@sdf.lonestar.org writes:
nog> Hi, While I was looking through some of the wine dlls' code I found nog> that the function SHGetFolderPath is in the shell32 dll and the nog> shfolder dll. Is this ment to be like this? Because the docs that I nog> read says that the function is meant to be in shfolder. Anyway are nog> the two functions meant to do the same thing? If so then why is the nog> one in shell32 implemented and working and the one on shfolder nog> doesn't eaven appear to give a fixme message?
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/she...
tells that ShGetFolderPath is in shell32.lib. So we implemented it there, and we have a Forward to shell32 in shfolder.dll
Bye
On Mon, 1 Jul 2002, nog wrote:
Hi,
While I was looking through some of the wine dlls' code I found that the function SHGetFolderPath is in the shell32 dll and the shfolder dll. Is this ment to be like this? Because the docs that I read says that the function is meant to be in shfolder. Anyway are the two functions meant to do the same thing? If so then why is the one in shell32 implemented and working and the one on shfolder doesn't eaven appear to give a fixme message?
Just another datapoint: according to my files SHGetFolderPath does not exist in Win95, is implemented in shfolder on Win98, and has entry points in both shfolder and shell32 in Win2000 and WinMe. That's probaby why we have the situation described by Uwe Bones in Wine.
-- Francois Gouget fgouget@free.fr http://fgouget.free.fr/ Linux: Because rebooting is for adding new hardware
The MSDN tells you: ----------- Remarks This function is a superset of {HYPERLINK "SHGetSpecialFolderPath.htm"}SHGetSpecialFolderPath, included with earlier versions of the Shell. It is implemented in a redistributable DLL, SHFolder.dll, that also simulates many of the new Shell folders on older platforms such as Windows 95, Windows 98, and Windows NT 4.0. This DLL always calls the current platform's version of this function. If that fails, it will try to simulate the appropriate behavior. -------- So the shfolder.dll is only for updating older operating systems. WinME/W2K has this function in shell32. The shfolder one has a smaller set of supported CSIDL's. I suspect (by looking on the imports with depends) the shfolder.dll just loads shell32 with LoadLibrary and forwards the functions if a GetProcAddress() is successful.
Ciao
Juergen
From: nog nog@sdf.lonestar.org Subject: Confusing SHGetFolderPath To: "wine-devel@winehq.com" wine-devel@winehq.com Send reply to: "wine-devel@winehq.com" wine-devel@winehq.com Date sent: Mon, 01 Jul 2002 22:12:13 +0200
Hi,
While I was looking through some of the wine dlls' code I found that the function SHGetFolderPath is in the shell32 dll and the shfolder dll. Is this ment to be like this? Because the docs that I read says that the function is meant to be in shfolder. Anyway are the two functions meant to do the same thing? If so then why is the one in shell32 implemented and working and the one on shfolder doesn't eaven appear to give a fixme message?
Nog