home *** CD-ROM | disk | FTP | other *** search
/ Multimedia Studio Effects / MULTIMEDIA.ISO / supersg.mst < prev    next >
Text File  |  1995-06-06  |  11KB  |  361 lines

  1. '**************************************************************************
  2. '*                 Super Show & Go CD Navigator Setup Script
  3. '**************************************************************************
  4.  
  5. '$DEFINE DEBUG  ''Define for script development/debugging
  6.  
  7. '$INCLUDE 'setupapi.inc'
  8. '$INCLUDE 'msdetect.inc'
  9.  
  10. ''Dialog ID's
  11. CONST WELCOME            = 100
  12. CONST LICENSE            = 150
  13. CONST ASKQUIT            = 200
  14. CONST DESTPATH           = 300
  15. CONST EXITFAILURE        = 400
  16. CONST EXITQUIT           = 600
  17. CONST EXITSUCCESS        = 700
  18. CONST OPTIONS            = 800
  19. CONST APPHELP            = 900
  20. CONST LAUNCH             = 1000
  21. CONST BADPATH            = 6400
  22. CONST EXTENDEDLIST       = 3900
  23. CONST NEWERVERINSTALLED  = 7801
  24.  
  25. ''Bitmap ID
  26. CONST LOGO = 1
  27.  
  28. GLOBAL DEST$        ''Default destination directory.
  29. GLOBAL CDROMDRV$    ''CD-ROM Drive Letter.
  30. GLOBAL OPTCUR$      ''Option selection from option dialog.
  31.  
  32. CONST WS_VISIBLE            = &H10000000
  33. CONST WS_BORDER             = &H00800000
  34. CONST WS_CLIPCHILDREN       = &H02000000
  35. CONST GWL_STYLE             = -16
  36. CONST SW_SHOWMAXIMIZED      = 3
  37. CONST TS_PHONE              = "(317) 487-8807"
  38. CONST TS_FAX                = "(317) 487-8810"
  39. CONST FN_INF                = "SUPERSG.INF"
  40. CONST SZ_TITLE              = "Super Show & Go CD Navigator Setup"
  41. CONST SZ_GROUPNAME          = "Super Show & Go"
  42. CONST FN_INIDATA            = "SUPERSG.INI"
  43. CONST FN_HELPFILE           = "SUPERSG.HLP"
  44. CONST FN_EXE            = "SUPERSG.EXE"
  45.  
  46. GLOBAL FN_INI$                ' INI Filename (for product)
  47. GLOBAL FN_ICON$               ' Icon Filename (no path)
  48. GLOBAL SZ_DBF$                ' Database Filename (no path)
  49. GLOBAL SZ_PRODUCT$            ' Product Title
  50. GLOBAL SZ_LMICD_ID$           ' LMI CD identifier
  51. GLOBAL SZ_LMICD_TITLE$        ' LMI CD product title
  52. GLOBAL SZ_LMICD_CDTITLE$      ' LMI CD label on CD
  53. GLOBAL SZ_LMICD_PRODUCTLINE$  ' LMI CD product line
  54.  
  55. DECLARE FUNCTION ShowWindow  LIB "user.exe" (hWnd%, iShow%) AS INTEGER
  56. DECLARE FUNCTION SetWindowLong LIB "user.exe" (hWnd%, offset%, style&) AS LONG
  57. DECLARE SUB Install
  58. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  59. DECLARE FUNCTION WinHelp LIB "User" (hWnd%, lpHelpFile$, wCommand%, dwData&) As INTEGER
  60. DECLARE FUNCTION WinExec Lib "Kernel" (lpCmdLine$, nCmdShow%) As INTEGER
  61.  
  62. INIT:
  63.  
  64.     hWnd%=HwndFrame()
  65.     i1&=SetWindowLong(hWnd%, GWL_STYLE, WS_VISIBLE + WS_BORDER + WS_CLIPCHILDREN)
  66.     j1%=ShowWindow(hWnd%, SW_SHOWMAXIMIZED)
  67.  
  68.     CUIDLL$ = "mscuistf.dll"            ''Custom user interface dll
  69.     HELPPROC$ = "FHelpDlgProc"          ''Help dialog procedure
  70.  
  71.     SetBitmap CUIDLL$, LOGO
  72.     SetTitle SZ_TITLE
  73.  
  74.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  75.     IF szInf$ = "" THEN
  76.         szInf$ = GetSymbolValue("STF_CWDDIR") + FN_INF
  77.     END IF
  78.     ReadInfFile szInf$
  79.  
  80.  
  81.     OPTCUR$ = "1"
  82. '    DEST$ = SZ_DEST
  83.     CDROMDRV$ = MID$(GetSymbolValue("STF_SRCDIR"), 1, 1) + ":"
  84.  
  85.     ' Read from PLATINUM.INI File
  86.     ini$ = MakePath(CDROMDRV$, FN_INIDATA)
  87.     FN_INI$ = GetIniKeyString (ini$, "Settings", "INIFile")
  88.     FN_ICON$ = GetIniKeyString (ini$, "Setup Information", "Icon")
  89.     DEST$ = GetIniKeyString (ini$, "Setup Information", "Destination")
  90.     SZ_DBF$ = GetIniKeyString (ini$, "Setup Information", "Database")
  91.     SZ_PRODUCT$ = GetIniKeyString (ini$, "Product", "Title")
  92.     SZ_LMICD_ID$ = GetIniKeyString (ini$, "Setup Information", "LMICD_ID")
  93.     SZ_LMICD_TITLE$ = GetIniKeyString (ini$, "Setup Information", "LMICD_Title")
  94.     SZ_LMICD_CDTITLE$ = GetIniKeyString (ini$, "Setup Information", "LMICD_CDTitle")
  95.     SZ_LMICD_PRODUCTLINE$ = GetIniKeyString (ini$, "Setup Information", "LMICD_PRODUCTLINE")
  96.  
  97.     i% = SetSizeCheckMode(scmOff)
  98.  
  99. '$IFDEF DEBUG
  100.     i% = SetSizeCheckMode(scmOnIgnore)    '' could use scmOff; def = scmOnFatal
  101.     WinDrive$ = MID$(GetWindowsDir, 1, 1)
  102.     IF IsDriveValid(WinDrive$) = 0 THEN
  103.         i% = DoMsgBox("Windows drive ('"+WinDrive$+"') is not a valid drive.", "DEBUG", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  104.         GOTO QUIT
  105.     END IF
  106. '$ENDIF 'DEBUG
  107.  
  108.  
  109.  
  110.  
  111.  
  112. WELCOME:
  113.     sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", APPHELP, HELPPROC$)
  114.     IF sz$ = "CONTINUE" THEN
  115.         UIPop 1
  116.     ELSE
  117.         GOSUB ASKQUIT
  118.         GOTO WELCOME
  119.     END IF
  120.  
  121.  
  122.  
  123.  
  124.  
  125. LICENSE:
  126.     sz$ = UIStartDlg(CUIDLL$, LICENSE, "FConfirmDlgProc", APPHELP, HELPPROC$)
  127.     IF sz$ = "CONTINUE" THEN
  128.         UIPop 1
  129.     ELSEIF sz$ = "LICENSE" THEN
  130.         i = WinHelp(hWnd%, MakePath(CDROMDRV$, FN_HELPFILE), 1, 900)
  131.         GOTO LICENSE
  132.     ELSEIF sz$ = "REACTIVATE" THEN
  133.         GOTO LICENSE
  134.     ELSEIF sz$ = "BACK" THEN
  135.         UIPop 1
  136.         GOTO WELCOME
  137.     ELSE
  138.         GOSUB ASKQUIT
  139.         GOTO LICENSE
  140.     END IF
  141.  
  142.  
  143.  
  144.  
  145.  
  146. IF DoesFileExist (MakePath(GetWindowsDir, FN_INI$), femExist) = 1 THEN
  147.  
  148.     iCurrentVer = Val(GetIniKeyString (MakePath(CDROMDRV$, FN_INIDATA), "Product", "Release"))
  149.     iInstalledVer = Val(GetIniKeyString (MakePath(GetWindowsDir, FN_INI$), "Product", "Release"))
  150.  
  151.     If iCurrentVer < iInstalledVer Then
  152.  
  153. NEWERVERINSTALLED:
  154.         sz$ = UIStartDlg(CUIDLL$, NEWERVERINSTALLED, "FInfoDlgProc", APPHELP, HELPPROC$)
  155.         IF sz$ = "CONTINUE" THEN
  156.             UIPop 1
  157.         ELSEIF sz$ = "REACTIVATE" THEN
  158.             GOTO GETPATHL1
  159.         ELSEIF sz$ = "BACK" THEN
  160.             UIPop 1
  161.             GOTO LICENSE
  162.         ELSE
  163.             GOSUB ASKQUIT
  164.             GOTO NEWERVERINSTALLED
  165.         END IF
  166.  
  167.     End If
  168.  
  169. END IF
  170.  
  171.  
  172.  
  173.  
  174. GETPATH:
  175.     SetSymbolValue "EditTextIn", DEST$
  176.     SetSymbolValue "EditFocus", "END"
  177. GETPATHL1:
  178.     sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", APPHELP, HELPPROC$)
  179.     DEST$ = GetSymbolValue("EditTextOut")
  180.  
  181.     IF sz$ = "CONTINUE" THEN
  182.         IF IsDirWritable(DEST$) = 0 THEN
  183.             GOSUB BADPATH
  184.             GOTO GETPATHL1
  185.         END IF
  186.         UIPop 1
  187.     ELSEIF sz$ = "REACTIVATE" THEN
  188.         GOTO GETPATHL1
  189.     ELSEIF sz$ = "BACK" THEN
  190.         UIPop 1
  191.         GOTO LICENSE
  192.     ELSE
  193.         GOSUB ASKQUIT
  194.         GOTO GETPATH
  195.     END IF
  196.  
  197.  
  198.  
  199.     Install
  200.  
  201.  
  202.  
  203. QUIT:
  204.     ON ERROR GOTO ERRQUIT
  205.  
  206.     IF ERR = 0 THEN
  207.         dlg% = EXITSUCCESS
  208.     ELSEIF ERR = STFQUIT THEN
  209.         dlg% = EXITQUIT
  210.     ELSE
  211.         dlg% = EXITFAILURE
  212.     END IF
  213. QUITL1:
  214.     sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
  215.     IF sz$ = "REACTIVATE" THEN
  216.         GOTO QUITL1
  217.     END IF
  218.  
  219.     UIPop 1
  220.  
  221.  
  222.  
  223.  
  224.  
  225. IF dlg% = EXITSUCCESS THEN
  226.  
  227. LAUNCH:
  228.     sz$ = UIStartDlg(CUIDLL$, LAUNCH, "FConfirmDlgProc", APPHELP, HELPPROC$)
  229.     IF sz$ = "RUN" THEN
  230.         i = WinExec (MakePath(CDROMDRV$, FN_EXE), 1)
  231.     ELSEIF sz$ = "REACTIVATE" THEN
  232.         GOTO LAUNCH
  233.     END IF
  234.     UIPop 1
  235.  
  236. END IF
  237.  
  238.  
  239.  
  240.  
  241.  
  242.     END
  243.  
  244.  
  245.  
  246.  
  247.  
  248. ERRQUIT:
  249.     i% = DoMsgBox("Setup sources were corrupted, call please call Limelight Publishing Technical Support at " + TS_PHONE + "  (USA).", "Setup Message", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  250.     END
  251.  
  252.  
  253.  
  254. BADPATH:
  255.     sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "")
  256.     IF sz$ = "REACTIVATE" THEN
  257.         GOTO BADPATH
  258.     END IF
  259.     UIPop 1
  260.     RETURN
  261.  
  262.  
  263.  
  264. ASKQUIT:
  265.     sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  266.  
  267.     IF sz$ = "EXIT" THEN
  268.         UIPopAll
  269.         ERROR STFQUIT
  270.     ELSEIF sz$ = "REACTIVATE" THEN
  271.         GOTO ASKQUIT
  272.     ELSE
  273.         UIPop 1
  274.     END IF
  275.     RETURN
  276.  
  277.  
  278.  
  279. '**
  280. '** Purpose:
  281. '**     Builds the copy list and performs all installation operations.
  282. '** Arguments:
  283. '**     none.
  284. '** Returns:
  285. '**     none.
  286. '*************************************************************************
  287. SUB Install STATIC
  288.  
  289.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  290.     CreateDir DEST$, cmoNone
  291.  
  292.     SetCopyGaugePosition 76, 130
  293.  
  294.     OpenLogFile MakePath(DEST$, "PLATINUM.ILG"), 0
  295.     WriteToLogFile ""
  296.     WriteToLogFile "  User chose as destination directory: '" + DEST$ + "'"
  297.     WriteToLogFile ""
  298.     WriteToLogFile "May have had to create the directory: " + DEST$
  299.     WriteToLogFile ""
  300.  
  301.     AddSectionKeyFileToCopyList "Main", "1", SrcDir$, DEST$
  302.     AddSectionKeyFileToCopyList "Dynalinks", "1", SrcDir$, GetWindowsSysDir
  303.     CopyFilesInCopyList
  304.  
  305.     ' Create INI File
  306.     ini$ = MakePath(GetWindowsDir, FN_INI$)
  307.     CreateIniKeyValue ini$, "Settings", "PlayFlic", "-1", cmoOverwrite
  308.     CreateIniKeyValue ini$, "Settings", "VerifyOnExit", "-1", cmoNone
  309.     CreateIniKeyValue ini$, "Settings", "PlayButtonSound", "-1", cmoNone
  310.     CreateIniKeyValue ini$, "Settings", "VerifyDelete", "-1", cmoNone
  311.     CreateIniKeyValue ini$, "Settings", "MinimizeOnLaunch", "0", cmoNone
  312.  
  313.     CreateIniKeyValue ini$, "Paths", "Database", MakePath(DEST$, SZ_DBF$), cmoOverwrite
  314.     CreateIniKeyValue ini$, "Options", "SystemDB", MakePath(DEST$, "system.mda"), cmoOverwrite
  315.  
  316.     CreateIniKeyValue ini$, "Product", "Title", GetIniKeyString (MakePath(CDROMDRV$, FN_INIDATA), "Product", "Title"), cmoOverwrite
  317.     CreateIniKeyValue ini$, "Product", "Release", GetIniKeyString (MakePath(CDROMDRV$, FN_INIDATA), "Product", "Release"), cmoOverwrite
  318.     CreateIniKeyValue ini$, "Product", "ReleaseText", GetIniKeyString (MakePath(CDROMDRV$, FN_INIDATA), "Product", "ReleaseText"), cmoOverwrite
  319.  
  320.     ' Create LMICD.INI File, store information in it...
  321.     ini$ = MakePath(GetWindowsDir, "LMICD.INI")
  322.     CreateIniKeyValue ini$, SZ_LMICD_ID$, "Title", SZ_LMICD_TITLE$, cmoOverwrite
  323.     CreateIniKeyValue ini$, SZ_LMICD_ID$, "CDTitle", SZ_LMICD_CDTITLE$, cmoOverwrite
  324.     CreateIniKeyValue ini$, SZ_LMICD_ID$, "ProductLine", SZ_LMICD_PRODUCTLINE$, cmoOverwrite
  325.     CreateIniKeyValue ini$, SZ_LMICD_ID$, "WorkingDir", CDROMDRV$ + "\", cmoOverwrite
  326.  
  327.     CreateProgmanGroup SZ_GROUPNAME, "", cmoNone
  328.     ShowProgmanGroup  SZ_GROUPNAME, 1, cmoNone
  329.     CreateProgmanItem SZ_GROUPNAME, SZ_PRODUCT$, MakePath(CDROMDRV$, FN_EXE), MakePath(DEST$,FN_ICON$)+",0,0,0,", cmoOverwrite
  330.     CreateProgmanItem SZ_GROUPNAME, SZ_PRODUCT$ + " Help", "winhelp.exe " + MakePath(CDROMDRV$,FN_HELPFILE), MakePath(DEST$,FN_ICON$)+",0,0,0,"+CDROMDRV$ + "\", cmoOverwrite
  331.  
  332.     CloseLogFile
  333.  
  334. END SUB
  335.  
  336.  
  337.  
  338.  
  339.  
  340. '**
  341. '** Purpose:
  342. '**     Appends a file name to the end of a directory path,
  343. '**     inserting a backslash character as needed.
  344. '** Arguments:
  345. '**     szDir$  - full directory path (with optional ending "\")
  346. '**     szFile$ - filename to append to directory
  347. '** Returns:
  348. '**     Resulting fully qualified path name.
  349. '*************************************************************************
  350. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  351.     IF szDir$ = "" THEN
  352.         MakePath = szFile$
  353.     ELSEIF szFile$ = "" THEN
  354.         MakePath = szDir$
  355.     ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  356.         MakePath = szDir$ + szFile$
  357.     ELSE
  358.         MakePath = szDir$ + "\" + szFile$
  359.     END IF
  360. END FUNCTION
  361.