home *** CD-ROM | disk | FTP | other *** search
/ The Haldeman Diaries - Inside the Nixon Whitehouse / HALDEMAN_DIARIES_NIXON.ISO / instlib / setup.mst < prev    next >
Encoding:
Text File  |  1994-05-23  |  15.4 KB  |  632 lines

  1. '**************************************************************************
  2. '* The Haldeman Diaries Setup
  3. '**************************************************************************
  4.  
  5. '$DEFINE DEBUG  ''Define for script development/debugging
  6.  
  7. '$INCLUDE 'setupapi.inc'
  8. '$INCLUDE 'msdetect.inc'
  9.  
  10. ''Dialog ID's
  11. CONST WELCOME       = 100
  12. CONST ASKQUIT       = 200
  13. CONST DESTPATH      = 300
  14. CONST EXITFAILURE   = 400
  15. CONST EXITQUIT      = 600
  16. CONST EXITSUCCESS   = 700
  17. CONST OPTIONS       = 800
  18. CONST ADDHELP       = 900
  19. CONST QTNONE        = 1100
  20. CONST QTOLDER       = 1200
  21. CONST QTNEWER       = 1300
  22. CONST QTINCOMPLETE  = 1400
  23. CONST APPPATH       = 1700
  24. CONST SOUND          = 1705
  25. CONST SINGLELIST    = 1900
  26. CONST EXTENDEDLIST  = 3900
  27. CONST TOOBIG        = 6300
  28. CONST BADPATH       = 6400
  29. CONST CDBADNAME     = 7700
  30.  
  31. ''Bitmap ID
  32. ''CONST LOGO = 1
  33.  
  34. GLOBAL DEST$                     '' Application destination path
  35. GLOBAL CUIDLL$                    '' Custom DLL
  36. GLOBAL WinDrive$                '' Drive letter Windows is installed.
  37. GLOBAL SrcDir$                    ''
  38. GLOBAL QTDirNeeded%            '' Status if a QT files need to be copied.
  39. GLOBAL QTFileCount%            '' Number of QT files to check/copy.
  40. GLOBAL QTDestDir$              '' Default destination directory for QT.
  41. GLOBAL QTWSrcDir$              '' Directory where QT should/is installed
  42. GLOBAL AutoexecWasModified% 
  43. GLOBAL szSectionYear%
  44. GLOBAL szSectionMonth%
  45. GLOBAL szSectionDay%
  46. GLOBAL    CheckQTFiles%            '' Did we already check for the QT Files?
  47. GLOBAL BackedUp%                '' Status that user selected backup
  48. GLOBAL CopyChoice$
  49. GLOBAL UserChoice$
  50. GLOBAL    AutoExecChoice$
  51. GLOBAL CDdrive$
  52.  
  53. DECLARE FUNCTION    QTFilesOkay (szTemp$) AS INTEGER
  54. DECLARE FUNCTION    MakePath (szDir$, szFile$) AS STRING
  55. DECLARE FUNCTION    VerifyQTDate (szDate$) AS INTEGER
  56. DECLARE FUNCTION    GetNewDestination ( szDir$ ) AS STRING
  57. DECLARE FUNCTION    AddCDromDriveLetter ( szLabel$, szWord$) AS INTEGER
  58. DECLARE SUB          PromptQT (szType%)
  59. DECLARE SUB        CreateIcon
  60. DECLARE FUNCTION     SoundCardFound    LIB "mscuistf.dll" () AS INTEGER
  61. DECLARE FUNCTION   ChangeDriveLetter LIB "mscuistf.dll" (Setin$, Setout$, szLetter$, szWord$) AS INTEGER
  62. DECLARE FUNCTION   AppendToPath LIB "mscuistf.dll" (Setin$, Setout$, szPath$) AS INTEGER
  63. DECLARE FUNCTION     Verify256Color    LIB "mscuistf.dll" () AS INTEGER
  64.  
  65. START:
  66.     SetTitle "The Haldeman Diaries Setup"
  67.     CUIDLL$ = "mscuistf.dll"            ''Custom user interface dll
  68.     DEST$ = "C:\HDIARIES"
  69.     CheckQTFiles% = 0
  70.     SoundCardWarning% = 0
  71.  
  72.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  73.     IF szInf$ = "" THEN
  74.         szInf$ = GetSymbolValue("STF_CWDDIR") + "SETUP.INF"
  75.     END IF
  76.     ReadInfFile szInf$
  77.  
  78.     WinDrive$ = MID$(GetWindowsDir, 1, 1)
  79.     IF IsDriveValid(WinDrive$) = 0 THEN
  80.         i% = DoMsgBox("Windows drive ('"+WinDrive$+"') is not a valid drive.", "DEBUG", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  81.         GOTO QUIT
  82.     END IF
  83.  
  84. CHECKWINVER:                '' Verify Windows 3.1 or later
  85.     WinMaj% = GetWindowsMajorVersion()
  86.     IF (WinMaj% < 3 OR (WinMaj% = 3 AND GetWindowsMinorVersion() < 10)) THEN
  87. WRONGVER:
  88.         sz$ = UIStartDlg(CUIDLL$, CDBADNAME, "FInfoDlgProc", 0, "")
  89.         IF sz$ = "EXIT" THEN
  90.            UIPop 1
  91.             END
  92.         ELSE
  93.             GOTO WRONGVER
  94.           ENDIF
  95.     ENDIF
  96.  
  97. WELCOME:
  98.     sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", 0, "")
  99.     IF sz$ = "CONTINUE" THEN
  100.         UIPop 1
  101.     ELSE
  102.         GOSUB ASKQUIT
  103.         GOTO WELCOME
  104.     ENDIF
  105.  
  106.     
  107. GETPATH:
  108.     SetSymbolValue "EditTextIn", DEST$
  109.     SetSymbolValue "EditFocus", "END"
  110.  
  111. GETPATHL1:
  112.     sz$ = UIStartDlg(CUIDLL$, APPPATH, "FEditDlgProc", 0, "")
  113.     IF sz$ = "CONTINUE" THEN
  114.         DEST$ = GetSymbolValue("EditTextOut")
  115.         IF IsDirWritable(DEST$) = 0 THEN
  116.             GOSUB BADPATH
  117.              GOTO GETPATHL1
  118.          ENDIF
  119.         UIPop 1
  120.     ELSEIF sz$ = "REACTIVATE" THEN
  121.          GOTO GETPATHL1
  122.     ELSEIF sz$ = "BACK" THEN
  123.         DEST$ = GetSymbolValue("EditTextOut")
  124.          UIPop 1
  125.          GOTO WELCOME
  126.     ELSEIF sz$ = "EXIT" THEN
  127.          GOSUB ASKQUIT
  128.          GOTO GETPATHL1
  129.     ENDIF
  130.  
  131.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  132.     QTFileCount% = 12
  133.     QTWSrcDir = MakePath(SrcDir$,"QTW")
  134.     AutoexecWasModified% = 0
  135.     ClearCopyList
  136.  
  137.  
  138. SELECTCDDRIVE:
  139.     SetSymbolValue "ListItemsIn", ""
  140.     GetNetworkDrivesList "ListItemsIn"
  141. CD1:
  142.      sz$ = UIStartDlg(CUIDLL$, SINGLELIST, "FListDlgProc", 0, "")
  143.    CDdrive$ = GetListItem("ListItemsOut", 1)
  144.    IF sz$ = "CONTINUE" THEN
  145.          IF CDdrive$ = "" THEN
  146.             GOTO CD1
  147.          ELSE
  148.             UIPop 1
  149.          ENDIF
  150.     ELSEIF sz$ = "REACTIVATE" THEN
  151.         GOTO CD1
  152.     ELSEIF sz$ = "BACK" THEN
  153.         UIPop 1
  154.           GOTO GETPATH
  155.     ELSE
  156.         GOSUB ASKQUIT
  157.         GOTO CD1
  158.     END IF
  159.  
  160. QTCHECK:
  161.     IF CheckQTFiles% = 0 THEN
  162.         FilesOkay% = QTFilesOkay("")
  163.         IF FilesOkay% = 3 THEN
  164.             CopyChoice$ = "2"
  165.         ELSE
  166.             CopyChoice$ = "1"
  167.         ENDIF
  168.         UserChoice$ = "1"
  169.         AutoExecChoice$ = "1"
  170.     ENDIF
  171.  
  172. QTPROMPT:
  173.     IF FilesOkay% <> 0 THEN                        '' QT Files aren't Okay
  174.         IF FilesOkay% = 1 THEN
  175.             PromptQT QTNONE
  176.         ELSEIF FilesOkay% = 2 THEN
  177.             PromptQT QTOLDER
  178.         ELSEIF FilesOkay% = 3 THEN
  179.             PromptQT QTNEWER
  180.         ELSEIF FilesOkay% = 4 THEN
  181.             PromptQT QTINCOMPLETE
  182.         ENDIF
  183.  
  184. QTDESTINATION:
  185.         QTDirNeeded% = 0
  186.         AutoexecWasModified% = 0
  187.         IF BackedUp% = 0 THEN
  188.             IF UserChoice$ = CopyChoice$ THEN
  189.                 QTDirNeeded% = 1
  190.                 szTmp$ = QTDestDir$
  191.                  QTDestDir$ = GetNewDestination(szTmp$)
  192.                 IF BackedUp% = 0 THEN
  193.                     IF FilesOkay% = 1 THEN
  194.                            AutoexecWasModified% = 1
  195.                     ELSEIF szTmp$ <> QTDestDir$ THEN
  196.                            AutoexecWasModified% = 1
  197.                     ENDIF
  198.                 ELSE
  199.                     GOTO QTPROMPT
  200.                 ENDIF
  201.             ELSE
  202.                 GOTO DOINSTALL
  203.             ENDIF
  204.         ELSE
  205.             GOTO GETPATH
  206.         ENDIF
  207.  
  208.         BackedUp% = 0
  209.         IF AutoexecWasModified% = 1 THEN
  210.             SetSymbolValue "RadioDefault", AutoExecChoice$
  211. AUTOPROMPT:
  212.             sz$ = UIStartDlg(CUIDLL$, OPTIONS, "FRadioDlgProc", 0, "")
  213.             IF sz$ = "CONTINUE" THEN
  214.                UIPop 1
  215.                 rtn% = AppendToPath("C:\AUTOEXEC.BAT", "C:\AUTOEXEC.QTW", QTDestDir$)
  216.             ELSEIF sz$ = "REACTIVATE" THEN
  217.                GOTO AUTOPROMPT
  218.             ELSEIF sz$ = "BACK" THEN
  219.                 AutoExecChoice$ = GetSymbolValue("ButtonChecked")
  220.                 UIPop 1
  221.                 GOTO QTDESTINATION
  222.             ELSEIF sz$ = "EXIT" THEN
  223.                 GOSUB ASKQUIT
  224.                 GOTO AUTOPROMPT
  225.             END IF
  226.             
  227.             AutoExecChoice$ = GetSymbolValue("ButtonChecked")
  228.             IF AutoExecChoice$ = "1" THEN
  229.                 CopyFile "C:\AUTOEXEC.BAT", "C:\AUTOEXEC.BAK", cmoOverwrite, 0
  230.                 CopyFile "C:\AUTOEXEC.QTW", "C:\AUTOEXEC.BAT", cmoOverwrite, 0
  231.                 RemoveFile "C:\AUTOEXEC.QTW", cmoForce
  232.             ENDIF
  233.         ENDIF
  234.     ENDIF
  235.  
  236. DOINSTALL:
  237.  
  238.     IF QTDirNeeded% = 1 THEN
  239.         AddSectionFilesToCopyList "Quick Time", QTWSrcDir$, QTDestDir$
  240.     ENDIF
  241.  
  242.     AddSectionFilesToCopyList "Files", SrcDir$, DEST$
  243.  
  244.     IF GetCopyListCost(szExtras$, szCosts$, szNeededs$) <> 0 THEN
  245. CHECKSPACE:
  246.         sz$ = UIStartDlg(CUIDLL$, TOOBIG, "FInfoDlgProc", 0, "")
  247.         IF sz$ = "REACTIVATE" THEN
  248.            GOTO CHECKSPACE
  249.         ENDIF
  250.         UIPop 1
  251.         END
  252.     ENDIF
  253.  
  254.     IF QTDirNeeded% = 1 THEN
  255.         IF DoesDirExist(QTDestDir$) = 0 THEN
  256.             CreateDir QTDestDir$, cmoNone
  257.         ENDIF
  258.     ENDIF
  259.  
  260.     IF DoesDirExist(DEST$) = 0 THEN
  261.         CreateDir DEST$, cmoNone
  262.     ENDIF
  263.  
  264.     CopyFilesInCopyList
  265.     rtn% = AddCDromDriveLetter("SYS", ".groupFileNames[]")
  266.     CreateIcon
  267.  
  268.     InvalidSystem% = 0
  269.     SetSymbolValue "ListItemsIn", ""
  270.  
  271.  
  272. SOUNDCHECK:
  273.     IF SoundCardFound() = 0 THEN
  274.         AddListItem "ListItemsIn", "A Sound Card."
  275.         InvalidSystem% = 1
  276.         SoundCardWarning% = 2
  277.     ENDIF
  278.  
  279.  
  280. MOUSECHECK:
  281.     IF HasMouseInstalled() = 0 THEN
  282.         AddListItem "ListItemsIn", "A Mouse."
  283.         InvalidSystem% = 1
  284.         IF SoundCardWarning = 2 THEN
  285.             SoundCardWarning% = 1
  286.         ENDIF
  287.     ENDIF
  288.  
  289.  
  290. CHECK386:
  291.     IF GetProcessorType() < 3 THEN
  292.         AddListItem "ListItemsIn", "At least a 386 processor."
  293.         InvalidSystem% = 1
  294.         IF SoundCardWarning = 2 THEN
  295.             SoundCardWarning% = 1
  296.         ENDIF
  297.     ENDIF
  298.  
  299.  
  300. VGACHECK:
  301.     IF GetScreenHeight() < 480 THEN
  302.         AddListItem "ListItemsIn", "Any VGA or better video adaptor"
  303.         InvalidSystem% = 1
  304.         IF SoundCardWarning = 2 THEN
  305.             SoundCardWarning% = 1
  306.         ENDIF
  307.     ENDIF
  308.  
  309.  
  310. COLOR256:
  311.     IF Verify256Color = 0 THEN
  312.         AddListItem "ListItemsIn", "256 Color Mode."
  313.         InvalidSystem% = 1
  314.         IF SoundCardWarning = 2 THEN
  315.             SoundCardWarning% = 1
  316.         ENDIF
  317.     ENDIF
  318.  
  319.  
  320.  
  321.     IF (InvalidSystem% = 1 AND SoundCardWarning <> 2) THEN
  322. SHOWMIN:
  323.          sz$ = UIStartDlg(CUIDLL$, EXTENDEDLIST, "FListDlgProc", 0, "")
  324.        IF sz$ = "CONTINUE" THEN
  325.             UIPop 1
  326.        ELSEIF sz$ = "REACTIVATE" THEN
  327.             GOTO SHOWMIN
  328.        ELSE
  329.             UIPop 1
  330.        ENDIF
  331.     ENDIF
  332.  
  333.     IF AutoexecWasModified% = 1 THEN
  334. WARN:
  335.         sz$ = UIStartDlg(CUIDLL$, ADDHELP, "FInfoDlgProc", 0, "")
  336.         IF sz$ = "REACTIVATE" THEN
  337.            GOTO WARN
  338.         ENDIF
  339.         UIPop 1
  340.     ENDIF
  341.  
  342.     IF SoundCardWarning% <> 0 THEN
  343. SOUNDWARN:
  344.         sz$ = UIStartDlg(CUIDLL$, SOUND, "FInfoDlgProc", 0, "")
  345.         IF sz$ = "REACTIVATE" THEN
  346.            GOTO SOUNDWARN
  347.         ENDIF
  348.         UIPop 1
  349.     ENDIF
  350.  
  351. QUIT:
  352.     ON ERROR GOTO ERRQUIT
  353.  
  354.     IF ERR = 0 THEN
  355.         dlg% = EXITSUCCESS
  356.     ELSEIF ERR = STFQUIT THEN
  357.         dlg% = EXITQUIT
  358.     ELSE
  359.         dlg% = EXITFAILURE
  360.     END IF
  361. QUITL1:
  362.     IF dlg% = EXITQUIT THEN
  363.         UIPop 1
  364.         END
  365.     ELSEIF dlg% = EXITFAILURE THEN
  366.         dlg% = EXITQUIT
  367.     END IF
  368.  
  369.     sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
  370.     IF sz$ = "REACTIVATE" THEN
  371.         GOTO QUITL1
  372.     END IF
  373.     UIPop 1
  374.     END
  375.  
  376. ERRQUIT:
  377.     i% = DoMsgBox("Setup sources were corrupted.", "Setup Message", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  378.     END
  379.  
  380.  
  381.  
  382. BADPATH:
  383.     sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "")
  384.     IF sz$ = "REACTIVATE" THEN
  385.         GOTO BADPATH
  386.     END IF
  387.     UIPop 1
  388.     RETURN
  389.  
  390. ASKQUIT:
  391.     sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  392.  
  393.     IF sz$ = "EXIT" THEN
  394.         UIPopAll
  395.         ERROR STFQUIT
  396.     ELSEIF sz$ = "REACTIVATE" THEN
  397.         GOTO ASKQUIT
  398.     ELSE
  399.         UIPop 1
  400.     END IF
  401.     RETURN
  402.  
  403.  
  404. '** Purpose:
  405. '**     Appends a file name to the end of a directory path,
  406. '**     inserting a backslash character as needed.
  407. '** Arguments:
  408. '**     szDir$  - full directory path (with optional ending "\")
  409. '**     szFile$ - filename to append to directory
  410. '** Returns:
  411. '**     Resulting fully qualified path name.
  412. '*************************************************************************
  413. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  414.     IF szDir$ = "" THEN
  415.         MakePath = szFile$
  416.     ELSEIF szFile$ = "" THEN
  417.         MakePath = szDir$
  418.     ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  419.         MakePath = szDir$ + szFile$
  420.     ELSE
  421.         MakePath = szDir$ + "\" + szFile$
  422.     END IF
  423. END FUNCTION
  424.  
  425. '**
  426. '** Purpose:
  427. '** Arguments:
  428. '** Returns:    0=Okay, 1=None, 2=Older, 3=Newer, 4=Incomplete
  429. '*************************************************************************
  430. FUNCTION QTFilesOkay (szTemp$) STATIC AS INTEGER
  431.  
  432.     QTFilesOkay = 0
  433.    FOR i% = 1 TO QTFileCount% STEP 1
  434.           szKey$ = "QT" + STR$(i%)
  435.           szFile$ = GetSectionKeyFilename("Quick Time", szKey$)
  436.         IF i% = 1 THEN
  437.             QTDestDir$ = FindFileUsingFileOpen(szFile$)
  438.             IF QTDestDir$ = "" THEN
  439.                QTDestDir$ = WinDrive$ + ":\QTW\BIN"
  440.             ELSE
  441.                 QTDestDir$ = MID$(QTDestDir$, 1, (LEN(QTDestDir$) - LEN(szFile$) - 1))
  442.             ENDIF
  443.         ENDIF
  444.           szFullPathFile$ = MakePath(QTDestDir$, szFile$)
  445.           szDate$ = GetDateOfFile(szFullPathFile$)
  446.           IF DoesFileExist(szFullPathFile$, femExists) = 0 THEN
  447.             IF i% = 1 THEN
  448.                 QTFilesOkay = 1
  449.             ELSE
  450.                 QTFilesOkay = 4
  451.             ENDIF
  452.             GOTO DONEQTCHECK
  453.         ELSE
  454.             szDate$ = GetDateOfFile(szFullPathFile$)
  455.             IF i% = 1 THEN
  456.                 szSectionDate$ = GetSectionKeyDate("Quick Time", "QT 1")
  457.                 szSectionYear% = GetYearFromDate(szSectionDate$)
  458.                 szSectionMonth% = GetMonthFromDate(szSectionDate$)
  459.                 szSectionDay% = GetDayFromDate(szSectionDate$)
  460.             ENDIF
  461.              tmpVal% = VerifyQTDate (szDate$)
  462.              IF tmpVal% = 1 THEN
  463.                 QTFilesOkay = 2
  464.                 GOTO DONEQTCHECK
  465.             ELSEIF tmpVal% = 2 THEN
  466.                 QTFilesOkay = 3
  467.                 GOTO DONEQTCHECK
  468.             ENDIF
  469.         ENDIF
  470.     NEXT i%
  471.  
  472. DONEQTCHECK:
  473.     CheckQTFiles% = 1
  474. END FUNCTION
  475.  
  476. '**
  477. '** Purpose: 
  478. '** Arguments:
  479. '** Returns:
  480. '**     0=same, 1=older, 2=newer -- than section date
  481. '*************************************************************************
  482. FUNCTION VerifyQTDate ( szDate$ ) STATIC AS INTEGER
  483.  
  484.     VerifyQTDate = 0
  485.     newval% = GetYearFromDate(szDate$)
  486.     IF (newval% <> szSectionYear%) THEN
  487.        IF (newval% < szSectionYear%) THEN
  488.            VerifyQTDate = 1
  489.        ELSE
  490.               VerifyQTDate = 2
  491.        END IF
  492.        GOTO DONE1
  493.     END IF
  494.  
  495.     newval% = GetMonthFromDate(szDate$)
  496.     IF (newval% <> szSectionMonth%) THEN
  497.        IF (newval% < szSectionMonth%) THEN
  498.               VerifyQTDate = 1
  499.        ELSE
  500.               VerifyQTDate = 2
  501.        END IF
  502.            GOTO DONE1
  503.     END IF
  504.  
  505.     newval% = GetDayFromDate(szDate$)
  506.     IF (newval% <> szSectionDay%) THEN
  507.        IF (newval% < szSectionDay%) THEN
  508.               VerifyQTDate = 1
  509.        ELSE
  510.               VerifyQTDate = 2
  511.        END IF
  512.        GOTO DONE1
  513.     END IF
  514.  
  515. DONE1:
  516.  
  517. END FUNCTION
  518.  
  519.  
  520. '**
  521. '** Purpose: 
  522. '** Arguments:
  523. '** Returns:
  524. '*************************************************************************
  525. FUNCTION GetNewDestination ( szDir$ ) STATIC AS STRING
  526.  
  527.     GetNewDestination = szDir$        
  528. GETPATH:
  529.     SetSymbolValue "EditTextIn", szDir$
  530.     SetSymbolValue "EditFocus", "END"
  531.  
  532. GETPATHL1:
  533.     sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", 0, "")
  534.  
  535.     IF sz$ = "CONTINUE" THEN
  536.        GetNewDestination = GetSymbolValue("EditTextOut")
  537.        UIPop 1
  538.     ELSEIF sz$ = "REACTIVATE" THEN
  539.        GOTO GETPATHL1
  540.     ELSEIF sz$ = "BACK" THEN
  541.         BackedUp% = 1
  542.        UIPop 1
  543.     ELSEIF sz$ = "EXIT" THEN
  544.        sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  545. TMP1:
  546.        IF sz$ = "EXIT" THEN
  547.               UIPopAll
  548.              ERROR STFQUIT
  549.        ELSEIF sz$ = "REACTIVATE" THEN
  550.               GOTO TMP1
  551.        ELSE
  552.               UIPop 1
  553.        END IF
  554.        GOTO GETPATHL1
  555.     ELSE
  556.        UIPop 1
  557.     END IF
  558.  
  559. END FUNCTION
  560.  
  561. '**
  562. '** Purpose:
  563. '** Arguments:
  564. '**     none.
  565. '** Returns: cannot call till files have been installed to destination.
  566. '**     none.
  567. '*************************************************************************
  568. FUNCTION AddCDromDriveLetter(szLabel$, szWord$) STATIC AS INTEGER
  569.  
  570. '' Update file with CDROM Drive Letter
  571.  
  572.     SysPFileName$ = MakePath(DEST$, GetSectionKeyFilename("Files", szLabel$))
  573.     TmpFile$ = MakePath(DEST$, "DRIVELET.TMP")
  574.     rtn% = ChangeDriveLetter(SysPFileName$, TmpFile$, CDdrive$, szWord$)
  575.     IF rtn% = 0 THEN
  576.         CopyFile TmpFile$, SysPFileName$, cmoOverwrite, 0
  577.        RemoveFile TmpFile$, cmoForce
  578.     ELSEIF rtn% = 1 THEN
  579.        RemoveFile TmpFile$, cmoForce
  580.     ENDIF
  581.  
  582. END FUNCTION
  583.  
  584. '**
  585. '** Purpose: 
  586. '** Arguments:
  587. '** Returns:
  588. '*************************************************************************
  589. SUB PromptQT (szType%) STATIC
  590.  
  591.     BackedUp% = 0
  592.     SetSymbolValue "RadioDefault", UserChoice$
  593. QT1:
  594.     sz$ = UIStartDlg(CUIDLL$, szType%, "FRadioDlgProc", 0, "")
  595.     IF sz$ = "CONTINUE" THEN
  596.         UIPop 1
  597.     ELSEIF sz$ = "REACTIVATE" THEN
  598.         GOTO QT1
  599.     ELSEIF sz$ = "BACK" THEN
  600.         BackedUp% = 1
  601.         UIPop 1
  602.     ELSEIF sz$ = "EXIT" THEN
  603.         sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  604. QT2:
  605.         IF sz$ = "EXIT" THEN
  606.               UIPopAll
  607.               ERROR STFQUIT
  608.         ELSEIF sz$ = "REACTIVATE" THEN
  609.               GOTO QT2
  610.         ELSE
  611.               UIPop 1
  612.         ENDIF
  613.         GOTO QT1
  614.     ENDIF
  615.  
  616.      UserChoice$ = GetSymbolValue("ButtonChecked")
  617. END SUB
  618.  
  619. '**
  620. '** Purpose: Creates a Program Group and a Program Item
  621. '** Arguments: None
  622. '** Returns: Nothing
  623. '*************************************************************************
  624. SUB CreateIcon STATIC
  625.  
  626.     CreateProgmanGroup "The Haldeman Diaries", "", cmoNone
  627.     ShowProgmanGroup  "The Haldeman Diaries", 1, cmoNone
  628.     CreateProgmanItem "The Haldeman Diaries", "The Haldeman Diaries", MakePath(DEST$, GetSectionKeyFilename("Files", "EXE")), "", cmoOverwrite
  629.  
  630. END SUB
  631.  
  632.