home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 9 / 09.iso / d / d423_liu / 8.ddi / SETUP.IN_ / SETUP.IN
Encoding:
INI File  |  1993-07-24  |  36.4 KB  |  892 lines

  1. [GeneralConstants]
  2.     Radio1  = "1"
  3.     Radio2  = "2"
  4.     Radio3  = "3"
  5.     Radio4  = "4"
  6.     Radio5  = "5"
  7.     Radio6  = "6"
  8.     Radio7  = "7"
  9.     Radio8  = "8"
  10.     Radio9  = "9"
  11.     Chosen    = "ON"
  12.     NotChosen = "OFF"
  13. [ProcessorID]
  14.     ProcessorID_I386  = I386
  15.     ProcessorID_I486  = I486
  16.     ProcessorID_I586  = I586
  17.     ProcessorID_R4000 = R4000
  18. [PlatformID]
  19.     PlatformID_I386 = I386
  20.     PlatformID_Mips = Mips
  21. [ProcessorVar]
  22.     STF_PROCESSOR = "" ? $(!LIBHANDLE) GetProcessor
  23. [LanguageVar]
  24.     STF_LANGUAGE   = "" ? $(!LIBHANDLE) GetLanguage
  25. [UiVars]
  26.     STF_NTDRIVE        = ""
  27.     STF_NTPATH         = ""
  28.     STF_WINDOWSPATH    = "" ? $(!LIBHANDLE) GetWindowsNtDir
  29.     STF_WINDOWSSYSPATH = "" ? $(!LIBHANDLE) GetWindowsNtSysDir
  30.     STF_INSTALL_MODE = "CUSTOM"
  31.     STF_INSTALL_TYPE = "MAINTENANCE"
  32.     STF_UPGRADE      = "YES"
  33.     STF_CONTROLSET   = "CurrentControlSet"
  34.     STF_COMPUTERNAME = "" ? $(!LIBHANDLE) GetMyComputerName
  35. [SystemInformationClasses]
  36.     Video
  37.     Pointer
  38.     Keyboard
  39. [VarsI386]
  40. DefaultVideo   = "VGA"
  41. [VarsMips]
  42. DefaultVideo   = ""
  43. [VideoVars]
  44.     VideoHardwareDetected      = "" ? $(!LIBHANDLE) GetMyVideoType
  45.     VideoSystemSet             = "" ? $(!LIBHANDLE) GetSelectedVideo
  46.     VideoDefault               = $(DefaultVideo)
  47.     VideoOurINFOptions         = {}
  48.     VideoOemINFOptions         = {}
  49.     VideoMergedOptions         = {}
  50.     VideoSpecialOption         = {}
  51.     VideoCurrentOption         = {}
  52.     VideoOptionList            = {}
  53.     VideoOptionTextList        = {}
  54.     VideoOption                = {}
  55.     VideoINF                   = ""
  56.     VideoInstall               = "NO"
  57.     VideoSrcDir                = ""
  58.     VideoDstDir                = ""
  59. [PointerVars]
  60.     PointerHardwareDetected      = "" ? $(!LIBHANDLE) GetMyPointerType
  61.     PointerSystemSet             = "" ? $(!LIBHANDLE) GetSelectedPointer
  62.     PointerDefault               = ""
  63.     PointerOurINFOptions         = {}
  64.     PointerOemINFOptions         = {}
  65.     PointerMergedOptions         = {}
  66.     PointerSpecialOption         = {}
  67.     PointerCurrentOption         = {}
  68.     PointerOptionList            = {}
  69.     PointerOptionTextList        = {}
  70.     PointerOption                = {}
  71.     PointerINF                   = ""
  72.     PointerInstall               = "NO"
  73.     PointerSrcDir                = ""
  74.     PointerDstDir                = ""
  75. [KeyboardVars]
  76.     KeyboardHardwareDetected      = "" ? $(!LIBHANDLE) GetMyKeyboardType
  77.     KeyboardSystemSet             = "" ? $(!LIBHANDLE) GetSelectedKeyboard
  78.     KeyboardDefault               = "PCAT_ENHANCED"
  79.     KeyboardOurINFOptions         = {}
  80.     KeyboardOemINFOptions         = {}
  81.     KeyboardMergedOptions         = {}
  82.     KeyboardSpecialOption         = {}
  83.     KeyboardCurrentOption         = {}
  84.     KeyboardOptionList            = {}
  85.     KeyboardOptionTextList        = {}
  86.     KeyboardOption                = {}
  87.     KeyboardINF                   = ""
  88.     KeyboardInstall               = "NO"
  89.     KeyboardSrcDir                = ""
  90.     KeyboardDstDir                = ""
  91. [Shell Commands]
  92.     Set !G:DebugOutputControl = 0
  93.     set Exit_Code    = $(!SETUP_ERROR_GENERAL)
  94.     set DrivesToFree = {}
  95.     set-title "Windows NT Setup"
  96.     LoadLibrary "x" $(!STF_CWDDIR)\setupdll.dll !LIBHANDLE
  97.     set-subst LF = "\n"
  98.     set Reboot = NO
  99.     StartWait
  100.     read-syms GeneralConstants
  101.     read-syms LanguageVar
  102.     detect    LanguageVar
  103.     read-syms Strings$(!STF_LANGUAGE)
  104.     read-syms ProcessorID
  105.     read-syms PlatformID
  106.     read-syms ProductType
  107.     read-syms ProcessorVar
  108.     detect    ProcessorVar
  109.     ifstr(i) $(STF_PROCESSOR) == $(ProcessorID_I386)
  110.         ifstr(i) $(STF_PLATFORM) != $(PlatformID_I386)
  111.             EndWait
  112.             shell "subroutn.inf" SetupMessage $(STF_LANGUAGE) "FATAL" $(String14)
  113.             StartWait
  114.             goto end
  115.         endif
  116.     else-ifstr(i) $(STF_PROCESSOR) == $(ProcessorID_I486)
  117.         ifstr(i) $(STF_PLATFORM) != $(PlatformID_I386)
  118.             EndWait
  119.             shell "subroutn.inf" SetupMessage $(STF_LANGUAGE) "FATAL" $(String14)
  120.             StartWait
  121.             goto end
  122.         endif
  123.     else-ifstr(i) $(STF_PROCESSOR) == $(ProcessorID_I586)
  124.         ifstr(i) $(STF_PLATFORM) != $(PlatformID_I386)
  125.             EndWait
  126.             shell "subroutn.inf" SetupMessage $(STF_LANGUAGE) "FATAL" $(String14)
  127.             StartWait
  128.             goto end
  129.         endif
  130.     else-ifstr(i) $(STF_PROCESSOR) == $(ProcessorID_R4000)
  131.         ifstr(i) $(STF_PLATFORM) != $(PlatformID_Mips)
  132.             EndWait
  133.             shell "subroutn.inf" SetupMessage $(STF_LANGUAGE) "FATAL" $(String14)
  134.             StartWait
  135.             goto end
  136.         endif
  137.     else
  138.         EndWait
  139.         shell "subroutn.inf" SetupMessage $(STF_LANGUAGE) "FATAL" $(String5)
  140.         StartWait
  141.         goto end
  142.     endif
  143.     read-syms Vars$(!STF_PLATFORM)
  144.     set STF_SRCDIR = A:\
  145.     shell "registry.inf" GetNTSource
  146.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  147.     else-ifstr(i) $($R0) != STATUS_SUCCESSFUL
  148.     else
  149.         set STF_SRCDIR = $($R1)
  150.     endif
  151.     shell "subroutn.inf" PushBillboard STATUSDLG $(String15)
  152.     read-syms UiVars
  153.     detect    UiVars
  154.     set !STF_NTPATH = $(!STF_WINDOWSSYSPATH)
  155.     GetDriveInPath !STF_NTDRIVE $(!STF_WINDOWSSYSPATH)
  156.     shell "subroutn.inf" ReadSetupHelpIds
  157.     SetHelpFile "setupnt.hlp" $(!MinimumID) $(!MaximumID)
  158.     set ConfigureOptions = {}
  159.     read-syms OemOptionDiskettes$(!STF_LANGUAGE)
  160.     set OptionTypeList = {Video, Pointer, Keyboard}
  161.     ForListDo $(OptionTypeList)
  162.         read-syms $($)Vars
  163.         detect    $($)Vars
  164.     EndForListDo
  165.     ForListDo $(OptionTypeList)
  166.         shell "hardware.inf" InitOptionVars $(!STF_LANGUAGE) $($) $($($)HardwareDetected) $($($)SystemSet) $($($)Default)
  167.         ifstr(i) $($R0) == "STATUS_SUCCESSFUL"
  168.             set $($)OurINFOptions = $($R1)
  169.             set $($)OemINFOptions = $($R2)
  170.             set $($)MergedOptions = $($R3)
  171.             set $($)SpecialOption = $($R4)
  172.             set $($)CurrentOption = $($R5)
  173.             set $($)Option        = *($($R5), 1)
  174.             set $($)NewOption     = *($($R5), 1)
  175.         else
  176.             shell "subroutn.inf" PopBillboard
  177.             EndWait
  178.             shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) "FATAL" $(String1)
  179.             StartWait
  180.             goto end
  181.         endif
  182.     EndForListDo
  183.     ForListDo $(OptionTypeList)
  184.         shell "hardware.inf" InitListBoxVars $(!STF_LANGUAGE) $($($)MergedOptions) $($($)SpecialOption) $(Other)
  185.         ifstr(i) $($R0) == "STATUS_SUCCESSFUL"
  186.             set $($)OptionList     = $($R1)
  187.             set $($)OptionTextList = $($R2)
  188.         else
  189.             shell "subroutn.inf" PopBillboard
  190.             EndWait
  191.             shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) "FATAL" $(String2)
  192.             StartWait
  193.             goto  end
  194.         endif
  195.     EndForListDo
  196.     EndWait
  197.     shell "subroutn.inf" PopBillboard
  198. maintenance = +
  199.     read-syms MaintDlg$(!STF_LANGUAGE)
  200.     EndWait
  201.     ui start "Maintenance"
  202.     ifstr(i) $(DLGEVENT) == "CONTINUE"
  203.         set Exit_Code = $(!SETUP_ERROR_SUCCESS)
  204.         set Status = STATUS_SUCCESSFUL
  205.         ui pop 1
  206.         goto end
  207.     else-ifstr(i) $(DLGEVENT) == "EXIT"
  208.         set Exit_Code = $(!SETUP_ERROR_SUCCESS)
  209.         set Status = STATUS_USERQUIT
  210.         ui pop 1
  211.         goto end
  212.     else-ifstr(i) $(DLGEVENT) == "SYSTEM"
  213.         shell "registry.inf" CheckSetupModify
  214.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  215.             Debug-Output "shelling CheckSetupModify failed"
  216.             set Reinit = NO
  217.             goto maintenance
  218.         else-ifstr(i) $($R0) != STATUS_SUCCESSFUL
  219.             shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) "NONFATAL" $(String7)
  220.             set ReInit = NO
  221.             goto maintenance
  222.         endif
  223.         StartWait
  224.         ForListDo $(OptionTypeList)
  225.             set $($)NewOption = $($($)Option)
  226.         EndForListDo
  227.         goto system
  228.     else-ifstr(i) $(DLGEVENT) == "APPINSTALL"
  229.         StartWait
  230.         shell "registry.inf" CheckSetupModify
  231.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  232.             Debug-Output "shelling CheckSetupModify failed"
  233.             set Reinit = NO
  234.             goto maintenance
  235.         else-ifstr(i) $($R0) != STATUS_SUCCESSFUL
  236.             EndWait
  237.             shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) "NONFATAL" $(String7)
  238.             StartWait
  239.             set ReInit = NO
  240.             goto maintenance
  241.         endif
  242.         shell "app.inf" DoAppSearch
  243.         set ReInit = NO
  244.         goto maintenance
  245.     else-ifstr(i) $(DLGEVENT) == "ADDREMOVE"
  246.         StartWait
  247.         set DoPartial = YES
  248.         shell "partial.inf" MaintainProgmanComponents
  249.         set ReInit = NO
  250.         goto maintenance
  251.     else-ifstr(i) $(DLGEVENT) == "ADDREMOVESCSI"
  252.         StartWait
  253.         shell "" DoDriverInstall "SCSI"
  254.         set ReInit = NO
  255.         goto maintenance
  256.     else-ifstr(i) $(DLGEVENT) == "ADDREMOVETAPE"
  257.         StartWait
  258.         shell "" DoDriverInstall "Tape"
  259.         set ReInit = NO
  260.         goto maintenance
  261.     else-ifstr(i) $(DLGEVENT) == "PROFILE"
  262.         StartWait
  263.         shell "" DoProfiles
  264.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  265.             Debug-Output "shelling DoProfiles failed"
  266.         endif
  267.         set ReInit = NO
  268.         goto maintenance
  269.     else
  270.         ui pop 1
  271.         goto end
  272.     endif
  273. system = +
  274.     read-syms SystemDlg$(!STF_LANGUAGE)
  275.     EndWait
  276.     ui start "System"
  277.     ifstr(i) $(DLGEVENT) == "CONTINUE"
  278.         StartWait
  279.         ForListDo $(OptionTypeList)
  280.             set Option = $($)
  281.             ifstr(i) $($(Option)Option) != $($(Option)NewOption)
  282.                 ifstr(i) $($(Option)SpecialOption) != {}
  283.                     ifstr(i) $($(Option)NewOption) == *($($(Option)SpecialOption), 1)
  284.                         goto skip_install
  285.                     endif
  286.                 endif
  287.                 shell "hardware.inf" GetOptionFile $($(Option)NewOption) $($(Option)OemINFOptions)
  288.                 ifstr(i) $($R0) == "STATUS_SUCCESSFUL"
  289.                     set $(Option)INF    = $(!STF_WINDOWSSYSPATH)"\"$($R1)
  290.                     set $(Option)SrcDir = $($(Option)DisketteSrc)
  291.                     goto do_install
  292.                 endif
  293.                 shell "hardware.inf" GetOptionFile $($(Option)NewOption) $($(Option)OurINFOptions)
  294.                 ifstr(i) $($R0) == "STATUS_SUCCESSFUL"
  295.                     set $(Option)INF    = $($R1)
  296.                     set $(Option)SrcDir = $(!STF_SRCDIR)
  297.                     goto do_install
  298.                 endif
  299. do_install = +
  300.                 shell $($(Option)INF) InstallOption $(!STF_LANGUAGE) $($(Option)NewOption) $($(Option)SrcDir) "YES" "YES" "YES"
  301.                 ifint $($ShellCode) != $(!SHELL_CODE_OK)
  302.                     Debug-Output "Shelling installOption "$($(Option)NewOption)" in INF "$($(Option)INF)" failed"
  303.                     goto skip_install
  304.                 endif
  305.                 ifstr(i) $($R0) != STATUS_SUCCESSFUL
  306.                     Debug-Output "InstallOption "$($(Option)NewOption)" in INF "$($(Option)INF)" failed"
  307.                     goto skip_install
  308.                 endif
  309.                 shell "registry.inf" MakeSetupOptionEntry $(Option) $($(Option)NewOption)
  310.                 ifint $($ShellCode) != $(!SHELL_CODE_OK)
  311.                     Debug-Output "shelling MakeSetupOptionEntry failed"
  312.                     goto skip_install
  313.                 endif
  314.                 ifstr(i) $($R0) != STATUS_SUCCESSFUL
  315.                     Debug-Output "Making setup entry for "$(Option)" = "$($(Option)NewOption)" failed."
  316.                     goto skip_install
  317.                 endif
  318.                 set $(Option)Option = $($(Option)NewOption)
  319.                 set Reboot = YES
  320. skip_install = +
  321.             endif
  322.         EndForListDo
  323.         ui pop 1
  324.         set ReInit = YES
  325.         goto maintenance
  326.     else-ifstr(i) $(DLGEVENT) == "NOTIFY"
  327.         set OptionNum = $(ButtonChecked)
  328.         set Option    = *($(OptionTypeList), $(ButtonChecked))
  329.         set ReInit = YES
  330.         ifstr(i) $(Combo$(OptionNum)Out) != $(Other)
  331.             set $(Option)NewOption = *($($(Option)OptionList), ~($(Combo$(OptionNum)List), $(Combo$(OptionNum)Out)))
  332.             set ReInit = NO
  333.         else
  334.             shell "other.inf" GetNewOEMOption $(!STF_LANGUAGE) $($(Option)OemINFOptions) $(Option) $($(Option)DisketteSrc)
  335.             ifstr(i) $($R0) == STATUS_SUCCESSFUL
  336.                 set $(Option)OemINFOptions  = $($R1)
  337.                 set $(Option)NewOption      = $($R2)
  338.                 set $(Option)DisketteSrc    = $($R4)
  339.                 shell "hardware.inf" MergeOptions $($(Option)OurINFOptions) $($(Option)OemINFOptions)
  340.                 ifstr(i) $($R0) == STATUS_SUCCESSFUL
  341.                     set $(Option)MergedOptions = {$($R1), $($R2)}
  342.                 else
  343.                     shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) "FATAL" $(String4)
  344.                     ui pop 1
  345.                     goto finish_system
  346.                 endif
  347.                 shell "hardware.inf" InitListBoxVars $(!STF_LANGUAGE) $($(Option)MergedOptions) $($(Option)SpecialOption) $(Other)
  348.                 ifstr(i) $($R0) == "STATUS_SUCCESSFUL"
  349.                     set $(Option)OptionList     = $($R1)
  350.                     set $(Option)OptionTextList = $($R2)
  351.                 else
  352.                     shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) "FATAL" $(String2)
  353.                     ui pop 1
  354.                     goto  finish_system
  355.                 endif
  356.             else-ifstr(i) $($R0) == "STATUS_USERCANCEL"
  357.                 set ReInit = YES
  358.                 goto system
  359.             else
  360.                 shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) "NONFATAL" $(String3)
  361.                 set ReInit = YES
  362.                 goto system
  363.             endif
  364.         endif
  365.         goto system
  366.     else-ifstr(i) $(DLGEVENT) == "BACK"
  367.         ui pop 1
  368.         set  ReInit = YES
  369.         goto maintenance
  370.     else
  371.         ui pop 1
  372.         set ReInit = YES
  373.         goto maintenance
  374.     endif
  375. finish_system = +
  376.     set ReInit = YES
  377.     goto maintenance
  378. end = +
  379.     ForListDo $(DrivesToFree)
  380.         LibraryProcedure STATUS,$(!LIBHANDLE), DeleteNetConnection $($) "TRUE"
  381.     EndForListDo
  382.     ifstr(i) $(Reboot) == "YES"
  383.         shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) "STATUS" $(String6)
  384.     endif
  385.     FreeLibrary $(!LIBHANDLE)
  386.     exit
  387. [DoProfiles]
  388.     set Status = STATUS_FAILED
  389.     read-syms ProfileStrings$(!STF_LANGUAGE)
  390.     read-syms ProfileVars
  391.     detect    ProfileVars
  392.     ifstr(i) $(!STF_COMPUTERNAME) == ""
  393.         set !STF_COMPUTERNAME = $(String1)
  394.     endif
  395.     ifstr(i) $(UserAccounts) == {}
  396.         shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) "STATUS" $(String2)
  397.         set Status = STATUS_SUCCESSFUL
  398.         goto finish_doprofiles
  399.     endif
  400.     set UserProfileList = {}
  401.     ForListDo $(UserAccounts)
  402.         set UserProfileList = >($(UserProfileList), *($($), 2))
  403.     EndForListDo
  404. profile_rst =+
  405.     read-syms ProfileDlg$(!STF_LANGUAGE)
  406.     EndWait
  407.     ui start "Profile"
  408.     ifstr(i) $(DLGEVENT) == "CONTINUE"
  409.         set Status = STATUS_SUCCESSFUL
  410.         ui pop 1
  411.         goto finish_doprofiles
  412.     else-ifstr(i) $(DLGEVENT) == "FREEBUTTON1"
  413.         ifstr(i) $(ListItemsOut) == ""
  414.             shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) "NONFATAL" $(String3)
  415.             set ReInit = NO
  416.             goto profile_rst
  417.         else-ifstr(i) $(ListItemsOut) == $(UserName)
  418.             shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) "NONFATAL" $(String7)
  419.             set ReInit = NO
  420.             goto profile_rst
  421.         endif
  422.         set UserProfileFile = ""
  423.         ForListDo $(UserAccounts)
  424.             ifstr(i) *($($), 2) == $(ListItemsOut)
  425.                 set UserProfileKey  = *($($), 1)
  426.                 set UserProfileFile = *($($), 3)
  427.             endif
  428.         EndForListDo
  429.         LibraryProcedure STATUS, $(!LIBHANDLE), DeleteUserProfile $(UserProfileFile) $(UserProfileKey)
  430.         ifstr(i) $(STATUS) == "YES"
  431.             set NewUserProfileList = {}
  432.             ForListDo $(UserProfileList)
  433.                 ifstr(i) $($) != $(ListItemsOut)
  434.                     set NewUserProfileList = >($(NewUserProfileList), $($))
  435.                 endif
  436.             EndForListDo
  437.             set UserProfileList = $(NewUserProfileList)
  438.             set ReInit = YES
  439.             goto profile_rst
  440.         else-ifstr(i) $(STATUS) == "ERROR_PRIVILEGE"
  441.             shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) "NONFATAL" $(String4)
  442.             set ReInit = NO
  443.             goto profile_rst
  444.         else-ifstr(i) $(STATUS) == "ERROR_ACTIVE"
  445.             shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) "NONFATAL" $(String5)
  446.             set ReInit = NO
  447.             goto profile_rst
  448.         else
  449.             shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) "NONFATAL" $(String6)
  450.             set ReInit = NO
  451.             goto profile_rst
  452.         endif
  453.     else
  454.         ui pop 1
  455.         goto finish_doprofiles
  456.     endif
  457. finish_doprofiles = +
  458.     StartWait
  459.     Return $(Status)
  460. [ProfileVars]
  461.     UserAccounts = {} ? $(!LIBHANDLE) GetUserAccounts
  462.     UserName     = "" ? $(!LIBHANDLE) GetMyUserName
  463.     UserProfileList = {}
  464.     UserProfile     = ""
  465. [DoDriverInstall]
  466.     set Status = STATUS_FAILED
  467.     read-syms Strings$(!STF_LANGUAGE)
  468.     read-syms $($0)Strings$(!STF_LANGUAGE)
  469.     set OptionType = $($0)
  470.     set DisketteSrc = "A:\"
  471.     shell "hardware.inf" InitOptionVars $(!STF_LANGUAGE) $(OptionType) "" "" ""
  472.     ifstr(i) $($R0) == "STATUS_SUCCESSFUL"
  473.         set OurINFOptions = $($R1)
  474.         set OemINFOptions = $($R2)
  475.         set MergedOptions = $($R3)
  476.     else
  477.         EndWait
  478.         shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) "FATAL" $(String1)
  479.         StartWait
  480.         goto end
  481.     endif
  482.     set DeviceInfFiles = {}
  483.     ForListDo $(OurINFOptions)
  484.         set DeviceInfFiles = >($(DeviceInfFiles), *($($), 1))
  485.     EndForListDo
  486.     ForListDo $(OemINFOptions)
  487.         set DeviceInfFiles = >($(DeviceInfFiles), *($($), 1))
  488.     EndForListDo
  489.     set InstalledList     = {}
  490.     set InstalledTextList = {}
  491.     ForListDo $(DeviceInfFiles)
  492.         shell $($) GetInstalledOptions $(!STF_LANGUAGE)
  493.         ifint $($ShellCode) == $(!SHELL_CODE_OK)
  494.             ifstr(i) $($R0) == STATUS_SUCCESSFUL
  495.                 ForListDo $($R1)
  496.                     set InstalledList     = >($(InstalledList), $($))
  497.                     set InstalledTextList = >($(InstalledTextList), *($($R2), $(#)))
  498.                 EndForListDo
  499.             endif
  500.         endif
  501.     EndForListDo
  502.     set CurrentInstalledOption     = ""
  503.     set CurrentInstalledOptionText = ""
  504.     shell "hardware.inf" InitListBoxVars $(!STF_LANGUAGE) $(MergedOptions) {} $(Other)
  505.     ifstr(i) $($R0) == "STATUS_SUCCESSFUL"
  506.         set OptionList     = $($R1)
  507.         set OptionTextList = $($R2)
  508.         Debug-Output "Option text list: "$(OptionTextList)
  509.         set NewOption      = *($($R1), 1)
  510.     else
  511.         EndWait
  512.         shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) "FATAL" $(String2)
  513.         StartWait
  514.         goto  finish_DoDriverInstall
  515.     endif
  516. driver_install = +
  517.     read-syms DriverInstall$(!STF_LANGUAGE)
  518.     EndWait
  519.     ui start "DriverInstall"
  520.     ifstr(i) $(DLGEVENT) == "CONTINUE"
  521.         set Status = STATUS_SUCCESSFUL
  522.         ui pop 1
  523.         goto finish_DoDriverInstall
  524.     else-ifstr(i) $(DLGEVENT) == "FREEBUTTON1"
  525.         Debug-Output "Add Selected"
  526.         shell "registry.inf" CheckSetupModify
  527.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  528.             Debug-Output "shelling CheckSetupModify failed"
  529.             set Reinit = NO
  530.             goto driver_install
  531.         else-ifstr(i) $($R0) != STATUS_SUCCESSFUL
  532.             shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) "NONFATAL" $(String7)
  533.             set ReInit = NO
  534.             goto driver_install
  535.         endif
  536.         ifstr(i) $(OptionType) == "scsi"
  537.             shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) "WARNING" $(OptionString50)
  538.             ifstr(i) $($R0) != STATUS_SUCCESSFUL
  539.                 set ReInit = NO
  540.                 goto driver_install
  541.             endif
  542.             ifstr(i) $($R1) == "CANCEL"
  543.                 set ReInit = NO
  544.                 goto driver_install
  545.             endif
  546.         endif
  547.         goto adddriver
  548.         set ReInit = YES
  549.         goto driver_install
  550.     else-ifstr(i) $(DLGEVENT) == "FREEBUTTON2"
  551.         Debug-Output "Remove Selected"
  552.         ifstr(i) $(ListItemsOut) == ""
  553.             shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) "NONFATAL" $(OptionString1)
  554.             set ReInit = NO
  555.             goto driver_install
  556.         endif
  557.         set CurrentInstalledOptionText = $(ListItemsOut)
  558.         shell "registry.inf" CheckSetupModify
  559.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  560.             Debug-Output "shelling CheckSetupModify failed"
  561.             set Reinit = NO
  562.             goto driver_install
  563.         else-ifstr(i) $($R0) != STATUS_SUCCESSFUL
  564.             shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) "NONFATAL" $(String7)
  565.             set ReInit = NO
  566.             goto driver_install
  567.         endif
  568.         shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) "WARNING" $(OptionString3)
  569.         ifstr(i) $($R0) != STATUS_SUCCESSFUL
  570.             set ReInit = NO
  571.             goto driver_install
  572.         endif
  573.         ifstr(i) $($R1) == "CANCEL"
  574.             set ReInit = NO
  575.             goto driver_install
  576.         endif
  577.         set OptionToRemove = *($(InstalledList), ~($(InstalledTextList), $(ListItemsOut)))
  578.         shell "hardware.inf" GetOptionFile $(OptionToRemove) $(OemINFOptions)
  579.         ifstr(i) $($R0) == "STATUS_SUCCESSFUL"
  580.             set INF    = $(!STF_WINDOWSSYSPATH)"\"$($R1)
  581.             goto do_removal
  582.         endif
  583.         shell "hardware.inf" GetOptionFile $(OptionToRemove) $(OurINFOptions)
  584.         ifstr(i) $($R0) == "STATUS_SUCCESSFUL"
  585.             set  INF    = $(!STF_WINDOWSSYSPATH)"\"$($R1)
  586.             goto do_removal
  587.         endif
  588.         set ReInit = NO
  589.         goto driver_install
  590. do_removal = +
  591.         shell $(INF) DeInstallOption $(!STF_LANGUAGE) $(OptionToRemove)
  592.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  593.             shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) "NONFATAL" $(OptionString5)
  594.             set Reinit = NO
  595.             goto driver_install
  596.         else-ifstr(i) $($R0) != STATUS_SUCCESSFUL
  597.             shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) "NONFATAL" $(OptionString5)
  598.             set ReInit = NO
  599.             goto driver_install
  600.         endif
  601.         set NewInstalledList     = {}
  602.         set NewInstalledTextList = {}
  603.         ForListDo $(InstalledList)
  604.             ifstr(i) $($) != $(OptionToRemove)
  605.                 set NewInstalledList     = >($(NewInstalledList), $($))
  606.                 set NewInstalledTextList = >($(NewInstalledTextList), *($(InstalledTextList), $(#)))
  607.             endif
  608.         EndForListDo
  609.         set InstalledList     = $(NewInstalledList)
  610.         set InstalledTextList = $(NewInstalledTextList)
  611.         set CurrentInstalledOptionText = ""
  612.         set !Reboot = YES
  613.         set ReInit = YES
  614.         goto driver_install
  615.     else
  616.         ui pop 1
  617.         goto finish_DoDriverInstall
  618.     endif
  619. adddriver =+
  620.     read-syms SelectDriverDlg$(!STF_LANGUAGE)
  621.     ui start "SelectDriver"
  622.     ifstr(i) $(DLGEVENT) == "CONTINUE"
  623.         Ifcontains(i) $(NewOption) in $(InstalledList)
  624.             shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) "NONFATAL" $(OptionString2)
  625.             set ReInit = "NO"
  626.             goto adddriver
  627.         endif
  628.         shell "hardware.inf" GetOptionFile $(NewOption) $(OemINFOptions)
  629.         ifstr(i) $($R0) == "STATUS_SUCCESSFUL"
  630.             set INF    = $(!STF_WINDOWSSYSPATH)"\"$($R1)
  631.             set SrcDir = $(DisketteSrc)
  632.             goto do_driver_install
  633.         endif
  634.         shell "hardware.inf" GetOptionFile $(NewOption) $(OurINFOptions)
  635.         ifstr(i) $($R0) == "STATUS_SUCCESSFUL"
  636.             set INF    = $(!STF_WINDOWSSYSPATH)"\"$($R1)
  637.             set SrcDir = $(!STF_SRCDIR)
  638.             goto do_driver_install
  639.         endif
  640. do_driver_install = +
  641.         shell $(INF) InstallOption $(!STF_LANGUAGE) $(NewOption) $(SrcDir) "YES" "YES" "YES"
  642.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  643.             Debug-Output "Shelling installOption "$(NewOption)" in INF "$(INF)" failed"
  644.             shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) "NONFATAL" $(OptionString4)
  645.             goto skip_driver_install
  646.         endif
  647.         ifstr(i) $($R0) != STATUS_SUCCESSFUL
  648.             Debug-Output "InstallOption "$(NewOption)" in INF "$(INF)" failed"
  649.             shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) "NONFATAL" $(OptionString4)
  650.             goto skip_driver_install
  651.         endif
  652.         set !Reboot = YES
  653.         set InstalledList     = >($(InstalledList), $(NewOption))
  654.         set InstalledTextList = >($(InstalledTextList), *($(OptionTextList), ~($(OptionList), $(NewOption))))
  655.         set CurrentInstalledOptionText = ""
  656. skip_driver_install = +
  657.         ui pop 1
  658.         set ReInit = YES
  659.         goto driver_install
  660.     else-ifstr(i) $(DLGEVENT) == "NOTIFY"
  661.         set ReInit = YES
  662.         ifstr(i) $(Combo1Out) != $(Other)
  663.             set NewOption = *($(OptionList), ~($(Combo1List), $(Combo1Out)))
  664.             set ReInit = NO
  665.         else
  666.             shell "other.inf" GetNewOEMOption $(!STF_LANGUAGE) $(OemINFOptions) $(OptionType) $(DisketteSrc)
  667.             ifstr(i) $($R0) == STATUS_SUCCESSFUL
  668.                 set OemINFOptions  = $($R1)
  669.                 set NewOption      = $($R2)
  670.                 set DisketteSrc    = $($R4)
  671.                 shell "hardware.inf" MergeOptions $(OurINFOptions) $(OemINFOptions)
  672.                 ifstr(i) $($R0) == STATUS_SUCCESSFUL
  673.                     set MergedOptions = {$($R1), $($R2)}
  674.                 else
  675.                     shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) "FATAL" $(String4)
  676.                     ui pop 1
  677.                     goto finish_system
  678.                 endif
  679.                 shell "hardware.inf" InitListBoxVars $(!STF_LANGUAGE) $(MergedOptions) {} $(Other)
  680.                 ifstr(i) $($R0) == "STATUS_SUCCESSFUL"
  681.                     set OptionList     = $($R1)
  682.                     set OptionTextList = $($R2)
  683.                 else
  684.                     shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) "FATAL" $(String2)
  685.                     ui pop 1
  686.                     goto  finish_system
  687.                 endif
  688.             else-ifstr(i) $($R0) == "STATUS_USERCANCEL"
  689.                 set ReInit = YES
  690.                 goto adddriver
  691.             else
  692.                 shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) "NONFATAL" $(String3)
  693.                 set ReInit = YES
  694.                 goto adddriver
  695.             endif
  696.         endif
  697.         goto adddriver
  698.     else-ifstr(i) $(DLGEVENT) == "BACK"
  699.         ui pop 1
  700.         set  ReInit = NO
  701.         goto driver_install
  702.     else
  703.         ui pop 1
  704.         set ReInit = NO
  705.         goto driver_install
  706.     endif
  707. finish_DoDriverInstall =+
  708.     StartWait
  709.     Return $(Status)
  710. [Source Media Descriptions]
  711.     1    = "Windows NT Advanced Server Setup Disk #1"   , TAGFILE = disk1
  712.     2    = "Windows NT Advanced Server Setup Disk #2"   , TAGFILE = disk2
  713.     3    = "Windows NT Advanced Server Setup Disk #3"   , TAGFILE = disk3
  714.     4    = "Windows NT Advanced Server Setup Disk #4"   , TAGFILE = disk4
  715.     5    = "Windows NT Advanced Server Setup Disk #5"   , TAGFILE = disk5
  716.     6    = "Windows NT Advanced Server Setup Disk #6"   , TAGFILE = disk6
  717.     7    = "Windows NT Advanced Server Setup Disk #7"   , TAGFILE = disk7
  718.     8    = "Windows NT Advanced Server Setup Disk #8"   , TAGFILE = disk8
  719.     9    = "Windows NT Advanced Server Setup Disk #9"   , TAGFILE = disk9
  720.     10    = "Windows NT Advanced Server Setup Disk #10"  , TAGFILE = disk10
  721.     11    = "Windows NT Advanced Server Setup Disk #11"  , TAGFILE = disk11
  722.     12    = "Windows NT Advanced Server Setup Disk #12"  , TAGFILE = disk12
  723.     13    = "Windows NT Advanced Server Setup Disk #13"  , TAGFILE = disk13
  724.     14    = "Windows NT Advanced Server Setup Disk #14"  , TAGFILE = disk14
  725.     15    = "Windows NT Advanced Server Setup Disk #15"  , TAGFILE = disk15
  726.     16    = "Windows NT Advanced Server Setup Disk #16"  , TAGFILE = disk16
  727.     17    = "Windows NT Advanced Server Setup Disk #17"  , TAGFILE = disk17
  728.     18    = "Windows NT Advanced Server Setup Disk #18"  , TAGFILE = disk18
  729.     19    = "Windows NT Advanced Server Setup Disk #19"  , TAGFILE = disk19
  730.     20    = "Windows NT Advanced Server Setup Disk #20"  , TAGFILE = disk20
  731.     21    = "Windows NT Advanced Server Setup Disk #21"  , TAGFILE = disk21
  732.     22    = "Windows NT Advanced Server Setup Disk #22"  , TAGFILE = disk22
  733.     23    = "Windows NT Advanced Server Setup Disk #23"  , TAGFILE = disk23
  734.     24    = "Windows NT Advanced Server Setup Disk #24"  , TAGFILE = disk24
  735.     25    = "Windows NT Advanced Server Setup Disk #25"  , TAGFILE = disk25
  736.     26    = "Windows NT Advanced Server Setup Disk #26"  , TAGFILE = disk26
  737.     27    = "Windows NT Advanced Server Setup Disk #27"  , TAGFILE = disk27
  738.     28    = "Windows NT Advanced Server Setup Disk #28"  , TAGFILE = disk28
  739.     29    = "Windows NT Advanced Server Setup Disk #29"  , TAGFILE = disk29
  740. [ProductType]
  741. STF_PRODUCT  = LanmanNT
  742. STF_PLATFORM = I386
  743. [LanguageID]
  744.    ENG
  745. [LanguageTextENG]
  746.    "English (American)"
  747. [OemOptionDiskettesENG]
  748.     VideoDisketteSrc  = "A:\"
  749.     PointerDisketteSrc    = "A:\"
  750.     KeyboardDisketteSrc = "A:\"
  751. [StringsENG]
  752.     Other   = "Other (Requires a disk from a hardware manufacturer)"
  753.     String1 = "Failed to initialize hardware options."
  754.     String2 = "Failed to initialize hardware variables."
  755.     String3 = "Failed to obtain new options.  Ignoring the error."
  756.     String4 = "Internal Setup error: failed to merge Microsoft options with the OEM options."
  757.     String5 = "Setup cannot install on the current processor."$(!LF)$(!LF)"Cannot proceed with install."
  758.     String6 = "The changes you have made will not take effect until the computer is restarted."
  759.     String7  = "You do not have permission to carry out this operation."
  760.     String8  = "Setup needs to initialize its hardware configuration entries. "+
  761.                "Please log on as a member of the Administrators group and run Setup again."
  762.     String9  = "No driver selected for removal."
  763.     String10 = "The driver selected is already installed."
  764.     String11 = "Are you sure you want to remove the selected driver?"
  765.     String12 = "Failed to install selected driver."
  766.     String13 = "Failed to remove selected driver."
  767.     String14 = "The SETUP.INF file does not match your computer."
  768.     String15 = "Please wait while Setup determines your hardware configuration..."
  769. [MaintDlgENG]
  770.     Caption      = "Windows NT Setup"
  771.     DlgType      = Maintenance
  772.     DlgTemplate  = DLG_MAINTAIN
  773.     HelpContext  = $(!IDH_DB_MAINTAIN_INS)
  774.     VideoText  = *($(VideoOptionTextList), ~($(VideoOptionList), $(VideoOption)))
  775.     PointerText    = *($(PointerOptionTextList), ~($(PointerOptionList), $(PointerOption)))
  776.     KeyboardText = *($(KeyboardOptionTextList), ~($(KeyboardOptionList), $(KeyboardOption)))
  777.     TextFields   = {$(VideoText), $(PointerText), $(KeyboardText)}
  778. [SystemDlgENG]
  779.     Caption     = "Change System Settings"
  780.     Continue    = "Close"
  781.     Cancel      = "Cancel"
  782.     Help        = "&Help"
  783.     Combo1Label = "&Display:"
  784.     Combo2Label = "&Mouse:"
  785.     Combo3Label = "&Keyboard:"
  786.     DlgType     = "MultiCombo"
  787.     DlgTemplate = "M_SYSTEM"
  788.     HelpContext = $(!IDH_DB_MSYSTEM_INS)
  789.     Combo1List  = $(VideoOptionTextList)
  790.     Combo1Out   = *($(Combo1List), ~($(VideoOptionList), $(VideoNewOption)))
  791.     Combo2List  = $(PointerOptionTextList)
  792.     Combo2Out   = *($(Combo2List), ~($(PointerOptionList), $(PointerNewOption)))
  793.     Combo3List  = $(KeyboardOptionTextList)
  794.     Combo3Out   = *($(Combo3List), ~($(KeyboardOptionList), $(KeyboardNewOption)))
  795.     ComboListItemsIn  = { Combo1List, Combo2List, Combo3List }
  796.     ComboListItemsOut = { Combo1Out,  Combo2Out,  Combo3Out  }
  797.     NotifyFields      = { YES, YES, YES }
  798. [ProfileStringsENG]
  799.     String1  = "this machine"
  800.     String2  = "No user profiles were found on this machine."
  801.     String3  = "No user profile selected for deletion."
  802.     String4  = "Setup is unable to delete the user profile indicated.  "+
  803.                "You do not have permission to carry out this operation."
  804.     String5  = "Setup couldn't delete the user profile indicated.  The profile "+
  805.                "may be currently being used by Windows NT."
  806.     String6  = "Setup couldn't delete the user profile indicated."
  807.     String7  = "Setup cannot delete the currently active profile."
  808. [ProfileDlgENG]
  809.     Caption      = "Delete User Profiles"
  810.     DlgText      = "User &Profiles on "$(!STF_COMPUTERNAME)":"
  811.     Continue     = "Close"
  812.     Cancel       = "Cancel"
  813.     Delete       = "&Delete"
  814.     Help         = "&Help"
  815.     Exit         = "&Exit"
  816.     DlgType      = "List"
  817.     DlgTemplate  = "PROFILE"
  818.     HelpContext  = $(!IDH_DB_MPROFILE_INS)
  819.     ListItemsIn  = $(UserProfileList)
  820.     ListItemsOut = $(UserProfile)
  821. [SCSIStringsENG]
  822.     OptionString1  = "No SCSI Adapter selected for removal."
  823.     OptionString2  = "The SCSI Adapter selected is already installed."
  824.     OptionString3  = "Removing SCSI Adapters may prevent Windows NT "+
  825.                      "from starting correctly. Before restarting your computer, "+
  826.                      "check the Read Me item in the Main program group for "+
  827.                      "information about reconfiguring SCSI Adapters."$(!LF)$(!LF)+
  828.                      "If Windows NT fails to start, you can recover by using the "+
  829.                      "Last Known Good Configuration. See your System Guide for "+
  830.                      "more information."$(!LF)$(!LF)+
  831.                      "Are you sure you want to remove the selected SCSI Adapter?"
  832.     OptionString4  = "Failed to install selected SCSI Adapter."
  833.     OptionString5  = "Failed to remove selected SCSI Adapter."
  834.     OptionString6  = "SCSI Adapter Setup"
  835.     OptionString7  = "SCSI A&dapters installed on "$(!STF_COMPUTERNAME)":"
  836.     OptionString8  = "Select SCSI Adapter Option"
  837.     OptionString9  = "Choose a SCSI Adapter from the following list:"
  838.     OptionString10 = "A&dapter:"
  839.     OptionString50 = "Adding SCSI Adapters may prevent Windows NT "+
  840.                      "from starting correctly. Before restarting your computer, "+
  841.                      "check the Read Me item in the Main program group for "+
  842.                      "information about reconfiguring SCSI Adapters."$(!LF)$(!LF)+
  843.                      "If Windows NT fails to start, you can recover by using the "+
  844.                      "Last Known Good Configuration. See your System Guide for "+
  845.                      "more information."$(!LF)$(!LF)+
  846.                      "Are you sure you want to add a SCSI Adapter?"
  847.     !HelpID1       = $(!IDH_DB_SCSI_DRIVER_INS)
  848.     !HelpID2       = $(!IDH_DB_SCSI_SELECTDRIVER_INS)
  849. [TapeStringsENG]
  850.     OptionString1  = "No Tape Device selected for removal."
  851.     OptionString2  = "The Tape Device selected is already installed."
  852.     OptionString3  = "Are you sure you want to remove the selected Tape Device?"
  853.     OptionString4  = "Failed to install selected tape device."
  854.     OptionString5  = "Failed to remove selected tape device."
  855.     OptionString6  = "Tape Device Setup"
  856.     OptionString7  = "Tape &Devices installed on "$(!STF_COMPUTERNAME)":"
  857.     OptionString8  = "Select Tape Device Option"
  858.     OptionString9  = "Choose a Tape Device from the following list:"
  859.     OptionString10 = "&Device:"
  860.     !HelpID1       = $(!IDH_DB_TAPE_DRIVER_INS)
  861.     !HelpID2       = $(!IDH_DB_TAPE_SELECTDRIVER_INS)
  862. [DriverInstallENG]
  863.     Caption      = $(OptionString6)
  864.     Continue     = "Close"
  865.     Add          = "&Add..."
  866.     Remove       = "&Remove"
  867.     Help         = "&Help"
  868.     DlgType      = "List"
  869.     DlgTemplate  = "DRIVERINSTALL"
  870.     DlgText      = $(OptionString7)
  871.     HelpContext  = $(!HelpID1)
  872.     ListItemsIn  = $(InstalledTextList)
  873.     ListItemsOut = $(CurrentInstalledOptionText)
  874. [SelectDriverDlgENG]
  875.     Continue    = "&Install"
  876.     Cancel      = "Cancel"
  877.     Help        = "&Help"
  878.     DlgType     = "MultiCombo"
  879.     DlgTemplate = "SELECTDRIVER"
  880.     Caption     = $(OptionString8)
  881.     DlgText     = $(OptionString9)
  882.     HelpContext = $(!HelpID2)
  883.     Combo1Label = $(OptionString10)
  884.     Combo1List  = $(OptionTextList)
  885.     Combo1Out   = *($(Combo1List), ~($(OptionList), $(NewOption)))
  886.     ComboListItemsIn  = { Combo1List }
  887.     ComboListItemsOut = { Combo1Out  }
  888.     NotifyFields      = { YES }
  889.  
  890.  
  891.  
  892.