home *** CD-ROM | disk | FTP | other *** search
/ DOS/V Power Report 1996 July / VPR9607B.BIN / runtime / vfw11j / setup.mst < prev    next >
Text File  |  1994-08-03  |  11KB  |  327 lines

  1. '**************************************************************************
  2. '*                  VfW 1.1 Runtime Setup
  3. '**************************************************************************
  4. '$INCLUDE 'setupapi.inc'
  5. '$INCLUDE 'mscpydis.inc'    ''System
  6. '$INCLUDE 'msdetect.inc'    ''Detects Avalilable Disk Space
  7.  
  8. ''Dialog ID's
  9. CONST WELCOME       = 100
  10. CONST ASKQUIT       = 200
  11. CONST EXITFAILURE   = 400
  12. CONST EXITQUIT      = 600
  13. CONST EXITSUCCESS   = 700
  14. CONST APPHELP       = 900
  15. CONST CHECK         = 2500
  16. 'CONST SMALLWIN      = 2200
  17. CONST SMALLWIN      = 6300
  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 WinDir$
  28. GLOBAL WinSysDir$
  29. GLOBAL WINDRIVE$    ''Windows Drive Letter.
  30. GLOBAL CHECKSTATES$
  31.  
  32. DECLARE SUB Install
  33. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  34. DECLARE FUNCTION OnWindowsNT LIB "INIUPD.DLL" AS INTEGER
  35. DECLARE FUNCTION VflatdPresent LIB "iniupd.DLL" AS INTEGER
  36. DECLARE FUNCTION IsValidEnvironment LIB "mscuistf.dll" () As INTEGER
  37. DECLARE SUB Reboot LIB "iniupd.dll"
  38. DECLARE fUNCTION ExitWindowsExec  LIB "User" (Exec$, Param$) AS INTEGER
  39.  
  40. Declare Sub CheckHardware
  41. Declare function WritePrivateProfileString LIB "kernel" (lpszSection$,lpszEntry$,lpszString$,lpszFilename$) As Integer
  42. Declare function GetPrivateProfileString LIB "kernel" (lpszSection$, lpszEntry$, lpszDefault$, lpszReturnBuffer$, cbReturnBuffer%, lpszFilename$) As Integer
  43. Declare Function GetKeyboardType LIB "keyboard" (Keystute%) as integer
  44.  
  45. INIT:
  46.  
  47.     CUIDLL$ = "mscuistf.dll"            ''Custom user interface dll
  48.     HELPPROC$ = "FHelpDlgProc"          ''Help dialog procedure
  49.  
  50.     WIN32ENABLED% = 0
  51.     MajorVer% = GetWindowsMajorVersion()
  52.     MinorVer% = GetWindowsMinorVersion()
  53.  
  54.     IsJP%=IsValidEnvironment()
  55.     IF MajorVer% < 3 OR (MajorVer% = 3 AND MinorVer% < 10) THEN
  56.         IF IsJP% THEN
  57.             GOTO JPEXIT
  58.         ELSE
  59.             GOTO ENGEXIT
  60.         ENDIF
  61.     ELSEIF IsJP% = 0 THEN
  62.         GOTO ENGEXIT
  63.     END IF
  64.  
  65.     IF OnWindowsNT() THEN
  66.       i% = DoMsgBox("このバージョンの Video for Windows は Windows NT 上で実行する事は出来ません。", "インストール上の注意", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  67.       END
  68.     END IF
  69.  
  70.     SetBitmap CUIDLL$, LOGO
  71.     SetTitle "Video for Windows 1.1 Runtime"
  72.  
  73.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  74.     IF szInf$ = "" THEN
  75.        szInf$ = GetSymbolValue("STF_CWDDIR") + "SETUP.INF"
  76.     END IF
  77.     ReadInfFile szInf$
  78.  
  79.     WINDRIVE$ = MID$(GetWindowsDir, 1, 1)
  80.  
  81.  
  82. WELCOME:
  83.     sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", APPHELP, HELPPROC$)
  84.     IF sz$ = "CONTINUE" THEN
  85.        UIPop 1
  86.      ELSE
  87.     GOSUB ASKQUIT
  88.     GOTO WELCOME
  89.     END IF
  90.  
  91. ''Prepare Copy list and check size
  92.  
  93.     ClearCopyList
  94.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  95.     WinDir$ = GetWindowsDir()
  96.     DEST$ = GetWindowsDir()
  97.     WinSysDir$ = GetWindowsSysDir()
  98.  
  99. ''  Runtime files (on Windows disk)
  100.  
  101.     AddSectionFilesToCopyList "VfW Runtime", SrcDir$, WinSysDir$
  102.     AddSectionFilesToCopyList "OLE2", SrcDir$, WinSysDir$
  103.     AddSectionFilesToCopyList "ACM Drivers", SrcDir$, WinSysDir$
  104.     AddSectionFilesToCopyList "MPlayer", SrcDir$, WinDir$
  105.     AddSectionFilesToCopyList "AVICodecs", SrcDir$, WinSysDir$
  106. ''    AddSectionFilesToCopyList "Indeo-ini", SrcDir$, WinDir$   deleted indeo.ini  94/07/06
  107.  
  108. ''  Check windrive diskspace
  109.     SizeReq& = GetCopyListCost ("","", "")
  110.     IF SizeReq& <> 0 THEN
  111.     GOSUB SMALLWIN
  112.     END
  113.     END IF
  114.  
  115. Install
  116.  
  117. '' Restart Windows: if it has to updates ACM from DOS, it restarts Windows automatically
  118. '' else, it gives the user the choice
  119.     RESTRT% = RestartListEmpty ()
  120.     Exe$ = DEST$ + "\_msrstrt.exe"
  121.     Batch$ = DEST$ + "\_mssetup.bat"
  122.     empty$ = ""
  123. RESTART:
  124.     IF RESTRT% = 0 THEN
  125.        sz$ = UIStartDlg(cuidll$, RESTART, "FInfo0DlgProc", 0, "")
  126.        IF sz$ = "REACTIVATE" THEN
  127.       GOTO RESTART
  128.        ENDIF
  129.        I% = ExitExecRestart ()
  130.        RemoveFile Exe$, cmoForce
  131.        RemoveFile Batch$, cmoForce
  132.        END
  133.     ELSE
  134.        sz$ = UIStartDlg(CUIDLL$, RESTARTII, "FQuitDlgProc", 0, "")
  135.        IF sz$ = "CONTINUE" THEN
  136.       I% = ExitWindowsExec (Exe$, empty$)
  137.       IF I% = 0 THEN
  138.          GOTO RESTART
  139.       ELSE
  140.          END
  141.      ENDIF
  142.        ELSEIF sz$ = "EXIT" THEN
  143.       UIPopAll
  144.       END
  145.        ELSEIF sz$ = "REACTIVATE" THEN
  146.       GOTO RESTART
  147.        ELSE
  148.       UIPop 1
  149.        END IF
  150.     END IF
  151.  
  152.  
  153. QUIT:
  154.     ON ERROR GOTO ERRQUIT
  155.  
  156.     IF ERR = 0 THEN
  157.     dlg% = EXITSUCCESS
  158.     ELSEIF ERR = STFQUIT THEN
  159.     dlg% = EXITQUIT
  160.     ELSE
  161.     dlg% = EXITFAILURE
  162.     END IF
  163. QUITL1:
  164.     sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
  165.     IF sz$ = "REACTIVATE" THEN
  166.     GOTO QUITL1
  167.     END IF
  168.     UIPop 1
  169.     END
  170.  
  171. ERRQUIT:
  172.     i% = DoMsgBox("セットアップディスクのファイルが壊れています。サポートセンターまでご連絡下さい。", "セットアップ時に問題発生", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  173.     END
  174.  
  175.  
  176. ASKQUIT:
  177.     sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  178.  
  179.     IF sz$ = "EXIT" THEN
  180.     UIPopAll
  181. ''        ERROR STFQUIT
  182.     END
  183.     ELSEIF sz$ = "REACTIVATE" THEN
  184.     GOTO ASKQUIT
  185.     ELSE
  186.     UIPop 1
  187.     END IF
  188.     RETURN
  189.  
  190. SMALLWIN:
  191.     sz$ = UIStartDlg(CUIDLL$, SMALLWIN, "FInfo0DlgProc", 0, "")
  192.     IF sz$ = "REACTIVATE" THEN
  193.     GOTO SMALLWIN
  194.     END IF
  195.     UIPop 1
  196.     RETURN
  197.  
  198. JPEXIT:
  199.     i% = DoMsgBox("このソフトウェアには、Microsoft Windows バージョン 3.1 以降が必要です。  Windows のバージョンアップを行ってください。", "インストール上の注意", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  200.     END
  201. ENGEXIT:
  202.    msg1$="Japanese version of Microsoft Windows version 3.1 or grater is required for this software. "
  203.    msg2$="Please upgrade your version of Windows."
  204.    i% = DoMsgBox( msg1$+msg2$ ,"Installation Problem", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  205.    END
  206.  
  207.  
  208. '**
  209. '** Purpose:
  210. '**     Performs all installation operations.
  211. '** Arguments:
  212. '**     none.
  213. '** Returns:
  214. '**     none.
  215. '*************************************************************************
  216. SUB Install STATIC
  217.  
  218.     SetRestartDir WinDir$
  219.     CopyFilesInCopyList
  220.  
  221. '' Copy ir32.dll to ir30.dll 
  222.     CopyFile MakePath(WinSysDir$, "ir32.dll"), MakePath(WinSysDir$, "ir30.dll"), cmdOverwrite, 0
  223.  
  224. ''Updating WIN.INI and SYSTEM.INI
  225.     IF VflatdPresent() = 0 THEN
  226.        CreateSysIniKeyValue WinDir$ + "system.ini", "386Enh", "device", "dva.386", cmoOverwrite
  227.     END IF
  228.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.CVID", "iccvid.drv", cmoOverwrite
  229.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.MSVC", "msvidc.drv", cmoOverwrite
  230.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.IV31", "ir32.dll", cmoOverwrite
  231.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.IV32", "ir32.dll", cmoOverwrite
  232.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.RT21", "ir21.dll", cmoOverwrite
  233.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.YVU9", "iyvu9.dll", cmoOverwrite
  234.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.MRLE", "MSRLE.drv", cmoOverwrite
  235.     CreateIniKeyValue WinDir$ + "WIN.INI", "mci extensions", "avi", "AVIVideo", cmoOverwrite
  236.     CreateIniKeyValue WinDir$ + "system.ini", "mci", "AVIVideo", "mciavi.drv", cmoOverwrite
  237.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "WaveMapper", "msacm.drv", cmoOverwrite
  238.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "MSACM.msadpcm", "msadpcm.acm", cmoOverwrite
  239.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "MSACM.imaadpcm", "imaadpcm.acm", cmoOverwrite
  240.     CreateIniKeyValue WinDir$ + "control.ini", "drivers.desc", "msacm.drv", "Microsoft Sound Mapper V2.00", cmoOverwrite
  241.     CreateIniKeyValue WinDir$ + "control.ini", "drivers.desc", "msadpcm.acm", "Microsoft ADPCM Codec V2.00", cmoOverwrite
  242.     CreateIniKeyValue WinDir$ + "control.ini", "drivers.desc", "imaadpcm.acm", "Microsoft IMA ADPCM Codec V2.00", cmoOverwrite
  243.     Run ("regedit.exe /s " + MakePath(WinDir$, "mplayer.reg"))
  244.     Run ("regedit.exe /s " + MakePath(WinSysDir$, "OLE2.reg"))
  245.     Run ("regedit.exe /s " + MakePath(WinSysDir$, "cleanup.reg"))
  246.  
  247. '' Mplayer
  248.     CreateProgmanItem "アクセサリ", "メディア プレーヤー", MakePath(WinDir$, "mplayer.exe"), "", cmoOverwrite
  249.  
  250. CHECKFONT:
  251.     DummyBuf$=STRING$(30," ")
  252.     Res%=GetProfileString("fonts","MS ゴシック (TrueType)","",DummyBuf$,30)
  253.     If(Len(DummyBuf$)=0)Then
  254.       CRLF$=Chr$(13)
  255.       Title1$="Video for Windows使用上の注意"
  256.       Msg1$="Video for Windowsのプログラムは、MS ゴシックフォントを使用します。"
  257.       Msg2$="このシステムには、MS ゴシックフォントが組み込まれていないので、プログラムの表示が乱れる可能性があります。"
  258.       Msg3$="正しい動作をさせるためには、[コントロールパネル]の[フォント]からMS ゴシックフォントを組み込んでください。"
  259.       i% = DoMsgBox(Msg1$+CRLF$+Msg2$+CRLF$+Msg3$, Title1$, MB_OK+MB_TASKMODAL+MB_ICONEXCLAMATION)
  260.     End if
  261.  
  262.     CheckHardware
  263.     
  264.     Run ("profdisp.exe")
  265. END SUB
  266.  
  267. '**
  268. '** Purpose:
  269. '**     Appends a file name to the end of a directory path,
  270. '**     inserting a backslash character as needed.
  271. '** Arguments:
  272. '**     szDir$  - full directory path (with optional ending "\")
  273. '**     szFile$ - filename to append to directory
  274. '** Returns:
  275. '**     Resulting fully qualified path name.
  276. '*************************************************************************
  277. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  278.     IF szDir$ = "" THEN
  279.     MakePath = szFile$
  280.     ELSEIF szFile$ = "" THEN
  281.     MakePath = szDir$
  282.     ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  283.     MakePath = szDir$ + szFile$
  284.     ELSE
  285.     MakePath = szDir$ + "\" + szFile$
  286.     END IF
  287. END FUNCTION
  288.  
  289.  
  290. '**
  291. '**
  292. '*************************************************************************
  293. Sub CheckHardware STATIC
  294. MAX_NODVADISP% = 4
  295. Dim NoDVADrivers(4) As String
  296. NoDVADrivers(0) = "VGA488T.drv"    ' Compaq Prolinea ET4000/W32 Driver
  297. NoDVADrivers(1) = "VGA488.drv"     ' Compaq Prolinea ET4000 Driver
  298. NoDVADrivers(2) = "VGA4A8T.drv"    ' Compaq Prolinea ET4000/W32 Driver
  299. NoDVADrivers(3) = "VGA4A8.drv"     ' Compaq Prolinea ET4000 Driver
  300.  
  301.       keySubType% = GetKeyboardType(1)
  302.       If(keySubType%>=3329 and keySubType%<=3332)Then
  303.           '==== HardWare is NEC PC98 Series
  304.           res% = WritePrivateProfileString("drawdib","dva","0","win.ini")
  305.       elseIf(keySubType%>=0 and keySubType%<=4)Then
  306.           '==== Hardware is DOSV Machine
  307.           res% = WritePrivateProfileString("drawdib","dva","1","win.ini")
  308.       elseif(keySubType%=1281)then
  309.           '==== Hardware is FUJITSU FM-TOWNS Only
  310.           res% = WritePrivateProfileString("drawdib","dva","0","win.ini")
  311.       else
  312.           res% = WritePrivateProfileString("drawdib","dva","0","win.ini")
  313.       end if
  314.  
  315.     NowDispDrvName$ = STRING$(15," ")
  316.     res% = GetPrivateProfileString("boot","display.drv","",NowDispDrvName$,15,"system.ini")
  317.     CntNum% = 0
  318.     While (CntNum% < MAX_NODVADISP%)
  319.       If(Ucase$(NowDispDrvName$)=Ucase$(NoDVADrivers(CntNum%)))Then
  320.           res% = WritePrivateProfileString("drawdib","dva","0","win.ini")
  321.       End If
  322.       CntNum% = CntNum% + 1
  323.     Wend  
  324.  
  325.  
  326. End Sub
  327.