Home
Products
Inno Setup
Toolbar2000
Toolbar97
StripReloc
More...
Support
Newsgroups
Contact Me
 visitors since Jan. 1998
|
HOWTO: Deploy shfolder.dll
Article Created: 2003-10-13 23:38 GMT by Jordan Russell
Last Updated: 2003-11-04 08:41 GMT by Jordan Russell
Why deploy shfolder.dll?
If your application uses the SHGetFolderPath function, shfolder.dll must be present on your users' systems. This DLL comes with Internet Explorer 5 and later. If you do not wish to create a dependency on Internet Explorer 5, you may install shfolder.dll separately during your installation. (Note: Internet Explorer 5 comes standard with Windows starting with Windows 98 Second Edition.)
How to deploy shfolder.dll
- Download shfinst.exe.
- Run shfinst.exe; it will extract a file named ShFolder.exe.
- Add these lines to your script:
[Files]
Source: "ShFolder.exe"; DestDir: "{tmp}"
[Code]
const
{ The shfolder.dll file we're deploying is version 5.50.4027.300 }
OurShFolderVersionMS = (5 shl 16) or 50;
OurShFolderVersionLS = (4027 shl 16) or 300;
function ShouldInstallShFolderDLL: Boolean;
var
MS, LS: Cardinal;
begin
{ Only install if shfolder.dll doesn't already exist or it's an earlier version.
These checks aren't really needed, but prevent unnecessary reboots on Windows 95
when the correct version of shfolder.dll is already installed. }
if not GetVersionNumbers(ExpandConstant('{sys}\shfolder.dll'), MS, LS) then
Result := True
else
if (OurShFolderVersionMS > MS) or
((OurShFolderVersionMS = MS) and (OurShFolderVersionLS > LS)) then
Result := True
else
Result := False;
end;
[Run]
Filename: "{tmp}\ShFolder.exe"; Parameters: "/r:n /q:1"; Check: ShouldInstallShFolderDLL; OnlyBelowVersion: 0,5.0
(Note: The OnlyBelowVersion parameter prevents installation on Windows 2000 and later, where System File Protection doesn't allow the file to be replaced.)
Site contents Copyright © 1997-2009 Jordan Russell. All rights reserved.
|