home *** CD-ROM | disk | FTP | other *** search
/ CICA NT 1997 April / CICA_NT_CD-ROM_Walnut_Creek_April_1997.iso / sysutil / ntreskit.exe / INSTALL.INF < prev    next >
INI File  |  1993-09-16  |  48KB  |  1,616 lines

  1.  
  2. ;***********************************************************************
  3. ; SOURCE MEDIA DESCRIPTION            
  4. ; ------------------------
  5. ;***********************************************************************
  6. [Source Media Descriptions]
  7.     1= "Windows NT Resource Kit CD-ROM" , TAGFILE = disk1
  8.     2 = "Windows NT Resource Kit CD-ROM" , TAGFILE = disk2
  9.     3= "Windows NT Resource Kit CD-ROM" , TAGFILE = disk3
  10.  
  11. ;***********************************************************************
  12. ; CONSTANTS FOR USING DIALOGS
  13. ;***********************************************************************
  14. [GeneralConstants]
  15.  
  16.     ;
  17.     ; Constants to support the use of radio button dialogs
  18.     ;
  19.  
  20.     Radio1  = "1"
  21.     Radio2  = "2"
  22.     Radio3  = "3"
  23.     Radio4  = "4"
  24.     Radio5  = "5"
  25.     Radio6  = "6"
  26.     Radio7  = "7"
  27.     Radio8  = "8"
  28.     Radio9  = "9"
  29.  
  30.     ;
  31.     ; Constants to support the use of checkbox dialogs
  32.  
  33.     Chosen    = "ON"
  34.     NotChosen = "OFF"
  35.  
  36.  
  37. [RegistryConstants]
  38.  
  39.     MaskAllAccess = 33554432
  40.     NoTitle       = 0
  41.     RegLastError  = $(!REG_ERROR_SUCCESS)
  42.  
  43.  
  44. ;************************************************************************
  45. ; CONFIGURATION CHOICES
  46. ; ---------------------
  47. ; the sections below contain the different choices supported for
  48. ; the configuration items shown.  an id section establishes the 
  49. ; language independent IDs supported by nt setup.  for each language
  50. ; supported a text section displays the text used for the different
  51. ; choices
  52. ;************************************************************************
  53.  
  54. ;********************************
  55. ; PLATFORM INDEPENDENT CHOICES
  56. ;********************************
  57. ;----------------------------------------------------
  58. ; LANGUAGE CHOICES
  59. ;----------------------------------------------------
  60.  
  61. [LanguageID]
  62.     LANGID_ENG = ENG
  63.     ;LANGID_ITL = ITL
  64.     ;LANGID_FRN = FRN
  65.     ;LANGID_GER = GER
  66.  
  67. ;----------------------------------------------------
  68. ; PROCESSOR CHOICES
  69. ;----------------------------------------------------
  70. [ProcessorID]
  71.     ProcessorID_I386  = I386
  72.     ProcessorID_I486  = I486
  73.     ProcessorID_I586  = I586
  74.     ProcessorID_R4000 = R4000
  75.     ProcessorID_Alpha = Alpha_AXP
  76.  
  77. ;----------------------------------------------------
  78. ; PLATFORM CHOICES
  79. ;----------------------------------------------------
  80. [PlatformID]
  81.     PlatformID_I386 = I386
  82.     PlatformID_Mips = Mips
  83.     PlatformID_Alpha = Alpha
  84.  
  85.  
  86. ;**************************************************************
  87. ;  UI VARIABLES
  88. ;**************************************************************
  89.  
  90. [ProcessorVar]
  91.  
  92.     STF_PROCESSOR = "" ? $(LIBHANDLE) GetProcessor
  93.     STF_PLATFORM  = ""
  94.  
  95. [LanguageVar]
  96.     ;
  97.     ; Language to Use For interaction with user
  98.     ;
  99.     STF_LANGUAGE       = "" ? $(LIBHANDLE) GetLanguage
  100.  
  101.  
  102. [UiVars]
  103.     ;
  104.     ; Version Information
  105.     ;
  106.  
  107.     BuildVersion   = "12-91"
  108.  
  109.     ;
  110.     ; Destination TOOLS Drive Particulars
  111.     ;
  112.     VolumeList      = {} ? $(LIBHANDLE) GetHardDriveLetters
  113.     VolumeFreeList  = {} ? $(LIBHANDLE) GetHardDriveFreeSpace
  114.     VolumeFSList    = {} ? $(LIBHANDLE) GetHardDriveFileSystems
  115.     DestVolume      = ""
  116.     ;
  117.  
  118.     ;
  119.     ; Windows NT Directory
  120.     ;
  121.  
  122.     STF_WINDOWSPATH    = "" ? $(!LIBHANDLE) GetWindowsNtDir
  123.  
  124.     ;
  125.     ; Mstools directory
  126.     ;
  127.  
  128.     MSTOOLS = "\RESKIT"
  129.  
  130.     ;
  131.     ; Installation mode
  132.     ;
  133.  
  134.     MinInteract         = $(Radio1)
  135.     MaxInteract         = $(Radio2)
  136.     STF_INSTALL_MODE    = $(MaxInteract)
  137.  
  138.     ;
  139.     ; Mstools Setup Help IDs
  140.     ;
  141.  
  142.     !IDH_DB_TOOLSWELCOME_INS   = 3000
  143.     !IDH_DB_MSTINSTALLMODE_INS = 3010
  144.     !IDH_DB_MSTDEST_INS        = 3020
  145.     !IDH_DB_MSTOPTIONS_INS     = 3030
  146.  
  147.  
  148. [EnvironmentVars]
  149.     ;
  150.     ; user environment variables in the current user's profile
  151.     ;
  152.  
  153.     PathEnvVar     = {} ? $(LIBHANDLE) GetEnvVar $(PRIVILEGES) Path
  154.  
  155.  
  156. [VarsI386]
  157.     ;
  158.     MinToolsSize     = 11
  159.     MaxToolsSize     = 11
  160.     PosixSize = 16246528
  161.     AdminOtherSize    = 13342739
  162.     RegistrySize    = 11227712
  163.     PerformanceSize         = 7611714
  164.     AnimateSize        = 22682112
  165.     SetupTroubleSize       = 3228040
  166.  
  167.     ;
  168.     ; Installation options
  169.     ;
  170.  
  171.     DoPosix = $(Chosen)
  172.     DoAdminOther    = $(Chosen)
  173.     DoRegistry      = $(Chosen)
  174.     DoPerformance       = $(Chosen)
  175.     DoAnimate         = $(Chosen)
  176.     DoSetupTrouble     = $(Chosen)
  177.  
  178.     ;
  179.     ; Options to disable
  180.     ;
  181.  
  182.     DisableList    = {}
  183.  
  184.  
  185.  
  186. [VarsMips]
  187.     ;
  188.     MinToolsSize     = 14
  189.     MaxToolsSize     = 14
  190.     PosixSize = 15946528
  191.     AdminOtherSize    = 13342739
  192.     RegistrySize    = 11227712
  193.     PerformanceSize         = 10034544
  194.     AnimateSize        = 15987384
  195.     SetupTroubleSize       = 3698224
  196.  
  197.     ;
  198.     ; Installation options
  199.     ;
  200.  
  201.     DoPosix = $(Chosen)
  202.     DoAdminOther    = $(Chosen)
  203.     DoRegistry      = $(Chosen)
  204.     DoPerformance       = $(Chosen)
  205.     DoAnimate         = $(Chosen)
  206.     DoSetupTrouble       = $(Chosen)
  207.  
  208.     ;
  209.     ; Options to disable
  210.     ;
  211.  
  212.     DisableList = {}
  213.  
  214. [VarsAlpha]
  215.     ;
  216.     MinToolsSize     = 14
  217.     MaxToolsSize     = 14
  218.     PosixSize = 15946528
  219.     AdminOtherSize    = 13342739
  220.     RegistrySize    = 11227712
  221.     PerformanceSize         = 10034544
  222.     AnimateSize        = 15987384
  223.     SetupTroubleSize       = 3698224
  224.  
  225.     ;
  226.     ; Installation options
  227.     ;
  228.  
  229.     DoPosix = $(Chosen)
  230.     DoAdminOther    = $(Chosen)
  231.     DoRegistry      = $(Chosen)
  232.     DoPerformance       = $(Chosen)
  233.     DoAnimate         = $(Chosen)
  234.     DoSetupTrouble       = $(Chosen)
  235.  
  236.     ;
  237.     ; Options to disable
  238.     ;
  239.  
  240.     DisableList = {}
  241.  
  242.  
  243.  
  244. [StringsENG]
  245.     String1 = "Setup cannot install on the current processor."$(!LF)$(!LF)+
  246.               "Cannot proceed with install."
  247.  
  248.     String4 = "Setup could not copy the Windows NT Resource Kit files. "$(!LF)$(!LF)+
  249.               "Cannot proceed with install."
  250.  
  251.     String5 = "Error querying init directory. "$(!LF)$(!LF)+
  252.               "Initializing our own init directory."
  253.  
  254.     String6 = "Error querying environment variables."$(!LF)$(!LF)+
  255.               "Cannot proceed with install."
  256.  
  257.     String7 = "Error modifying environment variables."$(!LF)$(!LF)+
  258.               "Cannot proceed with install."
  259.  
  260.     String8  = "Size required for full installation is: "
  261.     String9  = "Minimum size required for custom installation is: "
  262.     String10 = " MB."
  263.     String11 = "No drive was found with this much space."$(!LF)$(!LF)+
  264.                "Cannot proceed with install."
  265.  
  266.     String12 = "There is space sufficient for the minimum Windows NT Resource Kit installation. "+
  267.                "You need to run Setup again and choose custom installation."
  268.  
  269.     String13 = "Setup needs a full path specification of your destination.  Please "+
  270.                "reenter a new path.  An example of af full path is: "
  271.  
  272.     String14 = "The drive entered in the Windows NT Resource Kit destination path does not "+
  273.                "have enough space for a minimal installation.  Please reenter a "+
  274.            "new path."
  275.  
  276.     String15 = "There is no space free for the optional Windows NT Resource Kit components."
  277.     String16 = "Setup has detected that you have chosen to install to a network "+
  278.            "drive.  If you are certain that this drive is a valid drive, and "+
  279.                "that it has sufficient space, please hit OK to continue.  Otherwise, "+
  280.                "choose Cancel to select another drive."
  281.  
  282.  
  283. ;--------------------
  284. ; BILLBOARD MESSAGES
  285. ;--------------------
  286. [BillboardsENG]
  287. Billboard1 = "Please wait while Setup creates directories on the destination drive."
  288.  
  289. ;***************************************************************************
  290. ; DIALOGS
  291. ; -------
  292. ; the following sections contain the dialogs used to interact with the user.
  293. ; for each language supported there is a different dialog section.
  294. ;***************************************************************************
  295.  
  296.  
  297. ;-----------------------------------------------
  298. ; WELCOME DIALOG
  299. ;-----------------------------------------------
  300. [WelcomeDlgENG]
  301.     DlgType     = Info
  302.     DlgTemplate = WELCOME
  303.     Caption    = "Windows NT Resource Kit Setup"
  304.  
  305.     DlgText     = "Welcome to Setup."$(LF)$(LF)+
  306.           "The Setup program for the Microsoft Windows NT Resource Kit "+
  307.           "will install useful tools and utility programs on your computer."$(LF)$(LF)+
  308.           "To install the Windows NT Resource Kit utilities now, click Continue or press "+
  309.           "Enter."$(LF)$(LF)+
  310.           "To exit Setup without installing the Windows NT Resource Kit utilities, click "+
  311.           "Exit or press F3."
  312.  
  313.     Continue     = Continue
  314.     Help         = Help
  315.     Exit         = Exit
  316.     HelpContext  = $(!IDH_DB_MSTWELCOME_INS)
  317.  
  318. ;-----------------------------------------------
  319. ; INSTALL MODE DIALOG
  320. ;-----------------------------------------------
  321. [InstallModeDlgENG]
  322.     DlgType     = "Radio"
  323.     DlgTemplate = "INSTALLMODE"
  324.     Caption     = "Setup Methods"
  325.     DlgText    = "Express Setup relies on Setup to make decisions, so setting up "+
  326.           "the Windows NT Resource Kit is quick and easy. "$(LF)$(LF)+
  327.           "Custom Setup lets you choose which utility "+
  328.           "programs are installed and which disk Setup copies the files to. "$(LF)$(LF)+
  329.           "Choose one of the two Setup methods and then click Continue:"
  330.  
  331.     Continue    = "Continue"
  332.     Help        = "&Help"
  333.     Exit        = "&Exit"
  334.     HelpContext = $(!IDH_DB_MSTINSTALLMODE_INS)
  335.  
  336.     RadioHeader   = ""
  337.     Radio1Text    = "&Express Setup"
  338.     Radio2Text    = "&Custom Setup"
  339.     Continue      = "Continue"
  340.     RadioDefault  = $(STF_INSTALL_MODE)
  341.     OptionsGreyed = {}
  342.  
  343.  
  344. ;-----------------------------------------------
  345. ; TOOLS DESTINATION DIALOG
  346. ;-----------------------------------------------
  347. [DestinationDlgENG]
  348.     DlgType      = Combination
  349.     DlgTemplate  = "DESTTOOLS"
  350.     Caption     = "Windows NT Resource Kit"
  351.     DlgText     = "Setup recommends installing the Windows NT Resource Kit on the following "+
  352.                    "hard disk drive."
  353.  
  354.     Combo1Label  = "Destination Drive:"
  355.  
  356.     Continue     = "Continue"
  357.     Help         = "&Help"
  358.     Exit         = "&Exit"
  359.     HelpContext  = $(!IDH_DB_MSTDEST_INS)
  360.  
  361.     GroupLabel   = "Destination Drive Characteristics"
  362.  
  363.     Static1Label = "Available Space:"
  364.     Static1Text  = $(DestVolumeFree)
  365.     footer1      = "MB"
  366.     footer2      = "( For Full Setup )"
  367.     footer3      = "( For Minimum Setup )"
  368.     Static2Label = "Space Needed:"
  369.     Static2Text  = $(MaxToolsSize)
  370.     Static3Text  = $(MinToolsSize)
  371.  
  372.     TextFields   = {$(Static1Text), $(Static2Text), $(Static3Text)}
  373.  
  374.     ;
  375.     ; Editboxes in the dialog
  376.     ;
  377.  
  378.     EditLabel    = "Windows NT Resource Kit Directory:"
  379.     EditTextLim = 256
  380.     EditTextIn  = $(MstoolsDir)
  381.     EditFocus   = "ALL"
  382.  
  383.     Combo1List   = $(DestVolumeList)
  384.     Combo1Out    = $(DestVolume)
  385.  
  386.     ComboListItemsIn  = {Combo1List}
  387.     ComboListItemsOut = {Combo1Out}
  388.  
  389.     NotifyFields = {YES}
  390.  
  391.  
  392. ;-------------------------------------------------------------
  393. ; PARTIAL INSTALL COMPONENTS
  394. ;-------------------------------------------------------------
  395. [MSToolsOptionsDlgENG]
  396.     DlgType     = "Check1"
  397.     DlgTemplate = "TOOLSOPTIONS"
  398.     Caption    = "Windows NT Resource Kit Install Options"
  399.  
  400.     DlgText     = "The following optional groups of files (components) can be "+
  401.                   "installed on your system."$(!LF)$(!LF)+
  402.                   "To remove a component, clear its checkbox."$(!LF)$(!LF)+
  403.                   "To install a component, check its checkbox."$(!LF)$(!LF)
  404.  
  405.     Check1Text    = "POSIX Tools"
  406.     Check2Text    = "Administration/Desktop"
  407.     Check3Text    = "Registry Tools"
  408.     Check4Text    = "Performance and Monitoring"
  409.     Check5Text    = "Animated Cursors"
  410.     Check6Text    = "Setup and Troubleshooting"
  411.  
  412.     Continue    = "&Continue"
  413.     Help        = "&Help"
  414.     Exit        = "E&xit"
  415.     HelpContext = $(!IDH_DB_MSTOPTIONS_INS)
  416.  
  417.     CheckHeader    = "Components:"
  418.     SizeHeader     = "Bytes Used:"
  419.     Files          = "Files..."
  420.     SpaceRequired  = "Disk Space Required for Optional Files:"
  421.     SpaceAvailable = "Disk Space Available for Optional Files:"
  422.     footer1        = "Bytes"
  423.     SizeAvailable  = $(FreeForOptional)
  424.  
  425.     CheckItemsIn      = { $(DoPosix),    $(DoAdminOther), $(DoRegistry), $(DoPerformance), $(DoAnimate), $(DoSetupTrouble) }
  426.     CheckItemsInSizes = { $(PosixSize), $(AdminOtherSize), $(RegistrySize), $(PerformanceSize), $(AnimateSize), $(SetupTroubleSize) }
  427.     OptionsGreyed     = $(DisableList)
  428.  
  429.  
  430.  
  431.  
  432. ;--------------------------------------------------------------
  433. ; k) SETUP DONE - RESTART DIALOG
  434. ;--------------------------------------------------------------
  435. [SetupDoneDlgENG]
  436.     DlgType     = "Info"
  437.     DlgTemplate = "RESTART"
  438.     Caption    = "Windows NT Resource Kit Setup"
  439.     DlgText    = "The Microsoft Windows NT Resource Kit is now installed."
  440.     Windows     = "Exit to &Windows NT"
  441.  
  442. ;--------------------------------------------------------------
  443. ; k) SETUP NOT DONE - RESTART DIALOG
  444. ;--------------------------------------------------------------
  445. [SetupNotDoneDlgENG]
  446.     DlgType     = "Info"
  447.     DlgTemplate = "RESTART"
  448.     Caption    = "Windows NT Resource Kit Setup"
  449.     DlgText    = "The Microsoft Windows NT Resource Kit has not been installed "+
  450.           "correctly.  To install the Windows NT Resource Kit, make sure "+
  451.           "you have enough free disk space and start Setup again."
  452.     Windows     = "Exit to &Windows NT"
  453.  
  454. ;**************************************************************************
  455. ; DLL LOAD and FREE
  456. ; the following section contain commands to load specific dll libraries and
  457. ; to free them
  458. ;**************************************************************************
  459.  
  460. ;----------------------------------------------
  461. ; a) DETECT LIBRARY
  462. ;----------------------------------------------
  463. [LoadSetupLibrary]
  464.     LoadLibrary "x" $(STF_CWDDIR)\setupdll.dll LIBHANDLE
  465.     exit
  466.  
  467. [FreeSetupLibrary]
  468.     FreeLibrary $(LIBHANDLE)
  469.     exit
  470.  
  471.  
  472.  
  473. ;**************************************************************************
  474. ; PROGRESS GUAGE VARIABLES
  475. ;**************************************************************************
  476.  
  477. [ProgressCopyENG]
  478.     ProCaption     = "Windows NT Resource Kit Setup"
  479.     ProCancel    = "Cance&l"
  480.     ProCancelMsg = "Windows NT Resource Kit isn't correctly installed.  Are you sure "+
  481.                    "you want to cancel copying files?"
  482.     ProCancelCap = "Setup Message"
  483.     ProText1     = "Copying:"
  484.     ProText2     = "To:"
  485.  
  486.  
  487. ;-----------------------------------------------------------------------
  488. ; ROUTINE:      CreateKey
  489. ;
  490. ; DESCRIPTION:  Creates a key and fixes the values indicated.
  491. ;               Key is Handle\Key1\Key2\...\Keyn. Value list
  492. ;               is for Valuen.
  493. ;
  494. ; INPUTS:       $0: Handle into registry
  495. ;               $1: KeyTreeComponents {Key1Info, Key2Info..}
  496. ;               $2: ValueList {Value1Info, Value2Info, Value3Info}
  497. ;
  498. ; OUTPUTS:      $R0: Status: STATUS_SUCCESSFUL
  499. ;                            STATUS_FAILED
  500. ;                            STATUS_ERROR_CREATEKEY
  501. ;                            STATUS_ERROR_CREATEVALUE
  502. ;
  503. ;               $R1: Handle to created key
  504. ;
  505. ;------------------------------------------------------------------------
  506.  
  507. [CreateKey]
  508.  
  509.     ;
  510.     ; Initialize
  511.     ;
  512.  
  513.     set Status = STATUS_FAILED
  514.     read-syms RegistryConstants
  515.  
  516.     ;
  517.     ; traverse down the keytreecomponents and open/create components as
  518.     ; you go along
  519.     ;
  520.  
  521.  
  522.     set BaseHandle = $($0)
  523.     set KeyHandle  = $(BaseHandle)
  524.  
  525.     ForListDo $($1)
  526.  
  527.         set KeyInfo = $($)
  528.         set KeyName = *($(KeyInfo), 1)
  529.  
  530.         ;
  531.         ; Try opening the key first
  532.  
  533.         OpenRegKey $(BaseHandle) "" $(KeyName) $(MaskAllAccess) KeyHandle
  534.         ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  535.             ;
  536.             ; Key doesn't exist
  537.             ;
  538.             Debug-Output "REGISTRY.INF: Key"$(KeyName)"doesn't exist.  Will create key"
  539.  
  540.             set RegLastError = 0
  541.             CreateRegKey $(BaseHandle) $(KeyInfo) "" $(MaskAllAccess) "" KeyHandle
  542.             ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  543.                 set Status = STATUS_ERROR_CREATEKEY
  544.                 Debug-Output "REGISTRY.INF: Error in creating key"
  545.                 goto endcreate
  546.             endif
  547.         endif
  548.  
  549.         ifstr(i) $(BaseHandle) != $($0)
  550.             CloseRegKey $(BaseHandle)
  551.             ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  552.                 set Status = STATUS_ERROR_CREATEKEY
  553.                 Debug-Output "REGISTRY.INF: Error in closing base handle"
  554.                 goto endcreate
  555.             endif
  556.         endif
  557.  
  558.         set BaseHandle = $(KeyHandle)
  559.  
  560.     EndForListDo
  561.  
  562.     ifstr(i) $($2) != {}
  563.         shell "" AddValueList $(KeyHandle) $($2)
  564.         ifstr(i) $($R0) != STATUS_SUCCESSFUL
  565.             set Status = STATUS_ERROR_CREATEVALUE
  566.             goto endcreate
  567.         endif
  568.     endif
  569.     set Status = STATUS_SUCCESSFUL
  570.  
  571. endcreate = +
  572.     ifstr(i) $(Status) != STATUS_SUCCESSFUL
  573.         Debug-Output "REGISTRY.INF: CreateKey Error:"$(Status)
  574.     endif
  575.     Return $(Status) $(KeyHandle)
  576.  
  577.  
  578. ;*************************************************************************
  579. ;
  580. ;     SECTION:   AddValueList
  581. ;
  582. ;     PURPOSE:   Given a nested list of value items, add each to the given
  583. ;                key.   Key is left open.
  584. ;
  585. ;   ARGUMENTS:   $0    Registry key handle
  586. ;                $1    List of value items; for example:
  587. ;                          { {ValueName1,0,$(!REG_VT_SZ),$(ValueData1)}, +
  588. ;                            {ValueName2,0,$(!REG_VT_SZ),$(ValueData2)} }
  589. ;
  590. ;     RETURNS:   $R0   Status
  591. ;
  592. ;
  593. ;*************************************************************************
  594.  
  595. [AddValueList]
  596.    set Status = STATUS_FAILED
  597.    read-syms RegistryConstants
  598.  
  599.    ForListDo $($1)
  600.        SetRegValue $($0) $($)
  601.        ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  602.            Debug-Output "REGISTRY.INF: CreateValue failed:"$($)
  603.            goto end_addvaluelist
  604.        endif
  605.    EndForListDo
  606.    set Status = STATUS_SUCCESSFUL
  607.  
  608. end_addvaluelist = +
  609.    return $(Status)
  610.  
  611.  
  612.  
  613. ;**************************************************************************
  614. ; SHELL COMMANDS SCRIPT
  615. ;**************************************************************************
  616.  
  617. [Shell Commands]
  618.  
  619.     ;
  620.     ; Initialise the app, by setting the caption and loading the support library
  621.     ;
  622.     set-title "Windows NT Resource Kit Setup"
  623.     set Exit_Code = $(!SETUP_ERROR_GENERAL)
  624.     install   LoadSetupLibrary
  625.  
  626.     StartWait
  627.  
  628.     ;
  629.     ; read general constants
  630.     ;
  631.  
  632.     set-subst LF = "\n"
  633.     read-syms GeneralConstants
  634.  
  635.     ;
  636.     ; read the platform independent choices
  637.     ;
  638.  
  639.     read-syms LanguageID
  640.     read-syms ProcessorID
  641.     read-syms PlatformID
  642.  
  643.     ;
  644.     ; read the default language and try to detect the language
  645.     ;
  646.  
  647.     read-syms LanguageVar
  648.     detect    LanguageVar
  649.  
  650.     ;
  651.     ; read and detect the processor we are working on
  652.     ;
  653.  
  654.     read-syms ProcessorVar
  655.     detect    ProcessorVar
  656.     read-syms Strings$(!STF_LANGUAGE)
  657.     read-syms Billboards$(!STF_LANGUAGE)
  658.     ;
  659.     ; Check processor type, see if it is supported, if so what platform does it
  660.     ; belong to.
  661.     ;
  662.  
  663.     ifstr(i) $(STF_PROCESSOR) == $(ProcessorID_I386)
  664.         set STF_PLATFORM = $(PlatformID_I386)
  665.     else-ifstr(i) $(STF_PROCESSOR) == $(ProcessorID_I486)
  666.         set STF_PLATFORM = $(PlatformID_I386)
  667.     else-ifstr(i) $(STF_PROCESSOR) == $(ProcessorID_I586)
  668.         set STF_PLATFORM = $(PlatformID_I386)
  669.     else-ifstr(i) $(STF_PROCESSOR) == $(ProcessorID_R4000)
  670.         set STF_PLATFORM = $(PlatformID_Mips)
  671.     else-ifstr(i) $(STF_PROCESSOR) == $(ProcessorID_Alpha)
  672.     set STF_PLATFORM = $(PlatformID_Alpha)
  673.     else
  674.         shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) "FATAL" $(String1)
  675.         goto setupnotdone
  676.     endif
  677.  
  678.     read-syms  RegistryConstants
  679.  
  680.     ;
  681.     ; Call the library function to see if we have admin privileges
  682.     ;
  683.  
  684.     LibraryProcedure STATUS, $(!LIBHANDLE), TestAdmin
  685.     ifstr(i) $(STATUS) == "YES"
  686.      set PRIVILEGES = SYSTEM
  687.     else
  688.         set PRIVILEGES = USER
  689.     endif
  690.  
  691.     ;
  692.     ; read the UI Variables and detect their setting on the current machine
  693.     ;
  694.  
  695.     read-syms UiVars
  696.     detect    UiVars
  697.     read-syms Vars$(STF_PLATFORM)
  698.  
  699.     EndWait
  700.  
  701. welcome =+
  702.     read-syms WelcomeDlg$(STF_LANGUAGE)
  703.     ui start "Welcome"
  704.     ifstr(i) $(DLGEVENT) == "CONTINUE"
  705.         ui pop 1
  706. ;    goto queryinstallmode
  707.     goto setdestination
  708.     else-ifstr(i) $(DLGEVENT) == "EXIT"
  709.         shell "" QueryUserQuit
  710.         ifstr(i) $($R1) == "OK"
  711.             ui pop 1
  712.             goto setupnotdone
  713.         else
  714.             goto welcome
  715.         endif
  716.     else
  717.         goto end
  718.     endif
  719.  
  720.     ;
  721.     ; show install mode dialog and query if we are to operate in express mode
  722.     ; or in full install
  723.     ;
  724.  
  725. queryinstallmode =+
  726.     read-syms InstallModeDlg$(STF_LANGUAGE)
  727.     ui start "InstallMode"
  728.     ifstr(i) $(DLGEVENT) == "CONTINUE"
  729.         ui pop 1
  730.         set STF_INSTALL_MODE = $(ButtonChecked)
  731.         goto setdestination
  732.     else-ifstr(i) $(DLGEVENT) == "EXIT"
  733.         shell "" QueryUserQuit
  734.         ifstr(i) $($R1) == "OK"
  735.             ui pop 1
  736.             goto setupnotdone
  737.         else
  738.             goto queryinstallmode
  739.         endif
  740.     else
  741.         goto end
  742.     endif
  743.  
  744. setdestination =+
  745.  
  746.     ;
  747.     ; go through the volume list and form the destination volume list of
  748.     ; all volumes which have the size needed to install the mstools.
  749.     ;
  750.     set DestVolumeList = {}
  751.     set DestVolumeFreeList = {}
  752.  
  753.     ForListDo $(VolumeList)
  754.  
  755.        set CurrentVolume      = *($(VolumeList), $(#))
  756.        set CurrentVolumeFree  = *($(VolumeFreeList), $(#))
  757.        set CurrentVolumeFS    = *($(VolumeFSList), $(#))
  758.  
  759.        set DestVolumeList     = >($(DestVolumeList),     $(CurrentVolume))
  760.        set DestVolumeFreeList = >($(DestVolumeFreeList), $(CurrentVolumeFree))
  761.  
  762. skipvol=+
  763.     EndForListDo
  764.  
  765.     ;
  766.     ; destination drive is the drive with the maximum space
  767.     ;
  768.  
  769.     set DestVolume     = ""
  770.     set DestVolumeFree = 0
  771.  
  772.     ForListDo $(DestVolumeList)
  773.         set Volume     = $($)
  774.         set VolumeFree = *($(DestVolumeFreeList), ~($(DestVolumeList), $(Volume)))
  775.  
  776.         ifint $(VolumeFree) > $(DestVolumeFree)
  777.             set DestVolume     = $(Volume)
  778.             set DestVolumeFree = $(VolumeFree)
  779.         endif
  780.  
  781.     EndForListDo
  782.  
  783.     set MstoolsDir = $(DestVolume)$(MSTOOLS)
  784.  
  785.     ;
  786.     ; display tools destination, size available and needed for
  787.     ; user approval
  788.     ;
  789. destination =+
  790.  
  791.     ifstr(i) $(STF_INSTALL_MODE) == $(MinInteract)
  792.        ifint $(DestVolumeFree) < $(MaxToolsSize)
  793.            shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) "FATAL" $(String8)$(MaxToolsSize)$(String10)$(String12)
  794.            goto setupnotdone
  795.        else
  796.            goto mstooldirs
  797.        endif
  798.     endif
  799.  
  800.     read-syms DestinationDlg$(STF_LANGUAGE)
  801.     ui start "Destination"
  802.     ifstr(i) $(DLGEVENT) == "NOTIFY"
  803.  
  804.         ifstr(i) $(Combo1Out) != $(DestVolume)
  805.             set ReInit = YES
  806.             set DestVolume     = $(Combo1Out)
  807.             set DestVolumeFree = *($(DestVolumeFreeList), ~($(DestVolumeList), $(DestVolume)))
  808.             set MstoolsDir     = $(DestVolume)$(MSTOOLS)
  809.         else
  810.             set ReInit = NO
  811.         endif
  812.         goto destination
  813.  
  814.     else-ifstr(i) $(DLGEVENT) == "CONTINUE"
  815.         set ReInit = NO
  816.         LibraryProcedure IsFullPath, $(LIBHANDLE), CheckPathFullPathSpec $(EditTextOut)
  817.         ifstr(i) $(IsFullPath) == "NO"
  818.             shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) "NONFATAL" $(String13)$(DestVolume)$(MSTOOLS)
  819.             goto destination
  820.         else
  821.             GetDriveInPath Drive, $(EditTextOut)
  822.             Ifcontains(i) $(Drive) in $(DestVolumeList)
  823.                 set DestVolume     = $(Drive)
  824.                 set DestVolumeFree = *($(DestVolumeFreeList), ~($(DestVolumeList), $(DestVolume)))
  825.                 set MstoolsDir     = $(EditTextOut)
  826.         ifint $(DestVolumeFree) < $(MinToolsSize)
  827.             shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) "NONFATAL" $(String14)
  828.             goto destination
  829.         endif
  830.             else
  831.                 shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) "WARNING" $(String16)
  832.                 ifstr(i) $($R0) != STATUS_SUCCESSFUL
  833.             goto destination
  834.                 else
  835.                     ifstr(i) $($R1) == "OK"
  836.             set DestVolume = $(Drive)
  837.             set DestVolumeFree = $(MaxToolsSize)
  838.             set MstoolsDir = $(EditTextOut)
  839.                     else
  840.                         set ReInit = NO
  841.                         goto destination
  842.                     endif
  843.                 endif
  844.             endif
  845.         endif
  846.  
  847.         ui pop 1
  848.         goto mstooldirs
  849.  
  850.     else-ifstr(i) $(DLGEVENT) == "EXIT"
  851.  
  852.         set ReInit = NO
  853.         shell "" QueryUserQuit
  854.         ifstr(i) $($R1) == "OK"
  855.             ui pop 1
  856.             goto setupnotdone
  857.         else
  858.             goto destination
  859.         endif
  860.     else
  861.         goto end
  862.     endif
  863.  
  864.  
  865. mstooldirs = +
  866.  
  867.     LibraryProcedure MstoolsDir, $(LIBHANDLE), AppendBackSlash $(MstoolsDir)
  868.     ;
  869.     ; First find all the destination directories for the tools
  870.     ;
  871.  
  872.     set MstoolsPath    = $(MstoolsDir)
  873.  
  874.  
  875.     set SetupTroublePath     = $(MstoolsDir)SetupTrouble
  876.  
  877.     ;
  878.     ; mstool install.  ask user for options on mstool install.
  879.     ;
  880.  
  881. mstools = +
  882.     ifstr(i) $(STF_INSTALL_MODE) == $(MaxInteract)
  883.        goto mstoolsinstall
  884.     endif
  885.  
  886.     ifint $(DestVolumeFree) < $(MaxToolsSize)
  887.     set DoPosix   = $(NotChosen)
  888.     set DoAdminOther      = $(NotChosen)
  889.     set DoRegistry        = $(NotChosen)
  890.     set DoPerformance         = $(NotChosen)
  891.     set DoAnimate           = $(NotChosen)
  892.     set DoSetupTrouble       = $(NotChosen)
  893.     endif
  894.  
  895.     set-sub FreeForOptional = $(DestVolumeFree) $(MinToolsSize)
  896.     ifstr(i) $(FreeForOptional) == 0
  897.         shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) "NONFATAL" $(String15)
  898.     endif
  899.  
  900.     read-syms MSToolsOptionsDlg$(STF_LANGUAGE)
  901.     ui start "Options"
  902.     ifstr(i) $(DLGEVENT) == "CONTINUE"
  903.     set DoPosix   = *($(CheckItemsOut), 1)
  904.     set DoAdminOther      = *($(CheckItemsOut), 2)
  905.     set DoRegistry        = *($(CheckItemsOut), 3)
  906.     set DoPerformance         = *($(CheckItemsOut), 4)
  907.     set DoAnimate           = *($(CheckItemsOut), 5)
  908.     set DoSetupTrouble       = *($(CheckItemsOut), 6)
  909.  
  910.     ifstr(i) $(DoAdminOther) == $(NotChosen)
  911.         set DoRegistry = $(NotChosen)
  912.     endif
  913.  
  914.         ui pop 1
  915.         goto mstoolsinstall
  916.     else-ifstr(i) $(DLGEVENT) == "EXIT"
  917.         shell "" QueryUserQuit
  918.         ifstr(i) $($R1) == "OK"
  919.             ui pop 1
  920.             goto setupnotdone
  921.         else
  922.             goto mstools
  923.         endif
  924.     else
  925.         goto "end"
  926.     endif
  927.  
  928.     ;
  929.     ; build mstools copy list
  930.     ;
  931.  
  932. mstoolsinstall    =+
  933.     StartWait
  934.     shell "subroutn.inf" PushBillboard STATUSDLG $(Billboard1)
  935.     install Install-CopyToolsFiles
  936.     shell "subroutn.inf" PopBillboard
  937.     EndWait
  938.  
  939.     ;
  940.     ;  Complete the copying of files added by other options.
  941.     ;
  942.     ;  Alter the CFG/INI files as needed by the options.
  943.     ;
  944.     ;  print information screen to restart
  945.     ;
  946.  
  947. finish = +
  948.  
  949.     ;
  950.     ; first copy all the files over
  951.     ;
  952.  
  953.     read-syms ProgressCopy$(STF_LANGUAGE)
  954.     install Install-All-Files-Now
  955.     ifstr(i) $(STF_INSTALL_OUTCOME) == "STF_SUCCESS"
  956.         goto mstoolsconfig
  957.     else
  958.         shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) "FATAL" $(String4)
  959.         goto setupnotdone
  960.     endif
  961.  
  962.     StartWait
  963.  
  964. mstoolsconfig=+
  965.     read-syms EnvironmentVars
  966.     detect    EnvironmentVars
  967.  
  968.     ;
  969.     ; first initialize the variables which indicate whether new values are
  970.     ; to be set for the variables or not
  971.     ;
  972.     ForListDo {Path}
  973.         set FSet$($)Var = FALSE
  974.     EndForListDo
  975.  
  976.     ;
  977.     ; add the SetupTrouble and setup variables if SetupTrouble is chosen
  978.     ;
  979.  
  980.     ;
  981.     ; For the Path,Lib and Include variables see if we can prepend them
  982.     ; onto the current variables
  983.     ;
  984.  
  985. ; this will do it
  986.  
  987.     ForListDo {Path}
  988.         set Var = $($)
  989.         ifstr(i) $($(Var)EnvVar) == {}
  990.             set $(Var)EnvVar = {$(Var), 0, $(!REG_VT_EXPAND_SZ), {$(Mstools$(Var))}}
  991.             set FSet$(Var)Var = TRUE
  992.         else
  993.             set VarTitle   = *($($(Var)EnvVar), 2)
  994.             set VarRegType = *($($(Var)EnvVar), 3)
  995.             set VarValue   = *($($(Var)EnvVar), 4)
  996.             ifstr(i) $(Var) == "Path"
  997.                 ifstr(i) $(PRIVILEGES) == "SYSTEM"
  998.                    shell "" AppendNewValueToEnvVar $(VarValue) $(Mstools$(Var))
  999.                 else
  1000.                    shell "" PrependNewValueToEnvVar $(VarValue) $(Mstools$(Var))
  1001.                 endif
  1002.             else
  1003.                 shell "" PrependNewValueToEnvVar $(VarValue) $(Mstools$(Var))
  1004.             endif
  1005.             ifstr(i) $($R0) == STATUS_FAILED
  1006.                 shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) "FATAL" $(String6)
  1007.                 goto setupnotdone
  1008.             endif
  1009.             ifstr(i) $($R1) == "TRUE"
  1010.                 set FSet$(Var)Var = TRUE
  1011.                 set $(Var)EnvVar = {$(Var), $(VarTitle), $(VarRegType), $($R2)}
  1012.             endif
  1013.         endif
  1014.     EndForListDo
  1015.  
  1016.     ;
  1017.     ; modify all the environment variables
  1018.     ;
  1019.  
  1020.     ForListDo {Path}
  1021.         ;
  1022.         ; if the variable to set the variable is set
  1023.  
  1024.         ifstr(i) $(FSet$($)Var) == "TRUE"
  1025.             shell "" SetEnvironmentString $($($)EnvVar) $(PRIVILEGES)
  1026.             ifstr(i) $($R0) == STATUS_FAILED
  1027.                 shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) "FATAL" $(String7)
  1028.             endif
  1029.         endif
  1030.     EndForListDo
  1031.  
  1032.     install Install-MSTools-Groups
  1033.  
  1034. setupdone=+
  1035.     set Exit_Code = $(!SETUP_ERROR_SUCCESS)
  1036.     read-syms SetupDoneDlg$(STF_LANGUAGE)
  1037.     EndWait
  1038.     ui start "Done"
  1039.     ifstr(i) $(DLGEVENT) == "CONTINUE"
  1040.         ui pop 1
  1041.         goto end
  1042.     else
  1043.         goto end
  1044.     endif
  1045.  
  1046. setupnotdone=+
  1047.     read-syms SetupNotDoneDlg$(STF_LANGUAGE)
  1048.     EndWait
  1049.     ui start "NotDone"
  1050.     ifstr(i) $(DLGEVENT) == "CONTINUE"
  1051.         ui pop 1
  1052.         goto end
  1053.     else
  1054.         goto end
  1055.     endif
  1056.  
  1057. end = +
  1058.     install   FreeSetupLibrary
  1059.     exit
  1060.  
  1061.  
  1062.  
  1063. ;*****************************************************************
  1064. ;                                                                *
  1065. ;         INSTALLATION SUPPORT ROUTINES                          *
  1066. ;                                                                *
  1067. ;*****************************************************************
  1068.  
  1069. ;-----------------------------------------------------------------------
  1070. ; ROUTINE:      QueryUserQuit
  1071. ;
  1072. ; DESCRIPTION:  This routine queries whether the user wants to quit setup
  1073. ;
  1074. ; INPUTS:       None
  1075. ;
  1076. ; OUTPUTS:      $R0: Status:     STATUS_SUCCESSFUL |
  1077. ;                                STATUS_FAILED
  1078. ;
  1079. ;               $R1: UserAction: OK | CANCEL
  1080. ;
  1081. ;------------------------------------------------------------------------
  1082.  
  1083. [QueryUserQuit]
  1084.  
  1085.     set Status     = STATUS_FAILED
  1086.     set UserAction = CANCEL
  1087.  
  1088.     ;
  1089.     ; read in quit message
  1090.     ;
  1091.     read-syms ExitWarningDlg$(!STF_LANGUAGE)
  1092.     ui start "ExitWarning"
  1093.     ifstr(i) $(DLGEVENT) == "YES"
  1094.         set Status     = STATUS_SUCCESSFUL
  1095.         set UserAction = "OK"
  1096.  
  1097.     else-ifstr(i) $(DLGEVENT) == "NO"
  1098.         set Status     = STATUS_SUCCESSFUL
  1099.         set UserAction = "CANCEL"
  1100.     else
  1101.     endif
  1102.  
  1103. fin_QueryUserQuit = +
  1104.     Return $(Status) $(UserAction)
  1105.  
  1106.  
  1107. ;----------------------------------------------
  1108. ; EXIT WINDOWS NT TOOLS SETUP WARNING
  1109. ;----------------------------------------------
  1110.  
  1111. [ExitWarningDlgENG]
  1112.     DlgType      = "MessageBox"
  1113.     STF_MB_TITLE = "Exit Windows NT Resource Kit Setup"
  1114.     STF_MB_TEXT  = "Windows NT Resource Kit isn't correctly installed.  Are you "+
  1115.                    "sure you want to exit Setup?"
  1116.     STF_MB_TYPE  = 3
  1117.     STF_MB_ICON  = 5
  1118.     STF_MB_DEF   = 2
  1119.  
  1120.  
  1121.  
  1122.  
  1123. ;-----------------------------------------------------------------------
  1124. ; ROUTINE:      AppendNewValueToEnvVar
  1125. ;
  1126. ; DESCRIPTION:  Looks at the existing value of an environment variable
  1127. ;               and appends a new value if it is not already present
  1128. ;
  1129. ; INPUTS:       $0:  OldValueList
  1130. ;               $1:  NewValue
  1131. ;
  1132. ; OUTPUTS:      $R0: Status: STATUS_SUCCESSFUL
  1133. ;                            STATUS_FAILED
  1134. ;
  1135. ;               $R1: Changed?
  1136. ;               $R2: NewValueList
  1137. ;
  1138. ;------------------------------------------------------------------------
  1139.  
  1140. [AppendNewValueToEnvVar]
  1141.     ;
  1142.     set Status       = STATUS_FAILED
  1143.     set NewValueList = {}
  1144.     set Changed      = TRUE
  1145.     ;
  1146.     set Error = NO
  1147.     ForListDo $($0)
  1148.         ifstr(i) $(Error) == NO
  1149.             ifstr(i) $(Changed) == TRUE
  1150.                  LibraryProcedure ExpandedValue, $(!LIBHANDLE), ExpandSz $($)
  1151.                  ifstr(i) $(ExpandedValue) == "ERROR"
  1152.                      set Error = YES
  1153.                  else-ifstr(i) $(ExpandedValue) == $($1)
  1154.                      set Changed = FALSE
  1155.                  endif
  1156.             endif
  1157.         endif
  1158.     EndForListDo
  1159.  
  1160.     ifstr(i) $(Error) == "YES"
  1161.         goto finish_append
  1162.     endif
  1163.  
  1164.     set Status = STATUS_SUCCESSFUL
  1165.     ifstr(i) $(Changed) == TRUE
  1166.        set NewValueList = >($($0), $($1))
  1167.     endif
  1168.  
  1169. finish_append = +
  1170.     return $(Status) $(Changed) $(NewValueList)
  1171.  
  1172. ;-----------------------------------------------------------------------
  1173. ; ROUTINE:      PrependNewValueToEnvVar
  1174. ;
  1175. ; DESCRIPTION:  Looks at the existing value of an environment variable
  1176. ;               and prepends a new value if it is not already present
  1177. ;
  1178. ; INPUTS:       $0:  OldValueList
  1179. ;               $1:  NewValue
  1180. ;
  1181. ; OUTPUTS:      $R0: Status: STATUS_SUCCESSFUL
  1182. ;                            STATUS_FAILED
  1183. ;
  1184. ;               $R1: Changed?
  1185. ;               $R2: NewValueList
  1186. ;
  1187. ;------------------------------------------------------------------------
  1188.  
  1189. [PrependNewValueToEnvVar]
  1190.     ;
  1191.     set Status       = STATUS_FAILED
  1192.     set NewValueList = {}
  1193.     set Changed      = TRUE
  1194.     ;
  1195.     set Error = NO
  1196.     ForListDo $($0)
  1197.         ifstr(i) $(Error) == NO
  1198.             ifstr(i) $(Changed) == TRUE
  1199.                  LibraryProcedure ExpandedValue, $(!LIBHANDLE), ExpandSz $($)
  1200.                  ifstr(i) $(ExpandedValue) == "ERROR"
  1201.                      set Error = YES
  1202.                  else-ifstr(i) $(ExpandedValue) == $($1)
  1203.                      set Changed = FALSE
  1204.                  endif
  1205.             endif
  1206.         endif
  1207.     EndForListDo
  1208.  
  1209.     ifstr(i) $(Error) == "YES"
  1210.         goto finish_prepend
  1211.     endif
  1212.  
  1213.     set Status = STATUS_SUCCESSFUL
  1214.     ifstr(i) $(Changed) == TRUE
  1215.        set NewValueList = $($1)
  1216.        ForListDo $($0)
  1217.            set NewValueList = >($(NewValueList), $($))
  1218.        EndForListDo
  1219.     endif
  1220.  
  1221. finish_prepend = +
  1222.     return $(Status) $(Changed) $(NewValueList)
  1223.  
  1224.  
  1225. ;-----------------------------------------------------------------------
  1226. ; ROUTINE:      SetEnvironmentString
  1227. ;
  1228. ; DESCRIPTION:  Set the value for a user environment string
  1229. ;
  1230. ; INPUTS:       $0:  VarList
  1231. ;               $1:  Privileges
  1232. ;
  1233. ; OUTPUTS:      $R0: Status: STATUS_SUCCESSFUL
  1234. ;                            STATUS_FAILED
  1235. ;
  1236. ;
  1237. ;------------------------------------------------------------------------
  1238.  
  1239. [SetEnvironmentString]
  1240.     ;
  1241.     ;
  1242.     set Status = STATUS_FAILED
  1243.  
  1244.     set Var          = *($($0), 1)
  1245.     set VarTitle     = *($($0), 2)
  1246.     set VarRegType   = *($($0), 3)
  1247.     set VarValueList = *($($0), 4)
  1248.  
  1249.     set VarValue = ""
  1250.     ForListDo $(VarValueList)
  1251.        ifstr(i) $(VarValue) != ""
  1252.            set VarValue = $(VarValue)";"$($)
  1253.        else
  1254.            set VarValue = $($)
  1255.        endif
  1256.     EndForListDo
  1257.  
  1258.     LibraryProcedure STATUS, $(!LIBHANDLE), SetEnvVar $($1) $(Var) $(VarTitle) $(VarRegType) $(VarValue)
  1259.     ifstr(i) $(STATUS) == "ERROR"
  1260.        goto finish_setenvstr
  1261.     endif
  1262.     set Status = STATUS_SUCCESSFUL
  1263.  
  1264. finish_setenvstr = +
  1265.     Return $(Status)
  1266.  
  1267. ;*****************************************************************
  1268. ;                                                                *
  1269. ;         INSTALLATION SUPPORT ROUTINES                          *
  1270. ;                                                                *
  1271. ;*****************************************************************
  1272.  
  1273. [Install-MSTools-Groups]
  1274.     
  1275.     ifstr(i) $(PRIVILEGES) == "SYSTEM"
  1276.     set Common = "Common"
  1277.     else
  1278.         set Common = ""
  1279.     endif
  1280.  
  1281.     set ToolsGroup = "Resource Kit"
  1282.     Create$(Common)ProgManGroup $(ToolsGroup) ""
  1283.     Show$(Common)ProgManGroup   $(ToolsGroup), 1
  1284.  
  1285.     Create$(Common)ProgmanItem    $(ToolsGroup) , "Read Me"          $(MstoolsDir)"readme.wri"           ""  0
  1286.     Create$(Common)ProgmanItem    $(ToolsGroup) , "Resource Kit Tools Help" $(MstoolsDir)"rktools.hlp"           ""  0
  1287.     Create$(Common)ProgmanItem    $(ToolsGroup) , "Adapter Card Help"      $(MstoolsDir)"ntcard.hlp"           ""  0
  1288.     Create$(Common)ProgmanItem    $(ToolsGroup) , "Troubleshooting Flowcharts"  $(MstoolsDir)"trouble.hlp"      ""  0
  1289.     Create$(Common)ProgmanItem    $(ToolsGroup) , "Registry Help"       $(MstoolsDir)"regentry.hlp"           ""  0
  1290.     Create$(Common)ProgmanItem    $(ToolsGroup) , "Hardware Compatibility List 7/1993" $(MstoolsDir)"jul93hcl.hlp"  ""    0
  1291.     Create$(Common)ProgmanItem    $(ToolsGroup) , "Net Watcher"          $(MstoolsDir)"netwatch.exe"           ""  0
  1292.     Create$(Common)ProgmanItem    $(ToolsGroup) , "Scheduler"          $(MstoolsDir)"winat.exe"           ""  0
  1293.     Create$(Common)ProgmanItem    $(ToolsGroup) , "Domain Monitor"      $(MstoolsDir)"dommon.exe"           ""  0
  1294.     Create$(Common)ProgmanItem    $(ToolsGroup) , "Browser Monitor"      $(MstoolsDir)"browmon.exe"           ""  0
  1295.     Create$(Common)ProgmanItem    $(ToolsGroup) , "Server Manager for Domains"      $(MstoolsDir)"srvmgr.exe"           ""  0
  1296.     Create$(Common)ProgmanItem    $(ToolsGroup) , "User Manager for Domains"          $(MstoolsDir)"usrmgr.exe"           ""  0
  1297.     Create$(Common)ProgmanItem    $(ToolsGroup) , "User Profile Editor"      $(MstoolsDir)"upedit.exe"           ""  0
  1298.     Create$(Common)ProgmanItem    $(ToolsGroup) , "Process Viewer"      $(MstoolsDir)"pviewer.exe"           ""  0
  1299.     Create$(Common)ProgmanItem    $(ToolsGroup) , "Animated Cursor Creator" $(MstoolsDir)"aniedit.exe"           ""  0
  1300.     Create$(Common)ProgmanItem    $(ToolsGroup) , "Imagedit"          $(MstoolsDir)"imagedit.exe"           ""  0
  1301.     Create$(Common)ProgmanItem    $(ToolsGroup) , "Quick Slice"          $(MstoolsDir)"qslice.exe"           ""  0
  1302.     Create$(Common)ProgmanItem    $(ToolsGroup) , "Unicode Converter"      $(MstoolsDir)"uconvert.exe"           ""  0
  1303.     Create$(Common)ProgmanItem    $(ToolsGroup) , "TopDesk"          $(MstoolsDir)"topdesk.exe"           ""  0
  1304.     Create$(Common)ProgmanItem    $(ToolsGroup) , "Win VTP"          $(MstoolsDir)"winvtp.exe"           ""  0
  1305.     Create$(Common)ProgmanItem    $(ToolsGroup) , "WinDiff"          $(MstoolsDir)"windiff.exe"           ""  0
  1306.     Create$(Common)ProgmanItem    $(ToolsGroup) , "POSIX Utility Help"      $(MstoolsDir)"posix.wri"           ""  0
  1307.  
  1308.     Show$(Common)ProgManGroup   $(ToolsGroup), 6
  1309.     exit
  1310.  
  1311. ;************************************************************************
  1312. ;                                                                       *
  1313. ;  MSTOOLS SUPPORT                                                      *
  1314. ;                                                                       *
  1315. ;************************************************************************
  1316.  
  1317. [Install-CopyToolsFiles]
  1318.     set STF_VITAL = ""
  1319.  
  1320. ;    split-string PATHCOMP $(!STF_SRCINFPATH) \
  1321. ;    set STF_SRCDIR = ""
  1322. ;    forlistdo $(PATHCOMP)
  1323. ;    ifstr(i) $($) != "install.inf"
  1324. ;        set STF_SRCDIR = $(STF_SRCDIR)$($)
  1325. ;    endif
  1326. ;    endforlistdo
  1327.  
  1328.     CreateDir  $(MstoolsDir)
  1329.  
  1330.     ifstr(i) $(STF_PLATFORM) == $(PlatformID_I386)
  1331.     CreateDir    $(MstoolsDir)\posix
  1332.     endif
  1333.  
  1334.     AddSectionFilesToCopyList Files-always-reskit $(STF_SRCDIR) $(MstoolsDir)
  1335.  
  1336. ;    ifstr(i) $(STF_PLATFORM) == $(PlatformID_I386)
  1337.     AddSectionFilesToCopyList Files-always-reskit-posix    $(STF_SRCDIR) $(MstoolsDir)posix
  1338. ;    endif
  1339.  
  1340.     AddSectionFilesToCopyList Files-always-system32 $(STF_SRCDIR) $(!STF_WINDOWSPATH)\system32
  1341.  
  1342. ;    ifstr(i) $(!DoAdminOther) == $(!Chosen)
  1343. ;    AddSectionFilesToCopyList Files-admin                  $(STF_SRCDIR)                $(MstoolsDir)
  1344. ;    endif
  1345. ;
  1346. ;    ifstr(i) $(!DoAnimate) == $(!Chosen)
  1347. ;    AddSectionFilesToCopyList Files-animate                  $(STF_SRCDIR)                $(MstoolsDir)
  1348. ;    endif
  1349. ;
  1350. ;    ifstr(i) $(!DoPerformance) == $(!Chosen)
  1351. ;    AddSectionFilesToCopyList Files-performance                  $(STF_SRCDIR)                $(MstoolsDir)
  1352. ;    endif
  1353. ;
  1354. ;    ifstr(i) $(!DoPosix) == $(!Chosen)
  1355. ;    AddSectionFilesToCopyList Files-posix                  $(STF_SRCDIR)                $(MstoolsDir)
  1356. ;    endif
  1357. ;
  1358. ;    ifstr(i) $(!DoRegistry) == $(!Chosen)
  1359. ;    AddSectionFilesToCopyList Files-registry                  $(STF_SRCDIR)                $(MstoolsDir)
  1360. ;    endif
  1361. ;
  1362. ;    ifstr(i) $(!DoSetupTrouble) == $(!Chosen)
  1363. ;    AddSectionFilesToCopyList Files-setup                  $(STF_SRCDIR)                $(MstoolsDir)
  1364. ;    endif
  1365.  
  1366.     exit
  1367.  
  1368. [Install-All-Files-Now]
  1369.     CopyFilesInCopyList
  1370.     exit
  1371.  
  1372. ;
  1373. ; REGULAR Resource Kit Tools
  1374. ;
  1375.  
  1376. [Files-always-reskit-posix]
  1377. 2, AR.EXE , SIZE=35328
  1378. 2, CAT.EXE , SIZE=41472
  1379. 2, CC.EXE , SIZE=39424
  1380. 2, CHMOD.EXE , SIZE=46592
  1381. 2, CHOWN.EXE , SIZE=43520
  1382. 2, CP.EXE , SIZE=43520
  1383. 2, DEVSRV.EXE , SIZE=72192
  1384. 2, FIND.EXE , SIZE=71680
  1385. 2, GREP.EXE , SIZE=60416
  1386. 2, LD.EXE , SIZE=36864
  1387. 2, LN.EXE , SIZE=39424
  1388. 2, LS.EXE , SIZE=52736
  1389. 2, MAKE.EXE , SIZE=159232
  1390. 2, MKDIR.EXE , SIZE=34816
  1391. 2, MV.EXE , SIZE=38912
  1392. 2, RM.EXE , SIZE=44544
  1393. 2, RMDIR.EXE , SIZE=32768
  1394. 2, SH.EXE , SIZE=162816
  1395. 2, TOUCH.EXE , SIZE=36352
  1396. 2, VI.EXE , SIZE=140800
  1397. 2, WC.EXE , SIZE=37376
  1398.  
  1399. [Files-always-reskit]
  1400. 2, ANIEDIT.EXE , SIZE=48128
  1401. 2, BROWMON.EXE , SIZE=139264
  1402. 2, BROWMON.HLP , SIZE=20992
  1403. 2, BROWSTAT.EXE , SIZE=49664
  1404. 2, CHOICE.EXE , SIZE=26624
  1405. 2, COMPRESS.EXE , SIZE=45056
  1406. 2, README.WRI , SIZE=39936
  1407. 2, DELPART.EXE , SIZE=126976
  1408. 2, DIRUSE.EXE , SIZE=45056
  1409. 2, DOMMON.EXE , SIZE=150528
  1410. 2, DOMMON.HLP , SIZE=29696
  1411. 2, DRIVERS.EXE , SIZE=29184
  1412. 2, DUMPEL.EXE , SIZE=38912
  1413. 2, EXETYPE.EXE , SIZE=36352
  1414. 2, EXETYPE.INI , SIZE=4608
  1415. 2, FATBOOT.BIN , SIZE=512
  1416. 2, FIFO.CMD , SIZE=1024
  1417. 2, FIFO_OFF.INI , SIZE=512
  1418. 2, FIFO_ON.INI , SIZE=512
  1419. 2, FLOPLOCK.EXE , SIZE=36864
  1420. 2, FTPCTRS.DLL , SIZE=13824
  1421. 2, FTPCTRS.H , SIZE=2048
  1422. 2, FTPCTRS.INI , SIZE=3584
  1423. 2, FTPCTRS.REG , SIZE=512
  1424. 2, FTPINST.BAT , SIZE=2560
  1425. 2, GETBS.EXE , SIZE=16896
  1426. 2, GRPTOREG.EXE , SIZE=35840
  1427. 2, GUTILS.DLL , SIZE=59904
  1428. 2, IMAGEDIT.EXE , SIZE=102912
  1429. 2, IMAGEDIT.HLP , SIZE=82432
  1430. 2, INSTALLD.CMD , SIZE=1024
  1431. 2, INSTSRV.EXE , SIZE=35328
  1432. 2, JUL93HCL.HLP , SIZE=62464
  1433. 2, JUL93HCL.IND , SIZE=153600
  1434. 2, LMMIB2.MIB , SIZE=16896
  1435. 2, LOADACCT.EXE , SIZE=80384
  1436. 2, LODCTR.EXE , SIZE=54272
  1437. 2, MIB_II.MIB , SIZE=105984
  1438. 2, MIBCC.EXE , SIZE=31744
  1439. 2, NETSVC.EXE , SIZE=30208
  1440. 2, NETWATCH.EXE , SIZE=49664
  1441. 2, NTCARD.HLP , SIZE=1210880
  1442. 2, NTDETECT.COM , SIZE=27136
  1443. 2, OS2API.TXT , SIZE=18432
  1444. 2, PERFMTR.EXE , SIZE=31232
  1445. 2, PERMS.EXE , SIZE=27648
  1446. 2, PMON.EXE , SIZE=28160
  1447. 2, POSIX.WRI , SIZE=224768
  1448. 2, PROFILE.INI , SIZE=5120
  1449. 2, PSTAT.EXE , SIZE=26624
  1450. 2, PVIEWER.EXE , SIZE=52736
  1451. 2, QSLICE.EXE , SIZE=51200
  1452. 2, RASUSERS.EXE , SIZE=32256
  1453. 2, REGBACK.EXE , SIZE=29696
  1454. 2, REGENTRY.HLP , SIZE=347136
  1455. 2, REGENTRY.IND , SIZE=489472
  1456. 2, REGINI.EXE , SIZE=51200
  1457. 2, REGREST.EXE , SIZE=28672
  1458. 2, REGTOGRP.EXE , SIZE=28672
  1459. 2, REMOTE.EXE , SIZE=52736
  1460. 2, REMOVE.BAT , SIZE=1536
  1461. 2, REPAIR.EXE , SIZE=143360
  1462. 2, RESTFILE.EXE , SIZE=25088
  1463. 2, RESTKEYS.EXE , SIZE=86528
  1464. 2, RKTOOLS.HLP , SIZE=175104
  1465. 2, SCHEMES.BAT , SIZE=3072
  1466. 2, SCHEMES.CPL , SIZE=38912
  1467. 2, SCOPY.EXE , SIZE=22528
  1468. 2, SHARED32.INI , SIZE=1024
  1469. 2, SLEEP.EXE , SIZE=22528
  1470. 2, SMBTRACE.EXE , SIZE=104448
  1471. 2, SMI.MIB , SIZE=4608
  1472. 2, SNMPUTIL.EXE , SIZE=16896
  1473. 2, SRVMGR.EXE , SIZE=375296
  1474. 2, SRVMGR.HLP , SIZE=124416
  1475. 2, TOPDESK.EXE , SIZE=84480
  1476. 2, TOPDESK.HLP , SIZE=39936
  1477. 2, TOPHOOK.DLL , SIZE=8704
  1478. 2, TROUBLE.HLP , SIZE=229888
  1479. 2, TROUBLE.IND , SIZE=53248
  1480. 2, UCONVERT.EXE , SIZE=48640
  1481. 2, UCONVERT.HLP , SIZE=10000
  1482. 2, UNLODCTR.EXE , SIZE=41472
  1483. 2, UPEDIT.EXE , SIZE=47104
  1484. 2, UPEDIT.HLP , SIZE=39424
  1485. 2, UPLODPRF.EXE , SIZE=116736
  1486. 2, UPLODPS2.BAT , SIZE=512
  1487. 2, USRMGR.EXE , SIZE=534528
  1488. 2, USRMGR.HLP , SIZE=129536
  1489. 2, WINAT.EXE , SIZE=57344
  1490. 2, WINAT.HLP , SIZE=12288
  1491. 2, WINDIFF.EXE , SIZE=119296
  1492. 2, WINNTP.EXE , SIZE=50688
  1493. 2, WINVTP.EXE , SIZE=44032
  1494. 2, ~PROFILE.INF , SIZE=62976
  1495.  
  1496. [Files-always-system32]
  1497. 2, 3DGAPST.CUR , SIZE=1024
  1498. 2, 3DGAPSTL.CUR , SIZE=1024
  1499. 2, 3DGARRO.CUR , SIZE=1024
  1500. 2, 3DGARROL.CUR , SIZE=1024
  1501. 2, 3DGMOVE.CUR , SIZE=1024
  1502. 2, 3DGNESW.CUR , SIZE=1024
  1503. 2, 3DGNO.CUR , SIZE=1024
  1504. 2, 3DGNOL.CUR , SIZE=1024
  1505. 2, 3DGNS.CUR , SIZE=1024
  1506. 2, 3DGNWSE.CUR , SIZE=1024
  1507. 2, 3DGWAIT.CUR , SIZE=1024
  1508. 2, 3DGWE.CUR , SIZE=1024
  1509. 2, 3DSAPST.CUR , SIZE=1024
  1510. 2, 3DSARRO.CUR , SIZE=1024
  1511. 2, 3DSMOVE.CUR , SIZE=1024
  1512. 2, 3DSNESW.CUR , SIZE=1024
  1513. 2, 3DSNO.CUR , SIZE=1024
  1514. 2, 3DSNS.CUR , SIZE=1024
  1515. 2, 3DSNWSE.CUR , SIZE=1024
  1516. 2, 3DSWAIT.CUR , SIZE=1024
  1517. 2, 3DSWE.CUR , SIZE=1024
  1518. 2, 3DWAPST.CUR , SIZE=1024
  1519. 2, 3DWAPSTL.CUR , SIZE=1024
  1520. 2, 3DWARRO.CUR , SIZE=1024
  1521. 2, 3DWARROL.CUR , SIZE=1024
  1522. 2, 3DWMOVE.CUR , SIZE=1024
  1523. 2, 3DWNESW.CUR , SIZE=1024
  1524. 2, 3DWNO.CUR , SIZE=1024
  1525. 2, 3DWNOL.CUR , SIZE=1024
  1526. 2, 3DWNS.CUR , SIZE=1024
  1527. 2, 3DWNWSE.CUR , SIZE=1024
  1528. 2, 3DWWAIT.CUR , SIZE=1024
  1529. 2, 3DWWE.CUR , SIZE=1024
  1530. 2, OEMNSVKT.INF , SIZE=39424
  1531. 2, APPLE.ANI , SIZE=3584
  1532. 2, APPSTAR2.ANI , SIZE=8192
  1533. 2, APPSTART.CUR , SIZE=1024
  1534. 2, APPSTRT2.CUR , SIZE=1024
  1535. 2, BMAPST.CUR , SIZE=1024
  1536. 2, BMARRO.CUR , SIZE=1024
  1537. 2, BMMOVE.CUR , SIZE=1024
  1538. 2, BMNESW.CUR , SIZE=1024
  1539. 2, BMNO.CUR , SIZE=1024
  1540. 2, BMNS.CUR , SIZE=1024
  1541. 2, BMNWSE.CUR , SIZE=1024
  1542. 2, BMWAIT.CUR , SIZE=1024
  1543. 2, BMWE.CUR , SIZE=1024
  1544. 2, BSAPST.CUR , SIZE=1024
  1545. 2, BSARRO.CUR , SIZE=1024
  1546. 2, BSMOVE.CUR , SIZE=1024
  1547. 2, BSNESW.CUR , SIZE=1024
  1548. 2, BSNO.CUR , SIZE=1024
  1549. 2, BSNS.CUR , SIZE=1024
  1550. 2, BSNWSE.CUR , SIZE=1024
  1551. 2, BSWAIT.CUR , SIZE=1024
  1552. 2, BSWE.CUR , SIZE=1024
  1553. 2, CROSS.CUR , SIZE=1024
  1554. 2, DINOSAU2.ANI , SIZE=5120
  1555. 2, DINOSAUR.ANI , SIZE=5120
  1556. 2, HANDAPST.ANI , SIZE=50176
  1557. 2, HANDEXIT.ANI , SIZE=6656
  1558. 2, HANDNESW.ANI , SIZE=2048
  1559. 2, HANDNO.ANI , SIZE=4096
  1560. 2, HANDNS.ANI , SIZE=2048
  1561. 2, HANDNWSE.ANI , SIZE=2048
  1562. 2, HANDWAIT.ANI , SIZE=8704
  1563. 2, HANDWE.ANI , SIZE=2048
  1564. 2, HARROW.CUR , SIZE=1024
  1565. 2, HCROSS.CUR , SIZE=1024
  1566. 2, HIBEAM.CUR , SIZE=1024
  1567. 2, HMOVE.CUR , SIZE=1024
  1568. 2, HNESW.CUR , SIZE=1024
  1569. 2, HNODROP.CUR , SIZE=1024
  1570. 2, HNS.CUR , SIZE=1024
  1571. 2, HNWSE.CUR , SIZE=1024
  1572. 2, HOURGLA2.ANI , SIZE=12288
  1573. 2, HOURGLAS.CUR , SIZE=1024
  1574. 2, HWE.CUR , SIZE=1024
  1575. 2, LAPPSTRT.CUR , SIZE=1024
  1576. 2, LARROW.CUR , SIZE=1024
  1577. 2, LCROSS.CUR , SIZE=1024
  1578. 2, LIBEAM.CUR , SIZE=1024
  1579. 2, LMOVE.CUR , SIZE=1024
  1580. 2, LNESW.CUR , SIZE=1024
  1581. 2, LNODROP.CUR , SIZE=1024
  1582. 2, LNS.CUR , SIZE=1024
  1583. 2, LNWSE.CUR , SIZE=1024
  1584. 2, LWAIT.CUR , SIZE=1024
  1585. 2, LWE.CUR , SIZE=1024
  1586. 2, MSAPST.CUR , SIZE=1024
  1587. 2, MSARRO.CUR , SIZE=1024
  1588. 2, MSMOVE.CUR , SIZE=1024
  1589. 2, MSNESW.CUR , SIZE=1024
  1590. 2, MSNO.CUR , SIZE=1024
  1591. 2, MSNS.CUR , SIZE=1024
  1592. 2, MSNWSE.CUR , SIZE=1024
  1593. 2, MSWAIT.CUR , SIZE=1024
  1594. 2, MSWE.CUR , SIZE=1024
  1595. 2, NOARROW.CUR , SIZE=1024
  1596. 2, PSAPST.CUR , SIZE=1024
  1597. 2, PSARRO.CUR , SIZE=1024
  1598. 2, PSMOVE.CUR , SIZE=1024
  1599. 2, PSNESW.CUR , SIZE=1024
  1600. 2, PSNO.CUR , SIZE=1024
  1601. 2, PSNS.CUR , SIZE=1024
  1602. 2, PSNWSE.CUR , SIZE=1024
  1603. 2, PSWAIT.CUR , SIZE=1024
  1604. 2, PSWE.CUR , SIZE=1024
  1605. 2, RSAPST.CUR , SIZE=1024
  1606. 2, RSARRO.CUR , SIZE=1024
  1607. 2, RSMOVE.CUR , SIZE=1024
  1608. 2, RSNESW.CUR , SIZE=1024
  1609. 2, RSNO.CUR , SIZE=1024
  1610. 2, RSNS.CUR , SIZE=1024
  1611. 2, RSNWSE.CUR , SIZE=1024
  1612. 2, RSWAIT.CUR , SIZE=1024
  1613. 2, RSWE.CUR , SIZE=1024
  1614. 2, TV.ANI , SIZE=11264
  1615.  
  1616.