home *** CD-ROM | disk | FTP | other *** search
/ Computer Buyer 1999 October / Dpcb1099.iso / Wine / INSTALL / WOW.MST < prev   
Text File  |  1996-06-12  |  12KB  |  344 lines

  1. '**************************************************************************
  2. '*        WORLD OF WINE SETUP V1.2
  3. '**************************************************************************
  4.  
  5. '$INCLUDE 'setupapi.inc'
  6. '$INCLUDE 'msdetect.inc'
  7.  
  8. ''Dialog ID's
  9. CONST ASKQUIT           = 200
  10. CONST EXITFAILURE       = 400
  11. CONST EXITQUIT      = 600
  12. CONST EXITSUCCESS   = 700
  13. CONST APPHELP           = 900
  14. CONST CHECK             = 2500
  15. CONST RESTART       = 2600
  16. CONST RESTARTII     = 2700
  17. CONST TOOBIG            = 6300
  18.  
  19.  
  20. ''Bitmap ID
  21. CONST LOGO = 10    ''' wow bitmap (words)
  22.  
  23. ''File Types
  24. CONST VIDFILES  = 1
  25. GLOBAL SrcDir$
  26. GLOBAL WinDir$
  27. GLOBAL WinSysDir$
  28. GLOBAL MinorVer%
  29. GLOBAL OnNT$
  30.  
  31. SrcDir$ = GetSymbolValue("STF_SRCDIR")
  32. WinDir$ = GetWindowsDir()
  33. WinSysDir$ = GetWindowsSysDir()
  34.  
  35.  
  36. GLOBAL DoVidFiles%
  37. GLOBAL OPTCUR$      ''Option selection from option dialog.
  38. GLOBAL WINDRIVE$    ''Windows Drive Letter.
  39. GLOBAL RUNTIME$
  40. GLOBAL AVITOOLS$
  41. GLOBAL MDKTOOLS$
  42. GLOBAL TOOLS$
  43.  
  44.  
  45. DECLARE SUB DoInstall
  46. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  47. DECLARE SUB AddOptFilesToCopyList (ftype%)
  48. DECLARE FUNCTION OnWindowsNT LIB "INIUPD.DLL" AS INTEGER
  49. DECLARE FUNCTION VflatdPresent LIB "iniupd.DLL" AS INTEGER
  50. DECLARE SUB Reboot LIB "iniupd.dll"
  51. DECLARE fUNCTION ExitWindowsExec  LIB "User" (Exec$, Param$) AS INTEGER
  52.  
  53. INIT:
  54.     CUIDLL$ = "mscuistf.dll"            ''Custom user interface dll
  55.     HELPPROC$ = "FHelpDlgProc"          ''Help dialog procedure
  56.  
  57.     SetBitmap CUIDLL$, LOGO
  58.     SetTitle "World of Wine Installation - Ver. 1.2"
  59.     SetSymbolValue "CapName", "World of Wine" 
  60.  
  61.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  62.     IF szInf$ = "" THEN
  63.     szInf$ = GetSymbolValue("STF_CWDDIR") + "WOW.INF"
  64.     END IF
  65.     ReadInfFile szInf$
  66.  
  67.     MajorVer% = GetWindowsMajorVersion()
  68.     MinorVer% = GetWindowsMinorVersion()
  69.     Processor% = GetProcessorType()
  70.  
  71.     IF  MajorVer% < 3 OR (MajorVer% = 3 AND MinorVer% < 10) THEN
  72.     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)
  73.     END
  74.     END IF
  75.  
  76.     WINDRIVE$ = MID$(Windir$, 1, 1)
  77.  
  78. CUSTINST:
  79.     sz$ = UIStartDlg(CUIDLL$, CHECK, "FCheckDlgProc", APPHELP, HELPPROC$)
  80.     IF sz$ = "EXIT" THEN
  81.       GOSUB ASKQUIT
  82.       GOTO CUSTINST
  83.     END IF
  84.     DoVidFiles% = 0
  85.     IF sz$ = "BACK" THEN
  86.       DoVidFiles% = 1
  87.       'Prevents installation on 286
  88.       IF Processor% < 3 THEN
  89.         i% = DoMsgBox("Video for Windows requires a 386 or greater processor or emulator.", "Installation Problem", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  90.         GOTO CUSTINST
  91.       END IF
  92.  
  93.       ' Use Wowexec to determine version of NT.  3.1 did not stamp wowexec and wow returns 3.1 as version
  94.       IF OnWindowsNT() THEN
  95.         OnNT$ = "TRUE"
  96.         WowVersion$ = GetVersionOfFile(WinSys32Dir$ + "\wowexec.exe")
  97.         IF WowVersion$ = "" THEN
  98.           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)
  99.           GOTO CUSTINST
  100.         END IF
  101.       END IF
  102.     END IF
  103.     UIPop 1
  104.     GOTO INSTALL
  105.  
  106.  
  107. '**
  108. '** Purpose:
  109. '**     Builds the copy list and performs all installation operations.
  110. '** Arguments:
  111. '**     none.
  112. '** Returns:
  113. '**     none.
  114. '*************************************************************************
  115. INSTALL:
  116.     ClearCopyList
  117.     AddOptFilesToCopyList VIDFILES
  118.  
  119. ''  Check windrive diskspace
  120.     SizeReq& = GetCopyListCost ("","", "")
  121.     IF SizeReq& <> 0 THEN
  122.     GOSUB SMALLWIN
  123.     END
  124.     END IF
  125.  
  126.     DoInstall
  127.  
  128.     CreateProgmanGroup "World of Wine", "wow.grp", cmoNone
  129.     ShowProgmanGroup  "World of Wine", 1, cmoNone
  130.     CreateProgmanItem "World of Wine", "World of Wine", MakePath(SrcDir$,"WINE.EXE"), "", cmoOverwrite
  131.     CreateProgmanItem "World of Wine", "Registration Card", MakePath(SrcDir$,"REGIS.EXE"), "", cmoOverwrite
  132.  
  133. '' Restart Windows: if it has to updates ACM from DOS, it restarts Windows automatically
  134. '' else, it gives the user the choice
  135.     RESTRT% = RestartListEmpty ()
  136.     Exe$ = DEST$ + "\_msrstrt.exe"
  137.     Batch$ = DEST$ + "\_mssetup.bat"
  138.     empty$ = ""
  139. RESTART:
  140.     IF RESTRT% = 0 THEN
  141.        sz$ = UIStartDlg(CUIDLL$, RESTART, "FInfo0DlgProc", 0, "")
  142.        IF sz$ = "REACTIVATE" THEN
  143.       GOTO RESTART
  144.        END IF
  145.        I% = ExitExecRestart ()
  146.        RemoveFile Exe$, cmoForce
  147.        RemoveFile Batch$, cmoForce
  148.        END
  149.     ELSE
  150.        sz$ = UIStartDlg(CUIDLL$, RESTARTII, "FQuitDlgProc", 0, "")
  151.        IF sz$ = "CONTINUE" THEN
  152.       I% = ExitWindowsExec (Exe$, empty$)
  153.       IF I% = 0 THEN
  154.          GOTO RESTART
  155.       ELSE
  156.          END
  157.      END IF
  158.        ELSEIF sz$ = "EXIT" THEN
  159.       UIPopAll
  160.       i% = DoMsgBox ("Click on 'Registration Card' to print a registration card", " ", MB_OK)
  161.       END
  162.        ELSEIF sz$ = "REACTIVATE" THEN
  163.       GOTO RESTART
  164.        ELSE
  165.       UIPop 1
  166.        END IF
  167.     END IF
  168.  
  169.  
  170. QUIT:
  171.     ON ERROR GOTO ERRQUIT
  172.  
  173.     IF ERR = 0 THEN
  174.     dlg% = EXITSUCCESS
  175.     ELSEIF ERR = STFQUIT THEN
  176.     dlg% = EXITQUIT
  177.     ELSE
  178.     dlg% = EXITFAILURE
  179.     END IF
  180. QUITL1:
  181.     sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
  182.     IF sz$ = "REACTIVATE" THEN
  183.     GOTO QUITL1
  184.     END IF
  185.     UIPop 1
  186.     END
  187.  
  188. ERRQUIT:
  189.     i% = DoMsgBox("An installation problem occured, call the product support service", "Setup Problem", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  190.     END
  191.  
  192.  
  193. ASKQUIT:
  194.     sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  195.  
  196.     IF sz$ = "EXIT" THEN
  197.     UIPopAll
  198. ''        ERROR STFQUIT
  199.     END
  200.     ELSEIF sz$ = "REACTIVATE" THEN
  201.     GOTO ASKQUIT
  202.     ELSE
  203.     UIPop 1
  204.     END IF
  205.     RETURN
  206.  
  207.  
  208. '**
  209. '** Purpose:
  210. '**     Appends a file name to the end of a directory path,
  211. '**     inserting a backslash character as needed.
  212. '** Arguments:
  213. '**     szDir$  - full directory path (with optional ending "\")
  214. '**     szFile$ - filename to append to directory
  215. '** Returns:
  216. '**     Resulting fully qualified path name.
  217. '*************************************************************************
  218. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  219.     IF szDir$ = "" THEN
  220.     MakePath = szFile$
  221.     ELSEIF szFile$ = "" THEN
  222.     MakePath = szDir$
  223.     ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  224.     MakePath = szDir$ + szFile$
  225.     ELSE
  226.     MakePath = szDir$ + "\" + szFile$
  227.     END IF
  228. END FUNCTION
  229.  
  230.  
  231.  
  232. SUB AddOptFilesToCopyList (ftype%) STATIC
  233.  
  234.       AddSectionFilesToCopyList "Viewer 2.0 Runtime", SrcDir$, WinSysDir$
  235.       IF ftype% = VIDFiles THEN
  236.     IF DoVidFiles% = 1 THEN
  237.     ''  Runtime files (on Windows disk)
  238.     ''  Do not install OLE or MPlayer if on next release of NT or Windows
  239.  
  240.     IF ((NOT OnNT$ = "TRUE") AND MinorVer% < 50) THEN                   'These files not necessary on Windows NT
  241.       AddSectionFilesToCopyList "MPlayer", SrcDir$, WinDir$
  242.       AddSectionFilesToCopyList "OLE2", SrcDir$, WinSysDir$
  243.     END IF
  244.     AddSectionFilesToCopyList "VfW Runtime", SrcDir$, WinSysDir$
  245.     AddSectionFilesToCopyList "ACM Drivers", SrcDir$, WinSysDir$
  246.     AddSectionFilesToCopyList "AVICodecs", SrcDir$, WinSysDir$
  247.     IF OnNT$ = "TRUE" THEN
  248.       AddSectionFilesToCopyList "NT MSVideo", SrcDir$, WinSys32Dir$
  249.     END IF
  250.       END IF
  251.     END IF
  252. END SUB
  253.  
  254. SMALLWIN:
  255.     sz$ = UIStartDlg(CUIDLL$, TOOBIG, "FInfo0DlgProc", 0, "")
  256.     IF sz$ = "REACTIVATE" THEN
  257.     GOTO SMALLWIN
  258.     END IF
  259.     UIPop 1
  260.     RETURN
  261.  
  262.  
  263. '**
  264. '** Purpose:
  265. '**     Performs all installation operations.
  266. '** Arguments:
  267. '**     none.
  268. '** Returns:
  269. '**     none.
  270. '*************************************************************************
  271. SUB DoInstall STATIC
  272.  
  273.     SetRestartDir WinDir$
  274.     CopyFilesInCopyList
  275.  
  276. ''Updating WIN.INI and SYSTEM.INI
  277. ''Create the MVIEWER2.EXE MVB association
  278. CreateIniKeyValue WinDir$ + "win.ini", "Extensions", "MVB", "mviewer2.exe", cmoNone
  279.  
  280. IF DoVidFiles% = 1 THEN
  281.  
  282. ''Only update SYSTEM.INI  on NT or next version of Windows for other codecs
  283.  
  284. IF ((NOT OnNT$ = "TRUE") AND MinorVer% < 50) THEN
  285.     IF VflatdPresent() = 0 THEN
  286.        CreateSysIniKeyValue WinDir$ + "system.ini", "386Enh", "device", "dva.386", cmoOverwrite
  287.     END IF
  288. END IF
  289.     
  290.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.IV32", "ir32.dll", cmoOverwrite
  291.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.IV31", "ir32.dll", cmoOverwrite
  292.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.RT21", "ir21.dll", cmoOverwrite
  293.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.YVU9", "iyvu9.dll", cmoOverwrite
  294.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.CVID", "iccvid.drv", cmoOverwrite
  295.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.MSVC", "msvidc.drv", cmoOverwrite
  296.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.MRLE", "MSRLE.drv", cmoOverwrite
  297.     CreateIniKeyValue WinDir$ + "WIN.INI", "mci extensions", "avi", "AVIVideo", cmoOverwrite
  298.     CreateIniKeyValue WinDir$ + "system.ini", "mci", "AVIVideo", "mciavi.drv", cmoOverwrite
  299.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "WaveMapper", "msacm.drv", cmoOverwrite
  300.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "MSACM.msadpcm", "msadpcm.acm", cmoOverwrite
  301.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "MSACM.imaadpcm", "imaadpcm.acm", cmoOverwrite
  302.     CreateIniKeyValue WinDir$ + "control.ini", "drivers.desc", "ir21.dll", "Intel Indeo(TM) Video R2.1", cmoOverwrite
  303.     CreateIniKeyValue WinDir$ + "control.ini", "drivers.desc", "msacm.drv", "Microsoft Sound Mapper V2.00", cmoOverwrite
  304.     CreateIniKeyValue WinDir$ + "control.ini", "drivers.desc", "msadpcm.acm", "Microsoft ADPCM Codec V2.00", cmoOverwrite
  305.     CreateIniKeyValue WinDir$ + "control.ini", "drivers.desc", "imaadpcm.acm", "Microsoft IMA ADPCM Codec V2.00", cmoOverwrite
  306.     
  307.     
  308. ''    CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.CVID", "iccvid.drv", cmoOverwrite
  309. ''    CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.MSVC", "msvidc.drv", cmoOverwrite
  310. ''    CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.IV32", "ir32.dll", cmoOverwrite
  311. ''    CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.IV31", "IR32.dll", cmoOverwrite
  312. ''    CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.MRLE", "MSRLE.drv", cmoOverwrite
  313. ''    I% = DoesIniKeyExist (WinDir$ + "system.ini", "Drivers", "VIDC.RT21")
  314. ''    IF I% = 0  THEN
  315. ''       CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.RT21", "ir21_r.dll", cmoOverwrite
  316. ''    END IF
  317. ''    CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.YVU9", "ir21_r.dll", cmoOverwrite
  318. ''    CreateIniKeyValue WinDir$ + "WIN.INI", "mci extensions", "avi", "AVIVideo", cmoOverwrite
  319. ''    CreateIniKeyValue WinDir$ + "system.ini", "mci", "AVIVideo", "mciavi.drv", cmoOverwrite
  320. ''    CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "WaveMapper", "msacm.drv", cmoOverwrite
  321. ''    CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "MSACM.msadpcm", "msadpcm.acm", cmoOverwrite
  322. ''    CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "MSACM.imaadpcm", "imaadpcm.acm", cmoOverwrite
  323. ''    CreateIniKeyValue WinDir$ + "control.ini", "drivers.desc", "msacm.drv", "Microsoft Sound Mapper V2.00", cmoOverwrite
  324. ''    CreateIniKeyValue WinDir$ + "control.ini", "drivers.desc", "msadpcm.acm", "Microsoft ADPCM Codec V2.00", cmoOverwrite
  325. ''    CreateIniKeyValue WinDir$ + "control.ini", "drivers.desc", "imaadpcm.acm", "Microsoft IMA ADPCM Codec V2.00", cmoOverwrite
  326.  
  327. ''Do not register components not installed with Video for Windows on NT or next version of Windows.
  328. IF ((NOT OnNT$ = "TRUE") AND MinorVer% < 50) THEN
  329.     Run ("regedit.exe /s " + MakePath(WinDir$, "mplayer.reg"))
  330.     Run ("regedit.exe /s " + MakePath(WinSysDir$, "OLE2.reg"))
  331.     Run ("regedit.exe /s " + MakePath(WinSysDir$, "cleanup.reg"))
  332.  
  333. '' Mplayer
  334.     CreateProgmanItem "Accessories", "Media Player", MakePath(WinDir$, "mplayer.exe"), "", cmoOverwrite
  335.  
  336. END IF  ''NT and next version of Windows installation stop here.
  337.  
  338.     Run ("profdisp.exe")   
  339.     REM Run ("regis.exe")
  340. END IF  ''IF DoVidFiles% = 1 
  341.  
  342. END SUB
  343.  
  344.