home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 10 / 10.iso / m / m015 / 1.ddi / MEDIA.MS_ / MEDIA.MS
Encoding:
Text File  |  1993-08-09  |  9.7 KB  |  328 lines

  1. '**************************************************************************
  2. '*                       Media Merge Setup
  3. '**************************************************************************
  4.  
  5. '$DEFINE DEBUG  ''Define for script development/debugging
  6.  
  7. '$INCLUDE 'setupapi.inc'
  8. '$INCLUDE 'mscpydis.inc'
  9. '$INCLUDE 'msdetect.inc'
  10.  
  11. DECLARE FUNCTION AInitSystem1 LIB "atiwtstf.dll" (DEST$, szName$, szOrg$) AS INTEGER
  12. DECLARE FUNCTION DefWindowProc LIB "user" (hwnd%, msg%, wparam%, lparam&) as long
  13. DECLARE FUNCTION RunShellExe LIB "atiwtstf.dll" (hwnd%, szFile$, szDir$) AS INTEGER
  14.  
  15. ''Dialog ID's
  16. CONST WELCOME       = 100
  17. CONST ASKQUIT       = 200
  18. CONST DESTPATH      = 300
  19. CONST EXITFAILURE   = 400
  20. CONST EXITQUIT      = 600
  21. CONST EXITSUCCESS   = 700
  22. CONST OPTIONS       = 800
  23. CONST APPHELP       = 900
  24. CONST APPHELP2      = 1500
  25. CONST BADPATH       = 6400
  26.  
  27. ''Bitmap ID
  28. CONST LOGO = 1
  29.  
  30. ''Disk Sizes
  31. CONST WINFSIZE =   604000
  32. CONST APPFSIZE =  4270000
  33. CONST DATASIZE =  3993000
  34. CONST ALLFSIZE =  8867000
  35.  
  36. GLOBAL DEST$        ''Default destination directory.
  37. GLOBAL WINDIR$      ''Window directory.
  38. GLOBAL SYSDIR$      ''Windows system directory
  39.  
  40. GLOBAL ISCD         ''Is installation on CD ? If it is, ISCD = 1
  41. GLOBAL OPTCUR$      ''Installation options
  42. GLOBAL CPYSIZE&     ''Size of files to be copied
  43.  
  44. DECLARE SUB Install
  45. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  46.  
  47.  
  48. INIT:
  49.     CUIDLL$ = "mscuistf.dll"            ''Custom user interface dll
  50.     HELPPROC$ = "FHelpDlgProc"          ''Help dialog procedure
  51.  
  52.     SetBitmap CUIDLL$, LOGO
  53.     SetTitle "MEDIAMERGE 1.0"
  54.  
  55.     ''Maximize Window
  56.     l&=DefWindowProc(HwndFrame(), 274, 61488, 0)
  57.  
  58.     MajorVer% = GetWindowsMajorVersion()
  59.     IF MajorVer% < 3 THEN
  60.     i% = DoMsgBox("Micosoft Windows version 3.0 or greater is required for this software. Please upgrade your version of Windows.", "Installation Problem", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  61.         END
  62.     END IF
  63.  
  64.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  65.     IF szInf$ = "" THEN
  66.         szTemp$ = GetSymbolValue("STF_SRCDIR")
  67.         SPLITPATH szTemp$, drv$, dir$, filename$, ext$
  68.         IF (drv$ = "A:") OR (drv$ = "B:") THEN
  69.            szInf = GetSymbolValue("STF_CWDDIR") + "MEDIADSK.INF"
  70.            ISCD = 0
  71.         ELSE
  72.            szInf = GetSymbolValue("STF_CWDDIR") + "MEDIACD.INF"
  73.            ISCD = 1
  74.         ENDIF
  75.         ''szInf$ = GetSymbolValue("STF_CWDDIR") + "MEDIA.INF"
  76.     END IF
  77.     ReadInfFile szInf$
  78.  
  79.     DEST$ = "C:\MEDIA"
  80.  
  81.     WINDIR$ = GetWindowsDir ()
  82.  
  83.     SYSDIR$ = GetWindowsSysDir ()
  84.  
  85.     OPTCUR$ = "1"     ''Set default option to data files - not installed
  86.  
  87. '$IFDEF DEBUG
  88.     i% = SetSizeCheckMode(scmOnIgnore)    '' could use scmOff; def = scmOnFatal
  89.     WinDrive$ = MID$(GetWindowsDir, 1, 1)
  90.     IF IsDriveValid(WinDrive$) = 0 THEN
  91.         i% = DoMsgBox("Windows drive ('"+WinDrive$+"') is not a valid drive.", "DEBUG", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  92.         GOTO QUIT
  93.     END IF
  94. '$ENDIF ''DEBUG
  95.  
  96.  
  97. WELCOME:
  98.     sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", APPHELP, HELPPROC$)
  99.     IF sz$ = "CONTINUE" THEN
  100.         UIPop 1
  101. WELCOME1:
  102.      ''Since We do not want to write back to disk
  103.        ISCD = 1
  104.      '' Get user and company name...
  105.        IF ISCD = 1 THEN
  106.          i% = InitSystemRead(1, "", 0)
  107.          IF InitSystemDlgs(0) = 0 THEN
  108.               GOSUB ASKQUIT
  109.               GOTO WELCOME1
  110.          ENDIF
  111.        ELSE
  112.          IF InitSystem(1, "", 0) = 0 THEN
  113.              GOSUB ASKQUIT
  114.              GOTO WELCOME1
  115.          END IF
  116.        ENDIF
  117.     ELSE
  118.         GOSUB ASKQUIT
  119.         GOTO WELCOME
  120.     END IF
  121.  
  122.  
  123. OPTION:
  124.     SetSymbolValue "RadioDefault", OPTCUR$
  125. OPT1:
  126.     sz$ = UIStartDlg(CUIDLL$, OPTIONS, "FRadioDlgProc", APPHELP2, HELPPROC$)
  127.     OPTCUR$ = GetSymbolValue("ButtonChecked")
  128.  
  129.     IF sz$ = "CONTINUE" THEN
  130.          UIPop(1)
  131.     ELSEIF sz$ = "REACTIVATE" THEN
  132.          GOTO OPT1
  133.     ELSE
  134.          GOSUB ASKQUIT
  135.          GOTO  OPTION
  136.     END IF
  137.  
  138.  
  139. GETPATH:
  140.     SetSymbolValue "EditTextIn", DEST$
  141.     SetSymbolValue "EditFocus", "END"
  142. GETPATHL1:
  143.     sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", APPHELP2, HELPPROC$)
  144.     DEST$ = GetSymbolValue("EditTextOut")
  145.  
  146.     IF sz$ = "CONTINUE" THEN
  147.         IF IsDirWritable(DEST$) = 0 THEN
  148.             GOSUB BADPATH
  149.             GOTO GETPATHL1
  150.         END IF
  151.         UIPop 1
  152.     ELSEIF sz$ = "REACTIVATE" THEN
  153.         GOTO GETPATHL1
  154.     ELSEIF sz$ = "BACK" THEN
  155.         UIPop 1
  156.     GOTO WELCOME
  157.     ELSE
  158.         GOSUB ASKQUIT
  159.         GOTO GETPATH
  160.     END IF
  161.  
  162. '' Check is there enough space in the windows drive
  163.     Drive$=Mid$(WINDIR$,1,1)
  164.     DiskSize&=GetFreeSpaceForDrive(Drive$)
  165.     If WINFSIZE& > DiskSize& then
  166.        GOSUB SMALLWIN
  167.        GOTO  GETPATH
  168.     END IF
  169.  
  170. '' Set disk size according to user selected option
  171.     IF OPTCUR$ = "2" THEN
  172.         CPYSIZE& = ALLFSIZE
  173.     ELSE
  174.         CPYSIZE& = APPSIZE
  175.     ENDIF
  176.  
  177. '' Check is there enough space in the destination drive
  178.     Drive$=Mid$(DEST$,1,1)
  179.     DiskSize&=GetFreeSpaceForDrive(Drive$)
  180.     If CPYSIZE& > DiskSize& then
  181.        GOSUB SMALLDEST
  182.        GOTO  GETPATH
  183.     END IF
  184.     
  185.     Install
  186.  
  187.     szName$ = GetSymbolValue ("STF_CD_NAME")
  188.     szOrg$  = GetSymbolValue ("STF_CD_ORG")
  189.     i% = AInitSystem1 (MakePath(DEST$,"media.ini"), szName$, szOrg$)
  190.  
  191. '' i% = FCloseSystem("APPFILES", "UserInfo", DEST$, STRINGTABLE, 1000)
  192.  
  193. QUIT:
  194.     ON ERROR GOTO ERRQUIT
  195.  
  196.     IF ERR = 0 THEN
  197.         dlg% = EXITSUCCESS
  198.     ELSEIF ERR = STFQUIT THEN
  199.         dlg% = EXITQUIT
  200.     ELSE
  201.         dlg% = EXITFAILURE
  202.     END IF
  203. QUITL1:
  204.     sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
  205.     IF sz$ = "REACTIVATE" THEN
  206.         GOTO QUITL1
  207.     END IF
  208.     UIPop 1
  209. ''Run mplayer to display regcard.avi
  210.     IF ERR = 0 THEN
  211.       i% = RunShellExe(HwndFrame(), MakePath(DEST$, "regcard.avi"), "")
  212.     END IF
  213.  
  214.     END
  215.  
  216. ERRQUIT:
  217.     i% = DoMsgBox("Setup sources were corrupted, call (416)756-0718!", "Setup Message", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  218.     END
  219.  
  220.  
  221.  
  222. BADPATH:
  223.     sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "")
  224.     IF sz$ = "REACTIVATE" THEN
  225.         GOTO BADPATH
  226.     END IF
  227.     UIPop 1
  228.     RETURN
  229.  
  230.  
  231.  
  232. ASKQUIT:
  233.     sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  234.  
  235.     IF sz$ = "EXIT" THEN
  236.         UIPopAll
  237.         ERROR STFQUIT
  238.     ELSEIF sz$ = "REACTIVATE" THEN
  239.         GOTO ASKQUIT
  240.     ELSE
  241.         UIPop 1
  242.     END IF
  243.     RETURN
  244.  
  245. SMALLDEST:
  246.    i% = DoMsgBox("There is not enough space to install MediaMerge!", "MediaMerge Setup", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  247.    UIPop 1
  248.    RETURN
  249.  
  250. SMALLWIN:
  251.    i% = DoMsgBox("There is not enough space in Windows Driver to install the files needed by MediaMerge!", "MediaMerge Setup", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  252.    UIPop 1
  253.    RETURN
  254.  
  255.  
  256. '**
  257. '** Purpose:
  258. '**     Builds the copy list and performs all installation operations.
  259. '** Arguments:
  260. '**     none.
  261. '** Returns:
  262. '**     none.
  263. '*************************************************************************
  264. SUB Install STATIC
  265.  
  266.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  267.     CreateDir DEST$, cmoNone
  268.  
  269.     AddSectionFilesToCopyList "APPFILES", SrcDir$, DEST$
  270.     AddSectionFilesToCopyList "WINFILES", SrcDir$, WINDIR$
  271.     AddSectionFilesToCopyList "SYSFILES", SrcDir$, SYSDIR$
  272.  
  273. ''set data files to be copied
  274.     IF OPTCUR$ = "2" THEN
  275.       CreateDir DEST$ + "\MMONTAGE", cmoNone
  276.       AddSectionFilesToCopyList "DATAFILES", SrcDir$, DEST$ + "\MMONTAGE"
  277.     END IF
  278.  
  279.  
  280.     CopyFilesInCopyList
  281.  
  282. ''Updating WIN.INI and SYSTEM.INI
  283.     CreateIniKeyValue WINDIR$ + "system.ini", "Drivers", "VIDC.MSVC", "msvidc.drv", cmoOverwrite
  284.     CreateIniKeyValue WINDIR$ + "system.ini", "Drivers", "VIDC.RT21", "indeo.drv", cmoOverwrite
  285.     CreateIniKeyValue WINDIR$ + "system.ini", "Drivers", "VIDC.YVU9", "isvy.drv", cmoOverwrite
  286.     CreateIniKeyValue WINDIR$ + "system.ini", "Drivers", "VIDC.CVID", "iccvid.drv", cmoOverwrite
  287.     CreateIniKeyValue WINDIR$ + "system.ini", "mci", "AVIVideo", "mciavi.drv", cmoOverwrite
  288.     CreateIniKeyValue "WIN.INI", "mci extensions", "avi", "AVIVideo", cmoOverwrite
  289. ''Create association for avi and scn
  290.     CreateIniKeyValue "WIN.INI", "Extensions", "AVI", "MPLAYER.EXE ^.AVI", cmoOverwrite
  291.     sz$ = MakePath(DEST$, "scenedit.exe") + " ^.scn"
  292.     CreateIniKeyValue "WIN.INI", "Extensions", "scn", sz$, cmoOverwrite
  293.  
  294.     CreateProgmanGroup "MediaMerge", "", cmoNone
  295.     ShowProgmanGroup  "MediaMerge", 1, cmoNone
  296.     CreateProgmanItem "MediaMerge", "Storyboard Editor", MakePath(DEST$,"sbapp.exe"), "", cmoOverwrite
  297.     CreateProgmanItem "MediaMerge", "Scene Editor", MakePath(DEST$,"scenedit.exe"), "", cmoOverwrite
  298.     CreateProgmanItem "MediaMerge", "Audio Editor", MakePath(DEST$,"dae.exe"), "", cmoOverwrite
  299.     CreateProgmanItem "MediaMerge", "Player", MakePath(WINDIR$, "mplayer.exe"), "", cmoOverwrite
  300.     CreateProgmanItem "MediaMerge", "Read me", MakePath(DEST$, "readme.wri"), "", cmoOverwrite
  301.     CreateProgmanItem "MediaMerge", "MEDIAMERGE Help", MakePath(DEST$, "basics.hlp"), "", cmoOverwrite
  302. END SUB
  303.  
  304.  
  305.  
  306. '**
  307. '** Purpose:
  308. '**     Appends a file name to the end of a directory path,
  309. '**     inserting a backslash character as needed.
  310. '** Arguments:
  311. '**     szDir$  - full directory path (with optional ending "\")
  312. '**     szFile$ - filename to append to directory
  313. '** Returns:
  314. '**     Resulting fully qualified path name.
  315. '*************************************************************************
  316. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  317.     IF szDir$ = "" THEN
  318.         MakePath = szFile$
  319.     ELSEIF szFile$ = "" THEN
  320.         MakePath = szDir$
  321.     ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  322.         MakePath = szDir$ + szFile$
  323.     ELSE
  324.         MakePath = szDir$ + "\" + szFile$
  325.     END IF
  326. END FUNCTION
  327.  
  328.