home *** CD-ROM | disk | FTP | other *** search
/ CD Action 9 B / cdactioncoverdisc / vfw_11e / setup.mst < prev    next >
Text File  |  1996-07-07  |  11KB  |  303 lines

  1. '**************************************************************************
  2. '*                  VfW 1.1e Runtime Setup
  3. '*  Custom changes to this installer by enlighten are:
  4. '*  1.) Change all occurrences of 1.1 to 1.1e (including the header above).
  5. '*
  6. '**************************************************************************
  7. '$INCLUDE 'setupapi.inc'
  8. '$INCLUDE 'mscpydis.inc'    ''System
  9. '$INCLUDE 'msdetect.inc'    ''Detects Avalilable Disk Space
  10.  
  11. ''Dialog ID's
  12. CONST WELCOME       = 100
  13. CONST ASKQUIT       = 200
  14. CONST EXITFAILURE   = 400
  15. CONST EXITQUIT      = 600
  16. CONST EXITSUCCESS   = 700
  17. CONST APPHELP       = 900
  18. CONST CHECK         = 2500
  19. CONST SMALLWIN      = 2200
  20. CONST RESTART       = 2600
  21. CONST RESTARTII     = 2700
  22.  
  23. ''Bitmap ID
  24. CONST LOGO = 0
  25.  
  26. GLOBAL SizeReq&  '' Total Disk Size required for installation
  27.  
  28. ''File Types
  29. GLOBAL WinDir$
  30. GLOBAL WinSysDir$
  31. GLOBAL WinSys32Dir$
  32. GLOBAL WINDRIVE$    ''Windows Drive Letter.
  33. GLOBAL CHECKSTATES$
  34. GLOBAL MinorVer%
  35. GLOBAL OnNT$
  36.  
  37. DECLARE SUB Install
  38. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  39. DECLARE FUNCTION OnWindowsNT LIB "INIUPD.DLL" AS INTEGER
  40. DECLARE FUNCTION VflatdPresent LIB "iniupd.DLL" AS INTEGER
  41. DECLARE SUB Reboot LIB "iniupd.dll"
  42. DECLARE fUNCTION ExitWindowsExec  LIB "User" (Exec$, Param$) AS INTEGER
  43.  
  44. INIT:
  45.   
  46.     CUIDLL$ = "mscuistf.dll"            ''Custom user interface dll
  47.     HELPPROC$ = "FHelpDlgProc"          ''Help dialog procedure
  48.     
  49.     WIN32ENABLED% = 0
  50.     MajorVer% = GetWindowsMajorVersion()
  51.     MinorVer% = GetWindowsMinorVersion()
  52.     Processor% = GetProcessorType()
  53.     WinDir$ = GetWindowsDir()
  54.     DEST$ = GetWindowsDir()
  55.     WinSysDir$ = GetWindowsSysDir()
  56.     WinSys32Dir$ = WinDir$ + "system32"
  57.  
  58.     IF MajorVer% < 3 OR (MajorVer% = 3 AND MinorVer% < 10) THEN
  59.     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)
  60.     END
  61.     END IF
  62.  
  63.     'Prevents installation on 286
  64.     IF Processor% < 3 THEN
  65.     i% = DoMsgBox("Video for Windows requires a 386 or greater processor or emulator.", "Installation Problem", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  66.     END
  67.     END IF
  68.  
  69.     ' Use Wowexec to determine version of NT.  3.1 did not stamp wowexec and wow returns 3.1 as version
  70.     IF OnWindowsNT() THEN
  71.       OnNT$ = "TRUE"
  72.       WowVersion$ = GetVersionOfFile(WinSys32Dir$ + "\wowexec.exe")
  73.       IF WowVersion$ = "" THEN
  74.          i% = DoMsgBox("Video for Windows does not run on Windows NT 3.1.  Please upgrade your version of Windows.", "Installation Problem", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  75.          END
  76.       END IF
  77.     END IF
  78.  
  79. ''    SetBitmap CUIDLL$, LOGO
  80.     SetTitle "Video for Windows 1.1e Runtime"
  81.  
  82.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  83.     IF szInf$ = "" THEN
  84.        szInf$ = GetSymbolValue("STF_CWDDIR") + "SETUP.INF"
  85.     END IF
  86.     ReadInfFile szInf$
  87.  
  88.     WINDRIVE$ = MID$(GetWindowsDir, 1, 1)
  89.  
  90. WELCOME:
  91.     sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", APPHELP, HELPPROC$)
  92.     IF sz$ = "CONTINUE" THEN
  93.        UIPop 1
  94.      ELSE
  95.     GOSUB ASKQUIT
  96.     GOTO WELCOME
  97.     END IF
  98.  
  99. ''Prepare Copy list and check size
  100.  
  101.     ClearCopyList
  102.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  103.  
  104. '' Remove DCISVGA file
  105.     AddSectionFilesToCopyList "remove", SrcDir$, WinSysDir$
  106.  
  107. ''  Runtime files (on Windows disk)
  108. ''  Do not install OLE or MPlayer if on next release of NT or Windows
  109.  
  110.     IF ((NOT OnNT$ = "TRUE") AND MinorVer% < 50) THEN            'These files not necessary on Windows NT
  111.     AddSectionFilesToCopyList "MPlayer", SrcDir$, WinDir$
  112.     AddSectionFilesToCopyList "OLE2", SrcDir$, WinSysDir$
  113.     END IF
  114.     AddSectionFilesToCopyList "VfW Runtime", SrcDir$, WinSysDir$
  115.     AddSectionFilesToCopyList "ACM Drivers", SrcDir$, WinSysDir$
  116.     AddSectionFilesToCopyList "AVICodecs", SrcDir$, WinSysDir$
  117.     IF OnNT$ = "TRUE" THEN
  118.     AddSectionFilesToCopyList "NT MSVideo", SrcDir$, WinSys32Dir$
  119.     ENDIF
  120. ''*************************************************************************************************************************
  121. ''*************************************************************************************************************************
  122. ''To add a DCI provider, please un-comment the AddSectionFilesToCopyList,
  123. ''and add a "DCI Provider" section with to the SETUP.INF file.
  124. ''
  125. ''    AddSectionFilesToCopyList "DCI Provider", SrcDir$, WinSysDir$
  126. ''*************************************************************************************************************************
  127. ''*************************************************************************************************************************
  128.  
  129. ''  Check windrive diskspace
  130.     SizeReq& = GetCopyListCost ("","", "")
  131.     IF SizeReq& <> 0 THEN
  132.     GOSUB SMALLWIN
  133.     END
  134.     END IF
  135.  
  136. Install
  137.  
  138. '' Restart Windows: if it has to updates ACM from DOS, it restarts Windows automatically
  139. '' else, it gives the user the choice
  140.     RESTRT% = RestartListEmpty ()
  141.     Exe$ = DEST$ + "\_msrstrt.exe"
  142.     Batch$ = DEST$ + "\_mssetup.bat"
  143.     empty$ = ""
  144. RESTART:
  145.     IF RESTRT% = 0 THEN
  146.        sz$ = UIStartDlg(CUIDLL$, RESTART, "FInfo0DlgProc", 0, "")
  147.        IF sz$ = "REACTIVATE" THEN
  148.       GOTO RESTART
  149.        ENDIF
  150.        I% = ExitExecRestart ()
  151.        RemoveFile Exe$, cmoForce
  152.        RemoveFile Batch$, cmoForce
  153.        END
  154.     ELSE
  155.        sz$ = UIStartDlg(CUIDLL$, RESTARTII, "FQuitDlgProc", 0, "")
  156.        IF sz$ = "CONTINUE" THEN
  157.       I% = ExitWindowsExec (Exe$, empty$)
  158.       IF I% = 0 THEN
  159.          GOTO RESTART
  160.       ELSE
  161.          END
  162.      ENDIF
  163.        ELSEIF sz$ = "EXIT" THEN
  164.       UIPopAll
  165.       END
  166.        ELSEIF sz$ = "REACTIVATE" THEN
  167.       GOTO RESTART
  168.        ELSE
  169.       UIPop 1
  170.        END IF
  171.     END IF
  172.  
  173.  
  174. QUIT:
  175.     ON ERROR GOTO ERRQUIT
  176.  
  177.     IF ERR = 0 THEN
  178.     dlg% = EXITSUCCESS
  179.     ELSEIF ERR = STFQUIT THEN
  180.     dlg% = EXITQUIT
  181.     ELSE
  182.     dlg% = EXITFAILURE
  183.     END IF
  184. QUITL1:
  185.     sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
  186.     IF sz$ = "REACTIVATE" THEN
  187.     GOTO QUITL1
  188.     END IF
  189.     UIPop 1
  190.     END
  191.  
  192. ERRQUIT:
  193.     i% = DoMsgBox("An installation problem occured, call the product support service", "Setup Problem", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  194.     END
  195.  
  196.  
  197. ASKQUIT:
  198.     sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  199.  
  200.     IF sz$ = "EXIT" THEN
  201.     UIPopAll
  202. ''        ERROR STFQUIT
  203.     END
  204.     ELSEIF sz$ = "REACTIVATE" THEN
  205.     GOTO ASKQUIT
  206.     ELSE
  207.     UIPop 1
  208.     END IF
  209.     RETURN
  210.  
  211. SMALLWIN:
  212.     sz$ = UIStartDlg(CUIDLL$, SMALLWIN, "FInfo0DlgProc", 0, "")
  213.     IF sz$ = "REACTIVATE" THEN
  214.     GOTO SMALLWIN
  215.     END IF
  216.     UIPop 1
  217.     RETURN
  218.  
  219. '**
  220. '** Purpose:
  221. '**     Performs all installation operations.
  222. '** Arguments:
  223. '**     none.
  224. '** Returns:
  225. '**     none.
  226. '*************************************************************************
  227. SUB Install STATIC
  228.  
  229.     SetRestartDir WinDir$
  230.     CopyFilesInCopyList
  231.  
  232. ''Updating WIN.INI and SYSTEM.INI
  233. ''Only update SYSTEM.INI  on NT or next version of Windows for other codecs
  234.  
  235. IF ((NOT OnNT$ = "TRUE") AND MinorVer% < 50) THEN
  236.     IF VflatdPresent() = 0 THEN
  237.        CreateSysIniKeyValue WinDir$ + "system.ini", "386Enh", "device", "dva.386", cmoOverwrite
  238.     END IF
  239. END IF
  240.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.CVID", "iccvid.drv", cmoOverwrite
  241.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.MSVC", "msvidc.drv", cmoOverwrite
  242.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.IV32", "ir32.dll", cmoOverwrite
  243.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.IV31", "IR32.dll", cmoOverwrite
  244.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.MRLE", "MSRLE.drv", cmoOverwrite
  245.     I% = DoesIniKeyExist ("system.ini", "Drivers", "VIDC.RT21")
  246.     IF I% = 0  THEN
  247.        CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.RT21", "ir21_r.dll", cmoOverwrite
  248.     END IF
  249.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.YVU9", "ir21_r.dll", cmoOverwrite
  250.     CreateIniKeyValue WinDir$ + "WIN.INI", "mci extensions", "avi", "AVIVideo", cmoOverwrite
  251.     CreateIniKeyValue WinDir$ + "system.ini", "mci", "AVIVideo", "mciavi.drv", cmoOverwrite
  252.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "WaveMapper", "msacm.drv", cmoOverwrite
  253.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "MSACM.msadpcm", "msadpcm.acm", cmoOverwrite
  254.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "MSACM.imaadpcm", "imaadpcm.acm", cmoOverwrite
  255.     CreateIniKeyValue WinDir$ + "control.ini", "drivers.desc", "msacm.drv", "Microsoft Sound Mapper V2.00", cmoOverwrite
  256.     CreateIniKeyValue WinDir$ + "control.ini", "drivers.desc", "msadpcm.acm", "Microsoft ADPCM Codec V2.00", cmoOverwrite
  257.     CreateIniKeyValue WinDir$ + "control.ini", "drivers.desc", "imaadpcm.acm", "Microsoft IMA ADPCM Codec V2.00", cmoOverwrite
  258.  
  259. ''*************************************************************************************************************************
  260. ''*************************************************************************************************************************
  261. ''To add a DCI provider, please un-comment the UDH line, and un-comment and replace the    <provider> with your own file name
  262. ''
  263. ''  CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "DCI", "<provider>", cmoOverwrite
  264. ''  CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "vids.draw", "udh.dll", cmoOverwrite
  265. ''*************************************************************************************************************************
  266. ''*************************************************************************************************************************
  267.  
  268. ''Do not register components not installed with Video for Windows on NT or next version of Windows.
  269. IF ((NOT OnNT$ = "TRUE") AND MinorVer% < 50) THEN
  270.     Run ("regedit.exe /s " + MakePath(WinDir$, "mplayer.reg"))
  271.     Run ("regedit.exe /s " + MakePath(WinSysDir$, "OLE2.reg"))
  272.     Run ("regedit.exe /s " + MakePath(WinSysDir$, "cleanup.reg"))
  273.  
  274. '' Mplayer
  275.     CreateProgmanItem "Accessories", "Media Player", MakePath(WinDir$, "mplayer.exe"), "", cmoOverwrite
  276.  
  277. END IF    ''NT and next version of Windows installation stop here.
  278.  
  279.     Run ("profdisp.exe")   
  280. END SUB
  281.  
  282. '**
  283. '** Purpose:
  284. '**     Appends a file name to the end of a directory path,
  285. '**     inserting a backslash character as needed.
  286. '** Arguments:
  287. '**     szDir$  - full directory path (with optional ending "\")
  288. '**     szFile$ - filename to append to directory
  289. '** Returns:
  290. '**     Resulting fully qualified path name.
  291. '*************************************************************************
  292. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  293.     IF szDir$ = "" THEN
  294.     MakePath = szFile$
  295.     ELSEIF szFile$ = "" THEN
  296.     MakePath = szDir$
  297.     ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  298.     MakePath = szDir$ + szFile$
  299.     ELSE
  300.     MakePath = szDir$ + "\" + szFile$
  301.     END IF
  302. END FUNCTION
  303.