mirror of https://github.com/lianthony/NT4.0
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
916 lines
25 KiB
916 lines
25 KiB
;***********************************************************************
|
|
; IE / NT install script
|
|
; ----------------------
|
|
;
|
|
; This must be executed by typing:
|
|
; "%SysDir%\system32\setup /f /i %SRC%\setup.inf /t SrcDir = %SRC%"
|
|
;
|
|
; Please note the %SRC% is the path to this file.
|
|
;
|
|
;
|
|
; Directory layout:
|
|
; These files must exist:
|
|
;
|
|
; ./SETUPIE.BAT the shell script that calls this file
|
|
; ./SETUPIE.INF this file (of course)
|
|
;
|
|
;***********************************************************************
|
|
|
|
;***********************************************************************
|
|
; SOURCE MEDIA DESCRIPTION
|
|
; ------------------------
|
|
; This is only here because we must have _something_ in this slot...
|
|
;
|
|
;***********************************************************************
|
|
[Source Media Descriptions]
|
|
1 = "Disk containing Microsoft Internet Information Service Patch files."
|
|
|
|
|
|
|
|
;***********************************************************************
|
|
; CONSTANTS FOR USING DIALOGS
|
|
;***********************************************************************
|
|
[GeneralConstants]
|
|
|
|
;
|
|
; Constants to support the use of radio button dialogs
|
|
;
|
|
Radio1 = "1"
|
|
Radio2 = "2"
|
|
Radio3 = "3"
|
|
Radio4 = "4"
|
|
Radio5 = "5"
|
|
Radio6 = "6"
|
|
Radio7 = "7"
|
|
Radio8 = "8"
|
|
Radio9 = "9"
|
|
|
|
;
|
|
; Constants to support the use of checkbox dialogs
|
|
Chosen = "ON"
|
|
NotChosen = "OFF"
|
|
|
|
|
|
[RegistryConstants]
|
|
MaskAllAccess = 33554432
|
|
NoTitle = 0
|
|
RegLastError = $(!REG_ERROR_SUCCESS)
|
|
REG_VT_BINARY = 3 ;define this ourselves as it is not defd for us
|
|
|
|
|
|
;************************************************************************
|
|
; CONFIGURATION CHOICES
|
|
; ---------------------
|
|
; the sections below contain the different choices supported for
|
|
; the configuration items shown. an id section establishes the
|
|
; language independent IDs supported by nt setup. for each language
|
|
; supported a text section displays the text used for the different
|
|
; choices
|
|
;************************************************************************
|
|
|
|
;********************************
|
|
; PLATFORM INDEPENDENT CHOICES
|
|
;********************************
|
|
;----------------------------------------------------
|
|
; LANGUAGE CHOICES-- this is all you get,,,
|
|
;----------------------------------------------------
|
|
|
|
[LanguageID]
|
|
LANGID_ENG = ENG
|
|
|
|
;----------------------------------------------------
|
|
; PROCESSOR CHOICES
|
|
;----------------------------------------------------
|
|
[ProcessorID]
|
|
ProcessorID_I386 = I386
|
|
ProcessorID_I486 = I486
|
|
ProcessorID_I586 = I586
|
|
ProcessorID_R4000 = R4000
|
|
ProcessorID_Alpha = Alpha_AXP
|
|
ProcessorID_PPC601 = PPC601
|
|
ProcessorID_PPC603 = PPC603
|
|
ProcessorID_PPC604 = PPC604
|
|
ProcessorID_PPC620 = PPC620
|
|
|
|
;----------------------------------------------------
|
|
; PLATFORM CHOICES
|
|
;----------------------------------------------------
|
|
[PlatformID]
|
|
PlatformID_I386 = I386
|
|
PlatformID_Mips = Mips
|
|
PlatformID_Alpha = Alpha
|
|
PlatformID_ppc = ppc
|
|
|
|
;**************************************************************
|
|
; UI VARIABLES
|
|
;**************************************************************
|
|
|
|
[ProcessorVar]
|
|
|
|
STF_PROCESSOR = "" ? $(LIBHANDLE) GetProcessor
|
|
STF_PLATFORM = ""
|
|
|
|
[LocaleVar]
|
|
|
|
[LanguageVar]
|
|
;
|
|
; Language to Use For interaction with user
|
|
;
|
|
STF_LANGUAGE = "" ? $(LIBHANDLE) GetLanguage
|
|
|
|
|
|
[UiVars]
|
|
;
|
|
; Version Information
|
|
;
|
|
BuildVersion = "05-95"
|
|
;ascii for Quote in octal
|
|
|
|
|
|
;
|
|
; Destination Particulars
|
|
;
|
|
ServerDir = "%SystemDrive%\inetsrv\server"
|
|
WinDir = "" ? $(!LIBHANDLE) GetWindowsNtDir
|
|
WinSysDir = "" ? $(!LIBHANDLE) GetWindowsNtSysDir
|
|
|
|
;
|
|
; Source location
|
|
;
|
|
; SrcDir = "" ? $(!LIBHANDLE) GetEnvVar USER Temp
|
|
|
|
UsrRootPerms = "UNKNOWN"
|
|
|
|
; Don't EVER change these!
|
|
;
|
|
; Windows NT Directory
|
|
;
|
|
|
|
STF_WINDOWSPATH = "" ? $(!LIBHANDLE) GetWindowsNtDir
|
|
STF_WINDOWSSYSPATH = "" ? $(!LIBHANDLE) GetWindowsNtSysDir
|
|
STF_WINDOWSVERSION = "" ? $(!LIBHANDLE) GetWindowsNtVersion
|
|
|
|
REG_VT_BINARY = 3 ;define this ourselves as it is not defd for us
|
|
|
|
;
|
|
; Installation mode
|
|
;
|
|
|
|
MinInteract = $(Radio1)
|
|
MaxInteract = $(Radio2)
|
|
STF_INSTALL_MODE = $(MinInteract)
|
|
|
|
;
|
|
; Mstools Setup Help IDs
|
|
;
|
|
|
|
!IDH_DB_TOOLSWELCOME_INS = 3000
|
|
!IDH_DB_MSTINSTALLMODE_INS = 3010
|
|
!IDH_DB_MSTDEST_INS = 3020
|
|
!IDH_DB_MSTOPTIONS_INS = 3030
|
|
|
|
|
|
[EnvironmentVars]
|
|
;
|
|
; user environment variables in the current user's profile
|
|
; that we are concerned about
|
|
|
|
PathEnvVar = {} ? $(LIBHANDLE) GetEnvVar $(PRIVILEGES) Path
|
|
InitEnvVar = {} ? $(LIBHANDLE) GetEnvVar $(PRIVILEGES) init
|
|
|
|
|
|
[VarsPlatformCommon]
|
|
;
|
|
; Installation options
|
|
;
|
|
|
|
;
|
|
; Options to disable
|
|
;
|
|
DisableList = {}
|
|
|
|
|
|
[VarsI386]
|
|
;
|
|
|
|
[VarsMips]
|
|
;
|
|
|
|
[VarsAlpha]
|
|
;
|
|
|
|
[Varsppc]
|
|
;
|
|
|
|
[StringsENG]
|
|
SetupCaption = "Microsoft Internet Information Service (IIS)"
|
|
InstallTitle = ".CMD/.BAT Patch"
|
|
NotInstalled = "The Microsoft Internet Information Service (IIS) Web Server is not installed."$(!LF)$(!LF)+
|
|
"Setup can not continue."
|
|
|
|
String1 = "Setup cannot install on the current processor."$(!LF)$(!LF)+
|
|
"Cannot proceed with install."
|
|
|
|
String2 = "Please verify the full path of the directory into which "+
|
|
"the Microsoft Internet Information Service Patch should be installed."$(!LF)+
|
|
"Then choose Continue."
|
|
|
|
String3 = "Microsoft Internet Information Service Patch are files not found."$(!LF)+
|
|
"Please enter the directory path to the Patch setup files."
|
|
|
|
String4 = "Setup couldn't copy the Microsoft Internet Information Service Patch files. "$(!LF)$(!LF)+
|
|
"Cannot proceed with install."
|
|
|
|
String5 = "'"$(EditTextOut)"' is not a valid path! Please try again."
|
|
|
|
String6 = "Error processing path entered. Please reenter the path."
|
|
|
|
String7 = ""
|
|
|
|
String8 = "Size required for full installation is: "
|
|
String9 = "Minimum size required for custom installation is: "
|
|
String10 = " MB. "
|
|
String11 = "No drive was found with this much space."$(!LF)$(!LF)+
|
|
"Cannot proceed with install."
|
|
|
|
String12 = "The Microsoft Internet Information Service Patch is not completely installed."$(LF)$(LF)+
|
|
" Are you sure you want to exit Setup?"
|
|
|
|
String13 = "Setup needs a full path specification of your destination. Please "+
|
|
"reenter a new path. An example of af full path is: "
|
|
|
|
String14 = "The following directory does not exist."$(LF)
|
|
|
|
String15 = $(LF)$(LF)"Would you like to create it?"
|
|
String16 = ""
|
|
String18 = ""
|
|
|
|
|
|
;--------------------
|
|
; BILLBOARD MESSAGES
|
|
;--------------------
|
|
[BillboardsENG]
|
|
Billboard1 = "Please wait while Setup creates directories on the destination drive."
|
|
Billboard2 = "Please wait while Setup installs data into your registry."$(LF)$(LF)+
|
|
"Please be patient, this may take a few minutes."
|
|
|
|
;***************************************************************************
|
|
; DIALOGS
|
|
; -------
|
|
; the following sections contain the dialogs used to interact with the user.
|
|
; for each language supported there is a different dialog section.
|
|
;***************************************************************************
|
|
|
|
|
|
;-----------------------------------------------
|
|
; WELCOME DIALOG
|
|
;-----------------------------------------------
|
|
[WelcomeDlgENG]
|
|
DlgType = Info
|
|
DlgTemplate = WELCOME
|
|
Caption = $(SetupCaption)
|
|
|
|
DlgText = "Welcome to Setup."$(LF)$(LF)+
|
|
"This Setup program installs the "$(InstallTitle)" for the "+
|
|
"Microsoft Internet Information Service (IIS)"$(LF)$(LF)+
|
|
"To install this patch on your computer now, click Continue or press Enter."$(LF)$(LF)+
|
|
"To exit Setup without installing, click Exit or press F3."
|
|
|
|
Continue = &Continue
|
|
Help = &Help
|
|
Exit = E&xit
|
|
HelpContext = $(!IDH_DB_MSTWELCOME_INS)
|
|
|
|
;--------------------------------------------------------------
|
|
; SETUP DONE - RESTART DIALOG
|
|
;--------------------------------------------------------------
|
|
[SetupDoneDlgENG]
|
|
DlgType = "Info"
|
|
DlgTemplate = "RESTART"
|
|
Caption = $(SetupCaption)
|
|
DlgText = "The "$(InstallTitle)" is now installed."$(LF)$(LF)+
|
|
"If the Web Service (W3svc) was running you will now need to restart it."+
|
|
"This can be done from a command line with as NET START W3SVC or with "+
|
|
"the Internet Service Manager"$(LF)$(LF)+
|
|
"Please exit to Windows NT."
|
|
Windows = "Exit to &Windows"
|
|
|
|
;--------------------------------------------------------------
|
|
; SETUP NOT DONE - RESTART DIALOG
|
|
;--------------------------------------------------------------
|
|
[SetupNotDoneDlgENG]
|
|
DlgType = "Info"
|
|
DlgTemplate = "NONFATAL"
|
|
Caption = $(SetupCaption)
|
|
DlgText = "The "$(InstallTitle) "for "$(SetupCaption)" has "+
|
|
"not been installed. You will have to run setup again to " +
|
|
"reinstall the "$(InstallTitle) "."$(LF)$(LF)+
|
|
"Please exit back to Windows NT."
|
|
Windows = "Exit to &Windows"
|
|
|
|
;--------------------------------------------------------------
|
|
; SETUP NOT DONE - Root Perms not found DIALOG
|
|
;--------------------------------------------------------------
|
|
[RootPermsDlgENG]
|
|
DlgType = "MessageBox"
|
|
STF_MB_TITLE = "Fatal error: Microsoft Internet Information Service (IIS) Setup"
|
|
STF_MB_TEXT = "You must be logged in as ADMINISTRATOR to run this setup utility"
|
|
STF_MB_TYPE = 1
|
|
STF_MB_ICON = 3
|
|
STF_MB_DEF = 1
|
|
|
|
|
|
;**************************************************************************
|
|
; DLL LOAD and FREE
|
|
; the following section contain commands to load specific dll libraries and
|
|
; to free them
|
|
;**************************************************************************
|
|
|
|
;----------------------------------------------
|
|
; a) DETECT LIBRARY
|
|
;----------------------------------------------
|
|
[LoadSetupLibrary]
|
|
LoadLibrary "x" $(STF_CWDDIR)setupdll.dll LIBHANDLE
|
|
exit
|
|
|
|
[FreeSetupLibrary]
|
|
FreeLibrary $(LIBHANDLE)
|
|
exit
|
|
|
|
|
|
|
|
;**************************************************************************
|
|
; PROGRESS GUAGE VARIABLES
|
|
;**************************************************************************
|
|
|
|
[ProgressCopyENG]
|
|
ProCaption = $(SetupCaption)
|
|
ProCancel = "Cance&l"
|
|
ProCancelMsg = "The "$(InstallTitle) " is not correctly installed. Are you sure "+
|
|
"you want to cancel copying files?"
|
|
ProCancelCap = "Setup Message"
|
|
ProText1 = "Copying:"
|
|
ProText2 = "To:"
|
|
|
|
|
|
;**************************************************************************
|
|
; SHELL COMMANDS SCRIPT
|
|
;**************************************************************************
|
|
|
|
[Shell Commands]
|
|
|
|
;
|
|
; Initialize the app, by setting the caption and loading the support library
|
|
;
|
|
set TestCopy = 0
|
|
set TestReg = 0 ;-sc
|
|
set TestRegVerbose = 0
|
|
set-title $(SetupCaption)
|
|
set Exit_Code = $(!SETUP_ERROR_GENERAL)
|
|
install LoadSetupLibrary
|
|
|
|
StartWait
|
|
|
|
;
|
|
; read general constants
|
|
;
|
|
set-subst LF = "\n"
|
|
set-subst MQ = \047 ;047=' in octal meta-quote
|
|
set-subst DQ = \042 ;042=" in octal double-quote
|
|
read-syms GeneralConstants
|
|
|
|
;
|
|
; read the platform independent choices
|
|
;
|
|
read-syms LanguageID
|
|
read-syms ProcessorID
|
|
read-syms PlatformID
|
|
|
|
;
|
|
; read the default language and try to detect the language
|
|
;
|
|
read-syms LanguageVar
|
|
detect LanguageVar
|
|
|
|
;
|
|
; read and detect the processor we are working on
|
|
;
|
|
read-syms ProcessorVar
|
|
detect ProcessorVar
|
|
read-syms Strings$(!STF_LANGUAGE)
|
|
detect Strings$(!STF_LANGUAGE)
|
|
read-syms Billboards$(!STF_LANGUAGE)
|
|
|
|
;
|
|
; Check processor type, see if it is supported, if so what platform does it
|
|
; belong to.
|
|
;
|
|
ifstr(i) $(STF_PROCESSOR) == $(ProcessorID_I386)
|
|
set STF_PLATFORM = $(PlatformID_I386)
|
|
else-ifstr(i) $(STF_PROCESSOR) == $(ProcessorID_I486)
|
|
set STF_PLATFORM = $(PlatformID_I386)
|
|
else-ifstr(i) $(STF_PROCESSOR) == $(ProcessorID_I586)
|
|
set STF_PLATFORM = $(PlatformID_I386)
|
|
else-ifstr(i) $(STF_PROCESSOR) == $(ProcessorID_R4000)
|
|
set STF_PLATFORM = $(PlatformID_Mips)
|
|
else-ifstr(i) $(STF_PROCESSOR) == $(ProcessorID_Alpha)
|
|
set STF_PLATFORM = $(PlatformID_Alpha)
|
|
else-ifstr(i) $(STF_PROCESSOR) == $(ProcessorID_PPC601)
|
|
set STF_PLATFORM = $(PlatformID_ppc)
|
|
else-ifstr(i) $(STF_PROCESSOR) == $(ProcessorID_PPC603)
|
|
set STF_PLATFORM = $(PlatformID_ppc)
|
|
else-ifstr(i) $(STF_PROCESSOR) == $(ProcessorID_PPC604)
|
|
set STF_PLATFORM = $(PlatformID_ppc)
|
|
else-ifstr(i) $(STF_PROCESSOR) == $(ProcessorID_PPC620)
|
|
set STF_PLATFORM = $(PlatformID_ppc)
|
|
else
|
|
shell "" SetupMessage $(!STF_LANGUAGE) "FATAL" $(String1)
|
|
ui pop 1
|
|
goto setupnotdone
|
|
endif
|
|
|
|
read-syms RegistryConstants
|
|
|
|
;
|
|
; read the UI Variables and detect their setting on the current machine
|
|
;
|
|
read-syms UiVars
|
|
detect UiVars
|
|
|
|
read-syms Vars$(STF_PLATFORM)
|
|
read-syms VarsPlatformCommon
|
|
|
|
set WinHlpDir = $(WinDir)"\Help\"
|
|
|
|
; Expand env vars for temp and browser directorys
|
|
; LibraryProcedure SrcDir, $(!LIBHANDLE), ExpandSz *($(SrcDir), 4)
|
|
|
|
; set SrcDir = *($(SrcDir), 1)
|
|
|
|
LibraryProcedure ServerDir, $(!LIBHANDLE), ExpandSz $(ServerDir)
|
|
|
|
;Makesure all our paths have '\' at the end
|
|
LibraryProcedure STATUS, $(!LIBHANDLE), AppendBackSlash $(SrcDir)
|
|
ifstr(i) $(STATUS) != "ERROR"
|
|
set SrcDir = $(STATUS)
|
|
endif
|
|
|
|
LibraryProcedure STATUS, $(!LIBHANDLE), AppendBackSlash $(ServerDir)
|
|
ifstr(i) $(STATUS) != "ERROR"
|
|
set ServerDir = $(STATUS)
|
|
endif
|
|
|
|
LibraryProcedure STATUS, $(!LIBHANDLE), AppendBackSlash $(WinDir)
|
|
ifstr(i) $(STATUS) != "ERROR"
|
|
set WinDir = $(STATUS)
|
|
endif
|
|
|
|
LibraryProcedure STATUS, $(!LIBHANDLE), AppendBackSlash $(WinSysDir)
|
|
ifstr(i) $(STATUS) != "ERROR"
|
|
set WinSysDir = $(STATUS)
|
|
endif
|
|
|
|
;
|
|
; Call the library function to see if we have admin privileges
|
|
;
|
|
LibraryProcedure STATUS, $(!LIBHANDLE), TestAdmin
|
|
ifstr(i) $(STATUS) == "YES"
|
|
set UsrRootPerms = "SYSTEM"
|
|
else
|
|
set UsrRootPerms = "LOSER"
|
|
endif
|
|
|
|
ifstr(i) $(UsrRootPerms) != "SYSTEM"
|
|
read-syms RootPermsDlg$(STF_LANGUAGE)
|
|
ui start "RootPerms"
|
|
ifstr(i) $(DLGEVENT) == "OK"
|
|
ui pop 1
|
|
goto setupnotdone
|
|
else
|
|
goto setupnotdone
|
|
endif
|
|
endif
|
|
|
|
EndWait
|
|
|
|
welcome =+
|
|
read-syms WelcomeDlg$(STF_LANGUAGE)
|
|
ui start "WelcomeMe"
|
|
ifstr(i) $(DLGEVENT) == "CONTINUE"
|
|
ui pop 1
|
|
goto setdestination
|
|
else-ifstr(i) $(DLGEVENT) == "EXIT"
|
|
shell "" QueryUserQuit
|
|
ifstr(i) $($R1) == "OK"
|
|
ui pop 1
|
|
goto setupnotdone
|
|
else
|
|
goto welcome
|
|
endif
|
|
else
|
|
goto end
|
|
endif
|
|
|
|
setdestination =+
|
|
shell "" GetNTDest
|
|
ifstr(i) $($R0) == STATUS_SUCCESSFUL
|
|
set ServerDir = $($R1)
|
|
else
|
|
; If we fail this then the service is not installed.
|
|
shell "" SetupMessage $(!STF_LANGUAGE) "FATAL" $(NotInstalled)
|
|
goto setupnotdone
|
|
endif
|
|
|
|
set FileToCheck = $(ServerDir)\w3svc.dll
|
|
Debug-Output "SETUP.INF: checking existance of "$(FileToCheck)
|
|
LibraryProcedure STATUS,$(!LIBHANDLE), CheckFileExistance $(FileToCheck)
|
|
|
|
; if "old" file is present then just go and install this puppy.
|
|
ifstr(i) $(STATUS) == YES
|
|
goto setsource
|
|
else
|
|
shell "" DoAskPathEx $(ServerDir) $(String2) $(String6)
|
|
ifstr(i) $($R0) == STATUS_SUCCESSFUL
|
|
set ServerDir = $($R1)
|
|
else
|
|
;Debug-Output "SETUP.INF: User cancelled setting destination."
|
|
goto setupnotdone
|
|
endif
|
|
endif
|
|
|
|
|
|
LibraryProcedure IsFullPath $(!LIBHANDLE) +
|
|
CheckPathFullPathSpec $(ServerDir)
|
|
ifstr(i) $(IsFullPath) == "No"
|
|
shell "" SetupMessage $(!STF_LANGUAGE) NONFATAL $(String5)
|
|
ui pop 1
|
|
goto setdestination
|
|
endif
|
|
|
|
;check that directory exists
|
|
LibraryProcedure PathExists $(!LIBHANDLE) +
|
|
CheckFileExistance $(!ServerDir)
|
|
ifstr(i) $(PathExists) == "NO"
|
|
shell "" SetupMessage $(!STF_LANGUAGE) "WARNINGOK" $(!String14)$(!ServerDir)$(!String15)
|
|
ifstr(i) $($R1) == "YES"
|
|
install ICreateServerDir
|
|
else
|
|
goto setdestination
|
|
endif
|
|
endif
|
|
goto setsource
|
|
|
|
querysource =+
|
|
shell "" DoAskPathEx $(SrcDir) $(String3) $(String6)
|
|
ifint $($ShellCode) != $(!SHELL_CODE_OK)
|
|
;Debug-Output "SETUP.INF: shelling DoAskPathEx failed"
|
|
goto setupnotdone
|
|
endif
|
|
ifstr(i) $($R0) == STATUS_SUCCESSFUL
|
|
set SrcDir = $($R1)
|
|
else
|
|
;Debug-Output "SETUP.INF: User cancelled asking source."
|
|
goto setupnotdone
|
|
endif
|
|
|
|
setsource =+
|
|
set FileToCheck = $(SrcDir)w3svc.dll
|
|
Debug-Output "SETUP.INF: checking existance of "$(FileToCheck)
|
|
LibraryProcedure STATUS,$(!LIBHANDLE), CheckFileExistance $(FileToCheck)
|
|
ifstr(i) $(STATUS) == YES
|
|
goto copystuff
|
|
else
|
|
goto querysource
|
|
endif
|
|
|
|
copystuff = +
|
|
StartWait
|
|
shell "" PushBillboard STATUSDLG $(Billboard1)
|
|
ifint $(!TestCopy) != 1
|
|
install ICopyServerFiles
|
|
endif
|
|
shell "" PopBillboard
|
|
EndWait
|
|
Debug-Output "SETUP.INF: Copying files from "$(SrcDir)
|
|
Debug-Output "SETUP.INF: Copying files to "$(ServerDir)
|
|
|
|
finish = +
|
|
read-syms ProgressCopy$(STF_LANGUAGE)
|
|
install Install-All-Files-Now
|
|
ifstr(i) $(STF_INSTALL_OUTCOME) == "STF_SUCCESS"
|
|
goto setupdone
|
|
else
|
|
shell "" SetupMessage $(!STF_LANGUAGE) "FATAL" $(String4)
|
|
ui pop 1
|
|
goto setupnotdone
|
|
endif
|
|
|
|
setupdone=+
|
|
set Exit_Code = $(!SETUP_ERROR_SUCCESS)
|
|
read-syms SetupDoneDlg$(!STF_LANGUAGE)
|
|
EndWait
|
|
ui start "DoneWithThis"
|
|
ifstr(i) $(DLGEVENT) == "CONTINUE"
|
|
ui pop 1
|
|
goto end
|
|
else
|
|
goto end
|
|
endif
|
|
|
|
setupnotdone=+
|
|
read-syms SetupNotDoneDlg$(!STF_LANGUAGE)
|
|
EndWait
|
|
ui start "NotDoneMakingAMess"
|
|
ifstr(i) $(DLGEVENT) == "CONTINUE"
|
|
ui pop 1
|
|
goto end
|
|
else
|
|
goto end
|
|
endif
|
|
|
|
end = +
|
|
install FreeSetupLibrary
|
|
exit
|
|
|
|
|
|
;*****************************************************************
|
|
; *
|
|
; INSTALLATION SUPPORT ROUTINES *
|
|
; *
|
|
;*****************************************************************
|
|
[GetNTDest]
|
|
set Status = STATUS_SUCCESSFUL
|
|
read-syms RegistryConstants
|
|
|
|
set KeyName = "SYSTEM\CurrentControlSet\Services\W3svc\Parameters"
|
|
OpenRegKey $(!REG_H_LOCAL) "" $(KeyName) $(!REG_KEY_READ) KeyHandle
|
|
|
|
ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
|
|
set Status = $(!REG_ERROR_SUCCESS)
|
|
Debug-Output "REGISTRY.INF: Couldn't open windows nt software key for read access"
|
|
goto end_getntDest
|
|
endif
|
|
|
|
GetRegValue $(KeyHandle) "InstallPath" DestPathValue
|
|
ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
|
|
set Status = $(!REG_ERROR_SUCCESS)
|
|
CloseRegKey $(KeyHandle)
|
|
goto end_getntDest
|
|
endif
|
|
set NTDest = *($(DestPathValue), 4)
|
|
CloseRegKey $(KeyHandle)
|
|
|
|
end_getntDest = +
|
|
Return $(Status) $(NTDest)
|
|
|
|
;-----------------------------------------------------------------------
|
|
; ROUTINE: QueryUserQuit
|
|
;
|
|
; DESCRIPTION: This routine queries whether the user wants to quit setup
|
|
;
|
|
; INPUTS: None
|
|
;
|
|
; OUTPUTS: $R0: Status: STATUS_SUCCESSFUL |
|
|
; STATUS_FAILED
|
|
;
|
|
; $R1: UserAction: OK | CANCEL
|
|
;
|
|
;------------------------------------------------------------------------
|
|
[QueryUserQuit]
|
|
|
|
set Status = STATUS_FAILED
|
|
set UserAction = CANCEL
|
|
|
|
;
|
|
; read in quit message
|
|
;
|
|
read-syms ExitWarningDlg$(!STF_LANGUAGE)
|
|
ui start "ExitWarning"
|
|
ifstr(i) $(DLGEVENT) == "YES"
|
|
set Status = STATUS_SUCCESSFUL
|
|
set UserAction = "OK"
|
|
|
|
else-ifstr(i) $(DLGEVENT) == "NO"
|
|
set Status = STATUS_SUCCESSFUL
|
|
set UserAction = "CANCEL"
|
|
else
|
|
endif
|
|
|
|
fin_QueryUserQuit = +
|
|
Return $(Status) $(UserAction)
|
|
|
|
[ExitWarningDlgENG]
|
|
DlgType = "MessageBox"
|
|
STF_MB_TITLE = "Exit Microsoft Internet Information Service (IIS) Setup"
|
|
STF_MB_TEXT = "The .CMD/.BAT Patch is not completely installed."$(LF)$(LF)+
|
|
" Are you sure you want to exit Setup?"
|
|
STF_MB_TYPE = 3
|
|
STF_MB_ICON = 5
|
|
STF_MB_DEF = 1
|
|
|
|
|
|
;-----------------------------------------------------------------------
|
|
; ROUTINE: SetupMessage
|
|
;
|
|
; DESCRIPTION: Puts up a MessageBox
|
|
;
|
|
; INPUTS: $0 LanguageID
|
|
; $1 Message type
|
|
; $2 Message string
|
|
;
|
|
; OUTPUTS: $R0: Status: STATUS_SUCCESSFUL |
|
|
; STATUS_FAILED
|
|
;
|
|
; $R1: UserAction: OK | CANCEL
|
|
;
|
|
;------------------------------------------------------------------------
|
|
[SetupMessage]
|
|
set Status = STATUS_FAILED
|
|
set UserAction = "CANCEL"
|
|
set DlgText = $($2)
|
|
ifstr(i) $($1) == "WARNING"
|
|
read-syms WarningDlg$($0)
|
|
else-ifstr(i) $($1) == "FATAL"
|
|
read-syms FatalDlg$($0)
|
|
else-ifstr(i) $($1) == "NONFATAL"
|
|
read-syms NonfatalDlg$($0)
|
|
else-ifstr(i) $($1) == "STATUS"
|
|
read-syms StatusDlg$($0)
|
|
else-ifstr(i) $($1) == "WARNINGOK"
|
|
read-syms WarningOKDlg$($0)
|
|
else
|
|
goto finish_SetupMessage
|
|
endif
|
|
ui start "SetupMessage"
|
|
ifstr(i) $(DLGEVENT) == "OK"
|
|
set Status = STATUS_SUCCESSFUL
|
|
set UserAction = $(DLGEVENT)
|
|
else-ifstr(i) $(DLGEVENT) == "CANCEL"
|
|
set Status = STATUS_SUCCESSFUL
|
|
set UserAction = $(DLGEVENT)
|
|
else-ifstr(i) $(DLGEVENT) == "YES"
|
|
set Status = STATUS_SUCCESSFUL
|
|
set UserAction = $(DLGEVENT)
|
|
else-ifstr(i) $(DLGEVENT) == "NO"
|
|
set Status = STATUS_SUCCESSFUL
|
|
set UserAction = $(DLGEVENT)
|
|
else
|
|
endif
|
|
finish_SetupMessage = +
|
|
Return $(Status) $(UserAction)
|
|
end
|
|
[WarningDlgENG]
|
|
STF_MB_TITLE = "Setup Message"
|
|
DlgType = "MessageBox"
|
|
STF_MB_TEXT = $(DlgText)
|
|
STF_MB_TYPE = 2
|
|
STF_MB_ICON = 5
|
|
STF_MB_DEF = 2
|
|
[FatalDlgENG]
|
|
STF_MB_TITLE = "Setup Message"
|
|
DlgType = "MessageBox"
|
|
STF_MB_TEXT = $(DlgText)
|
|
STF_MB_TYPE = 1
|
|
STF_MB_ICON = 3
|
|
STF_MB_DEF = 1
|
|
[NonfatalDlgENG]
|
|
STF_MB_TITLE = "Setup Message"
|
|
DlgType = "MessageBox"
|
|
STF_MB_TEXT = $(DlgText)
|
|
STF_MB_TYPE = 1
|
|
STF_MB_ICON = 5
|
|
STF_MB_DEF = 1
|
|
[StatusDlgENG]
|
|
STF_MB_TITLE = "Setup Message"
|
|
DlgType = "MessageBox"
|
|
STF_MB_TEXT = $(DlgText)
|
|
STF_MB_TYPE = 1
|
|
STF_MB_ICON = 2
|
|
STF_MB_DEF = 1
|
|
[WarningOKDlgENG]
|
|
DlgType = "MessageBox"
|
|
STF_MB_TITLE = "Setup Message"
|
|
STF_MB_TEXT = $(DlgText)
|
|
STF_MB_TYPE = 3
|
|
STF_MB_ICON = 5
|
|
STF_MB_DEF = 1
|
|
|
|
;-----------------------------------------------------------------------
|
|
; ROUTINE: DoAskPathEx
|
|
;
|
|
; DESCRIPTION: Puts up an EDIT box to prompt for a path
|
|
;
|
|
; INPUTS: $0 LanguageID
|
|
; $1 Message type
|
|
; $2 Message string
|
|
; $3 Message error
|
|
;
|
|
; OUTPUTS: $R0: Status: STATUS_SUCCESSFUL |
|
|
; STATUS_FAILED
|
|
;
|
|
; $R1: UserAction: OK | CANCEL
|
|
;
|
|
;------------------------------------------------------------------------
|
|
[DoAskPathEx]
|
|
set Status = STATUS_FAILED
|
|
set Src = $($0)
|
|
askpath = +
|
|
read-syms DisketteDlg$(!STF_LANGUAGE)
|
|
ui start "Diskette"
|
|
ifstr(i) $(DLGEVENT) == "CONTINUE"
|
|
LibraryProcedure IsFullPath, $(!LIBHANDLE), CheckPathFullPathSpec $(EditTextOut)
|
|
ifstr(i) $(IsFullPath) == "NO"
|
|
StartWait
|
|
LibraryProcedure STATUS, $(!LIBHANDLE), ProcessForUNC $(EditTextOut)
|
|
EndWait
|
|
ifstr(i) $(STATUS) == "ERROR"
|
|
shell "" SetupMessage $(!STF_LANGUAGE) "NONFATAL" $($3)
|
|
goto askpath
|
|
else-ifstr(i) $(STATUS) == "NOT-UNC"
|
|
shell "" SetupMessage $(!STF_LANGUAGE) "NONFATAL" $($3)
|
|
goto askpath
|
|
else-ifstr(i) $(STATUS) == "UNC-FAILCONNECT"
|
|
shell "" SetupMessage $(!STF_LANGUAGE) "NONFATAL" $($3)
|
|
goto askpath
|
|
else
|
|
set Src = $(STATUS)
|
|
endif
|
|
else
|
|
set Src = $(EditTextOut)
|
|
endif
|
|
ui pop 1
|
|
LibraryProcedure STATUS, $(!LIBHANDLE), AppendBackSlash $(Src)
|
|
ifstr(i) $(STATUS) == "ERROR"
|
|
goto finish_DoAskPath
|
|
else
|
|
set Src = $(STATUS)
|
|
set Status = STATUS_SUCCESSFUL
|
|
goto finish_DoAskPath
|
|
endif
|
|
else-ifstr(i) $(DLGEVENT) == "BACK"
|
|
ui pop 1
|
|
set Status = STATUS_USERCANCEL
|
|
goto finish_DoAskPath
|
|
else
|
|
ui pop 1
|
|
goto finish_DoAskPath
|
|
endif
|
|
finish_DoAskPath = +
|
|
Return $(Status) $(Src) $(EditTextOut)
|
|
|
|
[DisketteDlgENG]
|
|
Caption = "Internet Explorer Setup"
|
|
Continue = "Continue"
|
|
Cancel = "Cancel"
|
|
DlgType = "Edit"
|
|
DlgTemplate = "DISKETTE"
|
|
DlgText = $($1)
|
|
Edit1Label = ""
|
|
EditTextIn = $(Src)
|
|
EditFocus = "ALL"
|
|
|
|
|
|
;----------------------------------------------
|
|
; Billboard Helper functions
|
|
;----------------------------------------------
|
|
[PushBillboard]
|
|
read-syms BillboardDlg$(!STF_LANGUAGE)
|
|
ui start "Billboard"
|
|
Return
|
|
[PopBillboard]
|
|
ui pop 1
|
|
Return
|
|
[BillboardDlgENG]
|
|
DlgType = Billboard
|
|
DlgTemplate = $($0)
|
|
TextFields = {$($1)}
|
|
|
|
[ICopyServerFiles]
|
|
set STF_VITAL = ""
|
|
AddSectionFilesToCopyList Files-Server $(SrcDir) $(!ServerDir)
|
|
exit
|
|
|
|
[Install-All-Files-Now]
|
|
CopyFilesInCopyList
|
|
exit
|
|
|
|
[ICreateServerDir]
|
|
split-string $(!ServerDir) "\" _DirSplit
|
|
ForListDo $(_DirSplit)
|
|
set _TmpDir = $(_TmpDir)$($)
|
|
ifstr(i) $($) != "\"
|
|
CreateDir $(_TmpDir)
|
|
endif
|
|
EndForListDo
|
|
exit
|
|
|
|
|
|
;
|
|
; Server file lists...
|
|
;
|
|
|
|
[Files-Server]
|
|
1, W3SVC.DLL, NOLOG
|
|
|
|
|
|
|