home *** CD-ROM | disk | FTP | other *** search
/ CD-Rom Workshop - The Na…Truth & Killer Animations / CDROM.BIN / sony / setup / setup.mst < prev    next >
Encoding:
Text File  |  1994-03-08  |  15.4 KB  |  449 lines

  1. '**************************************************************************
  2. '*                       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 WARN2         = 1800
  24. CONST MODELESS      = 5000
  25. CONST TOOBIG        = 6300
  26. CONST BADPATH       = 6400
  27.  
  28. ''Bitmap ID
  29. 'CONST LOGO = 1
  30.  
  31. GLOBAL CUIDLL$
  32. GLOBAL WinDrive$        ''Drive letter Windows is installed.
  33. GLOBAL SrcDir$          ''Drive letter Windows is installed.
  34. GLOBAL QTWSrcDir$       ''Drive letter Windows is installed.
  35. GLOBAL DestDir$         ''Default destination directory for QT.
  36. GLOBAL FileCount%      
  37. GLOBAL AutoexecWasModified% 
  38. GLOBAL RestartWindows% 
  39. GLOBAL szSectionYear%
  40. GLOBAL szSectionMonth%
  41. GLOBAL szSectionDay%
  42.  
  43. DECLARE SUB      PromptQT (szType%)
  44. DECLARE SUB      CreateIcon
  45. DECLARE FUNCTION QTFilesOkay (szTemp$) AS INTEGER
  46. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  47. DECLARE FUNCTION VerifyDate (szDate$) AS INTEGER
  48. DECLARE FUNCTION GetNewDestination ( szDir$ ) AS STRING
  49.  
  50. INIT:
  51.     SetTitle "DADC Demo"
  52.     CUIDLL$ = "mscuistf.dll"            ''Custom user interface dll
  53.  
  54.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  55.     IF szInf$ = "" THEN
  56.         szInf$ = GetSymbolValue("STF_CWDDIR") + "SETUP.INF"
  57.     END IF
  58.     ReadInfFile szInf$
  59.  
  60.     WinDrive$ = MID$(GetWindowsDir, 1, 1)
  61.     IF IsDriveValid(WinDrive$) = 0 THEN
  62.         i% = DoMsgBox("Windows drive ('"+WinDrive$+"') is not a valid drive.", "DEBUG", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  63.         GOTO QUIT
  64.     END IF
  65.  
  66. WELCOME:
  67.     sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", 0, "")
  68.     IF sz$ = "CONTINUE" THEN
  69.         UIPop 1
  70.     ELSE
  71.         GOSUB ASKQUIT
  72.         GOTO WELCOME
  73.     END IF
  74.  
  75.  
  76.     FileCount% = 12
  77.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  78.     QTWSrcDir = MakePath(SrcDir$,"QTW")
  79.     AutoexecWasModified% = 0
  80.      RestartWindows% = 0
  81.     ClearCopyList
  82.  
  83.  
  84.     IF QTFilesOkay("") = 0 THEN
  85.         IF AutoexecWasModified% = 1 THEN
  86. PROMPT:
  87.                 sz$ = UIStartDlg(CUIDLL$, OPTIONS, "FRadioDlgProc", 0, "")
  88.                 IF sz$ = "CONTINUE" THEN
  89.                         UIPop 1
  90.                          PrependToPath "C:\AUTOEXEC.BAT", "C:\AUTOEXEC.QTW", DestDir$, cmoOverwrite
  91.                 ELSEIF sz$ = "REACTIVATE" THEN
  92.                         GOTO PROMPT
  93.                 ELSEIF sz$ = "EXIT" THEN
  94.                         GOSUB ASKQUIT
  95.                         GOTO PROMPT
  96.                 END IF
  97.  
  98.                 IF GetSymbolValue("ButtonChecked") = "1" THEN
  99.                         CopyFile "C:\AUTOEXEC.BAT", "C:\AUTOEXEC.BAK", cmoOverwrite, 0
  100.                         CopyFile "C:\AUTOEXEC.QTW", "C:\AUTOEXEC.BAT", cmoOverwrite, 0
  101.                           RemoveFile "C:\AUTOEXEC.QTW", cmoForce
  102.                 ENDIF
  103.         ENDIF
  104.         CopyFilesInCopyList
  105.     ENDIF
  106.  
  107.     CreateIcon
  108.  
  109.     IF AutoexecWasModified% = 1 THEN
  110. WARN:
  111.         sz$ = UIStartDlg(CUIDLL$, ADDHELP, "FInfoDlgProc", 0, "")
  112.         IF sz$ = "REACTIVATE" THEN
  113.                 GOTO WARN
  114.         ENDIF
  115.         UIPop 1
  116.      ELSEIF RestartWindows% = 1 THEN
  117. WARNAGAIN:
  118.         sz$ = UIStartDlg(CUIDLL$, WARN2, "FInfoDlgProc", 0, "")
  119.         IF sz$ = "REACTIVATE" THEN
  120.                 GOTO WARNAGAIN
  121.         ENDIF
  122.         UIPop 1
  123.     ENDIF
  124.  
  125.  
  126. QUIT:
  127.     ON ERROR GOTO ERRQUIT
  128.  
  129.     IF ERR = 0 THEN
  130.         dlg% = EXITSUCCESS
  131.     ELSEIF ERR = STFQUIT THEN
  132.         dlg% = EXITQUIT
  133.     ELSE
  134.         dlg% = EXITFAILURE
  135.     END IF
  136. QUITL1:
  137.     IF dlg% = EXITQUIT THEN
  138.         UIPop 1
  139.         END
  140.     ELSEIF dlg% = EXITFAILURE THEN
  141.         dlg% = EXITQUIT
  142.     END IF
  143.  
  144.     sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
  145.     IF sz$ = "REACTIVATE" THEN
  146.         GOTO QUITL1
  147.     END IF
  148.     UIPop 1
  149.     END
  150.  
  151. ERRQUIT:
  152.     i% = DoMsgBox("Setup sources were corrupted.", "Setup Message", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  153.     END
  154.  
  155.  
  156.  
  157. BADPATH:
  158.     sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "")
  159.     IF sz$ = "REACTIVATE" THEN
  160.         GOTO BADPATH
  161.     END IF
  162.     UIPop 1
  163.     RETURN
  164.  
  165. ASKQUIT:
  166.     sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  167.  
  168.     IF sz$ = "EXIT" THEN
  169.         UIPopAll
  170.         ERROR STFQUIT
  171.     ELSEIF sz$ = "REACTIVATE" THEN
  172.         GOTO ASKQUIT
  173.     ELSE
  174.         UIPop 1
  175.     END IF
  176.     RETURN
  177.  
  178.  
  179. '** Purpose:
  180. '**     Appends a file name to the end of a directory path,
  181. '**     inserting a backslash character as needed.
  182. '** Arguments:
  183. '**     szDir$  - full directory path (with optional ending "\")
  184. '**     szFile$ - filename to append to directory
  185. '** Returns:
  186. '**     Resulting fully qualified path name.
  187. '*************************************************************************
  188. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  189.     IF szDir$ = "" THEN
  190.         MakePath = szFile$
  191.     ELSEIF szFile$ = "" THEN
  192.         MakePath = szDir$
  193.     ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  194.         MakePath = szDir$ + szFile$
  195.     ELSE
  196.         MakePath = szDir$ + "\" + szFile$
  197.     END IF
  198. END FUNCTION
  199.  
  200. '**
  201. '** Purpose:
  202. '** Arguments:
  203. '** Returns:
  204. '*************************************************************************
  205. FUNCTION QTFilesOkay (szTemp$) STATIC AS INTEGER
  206.  
  207.         sz$ = UIStartDlg(CUIDLL$, MODELESS, "FModelessDlgProc", 0, "")
  208.         QTFilesOkay = 1
  209.         szFile$ = GetSectionKeyFilename("Quick Time", "QT 1")
  210.         szDir$ = FindFileUsingFileOpen(szFile$)
  211.         IF szDir$ = "" THEN                             '' FILE NOT FOUND 
  212.                 UIPop 1
  213.                 PromptQT QTNONE
  214.                 IF GetSymbolValue("ButtonChecked") = "1" THEN
  215.                         szDir$ = WinDrive$ + ":\QTW\BIN"
  216.                         szDir$ = GetNewDestination(szDir$)
  217.                         IF DoesDirExist(szDir$) = 0 THEN
  218.                                 CreateDir szDir$, cmoNone
  219.                         END IF
  220.                         AddSectionFilesToCopyList "Quick Time", QTWSrcDir$, szDir$
  221.                         DestDir$ = szDir$
  222.                         AutoexecWasModified% = 1
  223.                         QTFilesOkay = 0
  224.                 END IF
  225.         ELSE                                            '' FILE WAS FOUND
  226.                 szDate$ = GetDateOfFile(szDir$)
  227.                 szDir$ = MID$(szDir$, 1, (LEN(szDir$) - LEN(szFile$) - 1))
  228.                 szSectionDate$ = GetSectionKeyDate("Quick Time", "QT 1")
  229.                 szSectionYear% = GetYearFromDate(szSectionDate$)
  230.                 szSectionMonth% = GetMonthFromDate(szSectionDate$)
  231.                 szSectionDay% = GetDayFromDate(szSectionDate$)
  232.  
  233.                 tmpVal% = VerifyDate(szDate$)
  234.                 IF tmpVal% <> 0 THEN
  235.                         UIPop 1
  236.                         IF tmpVal% = 1 THEN
  237.                                 PromptQT QTOLDER
  238.                                 IF GetSymbolValue("ButtonChecked") = "1" THEN
  239.                                         szTmp$ = szDir$
  240.                                         szDir$ = GetNewDestination(szTmp$)
  241.                                         IF szDir$ <> szTmp$ THEN
  242.                                                 AutoexecWasModified% = 1
  243.                                                 IF DoesDirExist(szDir$) = 0 THEN
  244.                                                         CreateDir szDir$, cmoNone
  245.                                                 END IF
  246.                                          ELSE
  247.                                             RestartWindows% = 1
  248.                                         ENDIF
  249.                                         AddSectionFilesToCopyList "Quick Time", QTWSrcDir$, szDir$
  250.                                         QTFilesOkay = 0
  251.                                 ENDIF
  252.                         ELSE
  253.                                 PromptQT QTNEWER
  254.                                 IF GetSymbolValue("ButtonChecked") = "2" THEN
  255.                                         szTmp$ = szDir$
  256.                                         szDir$ = GetNewDestination(szTmp$)
  257.                                         IF szDir$ <> szTmp$ THEN
  258.                                                 AutoexecWasModified% = 1
  259.                                                 IF DoesDirExist(szDir$) = 0 THEN
  260.                                                         CreateDir szDir$, cmoNone
  261.                                                 END IF
  262.                                          ELSE
  263.                                             RestartWindows% = 1
  264.                                         ENDIF
  265.                                         AddSectionFilesToCopyList "Quick Time", QTWSrcDir$, szDir$
  266.                                         QTFilesOkay = 0
  267.                                 ENDIF
  268.                         ENDIF
  269.                 ELSE
  270.                         FOR i% = 2 TO FileCount% STEP 1
  271.                                 szKey$ = "QT" + STR$(i%)
  272.                                 szFile$ = GetSectionKeyFilename("Quick Time", szKey$)
  273.                                 szFullPathFile$ = MakePath(szDir$, szFile$)
  274.                                 szDate$ = GetDateOfFile(szFullPathFile$)
  275.                                 IF DoesFileExist(szFullPathFile$, femExists) = 0 THEN
  276.                                 UIPop 1
  277.                                         PromptQT QTINCOMPLETE
  278.                                         IF GetSymbolValue("ButtonChecked") = "1" THEN
  279.                                                 szTmp$ = szDir$
  280.                                                 szDir$ = GetNewDestination(szTmp$)
  281.                                                 IF szDir$ <> szTmp$ THEN
  282.                                                         AutoexecWasModified% = 1
  283.                                                         IF DoesDirExist(szDir$) = 0 THEN
  284.                                                                 CreateDir szDir$, cmoNone
  285.                                                         END IF
  286.                                                  ELSE
  287.                                                     RestartWindows% = 1
  288.                                                 ENDIF
  289.                                                 AddSectionFilesToCopyList "Quick Time", QTWSrcDir$, szDir$
  290.                                                 QTFilesOkay = 0
  291.                                         ENDIF
  292.                                         i% = FileCount%
  293.                         ELSE 
  294.                         tmpVal% = VerifyDate (szDate$)
  295.                         IF tmpVal% <> 0 THEN
  296.                                 UIPop 1
  297.                             PromptQT QTINCOMPLETE
  298.                                                 IF GetSymbolValue("ButtonChecked") = "1" THEN
  299.                                                         szTmp$ = szDir$
  300.                                                         szDir$ = GetNewDestination(szTmp$)
  301.                                                         IF szDir$ <> szTmp$ THEN
  302.                                                                 AutoexecWasModified% = 1
  303.                                                                 IF DoesDirExist(szDir$) = 0 THEN
  304.                                                                         CreateDir szDir$, cmoNone
  305.                                                                 END IF
  306.                                                          ELSE
  307.                                                             RestartWindows% = 1
  308.                                                         ENDIF
  309.                                                         AddSectionFilesToCopyList "Quick Time", QTWSrcDir$, szDir$
  310.                                                         QTFilesOkay = 0
  311.                                                 ENDIF
  312.                                                 i% = FileCount%
  313.                         ELSEIF i% = 12 THEN
  314.                                 UIPop 1
  315.                         ENDIF
  316.                         ENDIF
  317.                         NEXT i%
  318.                 END IF
  319.         END IF
  320. END FUNCTION
  321.  
  322.  
  323. '**
  324. '** Purpose: 
  325. '** Arguments:
  326. '** Returns:
  327. '**     0=same, 1=older, 2=newer -- than section date
  328. '*************************************************************************
  329. FUNCTION VerifyDate ( szDate$ ) STATIC AS INTEGER
  330.  
  331.         VerifyDate = 0
  332.         newval% = GetYearFromDate(szDate$)
  333.         IF (newval% <> szSectionYear%) THEN
  334.                 IF (newval% < szSectionYear%) THEN
  335.                         VerifyDate = 1
  336.                 ELSE
  337.                         VerifyDate = 2
  338.                 END IF
  339.                 GOTO DONE1
  340.         END IF
  341.  
  342.         newval% = GetMonthFromDate(szDate$)
  343.         IF (newval% <> szSectionMonth%) THEN
  344.                 IF (newval% < szSectionMonth%) THEN
  345.                         VerifyDate = 1
  346.                 ELSE
  347.                         VerifyDate = 2
  348.                 END IF
  349.                 GOTO DONE1
  350.         END IF
  351.  
  352.         newval% = GetDayFromDate(szDate$)
  353.         IF (newval% <> szSectionDay%) THEN
  354.                 IF (newval% < szSectionDay%) THEN
  355.                         VerifyDate = 1
  356.                 ELSE
  357.                         VerifyDate = 2
  358.                 END IF
  359.                 GOTO DONE1
  360.         END IF
  361. DONE1:
  362.  
  363. END FUNCTION
  364.  
  365.  
  366. '**
  367. '** Purpose: 
  368. '** Arguments:
  369. '** Returns:
  370. '*************************************************************************
  371. FUNCTION GetNewDestination ( szDir$ ) STATIC AS STRING
  372.  
  373.         GetNewDestination = szDir$        
  374. GETPATH:
  375.         SetSymbolValue "EditTextIn", szDir$
  376.         SetSymbolValue "EditFocus", "END"
  377.  
  378. GETPATHL1:
  379.     sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", 0, "")
  380.  
  381.     IF sz$ = "CONTINUE" THEN
  382.         GetNewDestination = GetSymbolValue("EditTextOut")
  383.         UIPop 1
  384.     ELSEIF sz$ = "REACTIVATE" THEN
  385.         GOTO GETPATHL1
  386.     ELSEIF sz$ = "EXIT" THEN
  387.         sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  388. TMP1:
  389.         IF sz$ = "EXIT" THEN
  390.                 UIPopAll
  391.                 ERROR STFQUIT
  392.         ELSEIF sz$ = "REACTIVATE" THEN
  393.                 GOTO TMP1
  394.         ELSE
  395.                 UIPop 1
  396.         END IF
  397.         GOTO GETPATHL1
  398.     ELSE
  399.         UIPop 1
  400.     END IF
  401.  
  402. END FUNCTION
  403.  
  404. '**
  405. '** Purpose: 
  406. '** Arguments:
  407. '** Returns:
  408. '*************************************************************************
  409. SUB PromptQT (szType%) STATIC
  410.  
  411.         SetSymbolValue "ButtonChecked", "1"
  412. QT1:
  413.         sz$ = UIStartDlg(CUIDLL$, szType%, "FRadioDlgProc", 0, "")
  414.         IF sz$ = "CONTINUE" THEN
  415.                 UIPop 1
  416.         ELSEIF sz$ = "REACTIVATE" THEN
  417.                 GOTO QT1
  418.         ELSEIF sz$ = "EXIT" THEN
  419.                 sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  420. QT2:
  421.                 IF sz$ = "EXIT" THEN
  422.                         UIPopAll
  423.                         ERROR STFQUIT
  424.                 ELSEIF sz$ = "REACTIVATE" THEN
  425.                         GOTO QT2
  426.                 ELSE
  427.                         UIPop 1
  428.                 END IF
  429.                 GOTO QT1
  430.         END IF
  431. END SUB
  432.  
  433. '**
  434. '** Purpose: Creates a Program Group and a Program Item
  435. '** Arguments: None
  436. '** Returns: Nothing
  437. '*************************************************************************
  438. SUB CreateIcon STATIC
  439.  
  440.     CreateProgmanGroup "DADC Demo", "", cmoNone
  441.     ShowProgmanGroup  "DADC Demo", 1, cmoNone
  442.     CreateProgmanItem "DADC Demo", "DADC", MakePath(SrcDir$,"DADCDEMO.EXE"), "", cmoOverwrite
  443.     CreateProgmanItem "DADC Demo", "Read Me", "write "+MakePath(SrcDir$,"readme.wri"), "", cmoOverwrite
  444.  
  445. END SUB
  446.  
  447.  
  448. 
  449.