Annotation of ntddk/src/setup/inf/ndis/ncpashel.inf, revision 1.1.1.1

1.1       root        1: ;**********************************************************************
                      2: ;
                      3: ;   NAME:    NCPASHEL.INF
                      4: ;
                      5: ;   PURPOSE:
                      6: ;
                      7: ;      This INF script is invoked by the Network Control
                      8: ;      Panel Applet (NCPA).
                      9: ;
                     10: ;
                     11: ;   COMMENTARY:
                     12: ;
                     13: ;      The NCPA builds a command line to invoke SETUP, instructing
                     14: ;      it to run this file.  The other settings on the command line
                     15: ;      tell NCPASHEL.INF what to invoke and in what mode.
                     16: ;
                     17: ;      The primary function of this file is to hide the distinction
                     18: ;      between invocation by the main install SETUP and later invocation
                     19: ;      by the NCPA.  This involves restoring the STF_XXXXX global
                     20: ;      variables to their earlier settings, along with defining some
                     21: ;      new ones to "fine-tune" the functions of the product-level
                     22: ;      INF scripts.
                     23: ;
                     24: ;
                     25: ;   HISTORY:
                     26: ;
                     27: ;      DavidHov     Created    4/4/92
                     28: ;
                     29: ;***********************************************************************
                     30: ;
                     31: ;
                     32: ;***********************************************************************
                     33: ;
                     34: ;
                     35: ;
                     36: ;***********************************************************************
                     37: 
                     38: ;***********************************************************************
                     39: ;
                     40: ;   Variables declared by SETUP.INF, the main INF for GUI Setup.
                     41: ;
                     42: ;   Those marked with ** are established by the SETUP.EXE; the others
                     43: ;   are obtained from detection or established programmatically by
                     44: ;   SETUP.INF.
                     45: ;
                     46: ;   The STF_* variables documented below are the globals which can be used
                     47: ;   by shelled INFs:
                     48: ;
                     49: ;*************************************************************************
                     50: ;
                     51: ; ** 0.  STF_HWND:           Handle to setup window (hex string)
                     52: ;
                     53: ; ** 1.  STF_SRCTYPE:        DOS | ARC | UNC
                     54: ;
                     55: ; ** 2.  STF_SRCDIR:         NT Sources, e.g. f:\i386i\
                     56: ;
                     57: ; ** 3.  STF_SRCBASE:        Defined only for UNC srctype, the unc share, e.g.,
                     58: ;                            \\Orville\razzle.
                     59: ;
                     60: ;    4.  STF_NTDRIVE:        Destination NT Drive, e.g. d:
                     61: ;
                     62: ;    5.  STF_NTPATH:         Path to nt, e.g. d:\nt
                     63: ;
                     64: ;    6.  STF_WINDOWSPATH:    Path to windows, e.g. d:\nt\windows
                     65: ;
                     66: ;    7.  STF_WINDOWSSYSPATH: Path to windows system, e.g. d:\nt\windows\System32
                     67: ;
                     68: ; ** 8.  STF_CWDDIR:         Path to place where setup is run from.,
                     69: ;                            e.g. d:\setup\
                     70: ;
                     71: ;    9.  STF_LANGUAGE:       Language to use (ENG | ...)
                     72: ;
                     73: ;    10. STF_INSTALL_MODE:   EXPRESS | CUSTOM
                     74: ;
                     75: ; ** 11. STF_INSTALL_TYPE:   SETUPRUN | SETUPBOOTED | NETDUMP | MAINTENANCE
                     76: ;                            (SETUPRUN:     Setup is run off any source (network, cdrom,
                     77: ;                                           ... from a running NT system)
                     78: ;
                     79: ;                            (SETUPBOOTED:  Setupprep runs and then copies setup on the
                     80: ;                                           system and runs GUI Setup..)
                     81: ;
                     82: ;                            (SETUPTOSHARE: Copy sources to destination STF_DSTDIR)
                     83: ;
                     84: ;                            (MAINTENANCE: MAINTENACE mode setup)
                     85: ;
                     86: ;                            (used to be FRESH | UPGRADE | NETDUMP)
                     87: ;
                     88: ;    12. STF_UPGRADE:        YES | NO
                     89: ;
                     90: ;    13. STF_PLATFORM:       I386 | MIPS | Alpha
                     91: ;
                     92: ;    14. STF_PROCESSOR:      I386 | I486 | I586  or R2000 | R3000 | R4000 | Alpha_AXP.
                     93: ;
                     94: ;    15. STF_USERNAME:       Username for account. "string" (no whitespaces, < 15)
                     95: ;
                     96: ;    16. STF_COMPUTERNAME:   Computername to identify machine (no whitespaces, < 15)
                     97: ;
                     98: ;    17. STF_PRODUCT:        WINNT | LANMANNT
                     99: ;
                    100: ;    18. STF_UNUSEDDRIVES:   List of drives currently unused and available for
                    101: ;                            assignment.  {E:, F:, ...., Z:}.  Use routine in
                    102: ;                            subroutn.inf to allocate unused.
                    103: ;
                    104: ;    nn. STF_NCDETECT:       YES | NO   determines if netcard detection is enabled
                    105: ;
                    106: ;    Conditionally defined:
                    107: ;
                    108: ; ** 19. STF_DSTDIR:         Only defined in SETUPTOSHARE. e.g., f:\beta\nt\i386\
                    109: ;
                    110: ; ** 20. STF_DSTTYPE         as STF_SRCTYPE
                    111: ;
                    112: ; ** 21. STF_DSTBASE         as STF_SRCBASE
                    113: ;
                    114: ;    Others Sunil didn't mention:
                    115: ;
                    116: ; ** 22. STF_SRCINFPATH      path to invoked (outermost) INF
                    117: ;
                    118: ; ** 23. STF_CONTEXTINFNAME  path to currently executing INF
                    119: ;
                    120: ; ** 24. STF_SYS_INIT        NO
                    121: ;
                    122: ;***********************************************************************
                    123: ;
                    124: ;***********************************************************************
                    125: ;  Variables required for NCPA support
                    126: ;***********************************************************************
                    127: ;
                    128: ;   1) NTN_RegBase              Universal Registry key name prefix.
                    129: ;                               BUGBUG:  Archaic?
                    130: ;
                    131: ;   2) NTN_ServiceBase          Top of Services Tree
                    132: ;   3) NTN_ServiceKeyName       Name of service; no spaces/delimiters
                    133: ;                               allowed; may be NULL for new installations
                    134: ;   4) NTN_RegProduct           name of HARDWARE or SOFTWARE Registry
                    135: ;                               key for component; will be null ("") for
                    136: ;                               new installations.
                    137: ;
                    138: ;   5) NTN_InstallMode          "install", "deinstall", "configure",
                    139: ;                               "bind"
                    140: ;
                    141: ;   6) NTN_Origination          "ncpa", "install"
                    142: ;
                    143: ;   7) NTN_Infname              name (pathless) of INF file to execute
                    144: ;                               There are two special "name tokens":
                    145: ;
                    146: ;                                     "NTLANMAN_Adapter"      and
                    147: ;                                     "NTLANMAN_Software"
                    148: ;
                    149: ;                               If the INF name is equal to one of these,
                    150: ;                               then the appropriate section of
                    151: ;                               NTLANMAN.INF is shelled to.
                    152: ;
                    153: ;   8) NTN_InstallPhase         "primary","secondary".
                    154: ;                               "primary" implies main installation;
                    155: ;                               "secondary" implies product add-on installation.
                    156: ;
                    157: ;
                    158: ;
                    159: ;
                    160: ;***********************************************************************
                    161: 
                    162: 
                    163: [StfVariableDetect]
                    164: 
                    165:     STF_PROCESSOR = "" ? $(!LIBHANDLE) GetProcessor
                    166:     STF_PLATFORM  = "I386"        ;  BUGBUG-- How to establish?
                    167:     ;
                    168:     ;
                    169:     ; Language to Use For interaction with user
                    170:     ;
                    171: 
                    172:     STF_LANGUAGE   = "" ? $(!LIBHANDLE) GetLanguage
                    173:     LanguageList   = ^(LanguageID, 1)
                    174:     ;
                    175:     ; Destination NT Directory relative to root of NT Drive
                    176:     ;
                    177:     STF_WINDOWSPATH    = "" ? $(!LIBHANDLE) GetWindowsNtDir
                    178:     STF_WINDOWSSYSPATH = "" ? $(!LIBHANDLE) GetWindowsNtSysDir
                    179:     STF_NTPATH         = $(!STF_WINDOWSPATH)
                    180:     STF_COMPUTERNAME   = "" ? $(!LIBHANDLE) GetMyComputerName
                    181:     STF_BUSTYPE        = "" ? $(!LIBHANDLE) GetMyBusType
                    182: 
                    183: [StfVariableSyms]
                    184: 
                    185:     ProcessorID_I386  = I386
                    186:     ProcessorID_I486  = I486
                    187:     ProcessorID_I586  = I586
                    188:     ProcessorID_R4000 = R4000
                    189:     ProcessorID_Alpha = Alpha_AXP
                    190:     PlatformID_I386 = I386
                    191:     PlatformID_Mips = Mips
                    192:     PlatformID_Alpha = Alpha
                    193: 
                    194:     ;
                    195:     ; Version Information
                    196:     ;
                    197: 
                    198:     STF_PRODUCT        = WINNT    ;   BUGBUG-- Determine from Registry
                    199: 
                    200:     STF_USERNAME       = ""       ;   BUGBUG--  Determine from API calls
                    201: 
                    202:     STF_INSTALL_MODE   = "CUSTOM" ;   It's always CUSTOM from the NCPA
                    203: 
                    204:     STF_UPDGRADE       = NO       ;   BUGBUG--  TBI
                    205: 
                    206:     STF_NCDETECT       = NO       ;   disable netcard detection
                    207:     STF_NCOPTION       = ""       ;   set defaults for other
                    208:     STF_NCDETCARD      = 99999    ;   global netcard variables
                    209:     STF_NCDETINFO      = {}       ;   No detect information
                    210:     STF_NC_PARAMS      = {}       ;
                    211:     STF_NC_PNAMES      = {}       ;
                    212:     STF_SRCDIR_KEYED   = ""       ;   source dir as entered
                    213:     STF_SRCDIR_USED    = ""       ;   source dir as used
                    214:     STF_SRCDIR_OVERRIDE = ""      ;   source dir override (see UTILITY.INF)
                    215:     STF_SRCDIR_WINNT   = ""       ;   WINNT override source path
                    216: 
                    217:     ;  Establish the error dialog template overrides.
                    218: 
                    219:     STF_TEMPLATE_CRITERR = "CRITERR2"
                    220:     STF_TEMPLATE_NONCRITERR = "NONCRITERR2"
                    221: 
                    222:     ;
                    223:     ; DOS VDM Setup / OS2 Subsystem Setup
                    224:     ;
                    225:     STF_INSTALLED_OS = {} ? $(!LIBHANDLE) GetInstalledOSNames
                    226: 
                    227:     FatalErrorIndex = 1
                    228: 
                    229:     !Exit_Code = 0
                    230: 
                    231: [DoAskOemsetupSource]
                    232: 
                    233:     read-syms DoAskUpgradeSrcDlgText$(!STF_LANGUAGE)
                    234:     shell "subroutn.inf" DoAskSourceEx $($0) $(DlgText)
                    235:     Return $($R0) $($R1) $($R2) $($R3)
                    236: 
                    237: 
                    238: ;***********************************************************************
                    239: ;
                    240: ;   Primary control section.
                    241: ;
                    242: ;***********************************************************************
                    243: 
                    244: [Shell Commands]
                    245: ;
                    246: ;  Initialization code borrowed from SETUP.INF.  Establish all the
                    247: ;   STF_ variables not already created by initialization (in INIT.C).
                    248: ;
                    249:      set-title "Windows NT Setup"
                    250: ;
                    251: ;  Changing the literal 0 to a 1 will turn Debug-Output on.
                    252: ;
                    253:      Set !G:DebugOutputControl = 0
                    254: 
                    255:      LoadLibrary "x" $(!STF_CWDDIR)setupdll.dll !LIBHANDLE
                    256:      LoadLibrary "y" $(!STF_CWDDIR)ncpa.cpl !NCPA_HANDLE
                    257: ;
                    258: ; Establish the help IDs and help file.
                    259: ;
                    260:      Shell "subroutn.inf" ReadSetupHelpIds
                    261:      SetHelpFile "setupnt.hlp" $(!MinimumID) $(!MaximumID)
                    262: 
                    263:      set-subst LF = "\n"
                    264:      StartWait
                    265: ;
                    266: ;  Reestablish the SETUP STF_ variables as best we can.
                    267: ;
                    268:      read-syms StfVariableSyms
                    269:      read-syms StfVariableDetect
                    270:      detect StfVariableDetect
                    271:      Set !STF_NTPATH = $(!STF_WINDOWSSYSPATH)
                    272: ;
                    273: ;  Get the product type from the registry
                    274: ;
                    275:      OpenRegKey $(!REG_H_LOCAL) "" "System\CurrentControlSet\Control\ProductOptions" 33554432 KeyProductOption
                    276:      ifstr(i) $(KeyProductOption) != ""
                    277:          GetRegValue $(KeyProductOption) "ProductType" ProductTypeList
                    278:          set TempProductType = *($(ProductTypeList),4)
                    279:          ifstr(i) $(TempProductType) == "winnt"
                    280:              set !STF_PRODUCT = WINNT
                    281:          else-ifstr(i) $(TempProductType) == "lanmannt"
                    282:              set !STF_PRODUCT = LANMANNT
                    283:          endif
                    284:          CloseRegKey $(KeyProductOptions)
                    285:      endif
                    286: 
                    287: ;
                    288: ;  Determine the source location. If STF_SRCDIR is already set, use it.
                    289: ;  Otherwise, try to extract it from the NCPA's home location in the Registry.
                    290: ;
                    291: ;  Also check to see if this is an IDW installation. If so, all file copies
                    292: ;  are suppressed on the theory that the tree copy operation has placed all
                    293: ;  the binaries into %SystemRoot% already.
                    294: ;
                    295:      Debug-Output "NCPASHEL.INF: STF_SRCDIR is "$(!STF_SRCDIR)
                    296: 
                    297:      OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE\Microsoft\Ncpa\CurrentVersion" 33554432 KeyNcpa
                    298: 
                    299:      Set !STF_SRCDIR = ""
                    300:      Set !STF_IDW = FALSE
                    301: 
                    302:      Ifstr(i) $(KeyNcpa) != ""
                    303:          GetRegValue $(KeyNcpa) "IDW" IdwValueList
                    304:          Set IdwValue = *($(IdwValueList),4)
                    305:          Ifint $(IdwValue) > 0
                    306:              Debug-Output "NCPASHEL.INF: IDW Installation"
                    307:              Set !STF_IDW = TRUE
                    308:          Endif
                    309:          CloseRegKey $(KeyNcpa)
                    310:      Else
                    311:          Debug-Output "NCPASHEL.INF:  COULDN'T OPEN NCPA KEY!"
                    312:      Endif
                    313: 
                    314:      OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE\Microsoft\Windows Nt\CurrentVersion" $(!REG_KEY_READ) KeyNt
                    315:      Ifstr(i) $(KeyNt) != ""
                    316:          GetRegValue $(KeyNt) "SourcePath" SourcePathValue
                    317:          Set !STF_SRCDIR = *($(SourcePathValue),4)
                    318:          Debug-Output "NCPASHEL.INF: SourcePath retrieved is "$(!STF_SRCDIR)
                    319:          CloseRegKey $(KeyNt)
                    320:      Endif
                    321: 
                    322:      Ifstr(i) $(!STF_SRCDIR) == ""
                    323:        Set !STF_SRCDIR = "A:\"
                    324:      Endif
                    325: ;
                    326: ;  Extract the "setup in progress" variable from the Registry;
                    327: ;  set global variables accordingly.  If "setup in progress" flag is
                    328: ;  on, set !NTN_InstallPhase to "primary", then look for the
                    329: ;  "winnt source path" value; if found, set !STF_SRCDIR_WINNT.
                    330: ;
                    331:      Set SetupInp = 0
                    332:      Set !NTN_InstallPhase = secondary
                    333: 
                    334:      OpenRegKey $(!REG_H_LOCAL) "" "SYSTEM\Setup" $(!REG_KEY_READ) KeySetup
                    335:      Ifstr(i) $(KeySetup) != ""
                    336:          GetRegValue $(KeySetup) "SystemSetupInProgress" SetupInpValue
                    337:          Ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
                    338:              Set SetupInp = *($(SetupInpValue),4)
                    339:              Debug-Output "NCPASHEL.INF: SetupInp = "$(SetupInp)
                    340:          Endif
                    341:          Ifint $(SetupInp) == 1
                    342:              Set !NTN_InstallPhase = primary
                    343:              GetRegValue $(KeySetup) "WinntPath" SetupPathValue
                    344:              Ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
                    345:                  Set !STF_SRCDIR_WINNT = *($(SetupPathValue),4)
                    346:                  Debug-Output "NCPASHEL.INF: STF_SRCDIR_WINNT = "$(!STF_SRCDIR_WINNT)
                    347:              Endif
                    348:          Endif
                    349:          CloseRegKey $(KeySetup)
                    350:      Endif
                    351: 
                    352:      Debug-Output "NCPASHEL.INF: Setup phase = "$(!NTN_InstallPhase)
                    353: ;
                    354: ;  Enable the netcard detection functions if necessary.
                    355: ;  Don't check for errors, since each INF will report
                    356: ;  the error if it really needs to use detection.
                    357: ;
                    358: ;  We start detection for installations and configurations
                    359: ;  exceptfor final review INFs, which are marked as installations.
                    360: ;
                    361:    Ifstr(i) $(NTN_InfSection) == BindingsReview
                    362:         Goto skipdetection
                    363:    Endif
                    364:    Ifstr(i) $(NTN_InstallMode) == install
                    365:         Goto startdetection
                    366:    Endif
                    367:    Ifstr(i) $(NTN_InstallMode) == configure
                    368:         Goto startdetection
                    369:    Endif
                    370: 
                    371:    Goto skipdetection
                    372: 
                    373: startdetection = +
                    374: 
                    375:    Debug-Output "NCPASHEL.INF: Enable netcard detection from NCPA.CPL"
                    376:    Shell "NCPARAM.INF" Param_ControlDetection DTSTART
                    377: 
                    378: skipdetection = +
                    379: ;
                    380: ; BUGBUG The processor type is currently not detected properly.
                    381: ;        So temporarily forcibly set the processor type
                    382: ;
                    383:      set STF_PROCESSOR = $(ProcessorID_I386)
                    384: 
                    385: ;
                    386: ; Check processor type, see if it is supported, if so what platform does it
                    387: ; belong to.  Set also the SYS variable to denote which set of sources we
                    388: ; are installing from
                    389: ;
                    390:      ifstr(i) $(STF_PROCESSOR) == $(ProcessorID_I386)
                    391:          set STF_PLATFORM = $(PlatformID_I386)
                    392:          set SYS      = $(ProcessorID_I386)
                    393:      else-ifstr(i) $(STF_PROCESSOR) == $(ProcessorID_I486)
                    394:          set STF_PLATFORM = $(PlatformID_I386)
                    395:          set SYS      = $(ProcessorID_I386)
                    396:      else-ifstr(i) $(STF_PROCESSOR) == $(ProcessorID_I586)
                    397:          set STF_PLATFORM = $(PlatformID_I386)
                    398:          set SYS      = $(ProcessorID_I386)
                    399:      else-ifstr(i) $(STF_PROCESSOR) == $(ProcessorID_R4000)
                    400:          set STF_PLATFORM = $(PlatformID_Mips)
                    401:          set SYS      = $(ProcessorID_R4000)
                    402:      else-ifstr(i) $(STF_PROCESSOR) == $(ProcessorID_Alpha)
                    403:          set STF_PLATFORM = $(PlatformID_Alpha)
                    404:          set SYS      = $(ProcessorID_Alpha)
                    405:      else
                    406:          set STF_PLATFORM = $(PlatformID_I386)
                    407:          set SYS      = $(ProcessorID_I386)
                    408:      endif
                    409: 
                    410:      Ifstr(i) $(!STF_LANGUAGE) != "ENG"    ;  BUGBUG: temporary
                    411:          Debug-Output "NCPASHEL: Language not set to English; resetting"
                    412:          !STF_LANGUAGE = "ENG"
                    413:      Endif
                    414: 
                    415:      read-syms ProgressCopy$(!STF_LANGUAGE)
                    416: 
                    417: ;----------------------------------------------------------------------
                    418: ;
                    419: ;   STF_ variables are now established.
                    420: ;
                    421: ;   Establish by default the NCPA variables which the NCPA didn't.
                    422: ;
                    423: ;----------------------------------------------------------------------
                    424: 
                    425:     Ifstr(i) $(!NTN_RegBase) == ""
                    426:         set !NTN_RegBase = ""
                    427:     Endif
                    428: 
                    429:     set !NTN_ServiceBase  = "SYSTEM\CurrentControlSet\SERVICES"
                    430: ;
                    431: ;    Default the InstallMode to "configure"
                    432: ;
                    433:     Ifstr(i) $(!NTN_InstallMode) == ""
                    434:         Debug-Output "NCPASHEL:!NTN_InstallMode was not defined!"
                    435:         set !NTN_InstallMode  = "configure"
                    436:     Endif
                    437: 
                    438:     Ifstr(i) $(!NTN_SoftwareBase) == ""
                    439:         ; BUGBUG
                    440:         ; set !NTN_SoftwareBase = "SOFTWARE\Description"
                    441:         set !NTN_SoftwareBase = "SOFTWARE"
                    442:     Endif
                    443: 
                    444:     set !NTN_Origination = "ncpa"
                    445: 
                    446: ;----------------------------------------------------------------------
                    447: ;
                    448: ;   NTN_ variables are now established.
                    449: ;
                    450: ;   Prepare to Shell to target INF
                    451: ;
                    452: ;----------------------------------------------------------------------
                    453: 
                    454:     Ifstr(i) $(!NTN_Infname) == ""
                    455:         goto fatalnoinfname
                    456:     Endif
                    457: 
                    458:     Ifstr(i) $(!NTN_InfSection) == ""
                    459:         Set !NTN_InfSection = "InstallOption"
                    460:     Endif
                    461: 
                    462: ;------------------------------------------------------------------------
                    463: ;
                    464: ;  Shell to the given section of the component INF.  If this is an
                    465: ;  update/upgrade, ask the user for the location of the file.
                    466: ;
                    467: ;------------------------------------------------------------------------
                    468:     ifstr(i) $(!NTN_InstallMode) == "Update"
                    469:         Debug-Output "NCPASHEL.INF: Upgrade mode"
                    470:         ;
                    471:         ; First, ask for oemsetup.inf location
                    472:         ; Then, pass the information to the inf file
                    473:         ;
                    474:         Shell "" DoAskOemsetupSource $(!STF_SRCDIR)
                    475: 
                    476:         Ifstr(i) $($ShellCode) != $(!SHELL_CODE_OK)
                    477:             goto shellerror
                    478:         Endif
                    479: 
                    480:         ifstr(i) $($R0) == STATUS_SUCCESSFUL
                    481:             set !STF_SRCDIR = $($R1)
                    482:         else-ifstr(i) $($R0) == STATUS_USERCANCEL
                    483:             set Exit_Code = 1
                    484:             goto end
                    485:         else
                    486:             set Exit_Code = 2
                    487:             goto end
                    488:         endif
                    489: 
                    490:         ;
                    491:         ;  Change NTN_Infname to refer to the OEMSETUP.INF file
                    492:         ;  pointed to by the user.
                    493:         ;
                    494:         Set !NTN_Infname = $(!STF_SRCDIR)oemsetup.inf
                    495:     endif
                    496: 
                    497:     Ifstr(i) $(!NTN_InstallMode) == install
                    498:         set AddCopy  = YES
                    499:         set DoCopy   = YES
                    500:         set DoConfig = YES
                    501:     Else
                    502:         set AddCopy  = NO
                    503:         set DoCopy   = NO
                    504:         set DoConfig = NO
                    505:     Endif
                    506: 
                    507:     Debug-Output "NCPASHEL.INF: Shell to "$(!NTN_Infname)
                    508: 
                    509:     Shell $(!NTN_Infname) $(!NTN_InfSection) +
                    510:          $(!STF_LANGUAGE) $(!NTN_InfOption) +
                    511:          $(!STF_SRCDIR) $(AddCopy) $(DoCopy) $(DoConfig)
                    512: 
                    513:     Ifstr(i) $($ShellCode) != $(!SHELL_CODE_OK)
                    514:        Debug-Output "NCPASHEL.INF: SHELL ERROR: "$($ShellCode)
                    515:        goto shellerror
                    516:     Endif
                    517: 
                    518:     Debug-Output "NCPASHEL: INF return: "$($R0)
                    519: 
                    520:     Ifstr(i) $($R0) == STATUS_SUCCESSFUL
                    521:         set Exit_Code = 0
                    522:     else-ifstr(i) $($R0) == STATUS_USERCANCEL
                    523:         set Exit_Code = 1
                    524:     else-ifstr(i) $($R0) == STATUS_NO_EFFECT
                    525:         set Exit_Code = 3
                    526:     else-ifstr(i) $($R0) == STATUS_REBIND
                    527:         set Exit_Code = 4
                    528:     else-ifstr(i) $($R0) == STATUS_REBOOT
                    529:         set Exit_Code = 5
                    530:     else
                    531:         set Exit_Code = 2
                    532:     Endif
                    533: 
                    534:     EndWait
                    535: 
                    536:     goto end
                    537: 
                    538: ;------------------------------------------------------------------
                    539: ; Fatal error display functions
                    540: ;------------------------------------------------------------------
                    541: shellerror = +
                    542:    read-syms ShellError$(!$ShellCode)$(!STF_LANGUAGE)
                    543:    Debug-Output "NCPASHEL: SHELL ERROR: "$(Error)
                    544:    goto fatal
                    545: 
                    546: fatalnoinfname = +
                    547:    set FatalErrorIndex = 2
                    548:    goto fatalmsg
                    549: 
                    550: fatalmsg = +
                    551:    read-syms FatalError$(FatalErrorIndex)$(!STF_LANGUAGE)
                    552:    Debug-Output "NCPASHEL: FATAL ERROR: "$(Error)
                    553:    goto fatal
                    554: 
                    555: fatal = +
                    556:    read-syms FatalDlg$(!STF_LANGUAGE)
                    557:    ui start "FatalError"
                    558:    goto end
                    559: 
                    560: ;------------------------------------------------------------------
                    561: ; Exit NCPASHEL.INF; return to NCPA
                    562: ;------------------------------------------------------------------
                    563: end = +
                    564:    Ifstr(i) $(!LIBHANDLE) != ""
                    565:        LibraryProcedure DontCare, $(!LIBHANDLE), DeleteAllConnections
                    566:    Endif
                    567: 
                    568:    Debug-Output "NCPASHEL: NCPASHEL: returning to NCPA"
                    569:    goto term
                    570: ;
                    571: ;  Immediate exit
                    572: ;
                    573: term = +
                    574:    Debug-Output "NCPASHEL: Bye."
                    575:    exit
                    576: 
                    577: ;***********************************************************************
                    578: ;
                    579: ;   End of NCPASHEL.INF
                    580: ;
                    581: ;***********************************************************************

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.