home *** CD-ROM | disk | FTP | other *** search
/ Enciclopedia de la Ciencia / DKMMSCIE.ISO / dksetup / dksetup.mst < prev    next >
Text File  |  1995-09-06  |  15KB  |  467 lines

  1. ''$DEFINE DEBUG
  2. '^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  3. '   SCIENCE (SP)
  4. '
  5. '   VfW drivers & WING
  6. '
  7. '   VERSION:04/09/95 Add WING driver to science for use with v1.1
  8. '
  9. '^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  10. '01/08/95 No min install as ini problem not resolved
  11. '07/07/95 Correct dkgen.inc so unregisters use of ctl3d
  12. '04/07/95 Make sure files in bin section of inf file 'always' overwrite
  13. '28/07/95 Ini file not created for minimum install, uses file provided in dkcode
  14. '27/06/95 Test for directory names max 8 chars
  15. '26/06/95 For minimum install, ini file is now not installed
  16. '19/06/95 Moved test for cirrus drivers to mst file as only applies to sampler
  17. '05/06/95 Fonts installed on users machine
  18. '01/06/95 No choice about adding icon to prog man, altered dkgen.inc & rc file
  19. '            (custom, customhelp & speed dlg boxes need changing)
  20. '22/05/95 Code for bundling with sampler
  21. '22/05/95 Large readme need Write (will need to change dlg box in rc file)
  22. '15/05/95 No warning that directory does not exist
  23. '03/05/95 Ini file put in executable directory rather than Windows dir to stop
  24. '            clash with foreign products with same name files
  25.  
  26.  
  27. '$INCLUDE 'dkgen.inc'
  28.  
  29.  
  30. 'IF WITH SAMPLER ( add to .inf & dkcode ) + see add to prog man below
  31. 'CONST SAMPLER_PATH = "SAMPLER"
  32. 'CONST APPLICATION_MENU_FILE = "custmenu.exe"
  33. 'CONST APPLICATION_EXE2_FILE = "dksd2pc.exe"
  34. 'DECLARE FUNCTION TestForCirrus LIB "dkutils.dll" () As INTEGER
  35.  
  36.  
  37. 'IF USING SPECIFIC FONTS
  38. 'DECLARE FUNCTION InstallFont LIB "dkutils.dll" (szFont$) AS INTEGER
  39. 'DECLARE SUB UpdateFonts()
  40.  
  41.  
  42. ' Paths and INI stuff
  43. CONST APPLICATION_INI_FILE = "SCIENCE.ini"
  44. CONST APPLICATION_EXE_FILE = "SCIENCE.exe"
  45. CONST APPLICATION_PENGE_FILE = "SCIENCE.png"
  46.  
  47. CONST INI_FILE_SOURCE = "WinPath" ' OR   "AppPath"
  48. CONST EDITOR_EXE = "notepad.exe " 'OR "write.exe "
  49.  
  50. ' Language dependant strings
  51. CONST APPLICATION_README_FILE = "leame.txt"
  52. CONST STR_README = "Enciclopedia de la Ciencia Léame"
  53. CONST STR_MSGCAPTION = "Instalación de Enciclopedia de la Ciencia"
  54. CONST STR_PRODUCTNAME = "Enciclopedia de la Ciencia"
  55. CONST DEFAULT_INSTALL_PATH = "\ZETA\SCIENCE"
  56.  
  57.  
  58. DECLARE SUB Install()
  59. DECLARE SUB AddFilesToCopyList(szInstallType$)
  60. DECLARE FUNCTION IsCDROMDrive LIB "dkutils.dll" (wDrive%) As INTEGER
  61.  
  62.  
  63. Init:
  64.    Initialise STR_PRODUCTNAME, DEFAULT_INSTALL_PATH, STR_MSGCAPTION
  65.  
  66.  
  67. WelcomeDlg:
  68.     if Welcome() = NAV_BACK then
  69.         ' Don nothing - cant go back
  70.     end if
  71.  
  72.     if TestSystem() = NAV_BACK then
  73.         goto WelcomeDlg
  74.     end if
  75.  
  76. 'IF WITH SAMPLER
  77. 'TestCirrus:
  78. '    if TestForCirrus() = 1 then
  79. '        dButton = DoMsgBox(STR_CIRRUS, szMsgCaption$, MB_OK+MB_TASKMODAL+MB_ICONINFORMATION)
  80. '    end if
  81.  
  82. 'IF EARLIER PRODS WITH NO SAMPLER
  83. '    UpdateADPCMDrivers
  84.  
  85.  
  86. ExpressCustomDlg:
  87.     ' defaults to Express
  88.     'if szExpressCustomChoice = "EXPRESS" then
  89.     '    SetSymbolValue "RadioDefault", "1"
  90.     'else
  91.     '    SetSymbolValue "RadioDefault", "1"
  92.     'end if
  93.  
  94. ECDlgLoop:
  95.     szButton = UIStartDlg(CUIDLL_FILENAME, IDD_SPEED, "FRadioDlgProc", IDD_WHIZZHELP, PROC_HELP)
  96.  
  97.     select case szButton
  98.     case "REACTIVATE"
  99.         goto ECDlgLoop
  100.     case "BACK"
  101.         UIPop 1
  102.         goto WelcomeDlg
  103.     case "CONTINUE" ' Install
  104.         UIPop 1
  105.         if GetSymbolValue("ButtonChecked") = "1" then
  106.             szExpressCustomChoice = "EXPRESS"
  107.             goto ExpressInstallLoop
  108.         else
  109.             szExpressCustomChoice = "CUSTOM"
  110.             goto CustomInstallLoop
  111.         end if
  112.     case "EXIT"
  113.         AskQuit
  114.         goto ECDlgLoop
  115.     end select
  116.  
  117.  
  118. CustomInstallLoop:
  119. GetPathDlg:
  120.     SetSymbolValue "EditTextIn", szDestPath
  121.     szOldDestPath = szDestPath
  122.     SetSymbolValue "EditFocus", "ALL"
  123.  
  124. GetPathDlgLoop:
  125.     szButton = UIStartDlg(CUIDLL_FILENAME, IDD_DESTPATH, "FEditDlgProc", IDD_PATHHELP, PROC_HELP)
  126.  
  127.     select case szButton
  128.     case "REACTIVATE"
  129.         goto GetPathDlgLoop
  130.  
  131.     case "BACK"
  132.         UIPop 1
  133.         szDestPath = szOldDestPath
  134.         goto ECDlgLoop
  135.  
  136.     case "CONTINUE"
  137.         UIPop 1
  138.         szDestPath = GetSymbolValue("EditTextOut")
  139.  
  140.         if mid$(szDestPath, 2, 1) = ":" and mid$(szDestPath, 3, 1) <> "\" then
  141.             szTemp$ = mid$(szDestPath, 1, 2) + "\" + mid$(szDestPath, 3, len(szDestPath)-2)
  142.             szDestPath = szTemp
  143.         end if
  144.  
  145.         if mid$(szDestPath, 2, 1) <> ":" then
  146.             if mid$(szDestPath, 1,1) <> "\" then
  147.                 szDestPath = mid$(szWinPath, 1,1) + ":\" + szDestPath
  148.             else
  149.                 szDestPath = mid$(szWinPath, 1,1) + ":" + szDestPath
  150.             end if
  151.         elseif IsDriveValid(mid$(szDestPath, 1,1)) = 0 then
  152.             szDestPath = szOldDestPath
  153.             UIPop 1
  154.             BadPath
  155.             goto GetPathDlg
  156.         end if
  157.  
  158.         ' check for "foreign" chars in path
  159.         slength% = len(szDestPath)
  160.         found% = 0
  161.         for i% = 1 to slength%
  162.             if asc(mid$(szDestPath, i%, 1)) > 126 then
  163.                 found% = 1
  164.             end if
  165.         next i%
  166.         if found% = 1 then
  167.             szDestPath = szOldDestPath
  168.             UIPop 1
  169.             BadPath
  170.             goto GetPathDlg
  171.         end if
  172.  
  173.         wDrive% = asc(mid$(szDestPath, 1,1)) - asc("A")
  174.         if IsCDROMDrive(wDrive%) > 0 then
  175.             szDestPath = szOldDestPath
  176.             UIPop 1
  177.             BadPath
  178.             goto GetPathDlg
  179.         end if
  180.  
  181.         if IsDriveNetwork(mid$(szDestPath,1,1)) = 1 then
  182.             szDestPath = szOldDestPath
  183.             UIPop 1
  184.             NetworkDrive
  185.             goto GetPathDlg
  186.         end if
  187.  
  188.         if IsDirWritable(szDestPath) = 0 then
  189.             szDestPath = szOldDestPath
  190.             UIPop 1
  191.             BadPath
  192.             goto GetPathDlg
  193.         end if
  194.  
  195.         'check dir names not > 8 chars
  196.         dirlength% = 0
  197.         i% = 3
  198.         while i% <> slength%
  199.             i% =i%+1
  200.             dirlength% = dirlength% +1
  201.             if mid$(szDestPath, i%, 1)="\" then
  202.                 if dirlength% > 9 then
  203.                     szDestPath = szOldDestPath
  204.                     dButton = DoMsgBox( STR_DIRTOOLONG, STR_MSGCAPTION, MB_OK+MB_TASKMODAL+MB_ICONHAND)
  205.                     goto GetPathDlg
  206.                  else
  207.                     dirlength% = 0
  208.                 endif
  209.             end if
  210.  
  211.         wend
  212.         if dirlength% > 8 then
  213.             szDestPath = szOldDestPath
  214.             dButton = DoMsgBox( STR_DIRTOOLONG, STR_MSGCAPTION, MB_OK+MB_TASKMODAL+MB_ICONHAND)
  215.             goto GetPathDlg
  216.         endif
  217.  
  218.  
  219.  
  220.   '      if DoesDirExist(szDestPath) = 0 then
  221.   '          dButton = DoMsgBox( STR_DIRNOTEXIST, STR_MSGCAPTION, MB_OK+MB_TASKMODAL+MB_ICONHAND)
  222.   '          if dButton = 7 then
  223.   '              goto GetPathDlg
  224.   '          end if
  225.   '      end if
  226.  
  227.         UIPop 1
  228.  
  229.  
  230.     case "EXIT"
  231.         AskQuit
  232.         goto GetPathDlg
  233.     end select
  234.  
  235. GetCustomChoicesDlg:
  236.     SetSymbolValue "CheckItemsState", ""
  237. ''''''''''''''''''''' NO MIN INSTALL'''''''''''''''''''''''''''''''
  238. '    AddListItem "CheckItemsState", szMinimalInstall
  239. '    AddListItem "CheckItemsState", szAddPMItem
  240. GetCustomChoicesLoop:
  241.  
  242.     ClearCopyList
  243.     if szMinimalInstall = "OFF" then
  244.         AddFilesToCopyList "FULL"
  245.     else
  246.         AddFilesToCopyList "MINIMAL"
  247.     end if
  248.  
  249.     dDestDrive = asc(mid$(szDestPath, 1,1)) - asc("A")+1
  250.     dWinDrive = asc(mid$(szWinPath, 1,1)) - asc("A")+1
  251.  
  252.     SetSymbolValue "DriveStatusText", ""
  253.     AddListItem "DriveStatusText", mid$(szDestPath, 1,1) + ":"
  254.     AddListItem "DriveStatusText", str$(GetDiskSpaceNeeded(dDestDrive) / 1024) + " K"
  255.     AddListItem "DriveStatusText", str$(GetFreeSpaceForDrive(mid$(szDestPath, 1,1))/1024) + " K"
  256.  
  257.     if dDestDrive = dWinDrive then
  258.         AddListItem "DriveStatusText", ""
  259.         AddListItem "DriveStatusText", ""
  260.         AddListItem "DriveStatusText", ""
  261.     else
  262.         AddListItem "DriveStatusText", mid$(szWinPath, 1,1) + ":"
  263.         AddListItem "DriveStatusText", str$(GetDiskSpaceNeeded(dWinDrive)/ 1024 ) + " K"
  264.         AddListItem "DriveStatusText", str$(GetFreeSpaceForDrive(mid$(szWinPath, 1,1))/1024) + " K"
  265.     end if
  266.  
  267.     AddListItem "DriveStatusText", szDestPath
  268.  
  269. ChooseInstall:
  270.  
  271.     szButton = UIStartDlg(CUIDLL_FILENAME, IDD_CUSTOM, "FCustInstDlgProc", IDD_CUSTOMHELP, PROC_HELP)
  272. ''''''''''''''''''''' NO MIN INSTALL'''''''''''''''''''''''''''''''
  273. '    szMinimalInstall = GetListItem("CheckItemsState", 1)
  274. '    szAddPMItem = GetListItem("CheckItemsState", 2)
  275.  
  276.     select case szButton
  277.     case "REACTIVATE"
  278.         goto GetCustomChoicesLoop
  279.     case "BACK"
  280.         UIPop 1
  281.         goto GetPathDlg
  282.     case "CONTINUE"
  283.         UIPop 1
  284.     case "EXIT"
  285.         AskQuit
  286.         goto GetCustomChoicesLoop
  287.     end select
  288.  
  289.     ClearCopyList
  290.     if szMinimalInstall = "OFF" then
  291.         AddFilesToCopyList "FULL"
  292.     else
  293.         AddFilesToCopyList "MINIMAL"
  294.     end if
  295.     goto CommonInstallLoop
  296.  
  297. ExpressInstallLoop:
  298.     AddFilesToCopyList "FULL"
  299.     goto CommonInstallLoop
  300.  
  301. CommonInstallLoop:
  302.     InitCommonInstall
  303.  
  304.     if szMinimalInstall = "ON" and GetFreeSpaceForDrive(mid$(szDestPath,1,1)) < MINIMUM_DISK_SPACE then
  305.         error ERR_NODISKSPACE
  306.     elseif GetFreeSpaceForDrive(mid$(szDestPath,1,1)) < GetDiskSpaceNeeded( asc(mid$(szDestPath, 1,1))-asc("A")+1 ) then
  307.         error ERR_NODISKSPACE
  308.     end if
  309.  
  310. 'IF LATER PROD OR WITH SAMPLER
  311.     UpdateWinGDrivers
  312.     UpdateIndeoAVIDrivers
  313.  
  314. 'IF USING SPECIFIC FONTS
  315. '    UpdateFonts
  316.  
  317.     Install
  318.  
  319.     CreateProgmanGroup STR_COMPANYNAME, "", cmoNone
  320.     ShowProgmanGroup   STR_COMPANYNAME, 1, cmoNone
  321. '    szReadmeTitle$ = STR_PRODUCTNAME + " " + STR_README
  322.  
  323. 'IF WITH SAMPLER
  324. '    szSamplerPath$ = MakePath( mid$(szSrcSetupPath, 1, (len(szSrcSetupPath) - len(SOURCE_SETUP_SUBDIR))-1), SAMPLER_PATH)
  325. '    szSamplerPath$ = MakePath(szSamplerPath$, APPLICATION_EXE2_FILE)
  326. '    if szMinimalInstall = "ON" then
  327. '        szInf$ = MakePath(szSrcBinPath, APPLICATION_MENU_FILE) + " " + MakePath(szSrcBinPath, APPLICATION_EXE_FILE) + " " + MakePath(szSrcBinPath, APPLICATION_PENGE_FILE) + " " + szSamplerPath$
  328. '        CreateProgmanItem STR_COMPANYNAME, STR_PRODUCTNAME, szInf, szInf, cmoOverwrite
  329. '         CreateProgmanItem STR_COMPANYNAME, STR_README, EDITOR_EXE + MakePath(szSrcBinPath, APPLICATION_README_FILE), "", cmoOverwrite
  330. '    else
  331. '        szInf$ = MakePath(szDestPath, APPLICATION_MENU_FILE) + " " + MakePath(szDestPath, APPLICATION_EXE_FILE) + " " + MakePath(szDestPath, APPLICATION_PENGE_FILE) + " " + szSamplerPath$
  332. '        CreateProgmanItem STR_COMPANYNAME, STR_PRODUCTNAME, szInf, szInf, cmoOverwrite
  333. '        CreateProgmanItem STR_COMPANYNAME, STR_README, EDITOR_EXE + MakePath(szDestPath, APPLICATION_README_FILE), "", cmoOverwrite
  334. '    end if
  335.  
  336. 'IF NO SAMPLER
  337.     if szMinimalInstall = "ON" then
  338.         szInf$ = MakePath(szSrcBinPath, APPLICATION_EXE_FILE) + " " + MakePath(szSrcBinPath, APPLICATION_PENGE_FILE)
  339.         CreateProgmanItem STR_COMPANYNAME, STR_PRODUCTNAME, szInf, szInf, cmoOverwrite
  340.         CreateProgmanItem STR_COMPANYNAME, STR_README, EDITOR_EXE + MakePath(szSrcBinPath, APPLICATION_README_FILE), "", cmoOverwrite
  341.     else
  342.         szInf$ = MakePath(szDestPath, APPLICATION_EXE_FILE) + " " + MakePath(szDestPath, APPLICATION_PENGE_FILE)
  343.         CreateProgmanItem STR_COMPANYNAME, STR_PRODUCTNAME, szInf, szInf, cmoOverwrite
  344.         CreateProgmanItem STR_COMPANYNAME, STR_README, EDITOR_EXE + MakePath(szDestPath, APPLICATION_README_FILE), "", cmoOverwrite
  345.     end if
  346.  
  347. '$IFDEF DEBUG
  348.     DumpCopyList MakePath(szDestPath, "copylist.txt")
  349. '$ENDIF ''DEBUG
  350.  
  351.     EndCommonInstall APPLICATION_README_FILE, 0, EDITOR_EXE
  352.  
  353. quit:
  354.     on error goto quit
  355.  
  356.     select case ERR
  357.  
  358.     case 0
  359.         hDlg = IDD_EXITSUCCESS
  360.     case STFQUIT
  361.         hDlg = IDD_EXITQUIT
  362.     case ERR_NODISKSPACE
  363.         hDlg = IDD_NODISKSPACE
  364.     case else
  365.         hDlg = IDD_EXITFAILURE
  366.     end select
  367.  
  368.     UIPop 10
  369. quit2:
  370.     szButton = UIStartDlg(CUIDLL_FILENAME, hDlg, "FInfo0DlgProc", 0, "")
  371.     select case szButton
  372.     case "REACTIVATE"
  373.         goto quit2
  374.     end select
  375.  
  376.     UIPop 1
  377.     DeInitialise
  378.     stop
  379.     end
  380.  
  381. quitError:
  382.     dButton = DoMsgBox (STR_QUITERROR, STR_MSGCAPTION, MB_OK+MB_TASKMODAL+MB_ICONHAND)
  383.     DeInitialise
  384.     stop
  385.     end
  386.  
  387.  
  388.  
  389.  
  390. Sub Install() STATIC
  391.  
  392.     cursor% = ShowWaitCursor()
  393.     CreateDir szDestPath, cmoNone
  394.     SetRestartDir szDestPath
  395.     RestoreCursor(cursor%)
  396.  
  397.     CopyFilesInCopyList  'creates dir even if min install
  398.  
  399. 'IF LATER PROD OR WITH SAMPLER
  400.     Run ("regedit.exe /s " + MakePath(szWinPath, "mplayer.reg"))
  401.     Run ("regedit.exe /s " + MakePath(szWinSysPath, "OLE2.reg"))
  402.     Run ("regedit.exe /s " + MakePath(szWinSysPath, "cleanup.reg"))
  403.     Run ("profdisp.exe")
  404.  
  405.     if INI_FILE_SOURCE = "AppPath" then
  406.         szAppINIPath = MakePath(szDestPath, APPLICATION_INI_FILE)
  407.     else
  408.         szAppINIPath = MakePath(szWinPath, APPLICATION_INI_FILE)
  409.     end if
  410.  
  411.     szPengePath = mid$(szSrcSetupPath, 1,len(szSrcSetupPath)-len(SOURCE_SETUP_SUBDIR)-2) ' -2 removes backslash
  412.  
  413.     if szMinimalInstall = "OFF"  then
  414.         CreateIniKeyValue szAppINIPath, PRODUCT_INI_DIR_SECTION_NAME, PRODUCT_INI_DIR_ENTRY_NAME, szPengePath, cmoOverwrite
  415.     endif
  416.  
  417. End Sub
  418.  
  419.  
  420. Sub AddFilesToCopyList(szInstallType$) STATIC
  421.     cursor% = ShowWaitCursor()
  422.  
  423.     select case szInstallType
  424.     case "FULL"
  425.         AddSectionFilesToCopyList SETUP_INI_BINARIES_SECTION_NAME, szSrcBinPath, szDestPath
  426.  
  427.     case "MINIMAL"
  428.         ' nothing
  429.     end select
  430.  
  431. 'IF EARLIER PRODS AND NO SAMPLER
  432. '    if fSystemUpdated = 1 then
  433. '        AddSectionFilesToCopyList "ACM Drivers", szSrcBinPath, szWinSysPath
  434. '    end if
  435.  
  436.  
  437. 'IF LATER PROD OR WITH SAMPLER
  438.         AddSectionFilesToCopyList SETUP_INI_WING_BINARIES_NAME, szSrcBinPath, szWinSysPath
  439.         AddSectionFilesToCopyList SETUP_INI_WING32_BINARIES_NAME, szSrcBinPath, szWinSysPath
  440.         AddSectionFilesToCopyList "VfW Runtime", szSrcBinPath, szWinSysPath
  441.         AddSectionFilesToCopyList "OLE2", szSrcBinPath, szWinSysPath
  442.         AddSectionFilesToCopyList "ACM Drivers", szSrcBinPath, szWinSysPath
  443.         AddSectionFilesToCopyList "MPlayer", szSrcBinPath, szWinPath
  444.         AddSectionFilesToCopyList "AVICodecs", szSrcBinPath, szWinSysPath
  445.  
  446.     RestoreCursor(cursor%)
  447. End Sub
  448.  
  449.  
  450. 'IF USING SPECIFIC FONTS
  451. 'Sub UpdateFonts() STATIC
  452. '    ' Check TT enabled
  453. '    MakeListFromSectionFilename "Fonts_list", "Fonts"
  454. '
  455. '    listLength% = GetListLength("Fonts_list")
  456. '    if listLength% > 0 then
  457. '        for item% = 1 to listLength%
  458. '            szFontFile$ = GetListItem("Fonts_list", item%)
  459. '            ' Check if exists
  460. '            'Install font
  461. '            ret% = InstallFont(MakePath(szSrcBinPath, szFontFile))
  462. '            ' Write WIN.INI
  463. '        next
  464. '    end if
  465. 'End Sub
  466.  
  467.