"Too recent" version of shlwapi installed?
I just made a DLL that uses some features of the Shell. It worked
fine on my development machine. I then went to test it on a 98SE
machine, and could not register it.
Regsvr32 gave an error 0x800700ce, which claims to be "filename or
extension too long". I have successfully registered DLLs on this
machine in the past with longer names, but I renamed this one to 8.3
anyway, just to see. Same error occurred.
That was with the DebugU version of the DLL. I tried
ReleaseUMinDependency, and regsvr32 still failed, but instead it gave
0x80070078, which is "function not supported". I thought that I had
been careful to use only functions that were supported on 98SE, but it
seemed not, so I used Dependency Walker to see what was missing. I
found something which seems strange:
None of the things that I call directly are unsupported. Rather, I am
using some (supposedly supported) functions from shlwapi.dll, which in
turn is using UNSUPPORTED functions from shell32.dll, ole32.dll,
apphelp.dll, and userenv.dll (the latter two DLLs can't even be found
on the machine, in fact).
Looking into it a little more, the version of shlwapi.dll on the
machine is 6.00.2800.1740. According to http://msdn.microsoft.com/en-us/library/bb776779(VS.85).aspx
, version 6.0 of shlwapi is only on Windows XP and Vista. Windows 98
SE should only have version 5.0.
The version of shell32.dll is 4.72.3812.600, which matches what is
expected on 98 SE. But it's apparently not good enough for shlwapi
6.0.
So, I have a few questions:
(1) How could things have gotten this way? My suspicion is that it
might have to do with the fact that the machine has IE6 installed
(SP1). But if IE6 installed shlwapi 6, shouldn't it also have
installed the things that shlwapi 6 needs?
(2) How can I fix it? Can I somehow upgrade to the newer DLLs that
shlwapi 6 requires? Or can I somehow fall back from shlwapi 6 to
shlwapi 5?
(3) If I'm right that this is because of IE6, then this DLL
essentially won't work on any 98 SE machine of any customer who
happens to have IE6 installed, except possibly if they jump through
hoops akin to my question (2) above. I guess this one isn't really a
question, it's just... this sucks.
Any help would be greatly appreciated. Thanks in advance.
date: Mon, 11 Aug 2008 09:14:06 -0700 (PDT)
author: unknown