home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1996 May / PCW596.iso / wtest / microsft / msiisp~2.exe / RCDATA / CABINET / install.inf < prev    next >
INI File  |  1996-03-01  |  27KB  |  918 lines

  1. ;***********************************************************************
  2. ; IE / NT install script
  3. ; ----------------------
  4. ;
  5. ;  This must be executed by typing:
  6. ;    "%SysDir%\system32\setup /f /i %SRC%\setup.inf /t SrcDir = %SRC%"
  7. ;
  8. ;   Please note the %SRC% is the path to this file.
  9. ;
  10. ;
  11. ;  Directory layout:
  12. ;    These files must exist:
  13. ;
  14. ;    ./SETUPIE.BAT            the shell script that calls this file
  15. ;    ./SETUPIE.INF            this file (of course)
  16. ;
  17. ;***********************************************************************
  18.  
  19. ;***********************************************************************
  20. ; SOURCE MEDIA DESCRIPTION
  21. ; ------------------------
  22. ;  This is only here because we must have _something_ in this slot...
  23. ;
  24. ;***********************************************************************
  25. [Source Media Descriptions]
  26.     1 = "Disk containing Microsoft Internet Information Service Patch files."
  27.  
  28.  
  29.  
  30. ;***********************************************************************
  31. ; CONSTANTS FOR USING DIALOGS
  32. ;***********************************************************************
  33. [GeneralConstants]
  34.  
  35.     ;
  36.     ; Constants to support the use of radio button dialogs
  37.     ;
  38.     Radio1  = "1"
  39.     Radio2  = "2"
  40.     Radio3  = "3"
  41.     Radio4  = "4"
  42.     Radio5  = "5"
  43.     Radio6  = "6"
  44.     Radio7  = "7"
  45.     Radio8  = "8"
  46.     Radio9  = "9"
  47.  
  48.     ;
  49.     ; Constants to support the use of checkbox dialogs
  50.     Chosen    = "ON"
  51.     NotChosen = "OFF"
  52.  
  53.  
  54. [RegistryConstants]
  55.     MaskAllAccess = 33554432
  56.     NoTitle       = 0
  57.     RegLastError  = $(!REG_ERROR_SUCCESS)
  58.     REG_VT_BINARY = 3   ;define this ourselves as it is not defd for us
  59.  
  60.  
  61. ;************************************************************************
  62. ; CONFIGURATION CHOICES
  63. ; ---------------------
  64. ; the sections below contain the different choices supported for
  65. ; the configuration items shown.  an id section establishes the
  66. ; language independent IDs supported by nt setup.  for each language
  67. ; supported a text section displays the text used for the different
  68. ; choices
  69. ;************************************************************************
  70.  
  71. ;********************************
  72. ; PLATFORM INDEPENDENT CHOICES
  73. ;********************************
  74. ;----------------------------------------------------
  75. ; LANGUAGE CHOICES-- this is all you get,,,
  76. ;----------------------------------------------------
  77.  
  78. [LanguageID]
  79.     LANGID_ENG = ENG
  80.  
  81. ;----------------------------------------------------
  82. ; PROCESSOR CHOICES
  83. ;----------------------------------------------------
  84. [ProcessorID]
  85.     ProcessorID_I386  = I386
  86.     ProcessorID_I486  = I486
  87.     ProcessorID_I586  = I586
  88.     ProcessorID_R4000 = R4000
  89.     ProcessorID_Alpha = Alpha_AXP
  90.     ProcessorID_PPC601 = PPC601
  91.     ProcessorID_PPC603 = PPC603
  92.     ProcessorID_PPC604 = PPC604
  93.     ProcessorID_PPC620 = PPC620
  94.  
  95. ;----------------------------------------------------
  96. ; PLATFORM CHOICES
  97. ;----------------------------------------------------
  98. [PlatformID]
  99.     PlatformID_I386 = I386
  100.     PlatformID_Mips = Mips
  101.     PlatformID_Alpha = Alpha
  102.     PlatformID_ppc = ppc
  103.  
  104. ;**************************************************************
  105. ;  UI VARIABLES
  106. ;**************************************************************
  107.  
  108. [ProcessorVar]
  109.  
  110.     STF_PROCESSOR = "" ? $(LIBHANDLE) GetProcessor
  111.     STF_PLATFORM  = ""
  112.  
  113. [LocaleVar]
  114.  
  115. [LanguageVar]
  116.     ;
  117.     ; Language to Use For interaction with user
  118.     ;
  119.     STF_LANGUAGE       = "" ? $(LIBHANDLE) GetLanguage
  120.  
  121.  
  122. [UiVars]
  123.     ;
  124.     ; Version Information
  125.     ;
  126.     BuildVersion   = "05-95"
  127.     ;ascii for Quote in octal
  128.  
  129.  
  130.     ;
  131.     ; Destination Particulars
  132.     ;
  133.     ServerDir = "%SystemDrive%\inetsrv\server"
  134.     WinDir = "" ? $(!LIBHANDLE) GetWindowsNtDir
  135.     WinSysDir = "" ? $(!LIBHANDLE) GetWindowsNtSysDir
  136.  
  137.     ;
  138.     ; Source location
  139.     ;
  140. ;    SrcDir = "" ? $(!LIBHANDLE) GetEnvVar USER Temp
  141.  
  142.     UsrRootPerms = "UNKNOWN"
  143.  
  144.     ; Don't EVER change these!
  145.     ;
  146.     ; Windows NT Directory
  147.     ;
  148.  
  149.     STF_WINDOWSPATH    = "" ? $(!LIBHANDLE) GetWindowsNtDir
  150.     STF_WINDOWSSYSPATH = "" ? $(!LIBHANDLE) GetWindowsNtSysDir
  151.     STF_WINDOWSVERSION = "" ? $(!LIBHANDLE) GetWindowsNtVersion
  152.  
  153.     REG_VT_BINARY = 3   ;define this ourselves as it is not defd for us
  154.  
  155.     ;
  156.     ; Installation mode
  157.     ;
  158.  
  159.     MinInteract         = $(Radio1)
  160.     MaxInteract         = $(Radio2)
  161.     STF_INSTALL_MODE    = $(MinInteract)
  162.  
  163.     ;
  164.     ; Mstools Setup Help IDs
  165.     ;
  166.  
  167.     !IDH_DB_TOOLSWELCOME_INS   = 3000
  168.     !IDH_DB_MSTINSTALLMODE_INS = 3010
  169.     !IDH_DB_MSTDEST_INS        = 3020
  170.     !IDH_DB_MSTOPTIONS_INS     = 3030
  171.  
  172.  
  173. [EnvironmentVars]
  174.     ;
  175.     ; user environment variables in the current user's profile
  176.     ; that we are concerned about
  177.  
  178.     PathEnvVar     = {} ? $(LIBHANDLE) GetEnvVar $(PRIVILEGES) Path
  179.     InitEnvVar     = {} ? $(LIBHANDLE) GetEnvVar $(PRIVILEGES) init
  180.  
  181.  
  182. [VarsPlatformCommon]
  183.     ;
  184.     ; Installation options
  185.     ;
  186.  
  187.     ;
  188.     ; Options to disable
  189.     ;
  190.     DisableList = {}
  191.  
  192.  
  193. [VarsI386]
  194.     ;
  195.  
  196. [VarsMips]
  197.     ;
  198.  
  199. [VarsAlpha]
  200.     ;
  201.  
  202. [Varsppc]
  203.     ;
  204.  
  205. [StringsENG]
  206.     SetupCaption = "Microsoft Internet Information Service (IIS)"
  207.     InstallTitle = ".CMD/.BAT Patch"
  208.     NotInstalled = "The Microsoft Internet Information Service (IIS) Web Server is not installed."$(!LF)$(!LF)+
  209.                    "Setup can not continue."
  210.     
  211.     String1 = "Setup cannot install on the current processor."$(!LF)$(!LF)+
  212.           "Cannot proceed with install."
  213.  
  214.     String2 = "Please verify the full path of the directory into which "+
  215.            "the Microsoft Internet Information Service Patch should be installed."$(!LF)+
  216.            "Then choose Continue."
  217.  
  218.     String3 = "Microsoft Internet Information Service Patch are files not found."$(!LF)+
  219.       "Please enter the directory path to the Patch setup files."
  220.  
  221.     String4 = "Setup couldn't copy the Microsoft Internet Information Service Patch files. "$(!LF)$(!LF)+
  222.           "Cannot proceed with install."
  223.  
  224.     String5 = "'"$(EditTextOut)"' is not a valid path!  Please try again."
  225.  
  226.     String6 = "Error processing path entered.  Please reenter the path."
  227.  
  228.     String7 = ""
  229.  
  230.     String8  = "Size required for full installation is: "
  231.     String9  = "Minimum size required for custom installation is: "
  232.     String10 = " MB.  "
  233.     String11 = "No drive was found with this much space."$(!LF)$(!LF)+
  234.         "Cannot proceed with install."
  235.  
  236.     String12 = "The Microsoft Internet Information Service Patch is not completely installed."$(LF)$(LF)+
  237.         "  Are you sure you want to exit Setup?"
  238.  
  239.     String13 = "Setup needs a full path specification of your destination.  Please "+
  240.         "reenter a new path.  An example of af full path is: "
  241.  
  242.     String14 = "The following directory does not exist."$(LF)
  243.  
  244.     String15 = $(LF)$(LF)"Would you like to create it?"
  245.     String16 = ""
  246.     String18 = ""
  247.  
  248.  
  249. ;--------------------
  250. ; BILLBOARD MESSAGES
  251. ;--------------------
  252. [BillboardsENG]
  253. Billboard1 = "Please wait while Setup creates directories on the destination drive."
  254. Billboard2 = "Please wait while Setup installs data into your registry."$(LF)$(LF)+
  255.         "Please be patient, this may take a few minutes."
  256.  
  257. ;***************************************************************************
  258. ; DIALOGS
  259. ; -------
  260. ; the following sections contain the dialogs used to interact with the user.
  261. ; for each language supported there is a different dialog section.
  262. ;***************************************************************************
  263.  
  264.  
  265. ;-----------------------------------------------
  266. ; WELCOME DIALOG
  267. ;-----------------------------------------------
  268. [WelcomeDlgENG]
  269.     DlgType     = Info
  270.     DlgTemplate = WELCOME
  271.     Caption     = $(SetupCaption)
  272.  
  273.     DlgText     = "Welcome to Setup."$(LF)$(LF)+
  274.     "This Setup program installs the "$(InstallTitle)" for the "+
  275.     "Microsoft Internet Information Service (IIS)"$(LF)$(LF)+
  276.     "To install this patch on your computer now, click Continue or press Enter."$(LF)$(LF)+
  277.     "To exit Setup without installing, click Exit or press F3."
  278.  
  279.     Continue     = &Continue
  280.     Help         = &Help
  281.     Exit         = E&xit
  282.     HelpContext  = $(!IDH_DB_MSTWELCOME_INS)
  283.  
  284. ;--------------------------------------------------------------
  285. ; SETUP DONE - RESTART DIALOG
  286. ;--------------------------------------------------------------
  287. [SetupDoneDlgENG]
  288.     DlgType     = "Info"
  289.     DlgTemplate = "RESTART"
  290.     Caption     = $(SetupCaption)
  291.     DlgText     = "Installation was successful.  "+
  292.     "If the WWW Service was running you will need to restart it with a "+
  293.     "NET START W3SVC or with the IIS Service Manager. First refresh the IIS "+
  294.     "Service Manager by selecting View, Refresh.  To restart the service "+
  295.     "highlight WWW, select Properties, Start Service." $(LF)$(LF)+
  296.     "Please exit to Windows NT."
  297.    Windows     = "Exit to &Windows"
  298.  
  299. ;--------------------------------------------------------------
  300. ; SETUP NOT DONE - RESTART DIALOG
  301. ;--------------------------------------------------------------
  302. [SetupNotDoneDlgENG]
  303.     DlgType     = "Info"
  304.     DlgTemplate = "NONFATAL"
  305.     Caption     = $(SetupCaption)
  306.     DlgText     = "The "$(InstallTitle) "for "$(SetupCaption)" has "+
  307.           "not been installed. You will have to run setup again to " +
  308.           "reinstall the "$(InstallTitle) "."$(LF)$(LF)+
  309.           "Please exit back to Windows NT."
  310.     Windows     = "Exit to &Windows"
  311.  
  312. ;--------------------------------------------------------------
  313. ; SETUP NOT DONE - Root Perms not found DIALOG
  314. ;--------------------------------------------------------------
  315. [RootPermsDlgENG]
  316.     DlgType      = "MessageBox"
  317.     STF_MB_TITLE = "Fatal error: Microsoft Internet Information Service (IIS) Setup"
  318.     STF_MB_TEXT  = "You must be logged in as ADMINISTRATOR to run this setup utility"
  319.     STF_MB_TYPE  = 1
  320.     STF_MB_ICON  = 3
  321.     STF_MB_DEF   = 1
  322.  
  323.  
  324. ;**************************************************************************
  325. ; DLL LOAD and FREE
  326. ; the following section contain commands to load specific dll libraries and
  327. ; to free them
  328. ;**************************************************************************
  329.  
  330. ;----------------------------------------------
  331. ; a) DETECT LIBRARY
  332. ;----------------------------------------------
  333. [LoadSetupLibrary]
  334.     LoadLibrary "x" $(STF_CWDDIR)setupdll.dll LIBHANDLE
  335.     exit
  336.  
  337. [FreeSetupLibrary]
  338.     FreeLibrary $(LIBHANDLE)
  339.     exit
  340.  
  341.  
  342.  
  343. ;**************************************************************************
  344. ; PROGRESS GUAGE VARIABLES
  345. ;**************************************************************************
  346.  
  347. [ProgressCopyENG]
  348.     ProCaption   = $(SetupCaption)
  349.     ProCancel    = "Cance&l"
  350.     ProCancelMsg = "The "$(InstallTitle) " is not correctly installed.  Are you sure "+
  351.            "you want to cancel copying files?"
  352.     ProCancelCap = "Setup Message"
  353.     ProText1     = "Copying:"
  354.     ProText2     = "To:"
  355.  
  356.  
  357. ;**************************************************************************
  358. ; SHELL COMMANDS SCRIPT
  359. ;**************************************************************************
  360.  
  361. [Shell Commands]
  362.  
  363.     ;
  364.     ; Initialize the app, by setting the caption and loading the support library
  365.     ;
  366.     set TestCopy = 0
  367.     set TestReg  = 0    ;-sc
  368.     set TestRegVerbose = 0
  369.     set-title $(SetupCaption)
  370.     set Exit_Code = $(!SETUP_ERROR_GENERAL)
  371.     install   LoadSetupLibrary
  372.  
  373.     StartWait
  374.  
  375.     ;
  376.     ; read general constants
  377.     ;
  378.     set-subst LF = "\n"
  379.     set-subst MQ = \047   ;047=' in octal   meta-quote 
  380.     set-subst DQ = \042   ;042=" in octal double-quote 
  381.     read-syms GeneralConstants
  382.  
  383.     ;
  384.     ; read the platform independent choices
  385.     ;
  386.     read-syms LanguageID
  387.     read-syms ProcessorID
  388.     read-syms PlatformID
  389.  
  390.     ;
  391.     ; read the default language and try to detect the language
  392.     ;
  393.     read-syms LanguageVar
  394.     detect    LanguageVar
  395.  
  396.     ;
  397.     ; read and detect the processor we are working on
  398.     ;
  399.     read-syms ProcessorVar
  400.     detect    ProcessorVar
  401.     read-syms Strings$(!STF_LANGUAGE)
  402.     detect    Strings$(!STF_LANGUAGE)
  403.     read-syms Billboards$(!STF_LANGUAGE)
  404.  
  405.     ;
  406.     ; Check processor type, see if it is supported, if so what platform does it
  407.     ; belong to.
  408.     ;
  409.     ifstr(i) $(STF_PROCESSOR) == $(ProcessorID_I386)
  410.         set STF_PLATFORM = $(PlatformID_I386)
  411.     else-ifstr(i) $(STF_PROCESSOR) == $(ProcessorID_I486)
  412.         set STF_PLATFORM = $(PlatformID_I386)
  413.     else-ifstr(i) $(STF_PROCESSOR) == $(ProcessorID_I586)
  414.         set STF_PLATFORM = $(PlatformID_I386)
  415.     else-ifstr(i) $(STF_PROCESSOR) == $(ProcessorID_R4000)
  416.         set STF_PLATFORM = $(PlatformID_Mips)
  417.     else-ifstr(i) $(STF_PROCESSOR) == $(ProcessorID_Alpha)
  418.         set STF_PLATFORM = $(PlatformID_Alpha)
  419.     else-ifstr(i) $(STF_PROCESSOR) == $(ProcessorID_PPC601)
  420.         set STF_PLATFORM = $(PlatformID_ppc)
  421.     else-ifstr(i) $(STF_PROCESSOR) == $(ProcessorID_PPC603)
  422.         set STF_PLATFORM = $(PlatformID_ppc)
  423.     else-ifstr(i) $(STF_PROCESSOR) == $(ProcessorID_PPC604)
  424.         set STF_PLATFORM = $(PlatformID_ppc)
  425.     else-ifstr(i) $(STF_PROCESSOR) == $(ProcessorID_PPC620)
  426.         set STF_PLATFORM = $(PlatformID_ppc)
  427.     else
  428.         shell "" SetupMessage $(!STF_LANGUAGE) "FATAL" $(String1)
  429.         ui pop 1
  430.         goto setupnotdone
  431.     endif
  432.  
  433.     read-syms  RegistryConstants
  434.  
  435.     ;
  436.     ; read the UI Variables and detect their setting on the current machine
  437.     ;
  438.     read-syms UiVars
  439.     detect    UiVars
  440.  
  441.     read-syms Vars$(STF_PLATFORM)
  442.     read-syms VarsPlatformCommon
  443.  
  444.     set WinHlpDir = $(WinDir)"\Help\"
  445.  
  446.     ; Expand env vars for temp and browser directorys
  447. ;   LibraryProcedure SrcDir, $(!LIBHANDLE), ExpandSz *($(SrcDir), 4)
  448.     
  449. ;    set SrcDir = *($(SrcDir), 1)
  450.  
  451.     LibraryProcedure ServerDir, $(!LIBHANDLE), ExpandSz $(ServerDir)
  452.  
  453.     ;Makesure all our paths have '\' at the end
  454.     LibraryProcedure STATUS, $(!LIBHANDLE), AppendBackSlash $(SrcDir)
  455.     ifstr(i) $(STATUS) != "ERROR"
  456.         set SrcDir = $(STATUS)
  457.     endif
  458.  
  459.     LibraryProcedure STATUS, $(!LIBHANDLE), AppendBackSlash $(ServerDir)
  460.     ifstr(i) $(STATUS) != "ERROR"
  461.         set ServerDir = $(STATUS)
  462.     endif
  463.  
  464.     LibraryProcedure STATUS, $(!LIBHANDLE), AppendBackSlash $(WinDir)
  465.     ifstr(i) $(STATUS) != "ERROR"
  466.         set WinDir = $(STATUS)
  467.     endif
  468.  
  469.     LibraryProcedure STATUS, $(!LIBHANDLE), AppendBackSlash $(WinSysDir)
  470.     ifstr(i) $(STATUS) != "ERROR"
  471.         set WinSysDir = $(STATUS)
  472.     endif
  473.  
  474.     ;
  475.     ; Call the library function to see if we have admin privileges
  476.     ;
  477.     LibraryProcedure STATUS, $(!LIBHANDLE), TestAdmin
  478.     ifstr(i) $(STATUS) == "YES"
  479.         set UsrRootPerms = "SYSTEM"
  480.     else
  481.         set UsrRootPerms = "LOSER"
  482.     endif
  483.  
  484.     ifstr(i) $(UsrRootPerms) != "SYSTEM"
  485.         read-syms RootPermsDlg$(STF_LANGUAGE)
  486.         ui start "RootPerms"
  487.         ifstr(i) $(DLGEVENT) == "OK"
  488.            ui pop 1
  489.            goto setupnotdone
  490.         else
  491.            goto setupnotdone
  492.         endif
  493.     endif
  494.  
  495.     EndWait
  496.  
  497. welcome =+
  498.     read-syms WelcomeDlg$(STF_LANGUAGE)
  499.     ui start "WelcomeMe"
  500.     ifstr(i) $(DLGEVENT) == "CONTINUE"
  501.     ui pop 1
  502.     goto setdestination
  503.     else-ifstr(i) $(DLGEVENT) == "EXIT"
  504.        shell "" QueryUserQuit
  505.        ifstr(i) $($R1) == "OK"
  506.       ui pop 1
  507.       goto setupnotdone
  508.        else
  509.       goto welcome
  510.        endif
  511.     else
  512.        goto end
  513.     endif
  514.  
  515. setdestination =+
  516.     shell "" GetNTDest
  517.     ifstr(i) $($R0) == STATUS_SUCCESSFUL
  518.         set ServerDir = $($R1)
  519.     else
  520.         ; If we fail this then the service is not installed.
  521.         shell "" SetupMessage $(!STF_LANGUAGE) "FATAL" $(NotInstalled)
  522.         goto setupnotdone
  523.     endif
  524.  
  525.     set FileToCheck = $(ServerDir)\w3svc.dll
  526.     Debug-Output "SETUP.INF: checking existance of "$(FileToCheck)
  527.     LibraryProcedure STATUS,$(!LIBHANDLE), CheckFileExistance $(FileToCheck)
  528.  
  529.     ; if "old" file is present then just go and install this puppy.
  530.     ifstr(i) $(STATUS) == YES
  531.         goto setsource
  532.     else
  533.         shell "" DoAskPathEx $(ServerDir) $(String2) $(String6)
  534.         ifstr(i) $($R0) == STATUS_SUCCESSFUL
  535.             set ServerDir = $($R1)
  536.         else
  537.             ;Debug-Output "SETUP.INF: User cancelled setting destination."
  538.             goto setupnotdone
  539.         endif
  540.     endif
  541.  
  542.  
  543.     LibraryProcedure IsFullPath $(!LIBHANDLE) + 
  544.                 CheckPathFullPathSpec $(ServerDir)
  545.     ifstr(i) $(IsFullPath) == "No"
  546.       shell "" SetupMessage $(!STF_LANGUAGE) NONFATAL $(String5)
  547.       ui pop 1
  548.       goto setdestination
  549.     endif
  550.  
  551.     ;check that directory exists
  552.     LibraryProcedure PathExists $(!LIBHANDLE) +
  553.               CheckFileExistance $(!ServerDir)
  554.     ifstr(i) $(PathExists) == "NO"
  555.         shell "" SetupMessage $(!STF_LANGUAGE) "WARNINGOK" $(!String14)$(!ServerDir)$(!String15)
  556.         ifstr(i) $($R1) == "YES"
  557.             install ICreateServerDir
  558.         else
  559.             goto setdestination
  560.         endif
  561.     endif
  562.     goto setsource
  563.  
  564. querysource =+
  565.     shell "" DoAskPathEx $(SrcDir) $(String3) $(String6)
  566.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  567.         ;Debug-Output "SETUP.INF: shelling DoAskPathEx failed"
  568.         goto setupnotdone
  569.     endif
  570.     ifstr(i) $($R0) == STATUS_SUCCESSFUL
  571.         set SrcDir = $($R1)
  572.     else
  573.         ;Debug-Output "SETUP.INF: User cancelled asking source."
  574.         goto setupnotdone
  575.     endif
  576.  
  577. setsource =+
  578.     set FileToCheck = $(SrcDir)w3svc.dll
  579.     Debug-Output "SETUP.INF: checking existance of "$(FileToCheck)
  580.     LibraryProcedure STATUS,$(!LIBHANDLE), CheckFileExistance $(FileToCheck)
  581.     ifstr(i) $(STATUS) == YES
  582.        goto copystuff
  583.     else
  584.        goto querysource
  585.     endif
  586.  
  587. copystuff = +
  588.     StartWait
  589.     shell "" PushBillboard STATUSDLG $(Billboard1)
  590.     ifint $(!TestCopy) != 1
  591.         install ICopyServerFiles
  592.     endif
  593.     shell "" PopBillboard
  594.     EndWait
  595.     Debug-Output "SETUP.INF: Copying files from "$(SrcDir)
  596.     Debug-Output "SETUP.INF: Copying files to   "$(ServerDir)
  597.  
  598. finish = +
  599.     read-syms ProgressCopy$(STF_LANGUAGE)
  600.     install Install-All-Files-Now
  601.     ifstr(i) $(STF_INSTALL_OUTCOME) == "STF_SUCCESS"
  602.         goto setupdone
  603.     else
  604.         shell "" SetupMessage $(!STF_LANGUAGE) "FATAL" $(String4)
  605.         ui pop 1
  606.         goto setupnotdone
  607.     endif
  608.  
  609. setupdone=+
  610.     set Exit_Code = $(!SETUP_ERROR_SUCCESS)
  611.     read-syms SetupDoneDlg$(!STF_LANGUAGE)
  612.     EndWait
  613.     ui start "DoneWithThis"
  614.     ifstr(i) $(DLGEVENT) == "CONTINUE"
  615.       ui pop 1
  616.       goto end
  617.     else
  618.       goto end
  619.     endif
  620.  
  621. setupnotdone=+
  622.     read-syms SetupNotDoneDlg$(!STF_LANGUAGE)
  623.     EndWait
  624.     ui start "NotDoneMakingAMess"
  625.     ifstr(i) $(DLGEVENT) == "CONTINUE"
  626.       ui pop 1
  627.       goto end
  628.     else
  629.       goto end
  630.     endif
  631.  
  632. end = +
  633.     install   FreeSetupLibrary
  634.     exit
  635.  
  636.  
  637. ;*****************************************************************
  638. ;                                                                *
  639. ;         INSTALLATION SUPPORT ROUTINES                          *
  640. ;                                                                *
  641. ;*****************************************************************
  642. [GetNTDest]
  643.     set Status = STATUS_SUCCESSFUL
  644.     read-syms RegistryConstants
  645.  
  646.     set KeyName = "SYSTEM\CurrentControlSet\Services\W3svc\Parameters"
  647.     OpenRegKey $(!REG_H_LOCAL) "" $(KeyName) $(!REG_KEY_READ) KeyHandle
  648.  
  649.     ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  650.         set Status = $(!REG_ERROR_SUCCESS)
  651.         Debug-Output "REGISTRY.INF: Couldn't open windows nt software key for read access"
  652.         goto end_getntDest
  653.     endif
  654.     
  655.     GetRegValue $(KeyHandle) "InstallPath" DestPathValue
  656.     ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  657.         set Status = $(!REG_ERROR_SUCCESS)
  658.         CloseRegKey $(KeyHandle)
  659.         goto end_getntDest
  660.     endif
  661.     set NTDest =  *($(DestPathValue), 4)
  662.     CloseRegKey $(KeyHandle)
  663.  
  664. end_getntDest = +
  665.     Return $(Status) $(NTDest)
  666.  
  667. ;-----------------------------------------------------------------------
  668. ; ROUTINE:      QueryUserQuit
  669. ;
  670. ; DESCRIPTION:  This routine queries whether the user wants to quit setup
  671. ;
  672. ; INPUTS:       None
  673. ;
  674. ; OUTPUTS:      $R0: Status:     STATUS_SUCCESSFUL |
  675. ;                                STATUS_FAILED
  676. ;
  677. ;               $R1: UserAction: OK | CANCEL
  678. ;
  679. ;------------------------------------------------------------------------
  680. [QueryUserQuit]
  681.  
  682.     set Status     = STATUS_FAILED
  683.     set UserAction = CANCEL
  684.  
  685.     ;
  686.     ; read in quit message
  687.     ;
  688.     read-syms ExitWarningDlg$(!STF_LANGUAGE)
  689.     ui start "ExitWarning"
  690.     ifstr(i) $(DLGEVENT) == "YES"
  691.     set Status     = STATUS_SUCCESSFUL
  692.     set UserAction = "OK"
  693.  
  694.     else-ifstr(i) $(DLGEVENT) == "NO"
  695.     set Status     = STATUS_SUCCESSFUL
  696.     set UserAction = "CANCEL"
  697.     else
  698.     endif
  699.  
  700. fin_QueryUserQuit = +
  701.     Return $(Status) $(UserAction)
  702.  
  703. [ExitWarningDlgENG]
  704.     DlgType      = "MessageBox"
  705.     STF_MB_TITLE = "Exit Microsoft Internet Information Service (IIS) Setup"
  706.     STF_MB_TEXT  = "The .CMD/.BAT Patch is not completely installed."$(LF)$(LF)+
  707.            "  Are you sure you want to exit Setup?"
  708.     STF_MB_TYPE  = 3
  709.     STF_MB_ICON  = 5
  710.     STF_MB_DEF   = 1
  711.  
  712.  
  713. ;-----------------------------------------------------------------------
  714. ; ROUTINE:      SetupMessage
  715. ;
  716. ; DESCRIPTION:  Puts up a MessageBox
  717. ;
  718. ; INPUTS:       $0   LanguageID
  719. ;               $1   Message type
  720. ;               $2   Message string
  721. ;
  722. ; OUTPUTS:      $R0: Status:     STATUS_SUCCESSFUL |
  723. ;                                STATUS_FAILED
  724. ;
  725. ;               $R1: UserAction: OK | CANCEL
  726. ;
  727. ;------------------------------------------------------------------------
  728. [SetupMessage]
  729.     set Status     = STATUS_FAILED
  730.     set UserAction = "CANCEL"
  731.     set DlgText = $($2)
  732.     ifstr(i) $($1) == "WARNING"
  733.         read-syms WarningDlg$($0)
  734.     else-ifstr(i) $($1) == "FATAL"
  735.         read-syms FatalDlg$($0)
  736.     else-ifstr(i) $($1) == "NONFATAL"
  737.         read-syms NonfatalDlg$($0)
  738.     else-ifstr(i) $($1) == "STATUS"
  739.         read-syms StatusDlg$($0)
  740.     else-ifstr(i) $($1) == "WARNINGOK"
  741.         read-syms WarningOKDlg$($0)
  742.     else
  743.         goto finish_SetupMessage
  744.     endif
  745.     ui start "SetupMessage"
  746.     ifstr(i) $(DLGEVENT) == "OK"
  747.         set Status     = STATUS_SUCCESSFUL
  748.         set UserAction = $(DLGEVENT)
  749.     else-ifstr(i) $(DLGEVENT) == "CANCEL"
  750.         set Status     = STATUS_SUCCESSFUL
  751.         set UserAction = $(DLGEVENT)
  752.     else-ifstr(i) $(DLGEVENT) == "YES"
  753.         set Status     = STATUS_SUCCESSFUL
  754.         set UserAction = $(DLGEVENT)
  755.     else-ifstr(i) $(DLGEVENT) == "NO"
  756.         set Status     = STATUS_SUCCESSFUL
  757.         set UserAction = $(DLGEVENT)
  758.     else
  759.     endif
  760. finish_SetupMessage = +
  761.     Return $(Status) $(UserAction)
  762.     end
  763. [WarningDlgENG]
  764.     STF_MB_TITLE = "Setup Message"
  765.     DlgType      = "MessageBox"
  766.     STF_MB_TEXT  = $(DlgText)
  767.     STF_MB_TYPE  = 2
  768.     STF_MB_ICON  = 5
  769.     STF_MB_DEF   = 2
  770. [FatalDlgENG]
  771.     STF_MB_TITLE = "Setup Message"
  772.     DlgType      = "MessageBox"
  773.     STF_MB_TEXT  = $(DlgText)
  774.     STF_MB_TYPE  = 1
  775.     STF_MB_ICON  = 3
  776.     STF_MB_DEF   = 1
  777. [NonfatalDlgENG]
  778.     STF_MB_TITLE = "Setup Message"
  779.     DlgType      = "MessageBox"
  780.     STF_MB_TEXT  = $(DlgText)
  781.     STF_MB_TYPE  = 1
  782.     STF_MB_ICON  = 5
  783.     STF_MB_DEF   = 1
  784. [StatusDlgENG]
  785.     STF_MB_TITLE = "Setup Message"
  786.     DlgType      = "MessageBox"
  787.     STF_MB_TEXT  = $(DlgText)
  788.     STF_MB_TYPE  = 1
  789.     STF_MB_ICON  = 2
  790.     STF_MB_DEF   = 1
  791. [WarningOKDlgENG]
  792.     DlgType      = "MessageBox"
  793.     STF_MB_TITLE = "Setup Message"
  794.     STF_MB_TEXT  = $(DlgText)
  795.     STF_MB_TYPE  = 3
  796.     STF_MB_ICON  = 5
  797.     STF_MB_DEF   = 1
  798.  
  799. ;-----------------------------------------------------------------------
  800. ; ROUTINE:      DoAskPathEx
  801. ;
  802. ; DESCRIPTION:  Puts up an EDIT box to prompt for a path
  803. ;
  804. ; INPUTS:       $0   LanguageID
  805. ;               $1   Message type
  806. ;               $2   Message string
  807. ;               $3   Message error
  808. ;
  809. ; OUTPUTS:      $R0: Status:     STATUS_SUCCESSFUL |
  810. ;                                STATUS_FAILED
  811. ;
  812. ;               $R1: UserAction: OK | CANCEL
  813. ;
  814. ;------------------------------------------------------------------------
  815. [DoAskPathEx]
  816.     set Status      = STATUS_FAILED
  817.     set Src         = $($0)
  818. askpath = +
  819.     read-syms DisketteDlg$(!STF_LANGUAGE)
  820.     ui start "Diskette"
  821.     ifstr(i) $(DLGEVENT) == "CONTINUE"
  822.     LibraryProcedure IsFullPath, $(!LIBHANDLE), CheckPathFullPathSpec $(EditTextOut)
  823.     ifstr(i) $(IsFullPath) == "NO"
  824.         StartWait
  825.         LibraryProcedure STATUS, $(!LIBHANDLE), ProcessForUNC $(EditTextOut)
  826.         EndWait
  827.         ifstr(i) $(STATUS) == "ERROR"
  828.             shell "" SetupMessage $(!STF_LANGUAGE) "NONFATAL" $($3)
  829.             goto askpath
  830.         else-ifstr(i) $(STATUS) == "NOT-UNC"
  831.             shell "" SetupMessage $(!STF_LANGUAGE) "NONFATAL" $($3)
  832.             goto askpath
  833.         else-ifstr(i) $(STATUS) == "UNC-FAILCONNECT"
  834.             shell "" SetupMessage $(!STF_LANGUAGE) "NONFATAL" $($3)
  835.             goto askpath
  836.         else
  837.             set Src = $(STATUS)
  838.         endif
  839.     else
  840.         set Src = $(EditTextOut)
  841.     endif
  842.     ui pop 1
  843.     LibraryProcedure STATUS, $(!LIBHANDLE), AppendBackSlash $(Src)
  844.     ifstr(i) $(STATUS) == "ERROR"
  845.         goto finish_DoAskPath
  846.     else
  847.         set Src = $(STATUS)
  848.         set Status = STATUS_SUCCESSFUL
  849.         goto finish_DoAskPath
  850.     endif
  851.     else-ifstr(i) $(DLGEVENT) == "BACK"
  852.         ui pop 1
  853.         set Status = STATUS_USERCANCEL
  854.         goto finish_DoAskPath
  855.     else
  856.         ui pop 1
  857.         goto finish_DoAskPath
  858.     endif
  859. finish_DoAskPath = +
  860.     Return $(Status) $(Src) $(EditTextOut)
  861.  
  862. [DisketteDlgENG]
  863.     Caption        = "Internet Explorer Setup"
  864.     Continue       = "Continue"
  865.     Cancel         = "Cancel"
  866.     DlgType        = "Edit"
  867.     DlgTemplate    = "DISKETTE"
  868.     DlgText        = $($1)
  869.     Edit1Label     = ""
  870.     EditTextIn     = $(Src)
  871.     EditFocus      = "ALL"
  872.  
  873.  
  874. ;----------------------------------------------
  875. ; Billboard Helper functions
  876. ;----------------------------------------------
  877. [PushBillboard]
  878.     read-syms BillboardDlg$(!STF_LANGUAGE)
  879.     ui start "Billboard"
  880.     Return
  881. [PopBillboard]
  882.     ui pop 1
  883.     Return
  884. [BillboardDlgENG]
  885.     DlgType     = Billboard
  886.     DlgTemplate = $($0)
  887.     TextFields  = {$($1)}
  888.  
  889. [ICopyServerFiles]
  890.     set STF_VITAL = ""
  891.     AddSectionFilesToCopyList Files-Server  $(SrcDir)  $(!ServerDir)
  892.     exit
  893.  
  894. [Install-All-Files-Now]
  895.     CopyFilesInCopyList
  896.     exit
  897.  
  898. [ICreateServerDir]
  899.     split-string $(!ServerDir) "\" _DirSplit
  900.     ForListDo $(_DirSplit)
  901.     set _TmpDir = $(_TmpDir)$($)
  902.     ifstr(i) $($) != "\"
  903.         CreateDir $(_TmpDir)
  904.     endif
  905.     EndForListDo
  906.     exit
  907.  
  908.  
  909. ;
  910. ; Server file lists...
  911. ;
  912.  
  913. [Files-Server]
  914. 1, W3SVC.DLL,     NOLOG
  915.  
  916.  
  917.  
  918.