home *** CD-ROM | disk | FTP | other *** search
/ Odyssey Computer Animation Catalog / ODYSSEY_1.iso / run / setup.mst < prev    next >
Encoding:
Text File  |  1994-07-21  |  8.1 KB  |  255 lines

  1. '**************************************************************************
  2. '* Odyssey Visual Design Demo setup,
  3. '*  based on VfW 1.1 Runtime Setup
  4. '**************************************************************************
  5. '$INCLUDE 'setupapi.inc'
  6. '$INCLUDE 'mscpydis.inc'    ''System
  7. '$INCLUDE 'msdetect.inc'    ''Detects Avalilable Disk Space
  8.  
  9. ''Dialog ID's
  10. CONST WELCOME       = 100
  11. CONST ASKQUIT       = 200
  12. CONST EXITFAILURE   = 400
  13. CONST EXITQUIT      = 600
  14. CONST EXITSUCCESS   = 700
  15. CONST APPHELP       = 900
  16. CONST CHECK         = 2500
  17. CONST SMALLWIN      = 2200
  18. CONST RESTART       = 2600
  19. CONST RESTARTII     = 2700
  20.  
  21. ''Bitmap ID
  22. CONST LOGO = 1
  23.  
  24. GLOBAL SizeReq&  '' Total Disk Size required for installation
  25.  
  26. ''File Types
  27. GLOBAL SrcDir$
  28. GLOBAL WinDir$
  29. GLOBAL WinSysDir$
  30. GLOBAL WINDRIVE$    ''Windows Drive Letter.
  31. GLOBAL CHECKSTATES$
  32.  
  33. DECLARE SUB Install
  34. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  35. DECLARE FUNCTION OnWindowsNT LIB "INIUPD.DLL" AS INTEGER
  36. DECLARE FUNCTION VflatdPresent LIB "iniupd.DLL" AS INTEGER
  37. DECLARE SUB Reboot LIB "iniupd.dll"
  38. DECLARE fUNCTION ExitWindowsExec  LIB "User" (Exec$, Param$) AS INTEGER
  39.  
  40. INIT:
  41.   
  42.     CUIDLL$ = "mscuistf.dll"            ''Custom user interface dll
  43.     HELPPROC$ = "FHelpDlgProc"          ''Help dialog procedure
  44.     
  45.     WIN32ENABLED% = 0
  46.     MajorVer% = GetWindowsMajorVersion()
  47.     MinorVer% = GetWindowsMinorVersion()
  48.  
  49.     IF MajorVer% < 3 OR (MajorVer% = 3 AND MinorVer% < 10) THEN
  50.     i% = DoMsgBox("Microsoft Windows version 3.10 or greater is required for this software.  Please upgrade your version of Windows.", "Installation Problem", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  51.     END
  52.     END IF
  53.  
  54.     IF OnWindowsNT() THEN
  55.       i% = DoMsgBox("This version of Video for Windows does not run on Windows NT.", "Installation Problem", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  56.       END
  57.     END IF
  58.  
  59.     SetBitmap CUIDLL$, LOGO
  60.     SetTitle "Odyssey Visual Design Installation"
  61.  
  62.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  63.     IF szInf$ = "" THEN
  64.        szInf$ = GetSymbolValue("STF_CWDDIR") + "SETUP.INF"
  65.     END IF
  66.     ReadInfFile szInf$
  67.  
  68.     WINDRIVE$ = MID$(GetWindowsDir, 1, 1)
  69.  
  70. WELCOME:
  71.     sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", APPHELP, HELPPROC$)
  72.     IF sz$ = "CONTINUE" THEN
  73.        UIPop 1
  74.      ELSE
  75.     GOSUB ASKQUIT
  76.     GOTO WELCOME
  77.     END IF
  78.  
  79. ''Prepare Copy list and check size
  80.  
  81.     ClearCopyList
  82.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  83.     WinDir$ = GetWindowsDir()
  84.     DEST$ = GetWindowsDir()
  85.     WinSysDir$ = GetWindowsSysDir()
  86.  
  87. ''  Runtime files (on Windows disk)
  88.  
  89.     AddSectionFilesToCopyList "VfW Runtime", SrcDir$, WinSysDir$
  90.     AddSectionFilesToCopyList "OLE2", SrcDir$, WinSysDir$
  91.     AddSectionFilesToCopyList "ACM Drivers", SrcDir$, WinSysDir$
  92.     AddSectionFilesToCopyList "MPlayer", SrcDir$, WinDir$
  93.     AddSectionFilesToCopyList "AVICodecs", SrcDir$, WinSysDir$
  94.  
  95. ''  Check windrive diskspace
  96.     SizeReq& = GetCopyListCost ("","", "")
  97.     IF SizeReq& <> 0 THEN
  98.     GOSUB SMALLWIN
  99.     END
  100.     END IF
  101.  
  102. Install
  103.  
  104. '' Restart Windows: if it has to updates ACM from DOS, it restarts Windows automatically
  105. '' else, it gives the user the choice
  106.     RESTRT% = RestartListEmpty ()
  107.     Exe$ = DEST$ + "\_msrstrt.exe"
  108.     Batch$ = DEST$ + "\_mssetup.bat"
  109.     empty$ = ""
  110. RESTART:
  111.     IF RESTRT% = 0 THEN
  112.        sz$ = UIStartDlg(cuidll$, RESTART, "FInfo0DlgProc", 0, "")
  113.        IF sz$ = "REACTIVATE" THEN
  114.       GOTO RESTART
  115.        ENDIF
  116.        I% = ExitExecRestart ()
  117.        RemoveFile Exe$, cmoForce
  118.        RemoveFile Batch$, cmoForce
  119.        END
  120.     ELSE
  121.        sz$ = UIStartDlg(CUIDLL$, RESTARTII, "FQuitDlgProc", 0, "")
  122.        IF sz$ = "CONTINUE" THEN
  123.       I% = ExitWindowsExec (Exe$, empty$)
  124.       IF I% = 0 THEN
  125.          GOTO RESTART
  126.       ELSE
  127.          END
  128.      ENDIF
  129.        ELSEIF sz$ = "EXIT" THEN
  130.       UIPopAll
  131.       END
  132.        ELSEIF sz$ = "REACTIVATE" THEN
  133.       GOTO RESTART
  134.        ELSE
  135.       UIPop 1
  136.        END IF
  137.     END IF
  138.  
  139.  
  140. QUIT:
  141.     ON ERROR GOTO ERRQUIT
  142.  
  143.     IF ERR = 0 THEN
  144.     dlg% = EXITSUCCESS
  145.     ELSEIF ERR = STFQUIT THEN
  146.     dlg% = EXITQUIT
  147.     ELSE
  148.     dlg% = EXITFAILURE
  149.     END IF
  150. QUITL1:
  151.     sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
  152.     IF sz$ = "REACTIVATE" THEN
  153.     GOTO QUITL1
  154.     END IF
  155.     UIPop 1
  156.     END
  157.  
  158. ERRQUIT:
  159.     i% = DoMsgBox("An installation problem occured, call the product support service", "Setup Problem", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  160.     END
  161.  
  162.  
  163. ASKQUIT:
  164.     sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  165.  
  166.     IF sz$ = "EXIT" THEN
  167.     UIPopAll
  168. ''        ERROR STFQUIT
  169.     END
  170.     ELSEIF sz$ = "REACTIVATE" THEN
  171.     GOTO ASKQUIT
  172.     ELSE
  173.     UIPop 1
  174.     END IF
  175.     RETURN
  176.  
  177. SMALLWIN:
  178.     sz$ = UIStartDlg(CUIDLL$, SMALLWIN, "FInfo0DlgProc", 0, "")
  179.     IF sz$ = "REACTIVATE" THEN
  180.     GOTO SMALLWIN
  181.     END IF
  182.     UIPop 1
  183.     RETURN
  184.  
  185. '**
  186. '** Purpose:
  187. '**     Performs all installation operations.
  188. '** Arguments:
  189. '**     none.
  190. '** Returns:
  191. '**     none.
  192. '*************************************************************************
  193. SUB Install STATIC
  194.  
  195.     SetRestartDir WinDir$
  196.     CopyFilesInCopyList
  197.  
  198. ''Updating WIN.INI and SYSTEM.INI
  199.     IF VflatdPresent() = 0 THEN
  200.        CreateSysIniKeyValue WinDir$ + "system.ini", "386Enh", "device", "dva.386", cmoOverwrite
  201.     END IF
  202.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.CVID", "iccvid.drv", cmoOverwrite
  203.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.MSVC", "msvidc.drv", cmoOverwrite
  204.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.MRLE", "MSRLE.drv", cmoOverwrite
  205.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.RT21", "ir21.dll", cmoOverwrite
  206.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.YVU9", "iyvu9.dll", cmoOverwrite
  207.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.IV31", "ir32.dll", cmoOverwrite
  208.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.IV32", "ir32.dll", cmoOverwrite
  209.     CreateIniKeyValue WinDir$ + "WIN.INI", "mci extensions", "avi", "AVIVideo", cmoOverwrite
  210.     CreateIniKeyValue WinDir$ + "system.ini", "mci", "AVIVideo", "mciavi.drv", cmoOverwrite
  211.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "WaveMapper", "msacm.drv", cmoOverwrite
  212.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "MSACM.msadpcm", "msadpcm.acm", cmoOverwrite
  213.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "MSACM.imaadpcm", "imaadpcm.acm", cmoOverwrite
  214.     CreateIniKeyValue WinDir$ + "control.ini", "drivers.desc", "msacm.drv", "Microsoft Sound Mapper V2.00", cmoOverwrite
  215.     CreateIniKeyValue WinDir$ + "control.ini", "drivers.desc", "msadpcm.acm", "Microsoft ADPCM Codec V2.00", cmoOverwrite
  216.     CreateIniKeyValue WinDir$ + "control.ini", "drivers.desc", "imaadpcm.acm", "Microsoft IMA ADPCM Codec V2.00", cmoOverwrite
  217.  
  218.     Run ("regedit.exe /s " + MakePath(WinDir$, "mplayer.reg"))
  219.     Run ("regedit.exe /s " + MakePath(WinSysDir$, "OLE2.reg"))
  220.     Run ("regedit.exe /s " + MakePath(WinSysDir$, "cleanup.reg"))
  221.  
  222. '' Mplayer
  223.     CreateProgmanItem "Accessories", "Media Player", MakePath(WinDir$, "mplayer.exe"), "", cmoOverwrite
  224.  
  225. '' Program Manager group
  226.     SrcDrive$ = MID$(SrcDir$, 1, 2)
  227.     CreateProgmanGroup "Odyssey", "", cmoNone
  228.     ShowProgmanGroup  "Odyssey", 1, cmoNone
  229.     CreateProgmanItem "Odyssey", "Odyssey Animations Demo", MakePath(SrcDrive$, "cplshow.exe ") + MakePath(SrcDrive$,"odyssey.cpl"), MakePath(SrcDrive$,"odyssey.ico,0,-1,-1,")+ MakePath(SrcDrive$,"videos"), cmoOverwrite
  230.     Run ("profdisp.exe")
  231. END SUB
  232.  
  233. '**
  234. '** Purpose:
  235. '**     Appends a file name to the end of a directory path,
  236. '**     inserting a backslash character as needed.
  237. '** Arguments:
  238. '**     szDir$  - full directory path (with optional ending "\")
  239. '**     szFile$ - filename to append to directory
  240. '** Returns:
  241. '**     Resulting fully qualified path name.
  242. '*************************************************************************
  243. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  244.     IF szDir$ = "" THEN
  245.     MakePath = szFile$
  246.     ELSEIF szFile$ = "" THEN
  247.     MakePath = szDir$
  248.     ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  249.     MakePath = szDir$ + szFile$
  250.     ELSE
  251.     MakePath = szDir$ + "\" + szFile$
  252.     END IF
  253. END FUNCTION
  254.  
  255.