home *** CD-ROM | disk | FTP | other *** search
/ Computer Buyer 1999 October / Dpcb1099.iso / Wine / INSTALL / TCB.MST < prev    next >
Text File  |  1994-11-17  |  10KB  |  318 lines

  1. '**************************************************************************
  2. '*        THE CULINARY BOOKSHELF SETUP V1.02
  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 = 1
  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 "The Culinary Bookshelf Installation - Ver. 1.02"
  59.  
  60.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  61.     IF szInf$ = "" THEN
  62.     szInf$ = GetSymbolValue("STF_CWDDIR") + "TCB.INF"
  63.     END IF
  64.     ReadInfFile szInf$
  65.  
  66.     MajorVer% = GetWindowsMajorVersion()
  67.     MinorVer% = GetWindowsMinorVersion()
  68.     Processor% = GetProcessorType()
  69.  
  70.     IF  MajorVer% < 3 OR (MajorVer% = 3 AND MinorVer% < 10) THEN
  71.     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)
  72.     END
  73.     END IF
  74.  
  75.     WINDRIVE$ = MID$(Windir$, 1, 1)
  76.  
  77. CUSTINST:
  78.     sz$ = UIStartDlg(CUIDLL$, CHECK, "FCheckDlgProc", APPHELP, HELPPROC$)
  79.     IF sz$ = "EXIT" THEN
  80.       GOSUB ASKQUIT
  81.       GOTO CUSTINST
  82.     END IF
  83.     DoVidFiles% = 0
  84.     IF sz$ = "BACK" THEN
  85.       DoVidFiles% = 1
  86.       'Prevents installation on 286
  87.       IF Processor% < 3 THEN
  88.         i% = DoMsgBox("Video for Windows requires a 386 or greater processor or emulator.", "Installation Problem", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  89.         GOTO CUSTINST
  90.       END IF
  91.  
  92.       ' Use Wowexec to determine version of NT.  3.1 did not stamp wowexec and wow returns 3.1 as version
  93.       IF OnWindowsNT() THEN
  94.         OnNT$ = "TRUE"
  95.         WowVersion$ = GetVersionOfFile(WinSys32Dir$ + "\wowexec.exe")
  96.         IF WowVersion$ = "" THEN
  97.           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)
  98.           GOTO CUSTINST
  99.         END IF
  100.       END IF
  101.     END IF
  102.     UIPop 1
  103.     GOTO INSTALL
  104.  
  105.  
  106. '**
  107. '** Purpose:
  108. '**     Builds the copy list and performs all installation operations.
  109. '** Arguments:
  110. '**     none.
  111. '** Returns:
  112. '**     none.
  113. '*************************************************************************
  114. INSTALL:
  115.     ClearCopyList
  116.     AddOptFilesToCopyList VIDFILES
  117.  
  118. ''  Check windrive diskspace
  119.     SizeReq& = GetCopyListCost ("","", "")
  120.     IF SizeReq& <> 0 THEN
  121.     GOSUB SMALLWIN
  122.     END
  123.     END IF
  124.  
  125.     DoInstall
  126.  
  127.     CreateProgmanGroup "The Culinary Bookshelf", "tcb.grp", cmoNone
  128.     ShowProgmanGroup  "The Culinary Bookshelf", 1, cmoNone
  129.     CreateProgmanItem "The Culinary Bookshelf", "The Culinary Bookshelf", MakePath(SrcDir$,"TCB.EXE"), MakePath(SrcDir$, "tcb.ico")+", 0, , , "+MakePath(SrcDir$, ""), cmoOverwrite
  130.  
  131. '' Restart Windows: if it has to updates ACM from DOS, it restarts Windows automatically
  132. '' else, it gives the user the choice
  133.     RESTRT% = RestartListEmpty ()
  134.     Exe$ = DEST$ + "\_msrstrt.exe"
  135.     Batch$ = DEST$ + "\_mssetup.bat"
  136.     empty$ = ""
  137. RESTART:
  138.     IF RESTRT% = 0 THEN
  139.        sz$ = UIStartDlg(CUIDLL$, RESTART, "FInfo0DlgProc", 0, "")
  140.        IF sz$ = "REACTIVATE" THEN
  141.       GOTO RESTART
  142.        END IF
  143.        I% = ExitExecRestart ()
  144.        RemoveFile Exe$, cmoForce
  145.        RemoveFile Batch$, cmoForce
  146.        END
  147.     ELSE
  148.        sz$ = UIStartDlg(CUIDLL$, RESTARTII, "FQuitDlgProc", 0, "")
  149.        IF sz$ = "CONTINUE" THEN
  150.       I% = ExitWindowsExec (Exe$, empty$)
  151.       IF I% = 0 THEN
  152.          GOTO RESTART
  153.       ELSE
  154.          END
  155.      END IF
  156.        ELSEIF sz$ = "EXIT" THEN
  157.       UIPopAll
  158.       END
  159.        ELSEIF sz$ = "REACTIVATE" THEN
  160.       GOTO RESTART
  161.        ELSE
  162.       UIPop 1
  163.        END IF
  164.     END IF
  165.  
  166.  
  167. QUIT:
  168.     ON ERROR GOTO ERRQUIT
  169.  
  170.     IF ERR = 0 THEN
  171.     dlg% = EXITSUCCESS
  172.     ELSEIF ERR = STFQUIT THEN
  173.     dlg% = EXITQUIT
  174.     ELSE
  175.     dlg% = EXITFAILURE
  176.     END IF
  177. QUITL1:
  178.     sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
  179.     IF sz$ = "REACTIVATE" THEN
  180.     GOTO QUITL1
  181.     END IF
  182.     UIPop 1
  183.     END
  184.  
  185. ERRQUIT:
  186.     i% = DoMsgBox("An installation problem occured, call the product support service", "Setup Problem", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  187.     END
  188.  
  189.  
  190. ASKQUIT:
  191.     sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  192.  
  193.     IF sz$ = "EXIT" THEN
  194.     UIPopAll
  195. ''        ERROR STFQUIT
  196.     END
  197.     ELSEIF sz$ = "REACTIVATE" THEN
  198.     GOTO ASKQUIT
  199.     ELSE
  200.     UIPop 1
  201.     END IF
  202.     RETURN
  203.  
  204.  
  205. '**
  206. '** Purpose:
  207. '**     Appends a file name to the end of a directory path,
  208. '**     inserting a backslash character as needed.
  209. '** Arguments:
  210. '**     szDir$  - full directory path (with optional ending "\")
  211. '**     szFile$ - filename to append to directory
  212. '** Returns:
  213. '**     Resulting fully qualified path name.
  214. '*************************************************************************
  215. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  216.     IF szDir$ = "" THEN
  217.     MakePath = szFile$
  218.     ELSEIF szFile$ = "" THEN
  219.     MakePath = szDir$
  220.     ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  221.     MakePath = szDir$ + szFile$
  222.     ELSE
  223.     MakePath = szDir$ + "\" + szFile$
  224.     END IF
  225. END FUNCTION
  226.  
  227.  
  228.  
  229. SUB AddOptFilesToCopyList (ftype%) STATIC
  230.  
  231.       AddSectionFilesToCopyList "Viewer 2.0 Runtime", SrcDir$, WinSysDir$
  232.       IF ftype% = VIDFiles THEN
  233.     IF DoVidFiles% = 1 THEN
  234.     ''  Runtime files (on Windows disk)
  235.     ''  Do not install OLE or MPlayer if on next release of NT or Windows
  236.  
  237.     IF ((NOT OnNT$ = "TRUE") AND MinorVer% < 50) THEN                   'These files not necessary on Windows NT
  238.       AddSectionFilesToCopyList "MPlayer", SrcDir$, WinDir$
  239.       AddSectionFilesToCopyList "OLE2", SrcDir$, WinSysDir$
  240.     END IF
  241.     AddSectionFilesToCopyList "VfW Runtime", SrcDir$, WinSysDir$
  242.     AddSectionFilesToCopyList "ACM Drivers", SrcDir$, WinSysDir$
  243.     AddSectionFilesToCopyList "AVICodecs", SrcDir$, WinSysDir$
  244.     IF OnNT$ = "TRUE" THEN
  245.       AddSectionFilesToCopyList "NT MSVideo", SrcDir$, WinSys32Dir$
  246.     END IF
  247.       END IF
  248.     END IF
  249. END SUB
  250.  
  251. SMALLWIN:
  252.     sz$ = UIStartDlg(CUIDLL$, TOOBIG, "FInfo0DlgProc", 0, "")
  253.     IF sz$ = "REACTIVATE" THEN
  254.     GOTO SMALLWIN
  255.     END IF
  256.     UIPop 1
  257.     RETURN
  258.  
  259.  
  260. '**
  261. '** Purpose:
  262. '**     Performs all installation operations.
  263. '** Arguments:
  264. '**     none.
  265. '** Returns:
  266. '**     none.
  267. '*************************************************************************
  268. SUB DoInstall STATIC
  269.  
  270.     SetRestartDir WinDir$
  271.     CopyFilesInCopyList
  272.  
  273. ''Updating WIN.INI and SYSTEM.INI
  274. ''Create the MVIEWER2.EXE MVB association
  275. CreateIniKeyValue WinDir$ + "win.ini", "Extensions", "MVB", "mviewer2.exe", cmoNone
  276.  
  277. IF DoVidFiles% = 1 THEN
  278.  
  279. ''Only update SYSTEM.INI  on NT or next version of Windows for other codecs
  280.  
  281. IF ((NOT OnNT$ = "TRUE") AND MinorVer% < 50) THEN
  282.     IF VflatdPresent() = 0 THEN
  283.        CreateSysIniKeyValue WinDir$ + "system.ini", "386Enh", "device", "dva.386", cmoOverwrite
  284.     END IF
  285. END IF
  286.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.CVID", "iccvid.drv", cmoOverwrite
  287.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.MSVC", "msvidc.drv", cmoOverwrite
  288.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.IV32", "ir32.dll", cmoOverwrite
  289.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.IV31", "IR32.dll", cmoOverwrite
  290.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.MRLE", "MSRLE.drv", cmoOverwrite
  291.     I% = DoesIniKeyExist (WinDir$ + "system.ini", "Drivers", "VIDC.RT21")
  292.     IF I% = 0  THEN
  293.        CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.RT21", "ir21_r.dll", cmoOverwrite
  294.     END IF
  295.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.YVU9", "ir21_r.dll", cmoOverwrite
  296.     CreateIniKeyValue WinDir$ + "WIN.INI", "mci extensions", "avi", "AVIVideo", cmoOverwrite
  297.     CreateIniKeyValue WinDir$ + "system.ini", "mci", "AVIVideo", "mciavi.drv", cmoOverwrite
  298.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "WaveMapper", "msacm.drv", cmoOverwrite
  299.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "MSACM.msadpcm", "msadpcm.acm", cmoOverwrite
  300.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "MSACM.imaadpcm", "imaadpcm.acm", cmoOverwrite
  301.     CreateIniKeyValue WinDir$ + "control.ini", "drivers.desc", "msacm.drv", "Microsoft Sound Mapper V2.00", cmoOverwrite
  302.     CreateIniKeyValue WinDir$ + "control.ini", "drivers.desc", "msadpcm.acm", "Microsoft ADPCM Codec V2.00", cmoOverwrite
  303.     CreateIniKeyValue WinDir$ + "control.ini", "drivers.desc", "imaadpcm.acm", "Microsoft IMA ADPCM Codec V2.00", cmoOverwrite
  304.  
  305. ''Do not register components not installed with Video for Windows on NT or next version of Windows.
  306. IF ((NOT OnNT$ = "TRUE") AND MinorVer% < 50) THEN
  307.     Run ("regedit.exe /s " + MakePath(WinDir$, "mplayer.reg"))
  308.     Run ("regedit.exe /s " + MakePath(WinSysDir$, "OLE2.reg"))
  309.     Run ("regedit.exe /s " + MakePath(WinSysDir$, "cleanup.reg"))
  310.  
  311. '' Mplayer
  312.     CreateProgmanItem "Accessories", "Media Player", MakePath(WinDir$, "mplayer.exe"), "", cmoOverwrite
  313.  
  314. END IF  ''NT and next version of Windows installation stop here.
  315. END IF
  316.     Run ("profdisp.exe")   
  317. END SUB
  318.