Some additional observations reagrding iexpress SED files:
Extended syntax for Taget OS check:
TargetWin9xVersion=4.10.1999-4.10.2222:%OSWarn%:YesNo
%OSWarn% is text that is displayed
The last parameter may be OK, YesNo or OKCancel, it describes the behavior in case of error:
OK: just OK button is shown and install will not start.
OKCancel: Cancel is selected by default, OK will start the installation
YesNo: No is selected by default, Yes will start the installation
Example:
TargetWin9xVersion=4.10.2222:%OSWarn%:OK
[Strings]
OSWarn="This Service Pack is for Windows 98 Second Edition Only!"
The same can be used for TargetFileVersion. The syntax seems to be:
For one file:
TargetFileVersion=#A\IEXPLORE.EXE:4.72.3110.0:%BrowserWarn%:OK
For more files:
TargetFileVersion=@FileSectionList
[FileSectionList]
1=#S\BROWSEUI.DLL:5.0.3314.2100-5.0.3537.700:%BrowserWarn%:OK
2=#S\INSENG.DLL:5.0.3314.2101-5.0.3533.2600:%BrowserWarn%:OK
3=#S\MSHTML.DLL:5.0.3314.2100-5.0.3541.2700:%BrowserWarn%:OK
4=#S\MSRATING.DLL:5.0.3314.2100-5.0.3539.2200:%BrowserWarn%:OK
5=#S\PNGFILT.DLL:5.0.3314.2100-5.0.3541.2700:%BrowserWarn%:OK
6=#S\SHDOCVW.DLL:5.0.3314.2100-5.0.3537.700:%BrowserWarn%:OK
7=#S\SHLWAPI.DLL:5.0.3314.2100-5.0.3900.7033:%BrowserWarn%:OK
8=#S\URLMON.DLL:5.0.3314.2100-5.0.3537.700:%BrowserWarn%:OK
9=#S\WININET.DLL:5.0.3314.2100-5.0.3539.1800:%BrowserWarn%:OK
#W = %windir%
#S = %windir%\SYSTEM
#A = Application, full patch is checked
If not found, search is repeated with .DLL suffix added.
Two
examples for SE SP:
TargetFileVersion=#A\IEXPLORE.EXE:6.0.2800.1106:%BrowserWarn%:OKCancel
[Strings]
BrowserWarn="Internet Explorer 6.0 SP1 should be installed before SESP!"
TargetFileVersion=#S\VERSION.DLL:4.90.0.3000:%MEWarn%:YesNo
[Strings]
MEWarn="98SE2ME seems to be installed, do you want to continue?"
Both may be combined.
Other possible directives in [Options] section, not used in SESP SED file:
PackageInstallSpace(KB)=10000 - self-explanatory
KeepCabinet=1 - do not delete the CAB file after package creation
MultiInstanceCheck=1 - not tested yet
CheckAdminRights=1 - probably for NT only
Here I don't know the purpose:
VersionInfo=VersionSection
[VersionSection]
ProductName=%ProductName%
and also not tested wher and how to use:
AppErrorCheck
AlwaysPropogateCmdExitCode
PropogateCmdExitCode
UpdateAdvDlls
PlatformDir
It seems I should really ask Microsoft if there is any detail specification of SED/CDF files.
And something about iexpress packages. They are created by adding resources to WEXTRACT.EXE, so any resource editor can be used check what the package contains and what it does. It can be used for checking unknown packages or testing if everyting is correct for newly built package before distributing.
The resource type is RCData and there are the following resources, some of them are optional:
ADMQCMD - AdminQuietInstCmd
CABINET - full cabinet file, generated by iexpress
EXTRACTOPT - HideExtractAnimation
FILESIZES - generated by iexpress
FINISHMSG - FinishMessage
INSTANCECHECK - MultiInstanceCheck
LICENSE - DisplayLicense
PACKINSTSPACE - PackageInstallSpace(KB)
POSTRUNPROGRAM - PostInstallCmd
REBOOT - RebootMode
RUNPROGRAM - AppLaunched
SHOWWINDOW - ShowInstallProgramWindow
TITLE - FriendlyName
UPROMPT - InstallPrompt
USRQCMD - UserQuietInstCmd
VERCHECK - TargetNTVersion, TargetWin9xVersion, TargetFileVersion
So any coder could easily write small utility that would re-create SED file from existing iexpress package and/or display all the settings.
Petr