home *** CD-ROM | disk | FTP | other *** search
/ Elvis on CD-ROM / ELVIS_ON_CDROM.ISO / title.mst < prev    next >
Encoding:
Text File  |  1994-05-05  |  7.1 KB  |  311 lines

  1.     '' Global variables
  2.  
  3.     GLOBAL TitleShortName$
  4.     GLOBAL TitleLongName$
  5.     GLOBAL MVBFileName$
  6.     GLOBAL PromptForPath%
  7.     GLOBAL DefaultPath$
  8.     GLOBAL ProgManGroup$
  9.     GLOBAL ProgManItem$
  10.  
  11.  
  12.     
  13.     TitleShortName$ = "elvis"
  14.     
  15.     
  16.     TitleLongName$ = "ELVIS ON CD-ROM"
  17.         
  18.         
  19.     MVBFileName$ = "proelvis"
  20.         
  21.         
  22.     PromptForPath% = 0
  23.         
  24.         
  25.     DefaultPath$ = ""
  26.     
  27.         
  28.     ProgManGroup$ = "ELVIS ON CD-ROM"
  29.     
  30.         
  31.     ProgManItem$ = "Elvis"
  32.     
  33.  
  34.     GLOBAL CUIDLL$
  35.  
  36.     '' Include files
  37.     '$INCLUDE 'setupapi.inc'
  38.     
  39.     '' Custom UI dll
  40.     CUIDLL$ = "mscuistf.dll"
  41.     
  42.     '' Dialog ID's
  43.     CONST DESTPATH      = 1000
  44.     CONST APPHELP       = 2000
  45.     CONST TOOBIG        = 3000
  46.     CONST BADPATH       = 4000
  47.     CONST SUCCESS       = 5000
  48.     
  49.     '' Bitmap ID
  50.     CONST LOGO = 1
  51.     
  52.     '' Functions and subroutines
  53.     DECLARE FUNCTION AddFont LIB "mscuistf.dll" (szFont$, szName$) AS INTEGER
  54.     DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  55.     DECLARE FUNCTION GetTitleDir (szDefault$) AS STRING
  56.     DECLARE FUNCTION CopyFiles(szTitleDir$) AS INTEGER
  57.     DECLARE SUB RegisterFont(fontfile$, fontname$)
  58.     DECLARE SUB ModifyViewerIni(szTitleDir$)
  59.     DECLARE SUB RegisterCustomFonts
  60.     DECLARE SUB ModifyProgramManager
  61.     DECLARE SUB ShowSuccess
  62.     DECLARE SUB RegisterDrivers
  63.     
  64.     
  65.     i% = SetSizeCheckMode(scmOff)
  66.     
  67.     
  68.     SetTitle "Viewer Title Setup"
  69.     SetBitmap CUIDLL$, LOGO 
  70.     
  71.     '' Read in the INF file.
  72.     
  73.     ReadInfFile GetSymbolValue("STF_CWDDIR") + "TITLE.INF"
  74.     
  75.     '' Decide where to put title files
  76.     IF PromptForPath% = 1 THEN
  77.         szTitleDir$ = GetTitleDir(DefaultPath$)
  78.         IF szTitleDir$ = "" THEN
  79.             GOTO QUIT
  80.         ENDIF
  81.     ELSE
  82.         szTitleDir$ = GetWindowsDir()
  83.     ENDIF   
  84.     
  85.     '' Copy files
  86.     IF CopyFiles(szTitleDir$) = 0 THEN
  87.         GOTO QUIT
  88.     ENDIF
  89.  
  90.     '' Create the MVIEWER2.EXE MVB association 
  91.     CreateIniKeyValue "WIN.INI", "Extensions", "MVB", "mviewer2.exe", cmoNone
  92.  
  93.     '' Register in VIEWER.INI
  94.     ModifyViewerIni szTitleDir$
  95.  
  96.     '' Register custom fonts
  97.     RegisterCustomFonts
  98.  
  99.     '' Register drivers
  100.     RegisterDrivers
  101.     
  102.     '' Modify Program Manager
  103.     ModifyProgramManager    
  104.     
  105.     '' Success dialog
  106.     ShowSuccess
  107.     
  108.     '' Now start the title
  109.  
  110.     RUN "mviewer2.exe " + MVBFileName$ + ".MVB", NOWAIT
  111.  
  112. QUIT:
  113.     
  114.     END
  115.     
  116.  
  117.  
  118. FUNCTION GetTitleDir (szDefault$) STATIC AS STRING
  119.  
  120.     SetSymbolValue "String", TitleShortName$
  121.     SetSymbolValue "EditTextIn", szDefault$
  122.     SetSymbolValue "EditFocus", "ALL"
  123.  
  124.     GETPATH:
  125.  
  126.     sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", APPHELP, "FHelpDlgProc")
  127.  
  128.     IF sz$ = "CONTINUE" THEN
  129.         szTitleDir$ = GetSymbolValue("EditTextOut")
  130.         IF IsDirWritable(szTitleDir$) = 0 THEN
  131.  
  132.             BADPATH:
  133.  
  134.             sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfoDlgProc", 0, "")
  135.             IF sz$ = "REACTIVATE" THEN
  136.                 GOTO BADPATH
  137.             END IF
  138.             UIPop 1
  139.             GOTO GETPATH
  140.         END IF
  141.         UIPop 1
  142.         CreateDir szTitleDir$, cmoNone
  143.  
  144.     ELSEIF sz$ = "REACTIVATE" THEN
  145.         GOTO GETPATH
  146.  
  147.     ELSE
  148.         szTitleDir$ = ""
  149.  
  150.     END IF
  151.  
  152.     GetTitleDir = szTitleDir$
  153.  
  154. END FUNCTION
  155.  
  156.  
  157.  
  158. FUNCTION CopyFiles(szTitleDir$) STATIC AS INTEGER
  159.  
  160.     '' Add all system files to the copy list
  161.     AddSectionFilesToCopyList "System Files", GetSymbolValue("STF_SRCDIR"), GetWindowsSysDir()
  162.     
  163.     '' Add all of the title files to the copy list
  164.     AddSectionFilesToCopyList "Installed Title Files", GetSymbolValue("STF_SRCDIR"), szTitleDir$
  165.     
  166.     '' Check size
  167.     szExtras$ = "Extra"
  168.     szCosts$ = "Costs"
  169.     szNeededs$ = "Neededs"
  170.     FOR i% = 1 TO 26 STEP 1
  171.         AddListItem szExtras$, "0"
  172.     NEXT i%
  173.     
  174.     '' We assume that VIEWER.INI will take another 4K
  175.     ReplaceListItem szExtras$, ASC(MID$(GetWindowsDir(), 1, 1)) - ASC("A") + 1, STR$(4096)
  176.     
  177.     '' Get amount of space required
  178.     StillNeed& = GetCopyListCost(szExtras$, szCosts$, szNeededs$)
  179.     
  180.     '' Put up a message if there is not enough space
  181.     FOR i% = 1 TO 26 STEP 1
  182.         IF VAL(GetListItem(szNeededs$, i%)) > 0 THEN
  183.     
  184.             SetSymbolValue "String1", LTRIM$(STR$(VAL(GetListItem(szCosts$, i%)) / 1024))
  185.             SetSymbolValue "String2", CHR$(i% - 1 + ASC("A"))
  186.     
  187.             TOOBIG:
  188.     
  189.             sz$ = UIStartDlg(CUIDLL$, TOOBIG, "FInfoDlgProc", 0, "")
  190.             IF sz$ = "REACTIVATE" THEN
  191.                 GOTO TOOBIG
  192.             END IF
  193.             UIPop 1
  194.             CopyFiles = 0
  195.             GOTO DONTCOPY
  196.         END IF
  197.     NEXT i%
  198.     
  199.     '' Copy the files
  200.     CopyFilesInCopyList
  201.     
  202.     CopyFiles = 1
  203.  
  204. DONTCOPY:
  205.  
  206. END FUNCTION
  207.  
  208.  
  209.  
  210. SUB ShowSuccess STATIC
  211.  
  212.     SUCCESS:
  213.     
  214.     SetSymbolValue "String1", TitleShortName$
  215.     sz$ = UIStartDlg(CUIDLL$, SUCCESS, "FInfoDlgProc", 0, "")
  216.     IF sz$ = "REACTIVATE" THEN
  217.         GOTO SUCCESS
  218.     END IF
  219.     UIPop 1
  220.     
  221. END SUB
  222.  
  223.  
  224.  
  225. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  226.     IF szDir$ = "" THEN
  227.         MakePath = szFile$
  228.     ELSEIF szFile$ = "" THEN
  229.         MakePath = szDir$
  230.     ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  231.         MakePath = szDir$ + szFile$
  232.     ELSE
  233.         MakePath = szDir$ + "\" + szFile$
  234.     END IF
  235. END FUNCTION
  236.  
  237.  
  238.  
  239. SUB RegisterFont(fontfile$, fontname$) STATIC
  240.  
  241.     '' A simple error catching wrapper around AddFont, which is a 'C' routine in MSCUISTF.DLL
  242.  
  243.     IF AddFont(fontfile$, fontname$) = -1 THEN
  244.         j% = DoMsgBox("Could not install " + fontfile$ + " font.", "Viewer Font Installation", 0)
  245.     ENDIF
  246.  
  247. END SUB
  248.  
  249.  
  250.  
  251. SUB ModifyViewerIni (szTitleDir$) STATIC
  252.  
  253.     '' Get the VIEWER.INI file
  254.     
  255.     szIni$ = MakePath(GetWindowsDir(), "VIEWER.INI")
  256.  
  257.     CreateIniKeyValue szIni$, MVBFileName$, "Name", TitleLongName$, cmoOverwrite
  258.     CreateIniKeyValue szIni$, MVBFileName$, "Path", GetSymbolValue("STF_SRCDIR"), cmoOverwrite
  259.     
  260.     CreateIniKeyValue szIni$, "FILES", MVBFileName$ + ".MVB", GetSymbolValue("STF_SRCDIR") + "," + "Please insert the " + TitleLongName$ + " disk.", cmoOverwrite
  261.  
  262.  
  263. END SUB
  264.  
  265.  
  266.  
  267. SUB ModifyProgramManager STATIC
  268.  
  269.     '' Create the program manager group
  270.  
  271.     CreateProgmanGroup ProgmanGroup$, "", cmoNone
  272.     ShowProgmanGroup ProgmanGroup$, 1, cmoNone
  273.     
  274.     '' Create an entry for the title
  275.      
  276.     CreateProgmanItem ProgmanGroup$, ProgmanItem$, "mviewer2.exe " + MakePath(GetSymbolValue("STF_SRCDIR"), MVBFileName$ + ".MVB"), MakePath(GetSymbolValue("STF_SRCDIR"), MVBFileName$ + ".ICO"), cmoOverwrite
  277.     
  278.     '' CUSTOMIZATION: 
  279.     ''
  280.     '' To create additional Program Manager items, copy the preceding 
  281.     '' statement for each additional item, substituting the appropriate
  282.     '' Program Manager item name for ProgmanItem$ and filename for 
  283.     '' MVBFileName$.
  284.     ''
  285.     '' To display a custom icon with the Program Manager item, specify
  286.     '' the icon filename with the fourth parameter (this parameter is 
  287.     '' currently an empty string, ""). The following example specifies 
  288.     '' an icon with the same filename as the .MVB file:
  289.     ''
  290.     ''       CreateProgmanItem ProgmanGroup$, ProgmanItem$, "mviewer2.exe " + MakePath(GetSymbolValue("STF_SRCDIR"), MVBFileName$ + ".MVB"), MakePath(GetSymbolValue("STF_SRCDIR"), MVBFileName$ + ".ICO"), cmoOverwrite
  291.  
  292. END SUB
  293.  
  294.  
  295. SUB RegisterCustomFonts STATIC
  296.  
  297. END SUB
  298.  
  299.  
  300. SUB RegisterDrivers STATIC
  301.  
  302.  CreateIniKeyValue "WIN.INI", "mci extensions", "AVI", "AVIVIDEO", cmoNone
  303.  CreateIniKeyValue MakePath(GetWindowsDir(), "SYSTEM.INI"), "mci", "AVIVIDEO", "MCIAVI.DRV", cmoNone
  304.  CreateIniKeyValue MakePath(GetWindowsDir(), "SYSTEM.INI"), "drivers", "vidc.msvc", "msvidc.drv", cmoNone
  305.  CreateIniKeyValue MakePath(GetWindowsDir(), "SYSTEM.INI"), "drivers", "vidc.rt21", "indeo.drv", cmoNone
  306.  
  307. END SUB
  308.  
  309.  
  310.  
  311.