;***********************************************************************
; 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



