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(a)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 -- Uwe Bonnes bon(a)elektron.ikp.physik.tu-darmstadt.de Institut fuer Kernphysik Schlossgartenstrasse 9 64289 Darmstadt --------- Tel. 06151 162516 -------- Fax. 06151 164321 ----------
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(a)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(a)sdf.lonestar.org> Subject: Confusing SHGetFolderPath To: "wine-devel(a)winehq.com" <wine-devel(a)winehq.com> Send reply to: "wine-devel(a)winehq.com" <wine-devel(a)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
participants (4)
-
Francois Gouget -
Juergen Schmied -
nog -
Uwe Bonnes