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