home *** CD-ROM | disk | FTP | other *** search
/ Chestnut's Multimedia Mania / MM_MANIA.ISO / windows / winfrac / winstall.ms_ / winstall.ms
Text File  |  1992-07-07  |  6KB  |  222 lines

  1. '**************************************************************************
  2. '*                       Fractals for Windows Installation
  3. '**************************************************************************
  4.  
  5. '$DEFINE DEBUG  ''Define for script development/debugging
  6.  
  7. '$INCLUDE 'setupapi.inc'
  8. '$INCLUDE 'msdetect.inc'
  9. '$INCLUDE 'msshared.inc'
  10.  
  11. ''Dialog ID's
  12. CONST WELCOME       = 100
  13. CONST ASKQUIT       = 200
  14. CONST DESTPATH      = 300
  15. CONST EXITFAILURE   = 400
  16. CONST EXITQUIT      = 600
  17. CONST EXITSUCCESS   = 700
  18. CONST OPTIONS       = 800
  19. CONST APPHELP       = 900
  20. CONST BADPATH       = 6400
  21.  
  22. ''Bitmap ID
  23. CONST LOGO = 1
  24.  
  25. GLOBAL DEST$        ''Default destination directory.
  26. GLOBAL GROUP$       ''Default Program Group name.
  27. GLOBAL OPTCUR$      ''Option selection from option dialog.
  28.  
  29. DECLARE SUB Install
  30. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  31.  
  32.  
  33. INIT:
  34.     CUIDLL$ = "mscuistf.dll"            ''Custom user interface dll
  35.     HELPPROC$ = "FHelpDlgProc"          ''Help dialog procedure
  36.  
  37.     SetBitmap CUIDLL$, LOGO
  38.     SetTitle "Fractals for Windows Installation"
  39.  
  40.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  41.     IF szInf$ = "" THEN
  42.         szInf$ = GetSymbolValue("STF_CWDDIR") + "WINSTALL.INF"
  43.     END IF
  44.     ReadInfFile szInf$
  45.  
  46.     szSrcDir$ = GetSymbolValue("STF_SRCDIR")
  47.  
  48.     szShareDir$ = GetWindowsSysDir()
  49.  
  50.     DllPath$ = SearchForLocationForSharedFile("", "", "", 1, szShareDir$ + "toolhelp.dll", "1.1.1.1")
  51.     IF SharedFileNeedsCopying <> 0 THEN
  52.         AddSpecialFileToCopyList "Dll Files", "Dll", szSrcDir$, DllPath$
  53.     END IF
  54.  
  55.     OPTCUR$ = "1"
  56.     DEST$ = "C:\WINFRACT"
  57.     GROUP$ = "Fractals for Windows"
  58.  
  59. '$IFDEF DEBUG
  60.     i% = SetSizeCheckMode(scmOnIgnore)    '' could use scmOff; def = scmOnFatal
  61.     WinDrive$ = MID$(GetWindowsDir, 1, 1)
  62.     IF IsDriveValid(WinDrive$) = 0 THEN
  63.         i% = DoMsgBox("Windows drive ('"+WinDrive$+"') is not a valid drive.", "DEBUG", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  64.         GOTO QUIT
  65.     END IF
  66. '$ENDIF ''DEBUG
  67.  
  68.  
  69. WELCOME:
  70.     sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", APPHELP, HELPPROC$)
  71.     IF sz$ = "CONTINUE" THEN
  72.         UIPop 1
  73.     ELSE
  74.         GOSUB ASKQUIT
  75.         GOTO WELCOME
  76.     END IF
  77.  
  78.  
  79. OPTION:
  80.  
  81. GETPATH:
  82.     SetSymbolValue "EditTextIn", DEST$
  83.     SetSymbolValue "Edit2TextIn", GROUP$
  84.     SetSymbolValue "EditFocus", "END"
  85. GETPATHL1:
  86.     sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", APPHELP, HELPPROC$)
  87.     DEST$ = GetSymbolValue("EditTextOut")
  88.     GROUP$ = GetSymbolValue("Edit2TextOut")
  89.     destdrive$ = MID$(DEST$, 1, 1)
  90.  
  91.     IF sz$ = "CONTINUE" THEN
  92.         IF IsDirWritable(DEST$) = 0 THEN
  93.             GOSUB BADPATH
  94.             GOTO GETPATHL1
  95.         END IF
  96.         free& = GetFreeSpaceForDrive(destdrive$)
  97.         IF free& < 1100000 THEN
  98.             i% = DoMsgBox("Insufficient Free Space on Destination Drive (1.5MB required)", "Installation Error", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  99.             GOTO GETPATHL1
  100.             END IF
  101.         UIPop 1
  102.     ELSEIF sz$ = "REACTIVATE" THEN
  103.         GOTO GETPATHL1
  104.     ELSEIF sz$ = "BACK" THEN
  105.         UIPop 1
  106.         GOTO WELCOME
  107.     ELSE
  108.         GOSUB ASKQUIT
  109.         GOTO GETPATH
  110.     END IF
  111.  
  112.  
  113.     Install
  114.  
  115.  
  116. QUIT:
  117.     ON ERROR GOTO ERRQUIT
  118.  
  119.     IF ERR = 0 THEN
  120.         dlg% = EXITSUCCESS
  121.     ELSEIF ERR = STFQUIT THEN
  122.         dlg% = EXITQUIT
  123.     ELSE
  124.         dlg% = EXITFAILURE
  125.     END IF
  126. QUITL1:
  127.     sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
  128.     IF sz$ = "REACTIVATE" THEN
  129.         GOTO QUITL1
  130.     END IF
  131.     UIPop 1
  132.  
  133.     END
  134.  
  135. ERRQUIT:
  136.     i% = DoMsgBox("Installation sources were corrupted", "Installation Message", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  137.     END
  138.  
  139.  
  140.  
  141. BADPATH:
  142.     sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "")
  143.     IF sz$ = "REACTIVATE" THEN
  144.         GOTO BADPATH
  145.     END IF
  146.     UIPop 1
  147.     RETURN
  148.  
  149.  
  150.  
  151. ASKQUIT:
  152.     sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  153.  
  154.     IF sz$ = "EXIT" THEN
  155.         UIPopAll
  156.         ERROR STFQUIT
  157.     ELSEIF sz$ = "REACTIVATE" THEN
  158.         GOTO ASKQUIT
  159.     ELSE
  160.         UIPop 1
  161.     END IF
  162.     RETURN
  163.  
  164.  
  165.  
  166. '**
  167. '** Purpose:
  168. '**     Builds the copy list and performs all installation operations.
  169. '** Arguments:
  170. '**     none.
  171. '** Returns:
  172. '**     none.
  173. '*************************************************************************
  174. SUB Install STATIC
  175.  
  176.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  177.     CreateDir DEST$, cmoNone
  178.  
  179. '    OpenLogFile MakePath(DEST$, "LOGFILE.OUT"), 0
  180. '    WriteToLogFile ""
  181. '    WriteToLogFile "  User chose as destination directory: '" + DEST$ + "'"
  182. '    WriteToLogFile "  User chose option: '" + OPTCUR$ + "'"
  183. '    WriteToLogFile ""
  184. '    WriteToLogFile "May have had to create the directory: " + DEST$
  185. '    WriteToLogFile ""
  186.  
  187.     AddSectionFilesToCopyList "Files", SrcDir$, DEST$
  188.     CopyFilesInCopyList
  189.  
  190.     CreateProgmanGroup GROUP$, "", cmoNone
  191.     ShowProgmanGroup   GROUP$, 1, cmoNone
  192.     CreateProgmanItem  GROUP$, "Winfract", MakePath(DEST$,"winfract.exe"), "", cmoOverwrite
  193.  
  194. '    CloseLogFile
  195.  
  196. END SUB
  197.  
  198.  
  199.  
  200. '**
  201. '** Purpose:
  202. '**     Appends a file name to the end of a directory path,
  203. '**     inserting a backslash character as needed.
  204. '** Arguments:
  205. '**     szDir$  - full directory path (with optional ending "\")
  206. '**     szFile$ - filename to append to directory
  207. '** Returns:
  208. '**     Resulting fully qualified path name.
  209. '*************************************************************************
  210. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  211.     IF szDir$ = "" THEN
  212.         MakePath = szFile$
  213.     ELSEIF szFile$ = "" THEN
  214.         MakePath = szDir$
  215.     ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  216.         MakePath = szDir$ + szFile$
  217.     ELSE
  218.         MakePath = szDir$ + "\" + szFile$
  219.     END IF
  220. END FUNCTION
  221.  
  222.