home *** CD-ROM | disk | FTP | other *** search
/ Boot Disc 1 / boot-disc-1996-08.iso / content / wrkbnch / utils / webanc / wbanchor.ms_ / wbanchor.bin
Text File  |  1996-04-23  |  26KB  |  1,020 lines

  1. '****************************************************************************
  2. '*                            WebAnchor Setup                               *
  3. '*                                                                          *
  4. '* ICONOVEX Corporation, 7900 Xerxes Av S #550, Bloomington, MN  55431  USA *
  5. '****************************************************************************
  6.  
  7.  
  8. '$INCLUDE 'setupapi.inc'
  9. '$INCLUDE 'msdetect.inc'
  10.  
  11.  
  12. ''-------------------------------------------------------------------------''
  13. ''                              Dialog ID's                                ''
  14. ''-------------------------------------------------------------------------''
  15.  
  16. CONST TRADEMARK       = 1000
  17. CONST WELCOME         = 1100
  18. CONST APPHELP         = 1200
  19. CONST OPTIONS         = 1300
  20. CONST LICENSEAGREE    = 1600
  21.  
  22. CONST INSINDEXER      = 2300
  23.  
  24. CONST FILEREMOVE      = 3000
  25. CONST BUILDLIST       = 3100
  26. CONST REMINDEXER      = 3200
  27. CONST REMLOCINDEX     = 3300
  28. CONST REMOVINGMESSAGE = 3400
  29. CONST REMCOMPLETE     = 3500
  30.  
  31. CONST READMEFILE      = 4000
  32. CONST NONOTEPAD       = 4100
  33. CONST NORUNNOTEPAD    = 4200
  34.  
  35. CONST ASKQUIT         = 5000
  36. CONST EXITQUIT        = 5100
  37. CONST EXITSUCCESS     = 5200
  38. CONST EXITFAILURE     = 5300
  39. CONST REMASKQUIT      = 5500
  40. CONST REMEXIT         = 5600
  41.  
  42. CONST NOINDEXERFILES  = 6100
  43.  
  44. CONST INVALIDPATH     = 8000
  45. CONST INVALIDDRIVE    = 8100
  46. CONST REMOVABLEDRIVE  = 8200
  47.  
  48. CONST WIN32S          = 9000
  49. CONST REMOVEICONS     = 9100
  50.  
  51.  
  52. ''-------------------------------------------------------------------------''
  53. ''                               Bitmap ID                                 ''
  54. ''-------------------------------------------------------------------------''
  55.  
  56. CONST LOGO = 100
  57.  
  58.  
  59. ''-------------------------------------------------------------------------''
  60. ''                     Global Variable Declaractions                       ''
  61. ''-------------------------------------------------------------------------''
  62.  
  63. GLOBAL IndexerDestination$
  64. GLOBAL ImageDirectory$
  65. GLOBAL SampleDirectory$
  66. GLOBAL ViewdataDirectory$
  67. GLOBAL TemplateDirectory$
  68. GLOBAL OutputDirectory$
  69. GLOBAL IndexerLocation$
  70. GLOBAL PreferredIILocation$
  71. GLOBAL TimesInListExist%
  72. GLOBAL WinDir$
  73. GLOBAL WinSysDir$
  74.  
  75.  
  76. ''-------------------------------------------------------------------------''
  77. ''                 Function and Subroutine Declarations                    ''
  78. ''-------------------------------------------------------------------------''
  79.  
  80. DECLARE SUB Install
  81. DECLARE FUNCTION MakePath (szDirectory$, szFile$) AS STRING
  82.  
  83. DECLARE FUNCTION WinExec LIB "KERNEL" (CmdLine$, CmdShow As Integer) AS INTEGER
  84. DECLARE FUNCTION GetModuleUsage LIB "KERNEL" (hModule As Integer) AS INTEGER
  85. DECLARE SUB Yield LIB "KERNEL" ()
  86.  
  87. DECLARE FUNCTION OPENDLL LIB "idxsetup.dll" (szBuf$) AS INTEGER
  88. DECLARE FUNCTION CLOSEDLL LIB "idxsetup.dll" (szBuf$) AS INTEGER
  89. DECLARE FUNCTION READDLLFILE LIB "idxsetup.dll" (szBuf$) AS INTEGER
  90.  
  91.  
  92. ''-------------------------------------------------------------------------''
  93. ''                          Initializing Setup                             ''
  94. ''-------------------------------------------------------------------------''
  95.  
  96. INIT:
  97.  
  98.    CUIDLL$ = "mscuistf.dll"
  99.    HELPPROC$ = "FHelpDlgProc"
  100.  
  101.    SetBitmap CUIDLL$, LOGO
  102.    SetTitle "ICONOVEX Corporation"
  103.  
  104.    szInf$ = GetSymbolValue("STF_SRCINFPATH")
  105.  
  106.    If szInf$ = "" Then
  107.      szInf$ = GetSymbolValue("STF_CWDDIR") + "WBA.INF"
  108.    End If
  109.  
  110.    ReadInfFile szInf$
  111.    i% = SetSizeCheckMode(scmOnIgnore)
  112.  
  113.    On Error Goto QUIT
  114.  
  115.    WinDir$ = GetWindowsDir()
  116.  
  117.    SPLITPATH WinDir$, Drive$, Dir$, Filename$, Ext$
  118.    Dir$ = ""
  119.    Filename$ = ""
  120.    Ext$ = ""
  121.  
  122.    WinSysDir$ = GetWindowsSysDir()
  123.  
  124.    PreferredIILocation$ = Drive$ + "\wbanchor"
  125.    ImageDirectory$ = "\images"
  126.    SampleDirectory$ = "\samples"
  127.    ViewdataDirectory$ = "\viewdata"
  128.    TemplateDirectory$ = "\template"
  129.    OutputDirectory$ = "\output"
  130.  
  131.  
  132. ''-------------------------------------------------------------------------''
  133. ''                     Trademark Information Screen                        ''
  134. ''-------------------------------------------------------------------------''
  135.  
  136. TRADEMARKS:
  137.  
  138.    sz$ = UIStartDlg(CUIDLL$, TRADEMARK, "FModelessDlgProc", 0, "")
  139.  
  140.    Sleep(5)
  141.  
  142.    UIPop 1
  143.  
  144.  
  145. ''-------------------------------------------------------------------------''
  146. ''                            License Screen                               ''
  147. ''-------------------------------------------------------------------------''
  148.  
  149. LICENSE:
  150.  
  151.    LicenseDir$ = GetSymbolValue("STF_SRCDIR")
  152.  
  153.    If Exists(WinDir$ + "NOTEPAD.EXE") Then
  154.       CmdLine$ = WinDir$ + "NOTEPAD.EXE " + LicenseDir$ + "LICENSEA.TXT"
  155.       hInst% = WinExec(CmdLine$, 3)
  156.       If hInst% < 32 Then
  157.          GoSub UNABLETORUNNOTEPAD
  158.       Else
  159.          InUse% = GetModuleUsage(hInst)
  160.          While InUse% > 0
  161.             Yield
  162.         InUse% = GetModuleUsage(hInst)
  163.          Wend
  164.       End If
  165.    End If
  166.  
  167. LICENSE1:
  168.  
  169.    sz$ = UIStartDlg(CUIDLL$, LICENSEAGREE, "FInfoDlgProc", APPHELP, HELPPROC$)
  170.  
  171.    If sz$ = "CONTINUE" Then
  172.       UIPop 1
  173.    ElseIf sz$ = "REACTIVATE" Then
  174.       Goto LICENSE1
  175.    Else
  176.       End
  177.    End If
  178.  
  179.  
  180. ''-------------------------------------------------------------------------''
  181. ''                            Welcome Screen                               ''
  182. ''-------------------------------------------------------------------------''
  183.  
  184. WELCOME:
  185.  
  186.    sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", APPHELP, HELPPROC$)
  187.  
  188.    If sz$ = "CONTINUE" Then
  189.       UIPop 1
  190.    Else
  191.       GoSub ASKQUIT
  192.       Goto WELCOME
  193.    End If
  194.  
  195.  
  196. ''-------------------------------------------------------------------------''
  197. ''                          Installation or Removal                        ''
  198. ''-------------------------------------------------------------------------''
  199.  
  200. OPTION:
  201.  
  202.    SelectOption$ = "1"
  203.    SetSymbolValue "RadioDefault", SelectOption$
  204.  
  205.    IndexerDestination$ = ""
  206.    IndexerLocation$ = ""
  207.    TimesInListExist% = 0
  208.  
  209.  
  210. OPTION1:
  211.  
  212.    sz$ = UIStartDlg(CUIDLL$, OPTIONS, "FRadioDlgProc", APPHELP, HELPPROC$)
  213.  
  214.    SelectOption$ = GetSymbolValue("ButtonChecked")
  215.  
  216.    If sz$ = "CONTINUE" Then
  217.       UIPop 1
  218.    ElseIf sz$ = "REACTIVATE" Then
  219.       Goto OPTION1
  220.    Else
  221.       GoSub ASKQUIT
  222.       Goto OPTION
  223.    End If
  224.  
  225.    If SelectOption$ = "2" Then
  226.       Goto REMOVALUTILITY
  227.    End If
  228.  
  229.  
  230. ''-------------------------------------------------------------------------''
  231. ''                         Installation Utility                            ''
  232. ''-------------------------------------------------------------------------''
  233.  
  234. INSTALLATIONUTILITY:
  235.  
  236.    SetSymbolValue "EditTextIn", PreferredIILocation$
  237.  
  238.  
  239. INSTALLATION:
  240.  
  241.    sz$ = UIStartDlg(CUIDLL$, INSINDEXER, "FEditDlgProc", APPHELP, HELPPROC$)
  242.  
  243.    IndexerDestination$ = GetSymbolValue("EditTextOut")
  244.  
  245.    If sz$ = "CONTINUE" Then
  246.       If IndexerDestination$ = "" Then
  247.      GoSub BADPATH
  248.      Goto INSTALLATION
  249.       End If
  250.  
  251.       ProceedDrive$ = "TRUE"
  252.  
  253.       GoSub DRIVECHECKER
  254.  
  255.       If ProceedDrive$ = "FALSE" Then
  256.      Goto INSTALLATION
  257.       End If
  258.  
  259.       If IsDirWritable(IndexerDestination$) = 0 Then
  260.      GoSub BADPATH
  261.      Goto INSTALLATION
  262.       End If
  263.  
  264.       UIPop 1
  265.  
  266.    ElseIf sz$ = "REACTIVATE" Then
  267.       Goto INSTALLATION
  268.  
  269.    ElseIf sz$ = "BACK" Then
  270.       UIPop 1
  271.       Goto OPTION
  272.  
  273.    Else
  274.       GoSub ASKQUIT
  275.       Goto INSTALLATION
  276.    End If
  277.  
  278.    Install
  279.  
  280.    Goto QUIT
  281.  
  282.  
  283. ''-------------------------------------------------------------------------''
  284. ''                            Removal Utility                              ''
  285. ''-------------------------------------------------------------------------''
  286.  
  287. REMOVALUTILITY:
  288.  
  289.    SetSymbolValue "EditTextIn", ""
  290.  
  291.    ExhaustedDrives$ = "FALSE"
  292.    GetLocalHardDrivesList "HDList"
  293.    NumDrives% = GetListLength("HDList")
  294.    Count% = 1
  295.  
  296.    While ExhaustedDrives$ = "FALSE"
  297.       If Count% <= NumDrives% Then
  298.      Drive$ = GetListItem("HDList", Count%)
  299.      Drive$ = Drive$ + ":"
  300.  
  301.          PossibleIILocation$ = Drive$ + "\wbanchor"
  302.          IIDirCheck% = DoesDirExist(PossibleIILocation$)
  303.  
  304.          If IIDirCheck% = 1 Then
  305.         SetSymbolValue "EditTextIn", PossibleIILocation$
  306.         Goto REMOVEINDEXER
  307.      End If
  308.  
  309.       Else
  310.      ExhaustedDrives$ = "TRUE"
  311.       End If
  312.  
  313.       Count% = Count% + 1
  314.    Wend
  315.  
  316.    Goto FINDINDEXER
  317.  
  318.  
  319. ''-------------------------------------------------------------------------''
  320. ''                            Remove Indexer                               ''
  321. ''-------------------------------------------------------------------------''
  322.  
  323. REMOVEINDEXER:
  324.  
  325.    sz$ = UIStartDlg(CUIDLL$, REMINDEXER, "FEditDlgProc", APPHELP, HELPPROC$)
  326.  
  327.    IndexerLocation$ = GetSymbolValue("EditTextOut")
  328.  
  329.    If sz$ = "CONTINUE" Then
  330.       If IndexerLocation$ = "" Then
  331.      GoSub BADPATH
  332.      Goto REMOVEINDEXER
  333.       End If
  334.  
  335.       ProceedDrive$ = "TRUE"
  336.  
  337.       GoSub DRIVECHECKER
  338.  
  339.       If ProceedDrive$ = "FALSE" Then
  340.      Goto REMOVEINDEXER
  341.       End If
  342.  
  343.       If IsDirWritable(IndexerLocation$) = 0 Then
  344.      GoSub BADPATH
  345.      Goto REMOVEINDEXER
  346.       End If
  347.  
  348.       LocationCheck% = DoesDirExist(IndexerLocation$)
  349.  
  350.       If LocationCheck% = 0 Then
  351.      GoSub BADPATH
  352.      Goto REMOVEINDEXER
  353.       End If
  354.  
  355.       GoSub BUILDLISTEXIST
  356.  
  357.       If OkayToProceed$ = "FALSE" Then
  358.      GoSub MISSINGII
  359.      Goto REMOVEINDEXER
  360.       Else
  361.          UIPop 1
  362.      Goto FILEREMOVAL
  363.       End If
  364.  
  365.    ElseIf sz$ = "REACTIVATE" Then
  366.       Goto REMOVEINDEXER
  367.    ElseIf sz$ = "BACK" Then
  368.       UIPop 1
  369.       Goto OPTION
  370.    Else
  371.       GoSub REMASKQUIT
  372.       Goto REMOVALUTILITY
  373.    End If
  374.  
  375.  
  376. ''-------------------------------------------------------------------------''
  377. ''                            Locate Indexer                               ''
  378. ''-------------------------------------------------------------------------''
  379.  
  380. FINDINDEXER:
  381.  
  382.    sz$ = UIStartDlg(CUIDLL$, REMLOCINDEX, "FEditDlgProc", APPHELP, HELPPROC$)
  383.  
  384.    IndexerLocation$ = GetSymbolValue("EditTextOut")
  385.  
  386.    If sz$ = "CONTINUE" Then
  387.       If IndexerLocation$ = "" Then
  388.      GoSub BADPATH
  389.      Goto FINDINDEXER
  390.       End If
  391.  
  392.       ProceedDrive$ = "TRUE"
  393.  
  394.       GoSub DRIVECHECKER
  395.  
  396.       If ProceedDrive$ = "FALSE" Then
  397.      Goto FINDINDEXER
  398.       End If
  399.  
  400.       If IsDirWritable(IndexerLocation$) = 0 Then
  401.      GoSub BADPATH
  402.      Goto FINDINDEXER
  403.       End If
  404.  
  405.       LocationCheck% = DoesDirExist(IndexerLocation$)
  406.  
  407.       If LocationCheck% = 0 Then
  408.      GoSub BADPATH
  409.      Goto FINDINDEXER
  410.       End If
  411.  
  412.       GoSub BUILDLISTEXIST
  413.  
  414.       If OkayToProceed$ = "FALSE" Then
  415.      GoSub MISSINGII
  416.      Goto FINDINDEXER
  417.       Else
  418.          UIPop 1
  419.      Goto FILEREMOVAL
  420.       End If
  421.  
  422.    ElseIf sz$ = "REACTIVATE" Then
  423.       Goto FINDINDEXER
  424.    ElseIf sz$ = "BACK" Then
  425.       UIPop 1
  426.       Goto OPTION
  427.    Else
  428.       GoSub REMASKQUIT
  429.       Goto REMOVALUTILITY
  430.    End If
  431.  
  432.  
  433. ''-------------------------------------------------------------------------''
  434. ''                         Indexer File Removal                            ''
  435. ''-------------------------------------------------------------------------''
  436.  
  437. FILEREMOVAL:
  438.  
  439.    sz$ = UIStartDlg(CUIDLL$, FILEREMOVE, "FInfoDlgProc", 0, "")
  440.  
  441.    If sz$ = "CONTINUE" Then
  442.       UIPop 1
  443.    ElseIf sz$ = "REACTIVATE" Then
  444.       Goto FILEREMOVAL
  445.    Else
  446.       GoSub REMASKQUIT
  447.       Goto FILEREMOVAL
  448.    End If
  449.  
  450.    sz$ = UIStartDlg(CUIDLL$, REMOVINGMESSAGE, "FModelessDlgProc", 0, "")
  451.  
  452.    ListSize% = GetListLength("ExistenceList")
  453.    Count% = 1
  454.  
  455.    While Count% <= ListSize%
  456.  
  457.       ListItem$ = GetListItem("ExistenceList", Count%)
  458.  
  459.       ExistsListItem% = DoesFileExist(ListItem$, femExists)
  460.  
  461.       If ExistsListItem% = 1 Then
  462.      Kill ListItem$
  463.       End If
  464.  
  465.       Count% = Count% + 1
  466.  
  467.    Wend
  468.  
  469.    ListSize% = GetListLength("BackupExistenceList")
  470.    Count% = 1
  471.  
  472.    While Count% <= ListSize%
  473.  
  474.       ListItem$ = GetListItem("BackupExistenceList", Count%)
  475.  
  476.       ExistsListItem% = DoesFileExist(ListItem$, femExists)
  477.  
  478.       If ExistsListItem% = 1 Then
  479.      Kill ListItem$
  480.       End If
  481.  
  482.       Count% = Count% + 1
  483.  
  484.    Wend
  485.  
  486.    RmDir IndexerLocation$ + ImageDirectory$
  487.    RmDir IndexerLocation$ + SampleDirectory$
  488.    RmDir IndexerLocation$ + ViewdataDirectory$
  489.    RmDir IndexerLocation$ + TemplateDirectory$
  490.    RmDir IndexerLocation$ + OutputDirectory$
  491.    RmDir IndexerLocation$
  492.  
  493.    UIPop 1
  494.  
  495.  
  496. ''-------------------------------------------------------------------------''
  497. ''                           Removal Complete                              ''
  498. ''-------------------------------------------------------------------------''
  499.  
  500. REMOVALCOMPLETE:
  501.  
  502.    sz$ = UIStartDlg(CUIDLL$, REMCOMPLETE, "FInfoDlgProc", 0, "")
  503.  
  504.    If sz$ = "CONTINUE" Then
  505.       UIPop 1
  506.    ElseIf sz$ = "REACTIVATE" Then
  507.       Goto REMOVALCOMPLETE
  508.    End If
  509.  
  510.    GoSub ICONREMOVAL
  511.  
  512.    End
  513.  
  514.  
  515. ''-------------------------------------------------------------------------''
  516. ''                            Install Win32s                               ''
  517. ''-------------------------------------------------------------------------''
  518.  
  519. WIN32SINSTALL:
  520.  
  521.    sz$ = UIStartDlg(CUIDLL$, WIN32S, "FInfoDlgProc", 0, "")
  522.  
  523.    If sz$ = "CONTINUE" Then
  524.       UIPop 1
  525.    ElseIf sz$ = "REACTIVATE" Then
  526.       Goto WIN32SINSTALL
  527.    End If
  528.  
  529.    Return
  530.  
  531.  
  532. ''-------------------------------------------------------------------------''
  533. ''                    Program Group and Item Removal                       ''
  534. ''-------------------------------------------------------------------------''
  535.  
  536. ICONREMOVAL:
  537.  
  538.    sz$ = UIStartDlg(CUIDLL$, REMOVEICONS, "FInfoDlgProc", 0, "")
  539.  
  540.    If sz$ = "CONTINUE" Then
  541.       UIPop 1
  542.    ElseIf sz$ = "REACTIVATE" Then
  543.       Goto ICONREMOVAL
  544.    End If
  545.  
  546.    Return
  547.  
  548.  
  549. ''-------------------------------------------------------------------------''
  550. ''                         Build Existence List                            ''
  551. ''-------------------------------------------------------------------------''
  552.  
  553. BUILDLISTEXIST:
  554.  
  555.    sz$ = UIStartDlg(CUIDLL$, BUILDLIST, "FModelessDlgProc", 0, "")
  556.  
  557.    GoSub LISTEXIST
  558.  
  559.    UIPop 1
  560.  
  561.    Return
  562.  
  563.  
  564. ''-------------------------------------------------------------------------''
  565. ''                        Removal Existence List                           ''
  566. ''-------------------------------------------------------------------------''
  567.  
  568. LISTEXIST:
  569.  
  570.    If TimesInListExist% < 1 Then
  571.  
  572.       IndexerLocation$ = GetSymbolValue("EditTextOut")
  573.  
  574.       OkayToProceed$ = "FALSE"
  575.       TimesInListExist% = 1
  576.       SectionNum% = 99
  577.       RestoreOddEven% = 0
  578.  
  579.       OpeningList% = OPENDLL("WBANCHOR.LST")
  580.  
  581.       While SectionNum% <> 0
  582.  
  583.      ExistingTargetFile$ = "            "
  584.      ReadingList% = READDLLFILE(ExistingTargetFile$)
  585.  
  586.      If ReadingList% = 1 Then
  587.  
  588.         If ExistingTargetFile$ = "1" Then
  589.            SectionNum% = 1
  590.         ElseIf ExistingTargetFile$ = "2" Then
  591.            SectionNum% = 2
  592.         ElseIf ExistingTargetFile$ = "3" Then
  593.            SectionNum% = 3
  594.         ElseIf ExistingTargetFile$ = "4" Then
  595.            SectionNum% = 4
  596.         ElseIf ExistingTargetFile$ = "5" Then
  597.             SectionNum% = 5
  598.         ElseIf ExistingTargetFile$ = "00" Then
  599.            SectionNum% = 0
  600.  
  601.         Else
  602.  
  603.            If SectionNum% = 1 Then
  604.                   ListItem$ = IndexerLocation$ + "\" + ExistingTargetFile$
  605.               AddListItem "ExistenceList", ListItem$
  606.                ElseIf SectionNum% = 2 Then
  607.                   ListItem$ = IndexerLocation$ + ImageDirectory$ + "\" + ExistingTargetFile$
  608.               AddListItem "ExistenceList", ListItem$
  609.            ElseIf SectionNum% = 3 Then
  610.           ListItem$ = IndexerLocation$ + SampleDirectory$ + "\" + ExistingTargetFile$
  611.           AddListItem "BackupExistenceList", ListItem$
  612.            ElseIf SectionNum% = 4 Then
  613.           ListItem$ = IndexerLocation$ + TemplateDirectory$ + "\" + ExistingTargetFile$
  614.           AddListItem "BackupExistenceList", ListItem$
  615.             ElseIf SectionNum% = 5 Then
  616.                 ListItem$ = IndexerLocation$ + ViewdataDirectory$ + "\" + ExistingTargetFile$
  617.                 AddListItem "BackupExistenceList", ListItem$
  618.            End If
  619.  
  620.                ExistsListItem% = DoesFileExist(ListItem$, femExists)
  621.  
  622.                If ExistsListItem% = 1 Then
  623.               OkayToProceed$ = "TRUE"
  624.                End If
  625.  
  626.         End If
  627.  
  628.      End If
  629.  
  630.       Wend
  631.  
  632.       ClosingList% = CLOSEDLL("WBANCHOR.LST")
  633.  
  634.    End If
  635.  
  636.    Return
  637.  
  638.  
  639. ''-------------------------------------------------------------------------''
  640. ''                              Early Exit                                 ''
  641. ''-------------------------------------------------------------------------''
  642.  
  643. ASKQUIT:
  644.  
  645.    sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  646.  
  647.    If sz$ = "EXIT" Then
  648.       UIPopAll
  649.       Error STFQUIT
  650.    ElseIf sz$ = "REACTIVATE" Then
  651.       Goto ASKQUIT
  652.    Else
  653.       UIPop 1
  654.    End If
  655.  
  656.    Return
  657.  
  658.  
  659. ''-------------------------------------------------------------------------''
  660. ''                          Removal Early Exit                             ''
  661. ''-------------------------------------------------------------------------''
  662.  
  663. REMASKQUIT:
  664.  
  665.    sz$ = UIStartDlg(CUIDLL$, REMASKQUIT, "FQuitDlgProc", 0, "")
  666.  
  667.    If sz$ = "EXIT" Then
  668.       UIPopAll
  669.       Goto REMOVALEXIT
  670.    ElseIf sz$ = "REACTIVATE" Then
  671.       Goto REMASKQUIT
  672.    Else
  673.       UIPop 1
  674.    End If
  675.  
  676.    Return
  677.  
  678.  
  679. ''-------------------------------------------------------------------------''
  680. ''                             Removal Exit                                ''
  681. ''-------------------------------------------------------------------------''
  682.  
  683. REMOVALEXIT:
  684.  
  685.    sz$ = UIStartDlg(CUIDLL$, REMEXIT, "FQuitDlgProc", 0, "")
  686.  
  687.    If sz$ = "REACTIVATE" Then
  688.       Goto REMOVALEXIT
  689.    Else
  690.       UIPop 1
  691.    End If
  692.  
  693.    End
  694.  
  695.  
  696. ''------------------------------------------------------------------------''
  697. ''                          Missing NOTEPAD.EXE                            ''
  698. ''-------------------------------------------------------------------------''
  699.  
  700. MISSINGNOTEPAD:
  701.  
  702.    sz$ = UIStartDlg(CUIDLL$, NONOTEPAD, "FInfoDlgProc", 0, "")
  703.  
  704.    If sz$ = "REACTIVATE" Then
  705.       Goto MISSINGNOTEPAD
  706.    End If
  707.  
  708.    UIPop 1
  709.  
  710.    Return
  711.  
  712.  
  713. ''------------------------------------------------------------------------''
  714. ''                          Missing NOTEPAD.EXE                            ''
  715. ''-------------------------------------------------------------------------''
  716.  
  717. UNABLETORUNNOTEPAD:
  718.  
  719.    sz$ = UIStartDlg(CUIDLL$, NORUNNOTEPAD, "FInfoDlgProc", 0, "")
  720.  
  721.    If sz$ = "REACTIVATE" Then
  722.       Goto UNABLETORUNNOTEPAD
  723.    End If
  724.  
  725.    UIPop 1
  726.  
  727.    Return
  728.  
  729.  
  730. ''-------------------------------------------------------------------------''
  731. ''                          Display README.TXT                             ''
  732. ''-------------------------------------------------------------------------''
  733.  
  734. READMEQUEST:
  735.  
  736.    sz$ = UIStartDlg(CUIDLL$, READMEFILE, "FInfoDlgProc", 0, "")
  737.  
  738.    If sz$ = "CONTINUE" Then
  739.       If Exists(WinDir$ + "NOTEPAD.EXE") Then
  740.      UIPop 1
  741.      CmdLine$ = WinDir$ + "NOTEPAD.EXE " + IndexerDestination$ + "\WBREADME.TXT"
  742.      hInst% = WinExec(CmdLine$, 3)
  743.      If hInst% < 32 Then
  744.         GoSub UNABLETORUNNOTEPAD
  745.      End If
  746.       Else
  747.      UIPop 1
  748.      Goto MISSINGNOTEPAD
  749.       End If
  750.    ElseIf sz$ = "REACTIVATE" Then
  751.       Goto READMEQUEST
  752.    Else
  753.       UIPop 1
  754.    End If
  755.  
  756.    Return
  757.  
  758.  
  759. ''-------------------------------------------------------------------------''
  760. ''                         Missing Indexer Files                           ''
  761. ''-------------------------------------------------------------------------''
  762.  
  763. MISSINGII:
  764.  
  765.    sz$ = UIStartDlg(CUIDLL$, NOINDEXERFILES, "FInfoDlgProc", 0, "")
  766.  
  767.    If sz$ = "REACTIVATE" Then
  768.       Goto MISSINGII
  769.    End If
  770.  
  771.    UIPop 1
  772.  
  773.    Return
  774.  
  775.  
  776. ''-------------------------------------------------------------------------''
  777. ''                           Drive Validation                              ''
  778. ''-------------------------------------------------------------------------''
  779.  
  780. DRIVECHECKER:
  781.  
  782.    If IndexerDestination$ = "" Then
  783.       UsePath$ = IndexerLocation$
  784.    Else
  785.       UsePath$ = IndexerDestination$
  786.    End If
  787.  
  788.    ProceedPath$ = "TRUE"
  789.    GoSub PATHCHECKER
  790.  
  791.    If ProceedPath$ = "FALSE" Then
  792.       ProceedDrive$ = "FALSE"
  793.       Return
  794.    End If
  795.  
  796.    If IndexerDestination$ = "" Then
  797.       IndexerLocation$ = UsePath$
  798.    Else
  799.       IndexerDestination$ = UsePath$
  800.    End If
  801.  
  802.    SetSymbolValue "EditTextIn", UsePath$
  803.  
  804.    SplitPath UsePath$, Drv$, Dir$, Filename$, Ext$
  805.  
  806.    UsePath$ = ""
  807.    Dir$  = ""
  808.    Filename$ = ""
  809.    Ext$  = ""
  810.  
  811.    DriveCheck% = IsDriveValid(Drv$)
  812.  
  813.    If DriveCheck% = 0 Then
  814.       GoSub INVALIDDRIVE
  815.       ProceedDrive$ = "FALSE"
  816.       Drv$ = ""
  817.       Return
  818.    End If
  819.  
  820.    DriveCheck% = IsDriveNetwork(Drv$)
  821.  
  822.    If DriveCheck% = 1 Then
  823.       ProceedDrive$ = "TRUE"
  824.       Drv$ = ""
  825.       Return
  826.    End If
  827.  
  828.    DriveCheck% = IsDriveRemovable(Drv$)
  829.  
  830.    If DriveCheck% = 1 Then
  831.  
  832.       If (Drv$ = "A:") Or (Drv$ = "B:") Then
  833.          GoSub REMOVABLEDRIVE
  834.          ProceedDrive$ = "FALSE"
  835.          Drv$ = ""
  836.          Return
  837.       End If
  838.  
  839.    End If
  840.  
  841.    Return
  842.  
  843.  
  844. ''-------------------------------------------------------------------------''
  845. ''                            Path Validation                              ''
  846. ''-------------------------------------------------------------------------''
  847.  
  848. PATHCHECKER:
  849.  
  850.    A$ = Mid$(UsePath$, 1, 1)
  851.    B$ = Mid$(UsePath$, 2, 1)
  852.  
  853.    Select Case A$
  854.  
  855.       Case "\"
  856.      WinDrive$ = Mid$(GetWindowsDir, 1, 1)
  857.      UsePath$ = WinDrive$ + ":" + UsePath$
  858.  
  859.       Case ":"
  860.      WinDrive$ = Mid$(GetWindowsDir, 1, 1)
  861.      UsePath$ = WinDrive$ + UsePath$
  862.  
  863.       Case Else
  864.  
  865.          Select Case B$
  866.  
  867.         Case "\"
  868.            UsePath$ = A$ + ":" + Mid$(UsePath$, 2)
  869.  
  870.         Case Else
  871.                If Instr(1, UsePath$, ":") <> 2 Then
  872.           GoSub BADPATH
  873.           ProceedPath$ = "FALSE"
  874.           Return
  875.            End If
  876.  
  877.      End Select
  878.  
  879.    End Select
  880.  
  881.    Return
  882.  
  883.  
  884. ''-------------------------------------------------------------------------''
  885. ''                             Invalid Drive                               ''
  886. ''-------------------------------------------------------------------------''
  887.  
  888. INVALIDDRIVE:
  889.  
  890.    sz$ = UIStartDlg(CUIDLL$, INVALIDDRIVE, "FInfoDlgProc", 0, "")
  891.  
  892.    IF sz$ = "REACTIVATE" THEN
  893.       Goto INVALIDDRIVE
  894.    End If
  895.  
  896.    UIPop 1
  897.  
  898.    Return
  899.  
  900.  
  901. ''-------------------------------------------------------------------------''
  902. ''                            Removable Drive                              ''
  903. ''-------------------------------------------------------------------------''
  904.  
  905. REMOVABLEDRIVE:
  906.  
  907.    sz$ = UIStartDlg(CUIDLL$, REMOVABLEDRIVE, "FInfoDlgProc", 0, "")
  908.  
  909.    IF sz$ = "REACTIVATE" THEN
  910.       Goto REMOVABLEDRIVE
  911.    End If
  912.  
  913.    UIPop 1
  914.  
  915.    Return
  916.  
  917.  
  918. ''-------------------------------------------------------------------------''
  919. ''                             Invalid Path                                ''
  920. ''-------------------------------------------------------------------------''
  921.  
  922. BADPATH:
  923.  
  924.    sz$ = UIStartDlg(CUIDLL$, INVALIDPATH, "FInfo0DlgProc", 0, "")
  925.  
  926.    IF sz$ = "REACTIVATE" THEN
  927.       Goto BADPATH
  928.    End If
  929.  
  930.    UIPop 1
  931.  
  932.    Return
  933.  
  934.  
  935. ''-------------------------------------------------------------------------''
  936. ''                         Determination of Quit                           ''
  937. ''-------------------------------------------------------------------------''
  938.  
  939. QUIT:
  940.  
  941.    If ERR = 0 Then
  942.       dlg% = EXITSUCCESS
  943.    ElseIf ERR = STFQUIT Then
  944.       dlg% = EXITQUIT
  945.    ElseIf ERR = 15 Then
  946.       Resume Next
  947.    ElseIf ERR = 1025 Then
  948.       dlg% = EXITQUIT
  949.    Else
  950.       dlg% = EXITFAILURE
  951.    End If
  952.  
  953.  
  954. ''-------------------------------------------------------------------------''
  955. ''                            Display of Quit                              ''
  956. ''-------------------------------------------------------------------------''
  957.  
  958. QUITDISPLAY:
  959.  
  960.    sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfoDlgProc", 0, "")
  961.  
  962.    If sz$ = "CONTINUE" Then
  963.       UIPop 1
  964.       If dlg% = EXITSUCCESS Then
  965.      GoSub WIN32SINSTALL
  966.      GoSub READMEQUEST
  967.       End If
  968.    ElseIf sz$ = "REACTIVATE" Then
  969.       Goto QUITDISPLAY
  970.    End If
  971.  
  972.    End
  973.  
  974.  
  975. ''-------------------------------------------------------------------------''
  976. ''                          Install Subroutine                             ''
  977. ''-------------------------------------------------------------------------''
  978.  
  979. SUB Install STATIC
  980.  
  981.    SetCopyGaugePosition 75, 55
  982.  
  983.    SrcDir$ = GetSymbolValue("STF_SRCDIR")
  984.  
  985.    AddSectionFilesToCopyList "WebAnchor", SrcDir$, IndexerDestination$
  986.    AddSectionFilesToCopyList "Image", SrcDir$, IndexerDestination$ + ImageDirectory$
  987.    AddSectionFilesToCopyList "Sample", SrcDir$, IndexerDestination$ + SampleDirectory$
  988.    AddSectionFilesToCopyList "Viewdata", SrcDir$, IndexerDestination$ + ViewdataDirectory$
  989.    AddSectionFilesToCopyList "Template", SrcDir$, IndexerDestination$ + TemplateDirectory$
  990.    AddSectionFilesToCopyList "LexEdit", SrcDir$, IndexerDestination$
  991.  
  992.    CopyFilesInCopyList
  993.  
  994.    CreateProgmanGroup "Iconovex", "", cmoNone
  995.    ShowProgmanGroup "Iconovex", 1, cmoNone
  996.    CreateProgmanItem "Iconovex", "WebAnchor", IndexerDestination$ + "\wbanchor.exe", "", cmoOverwrite
  997.    CreateProgmanItem "Iconovex", "LexEdit", IndexerDestination$ + "\lexedit0.exe", "", cmoOverwrite
  998.  
  999. END SUB
  1000.  
  1001.  
  1002. ''-------------------------------------------------------------------------''
  1003. ''                           MakePath Function                             ''
  1004. ''-------------------------------------------------------------------------''
  1005.  
  1006. FUNCTION MakePath (szDirectory$, szFile$) STATIC AS STRING
  1007.  
  1008.    If szDirectory$ = "" Then
  1009.       MakePath = szFile$
  1010.    ElseIf szFile$ = "" Then
  1011.       MakePath = szDirectory$
  1012.    ElseIf Mid$(szDirectory$, Len(szDirectory$), 1) = "\" Then
  1013.       MakePath = szDirectory$ + szFile$
  1014.    Else
  1015.       MakePath = szDirectory$ + "\" + szFile$
  1016.    End If
  1017.  
  1018. END FUNCTION
  1019.  
  1020.