home *** CD-ROM | disk | FTP | other *** search
/ Dinosaurusten Jäljillä / CDRDINO.ISO / dksetup / dksetup.mst < prev    next >
Text File  |  1997-02-07  |  35KB  |  908 lines

  1. '^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  2. '   DKSETUP.MST     Generic Setup File
  3. '
  4. '   VERSION
  5. '   -------
  6. CONST STR_VERSION = "V 2.10.010"
  7. '
  8. '^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  9. 'Change History
  10. '--------------
  11. 'Version    Date        By  Description
  12. '-------    ----        --  -----------
  13. '2.10.011   07/02/97    Wyn Call to function IsFloppyDrive added . This was created because
  14. '                           the Japanese NEC machines have A:\ as their internal hard drive24/10/96
  15. '2.10.010               BJO Prevent users installing to a root directory. This causes problems
  16. '                           when attempting to uninstall the product.
  17. '2.10.009   02/04/96    CR  Re-Organised the groups of system drivers. No longer installs VFW
  18. '                           or the MSADPCM sound drivers on Windows 95.
  19. '2.10.008   10/04/96    CR  Stopped the user from being able to install to A:\.
  20. '                           It caused a crash on Win95.
  21. '2.10.007   03/04/96    CR  Removed the path in the device=dva.386 entry which is
  22. '                           put into system.ini. The Code is in UpdateWingDrivers in
  23. '                           Dkgen.inc. This stops a crash when installing Windows followed by
  24. '                           our product and then Office.
  25. '2.10.006   22/03/96    CR  Change the define WITH_SAMPLER_NOCM to WITH_FULL_SAMPLER.
  26. '                           This now installs the full sampler into the \DKMM\SAMPLER dir.
  27. '2.10.005   14/03/96    CR  Hide the Program Group window while adding the program icons.
  28. '2.10.004   27/02/96    CR  Changed most of the define names to make them more consistent.
  29. '2.10.003   27/02/96    CR  Added the INST_QTW define for installing QuickTime for Windows.
  30. '2.10.002   22/02/96    CR  The Fonts section in setup.inf needs a dummy placeholder
  31. '                           called NOFONT.ZZZ. Fonts are not registered for uninstall.
  32. '2.10.001   20/02/96    CR  Changed the setup files to separate Product Specific,
  33. '                           Localise Only and Generic information.
  34. '
  35. '16/02/96 Made the cursor 'Busy' while creating the program group/items.
  36. '14/02/96 Add the Sampler Icon name to the MMAPP.ini when using WITH_SAMPLER_NOCOM,
  37. '         so that uninstall can delete the Sampler Icon.
  38. '12/02/96 Added option to bundle sampler WITHOUT the Custom Menu.
  39. '25/01/96 Add WITH_ORDERING_INFO and MUSEUM_TITLE defines.
  40. '22/01/96 Fix the dialogs in the TestSystem function in Dkgen.inc.
  41. '15/12/95 Fix the Set Restart Directory problem when installing Win32s
  42. '14/12/95 Only delete files from the previous install if it was in a
  43. '         different directory. Otherwise it deletes the files just installed!
  44. '05/12/95 Reset the default install path when selecting back from the custom
  45. '         install dialog box and clear the copy list.
  46. '04/12/95 Move the mmapp.ini entry updates after the install.
  47. '31/11/95 Check the msacm.ini to make sure the audio compression is enabled.
  48. '29/11/95 Add the line in DKCODE\VERSION.INI to the main ini file. This is only
  49. '         used by the sampler3 product at the moment.
  50. '21/11/95 Can now handle a product + sampler3 bundle disc.
  51. '13/11/95 Add the Setup Version number to the About dialog box in the Setup.
  52. '08/11/95 Use the test for cirrus logic dirvers all of the time, not just
  53. '         when bundled with a sampler.
  54. '03/11/95 Cater for Win32s install and general tidy up of this script file.
  55. '         Unfortunately still need to use comments to select / deselect
  56. '         the specific font code parts.
  57. '18/08/95 rc and this have no min install. Changed dlg boxes custom,
  58. '         custom help and speed
  59. '18/08/95 Register notes most recent lang used
  60. '11/08/95 Register created using inf file
  61. '26/07/95 Uninstall code added
  62. '07/07/95 Correct dkgen.inc so unregisters use of ctl3d
  63. '04/07/95 Make sure files in bin section of inf file 'always' overwrite
  64. '28/07/95 Ini file not created for minimum install, uses file provided in dkcode
  65. '27/06/95 Test for directory names max 8 chars
  66. '26/06/95 For minimum install, ini file is now not installed
  67. '19/06/95 Moved test for cirrus drivers to mst file as only applies to sampler
  68. '05/06/95 Fonts installed on users machine
  69. '01/06/95 No choice about adding icon to prog man, altered dkgen.inc & rc file
  70. '            (custom, customhelp & speed dlg boxes need changing)
  71. '22/05/95 Code for bundling with sampler
  72. '22/05/95 Large readme need Write (will need to change dlg box in rc file)
  73. '15/05/95 No warning that directory does not exist
  74. '03/05/95 Ini file put in executable directory rather than Windows dir to stop
  75. '            clash with foreign products with same name files
  76. '
  77. '------------------------------------------------------------------------------
  78. '
  79. ' All of the defines which are used to control the flow of Setup are listed here.
  80. '
  81. ' SCRUNGED              Product will run in scrunge mode not test mode.
  82. '                       The ini file is different.
  83. ' WITH_UNINSTALL        Installs Uninstall with the product.
  84. ' WITH_ORDERING_INFO    Installs Ordering Information with the product.
  85. ' WITH_SAMPLER          Installs the Sampler with the product.
  86. '                       This sampler goes into the product directory.
  87. '                       This sampler has a Custom Menu.
  88. ' WITH_FULL_SAMPLER     Installs the full Sampler with the product.
  89. '                       This sampler goes into the sampler directory \DKMM\SAMPLER.
  90. '                       This sampler has its own icon and can be uninstalled separately.
  91. '                       The sampler files are listed in the SAMPBIN section of setup.inf.
  92. ' NEEDS_MUSEUM_LIFT     Installs the museum lift. (DKSWTCH.EXE)
  93. ' NEEDS_WIN32S          Installs Win32s.
  94. ' NEEDS_WING            Installs WinG.
  95. ' NEEDS_QTW             Installs QuickTime for Windows using Apple's own installer.
  96. ' NEEDS_VFW             Installs Video for Windows.
  97. ' NEEDS_SOUND           Installs ADPCM sound drivers.
  98. '
  99. '------------------------------------------------------------------------------
  100. ''$DEFINE DEBUG
  101. '$INCLUDE 'dkgen.inc'
  102. '
  103.  
  104. '$IFDEF NEEDS_WIN32S
  105.     ' Include extra Win32s specific routines
  106.     '$INCLUDE 'win32s.inc'
  107. '$ENDIF
  108.  
  109. DECLARE SUB CreateReg()
  110. DECLARE SUB Install()
  111. DECLARE SUB AddFilesToCopyList(szInstallType$)
  112. DECLARE SUB UpdateFonts()
  113. DECLARE FUNCTION IsCDROMDrive LIB "dkutils.dll" (wDrive%) As INTEGER
  114. DECLARE FUNCTION DeleteFiles LIB "dkutils.dll" (szDiffPath$, szProdName$, szDKREgIni$) AS INTEGER
  115. DECLARE FUNCTION DeleteDir LIB "dkutils.dll" (szDiffPath$) AS INTEGER
  116. DECLARE FUNCTION DeleteSection LIB "dkutils.dll" (szProdName$, szDKREgIni$) AS INTEGER
  117. DECLARE FUNCTION TestForCirrus LIB "dkutils.dll" () As INTEGER
  118. DECLARE FUNCTION GetCdVolumeLabel LIB "dkutils.dll" ( szCdVolumeLabel$, szCdDrive$ ) As INTEGER
  119. DECLARE FUNCTION InstallFont LIB "dkutils.dll" (szFont$) AS INTEGER
  120. DECLARE FUNCTION IsFloppyDrive LIB "dkutils.dll" (wDrive%) As INTEGER
  121.  
  122. Init:
  123.    Initialise STR_PRODUCTNAME, DEFAULT_INSTALL_PATH, STR_MSGCAPTION
  124.  
  125. WelcomeDlg:
  126.     if Welcome() = NAV_BACK then
  127.         ' Don nothing - cant go back
  128.     end if
  129.  
  130.     if TestSystem() = NAV_BACK then
  131.         goto WelcomeDlg
  132.     end if
  133.  
  134.  
  135.     '+++
  136.     '$IFDEF NEEDS_WIN32S
  137.  
  138.         if bInstalledWin32s = 0 then
  139.             goto InstallWin32s
  140.         endif
  141.  
  142.         FinishedWin32s:
  143.     '$ENDIF
  144.     '---
  145.  
  146.     '+++
  147.     '$IFDEF NEEDS_QTW
  148.  
  149.         ret% = InstallQTW()     ' Install QuickTime for Windows
  150.     '$ENDIF
  151.     '---
  152.  
  153.     '   TestCirrus:
  154.     if TestForCirrus() = 1 then
  155.         dButton = DoMsgBox(STR_CIRRUS, szMsgCaption$, MB_OK+MB_TASKMODAL+MB_ICONINFORMATION)
  156.     end if
  157.  
  158.  
  159.     '$IFDEF NEEDS_SOUND
  160.         ' Update the Sound driver ini entries
  161.         if UpdateADPCMDrivers() = NAV_BACK then
  162.             goto WelcomeDlg
  163.         end if
  164.     '$ENDIF
  165.  
  166. ExpressCustomDlg:
  167.     ' defaults to Express
  168.     'if szExpressCustomChoice = "EXPRESS" then
  169.     '    SetSymbolValue "RadioDefault", "1"
  170.     'else
  171.     '    SetSymbolValue "RadioDefault", "1"
  172.     'end if
  173.  
  174. ECDlgLoop:
  175.     szButton = UIStartDlg(CUIDLL_FILENAME, DLG_SPEED, "FRadioDlgProc", DLG_WHIZZHELP, PROC_HELP)
  176.  
  177.     select case szButton
  178.     case "REACTIVATE"
  179.         goto ECDlgLoop
  180.     case "BACK"
  181.         UIPop 1
  182.         goto WelcomeDlg
  183.     case "CONTINUE" ' Install
  184.         UIPop 1
  185.         if GetSymbolValue("ButtonChecked") = "1" then
  186.             szExpressCustomChoice = "EXPRESS"
  187.             goto ExpressInstallLoop
  188.         else
  189.             szExpressCustomChoice = "CUSTOM"
  190.             goto CustomInstallLoop
  191.         end if
  192.     case "EXIT" , "CANCEL"
  193.         AskQuit
  194.         goto ECDlgLoop
  195.     end select
  196.  
  197.  
  198. CustomInstallLoop:
  199. GetPathDlg:
  200.     SetSymbolValue "EditTextIn", szDestPath
  201.     szOldDestPath = szWinDrive + ":" + DEFAULT_INSTALL_PATH
  202.     SetSymbolValue "EditFocus", "ALL"
  203.  
  204. GetPathDlgLoop:
  205.     szButton = UIStartDlg(CUIDLL_FILENAME, DLG_DESTPATH, "FEditDlgProc", DLG_PATHHELP, PROC_HELP)
  206.  
  207.     select case szButton
  208.     case "REACTIVATE"
  209.         goto GetPathDlgLoop
  210.  
  211.     case "BACK"
  212.         UIPop 1
  213.         szDestPath = szOldDestPath
  214.         ClearCopyList
  215.         goto ECDlgLoop
  216.  
  217.     case "CONTINUE"
  218.         UIPop 1
  219.         szDestPath = GetSymbolValue("EditTextOut")
  220.  
  221.         ' Add backslash if missing
  222.         if mid$(szDestPath, 2, 1) = ":" and mid$(szDestPath, 3, 1) <> "\" then
  223.             szTemp$ = mid$(szDestPath, 1, 2) + "\" + mid$(szDestPath, 3, len(szDestPath)-2)
  224.             szDestPath = szTemp
  225.         end if
  226.  
  227.         ' Add drive letter and :\ if missing
  228.         if mid$(szDestPath, 2, 1) <> ":" then
  229.             if mid$(szDestPath, 1,1) <> "\" then
  230.                 szDestPath = mid$(szWinPath, 1,1) + ":\" + szDestPath
  231.             else
  232.                 szDestPath = mid$(szWinPath, 1,1) + ":" + szDestPath
  233.             end if
  234.         elseif IsDriveValid(mid$(szDestPath, 1,1)) = 0 then
  235.             szDestPath = szOldDestPath
  236.             UIPop 1
  237.             BadPath
  238.             goto GetPathDlg
  239.         end if
  240.  
  241.         slength% = len(szDestPath)
  242.  
  243.         'Check dir names not > 8 chars
  244.         dirlength% = 0
  245.         i% = 3
  246.         while i% <> slength%
  247.             i% =i%+1
  248.             dirlength% = dirlength% +1
  249.             if mid$(szDestPath, i%, 1)="\" then
  250.                 if dirlength% > 9 then
  251.                     szDestPath = szOldDestPath
  252.                     dButton = DoMsgBox( STR_DIRTOOLONG, STR_MSGCAPTION, MB_OK+MB_TASKMODAL+MB_ICONHAND)
  253.                     goto GetPathDlg
  254.                  else
  255.                     dirlength% = 0
  256.                 endif
  257.             end if
  258.         wend
  259.         if dirlength% > 8 then
  260.             szDestPath = szOldDestPath
  261.             dButton = DoMsgBox( STR_DIRTOOLONG, STR_MSGCAPTION, MB_OK+MB_TASKMODAL+MB_ICONHAND)
  262.             goto GetPathDlg
  263.         endif
  264.  
  265.  
  266.         ' check for "foreign" chars in path
  267.         found% = 0
  268.         for i% = 1 to slength%
  269.             if asc(mid$(szDestPath, i%, 1)) > 126 then
  270.                 found% = 1
  271.             end if
  272.         next i%
  273.         if found% = 1 then
  274.             szDestPath = szOldDestPath
  275.             UIPop 1
  276.             BadPath
  277.             goto GetPathDlg
  278.         end if
  279.  
  280.         wDrive% = asc(mid$(szDestPath, 1,1)) - asc("A")
  281.         if IsCDROMDrive(wDrive%) > 0 then
  282.             szDestPath = szOldDestPath
  283.             UIPop 1
  284.             BadPath
  285.             goto GetPathDlg
  286.         end if
  287.  
  288.         if IsDriveNetwork(mid$(szDestPath,1,1)) = 1 then
  289.             szDestPath = szOldDestPath
  290.             UIPop 1
  291.             NetworkDrive
  292.             goto GetPathDlg
  293.         end if
  294.  
  295.  
  296.         'do not allow product to be installed in root directory  - 5-2-97 Wyn
  297.          slength% = len(szDestPath)
  298.          if slength% < 4 then
  299.              UIPop 1
  300.             BadPath
  301.             goto GetPathDlg
  302.         end if
  303.  
  304.  
  305.         'Test if A:\ is a floppy drive.
  306.         'if it is do not install product
  307.          wDrive% = asc(mid$(szDestPath, 1,1)) - asc("A")
  308.          if IsFloppyDrive(wDrive%) > 0 then
  309.             szDestPath = szOldDestPath
  310.             UIPop 1
  311.             BadPath
  312.             goto GetPathDlg
  313.          end if
  314.  
  315.         ' IsDirWritable() Crashes on Win95 if looking at A:\ with no disk in!
  316.         if IsDirWritable(szDestPath) = 0 then
  317.             szDestPath = szOldDestPath
  318.             UIPop 1
  319.             BadPath
  320.             goto GetPathDlg
  321.         end if
  322.  
  323.  
  324.   '      if DoesDirExist(szDestPath) = 0 then
  325.   '          dButton = DoMsgBox( STR_DIRNOTEXIST, STR_MSGCAPTION, MB_OK+MB_TASKMODAL+MB_ICONHAND)
  326.   '          if dButton = 7 then
  327.   '              goto GetPathDlg
  328.   '          end if
  329.   '      end if
  330.  
  331.         UIPop 1
  332.  
  333.     case "EXIT" , "CANCEL"
  334.         AskQuit
  335.         goto GetPathDlg
  336.     end select
  337.  
  338. GetCustomChoicesDlg:
  339.     SetSymbolValue "CheckItemsState", ""
  340. '    AddListItem "CheckItemsState", szMinimalInstall
  341. '    AddListItem "CheckItemsState", szAddPMItem
  342. GetCustomChoicesLoop:
  343.  
  344.     ClearCopyList
  345. '    if szMinimalInstall = "OFF" then
  346.         AddFilesToCopyList "FULL"
  347. '    else
  348. '        AddFilesToCopyList "MINIMAL"
  349. '    end if
  350.  
  351.     dDestDrive = asc(mid$(szDestPath, 1,1)) - asc("A")+1
  352.     dWinDrive = asc(mid$(szWinPath, 1,1)) - asc("A")+1
  353.  
  354.     SetSymbolValue "DriveStatusText", ""
  355.     AddListItem "DriveStatusText", mid$(szDestPath, 1,1) + ":"
  356.     AddListItem "DriveStatusText", str$(GetDiskSpaceNeeded(dDestDrive) / 1024) + " K"
  357.     AddListItem "DriveStatusText", str$(GetFreeSpaceForDrive(mid$(szDestPath, 1,1))/1024) + " K"
  358.  
  359.     if dDestDrive = dWinDrive then
  360.         AddListItem "DriveStatusText", ""
  361.         AddListItem "DriveStatusText", ""
  362.         AddListItem "DriveStatusText", ""
  363.     else
  364.         AddListItem "DriveStatusText", mid$(szWinPath, 1,1) + ":"
  365.         AddListItem "DriveStatusText", str$(GetDiskSpaceNeeded(dWinDrive)/ 1024 ) + " K"
  366.         AddListItem "DriveStatusText", str$(GetFreeSpaceForDrive(mid$(szWinPath, 1,1))/1024) + " K"
  367.     end if
  368.  
  369.     AddListItem "DriveStatusText", szDestPath
  370.  
  371. ChooseInstall:
  372.  
  373.     szButton = UIStartDlg(CUIDLL_FILENAME, DLG_CUSTOM, "FCustInstDlgProc", DLG_CUSTOMHELP, PROC_HELP)
  374.  
  375. '    szMinimalInstall = GetListItem("CheckItemsState", 1)
  376. '    szAddPMItem = GetListItem("CheckItemsState", 2)
  377.  
  378.     select case szButton
  379.     case "REACTIVATE"
  380.         goto GetCustomChoicesLoop
  381.     case "BACK"
  382.         UIPop 1
  383.         goto GetPathDlg
  384.     case "CONTINUE"
  385.         UIPop 1
  386.     case "EXIT" , "CANCEL"
  387.         AskQuit
  388.         goto GetCustomChoicesLoop
  389.     end select
  390.  
  391.     ClearCopyList
  392. '    if szMinimalInstall = "OFF" then
  393.         AddFilesToCopyList "FULL"
  394. '    else
  395. '        AddFilesToCopyList "MINIMAL"
  396. '    end if
  397.     goto CommonInstallLoop
  398.  
  399. ExpressInstallLoop:
  400.     AddFilesToCopyList "FULL"
  401.     goto CommonInstallLoop
  402.  
  403. CommonInstallLoop:
  404.     InitCommonInstall
  405.  
  406.     if szMinimalInstall = "ON" and GetFreeSpaceForDrive(mid$(szDestPath,1,1)) < MINIMUM_DISK_SPACE then
  407.         error ERR_NODISKSPACE
  408.     elseif GetFreeSpaceForDrive(mid$(szDestPath,1,1)) < GetDiskSpaceNeeded( asc(mid$(szDestPath, 1,1))-asc("A")+1 ) then
  409.         error ERR_NODISKSPACE
  410.     end if
  411.  
  412.     '+++
  413.     '$IFDEF NEEDS_WING
  414.  
  415.         UpdateWinGDrivers
  416.     '$ENDIF
  417.     '---
  418.  
  419.     '+++
  420.     '$IFDEF NEEDS_VFW
  421.  
  422.         ' Don't need to install VFW on Windows 95, it is already there.
  423.         if not OS_Windows95 then
  424.  
  425.             UpdateIndeoAVIDrivers
  426.         end if
  427.  
  428.     '$ENDIF
  429.     '---
  430.  
  431.     UpdateFonts ' Installs specific fonts
  432.  
  433.     Install     ' Installs all of the necessary files.
  434.  
  435. '****************************************************************************************************************
  436. '****************************************************************************************************************
  437. ' Copied from the VR Bird Setup Program... Should create the Extra directory....
  438. '****************************************************************************************************************
  439. '****************************************************************************************************************
  440.     CreateDir ( szDestPath + "\" + "TOURS" ), cmoNone
  441.  
  442.     CreateProgmanGroup STR_COMPANYNAME, "", cmoNone
  443.     ShowProgmanGroup   STR_COMPANYNAME, 1, cmoNone
  444. '    szReadmeTitle$ = STR_PRODUCTNAME + " " + STR_README 'not used now
  445. '****************************************************************************************************************
  446. '****************************************************************************************************************
  447.  
  448.     dCursor = ShowWaitCursor()
  449.  
  450.     ' Always create the DK Registry and enter the details
  451.     CreateIniKeyValue "Win.ini", "MMAPP", WIN_INI_ENTRY, szWinDrive+":"+DKREG_INI_PATH, cmoOverwrite
  452.     CreateReg
  453.  
  454.     ' Get the current window handle for setting its properties later
  455.     hwndSetup = GetActiveWindow
  456.  
  457.     CreateProgmanGroup STR_COMPANYNAME, "", cmoNone
  458.     ShowProgmanGroup   STR_COMPANYNAME, 1, cmoNone
  459.  
  460.     ' Set the main window properties to bring the main window to the front.
  461.     ' This is so the user cannot start the app now, but will see the prog group after setup!
  462.     i% = SetWindowPos(hwndSetup, HWND_TOP, 0, 0, 0, 0, SWP_NOSIZE+SWP_NOMOVE)
  463.  
  464.  
  465. '+++
  466. '$IFDEF WITH_SAMPLER
  467.  
  468. '    if szMinimalInstall = "ON" then
  469. '        szSamplerPath$ = MakePath( mid$(szSrcSetupPath, 1, (len(szSrcSetupPath) - len(SOURCE_SETUP_SUBDIR))-1), SAMPLER_PATH)
  470. '        szSamplerPath$ = MakePath(szSamplerPath$, SAMPLER_EXE_FILE)
  471. '        szInf$ = MakePath(szSrcBinPath, APPLICATION_MENU_FILE) + " " + MakePath(szSrcBinPath, APPLICATION_EXE_FILE) + " " + MakePath(szSrcBinPath, APPLICATION_PENGE_FILE) + " " + szSamplerPath$
  472. '        CreateProgmanItem STR_COMPANYNAME, STR_PRODUCTNAME, szInf, szInf, cmoOverwrite
  473. '        CreateProgmanItem STR_COMPANYNAME, STR_README, EDITOR_EXE + MakePath(szSrcBinPath, APPLICATION_README_FILE), "", cmoOverwrite
  474. '    else
  475.         szSamplerPath$ = MakePath(szDestPath, SAMPLER_EXE_FILE)
  476.         szInf$ = MakePath(szDestPath, APPLICATION_MENU_FILE) + " " + MakePath(szDestPath, APPLICATION_EXE_FILE) + " " + MakePath(szDestPath, APPLICATION_PENGE_FILE) + " " + szSamplerPath$
  477.         CreateProgmanItem STR_COMPANYNAME, STR_PRODUCTNAME, szInf, szInf, cmoOverwrite
  478.         CreateProgmanItem STR_COMPANYNAME, STR_README, EDITOR_EXE + MakePath(szDestPath, APPLICATION_README_FILE), "", cmoOverwrite
  479.         '$IFDEF WITH_ORDERING_INFO
  480.         CreateProgmanItem STR_COMPANYNAME, STR_ORDER, EDITOR_EXE + MakePath(szWinDrive + ":" + DKREG_INI_DIR, ORDER_FILE), "", cmoOverwrite
  481.         '$ENDIF
  482. '    end if
  483.  
  484. '$ELSE
  485.     'NO SAMPLER
  486. '    if szMinimalInstall = "ON" then
  487. '        szInf$ = MakePath(szSrcBinPath, APPLICATION_EXE_FILE) + " " + MakePath(szSrcBinPath, "dkpage")'APPLICATION_PENGE_FILE)
  488. '        CreateProgmanItem STR_COMPANYNAME, STR_PRODUCTNAME, szInf, szInf, cmoOverwrite
  489. '        CreateProgmanItem STR_COMPANYNAME, STR_README, EDITOR_EXE + MakePath(szSrcBinPath, APPLICATION_README_FILE), "", cmoOverwrite
  490. '    else
  491.         szInf$ = MakePath(szDestPath, APPLICATION_EXE_FILE) + " " + MakePath(szDestPath, "dkpage")'APPLICATION_PENGE_FILE)
  492.         CreateProgmanItem STR_COMPANYNAME, STR_PRODUCTNAME, szInf, szInf, cmoOverwrite
  493.         CreateProgmanItem STR_COMPANYNAME, STR_README, EDITOR_EXE + MakePath(szDestPath, APPLICATION_README_FILE), "", cmoOverwrite
  494.  
  495.         '$IFDEF WITH_ORDERING_INFO
  496.         CreateProgmanItem STR_COMPANYNAME, STR_ORDER, EDITOR_EXE + MakePath(szWinDrive + ":" + DKREG_INI_DIR, ORDER_FILE), "", cmoOverwrite
  497.         '$ENDIF
  498.  
  499.         '$IFDEF WITH_FULL_SAMPLER
  500.         CreateProgmanItem STR_COMPANYNAME, STR_SAMPLER, MakePath(szFullSampPath, SAMPLER_EXE_FILE), "", cmoOverwrite
  501.         CreateProgmanItem STR_COMPANYNAME, STR_SAMPLER_README, MakePath(szFullSampPath, SAMPLER_README_FILE), "", cmoOverwrite
  502.         '$ENDIF
  503.  
  504. '    end if
  505. '$ENDIF
  506. '---
  507.  
  508.     '+++
  509.     '$IFDEF WITH_UNINSTALL
  510.  
  511.         'Uninstall icon
  512.         szDKUninstall$ = szWinDrive + ":" +  DKREG_INI_DIR
  513.         szInf$ = MakePath( szDKUninstall, UNINSTALL_EXE_FILE)
  514.         CreateProgmanItem STR_COMPANYNAME, STR_UNINSTALL, szInf, szInf, cmoOverwrite
  515.     '$ENDIF
  516.     '---
  517.  
  518. '$IFDEF DEBUG
  519.  
  520.     DumpCopyList MakePath(szDestPath, "copylist.txt")
  521.  
  522. '$ENDIF
  523.  
  524.     RestoreCursor( dCursor )
  525.  
  526.     If EndCommonInstall( APPLICATION_README_FILE, 0, EDITOR_EXE ) = NAV_EXIT then
  527.         stop
  528.         end
  529.     endif
  530.  
  531. quit:
  532.     on error goto quit
  533.  
  534.     select case ERR
  535.  
  536.     case 0
  537.         hDlg = DLG_SUCCESS
  538.     case STFQUIT
  539.         hDlg = DLG_BADEXIT
  540.     case ERR_NODISKSPACE
  541.         hDlg = DLG_NODISKSPACE
  542.     case else
  543.         hDlg = DLG_ABORT
  544.     end select
  545.  
  546.     UIPop 10
  547. quit2:
  548.     szButton = UIStartDlg(CUIDLL_FILENAME, hDlg, "FInfo0DlgProc", 0, "")
  549.     select case szButton
  550.     case "REACTIVATE"
  551.         goto quit2
  552.     end select
  553.  
  554.     UIPop 1
  555.     DeInitialise
  556.     stop
  557.     end
  558.  
  559. quitError:
  560.     dButton = DoMsgBox (STR_QUITERROR, STR_MSGCAPTION, MB_OK+MB_TASKMODAL+MB_ICONHAND)
  561.     DeInitialise
  562.     stop
  563.     end
  564.  
  565.  
  566. '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  567.  
  568. Sub Install() STATIC
  569.  
  570.     cursor% = ShowWaitCursor()
  571.     CreateDir szDestPath, cmoNone
  572.  
  573.     '$IFNDEF NEEDS_WIN32S
  574.         SetRestartDir szDestPath    '   Already set if needs Win32s
  575.     '$ENDIF
  576.  
  577.     RestoreCursor(cursor%)
  578.  
  579.     CopyFilesInCopyList  'creates dir even if min install
  580.  
  581.     '+++
  582.     '$IFDEF NEEDS_VFW
  583.  
  584.         ' Don't need to install VFW on Windows 95, it is already there.
  585.         if OS_Windows95 = 0 then
  586.  
  587.             Run ("regedit.exe /s " + MakePath(szWinPath, "mplayer.reg"))
  588.             Run ("regedit.exe /s " + MakePath(szWinSysPath, "OLE2.reg"))
  589.  
  590.             '+++
  591.             '$IFNDEF NEEDS_WIN32S
  592.                 ' NOT with WIN32S
  593.                 Run ("regedit.exe /s " + MakePath(szWinSysPath, "cleanup.reg"))
  594.             '$ENDIF
  595.             '---
  596.  
  597.             Run ("profdisp.exe")
  598.  
  599.         end if
  600.     '$ENDIF
  601.     '---
  602.  
  603.     if INI_FILE_SOURCE = "AppPath" then
  604.         szAppINIPath = MakePath(szDestPath, APPLICATION_INI_FILE)
  605.     else
  606.         szAppINIPath = MakePath(szWinPath, APPLICATION_INI_FILE)
  607.     end if
  608.  
  609.        '=d:\                                    =d:\dksetup                =dksetup
  610.     szPengePath = mid$(szSrcSetupPath, 1,len(szSrcSetupPath)-len(SOURCE_SETUP_SUBDIR)-2) ' -2 removes backslash
  611.  
  612. '+++
  613. '$IFDEF WITH_SAMPLER
  614.         szSampINIPath = MakePath(szDestPath, SAMPLER_INI_FILE)
  615.         'data =
  616.         szSampData = szPengePath + "\" + SAMPLER_PATH
  617.         CreateIniKeyValue szSampINIPath, PRODUCT_INI_DIR_SECTION_NAME, PRODUCT_INI_DIR_ENTRY_NAME, szSampData, cmoOverwrite
  618.         'volumelabel =
  619.         szCdDrive$ = mid$( szSrcSetupPath, 1, 1 )
  620.         szCdVolumeLabel$ = STRING$( 20, 32 )
  621.         if( GetCdVolumeLabel( szCdVolumeLabel$, szCdDrive$ ) ) then
  622.             CreateIniKeyValue MakePath(szDestPath, SAMPLER_INI_FILE), PRODUCT_INI_DIR_SECTION_NAME, "VolumeLabel", szCdVolumeLabel$, cmoOverwrite
  623.         endif
  624. '$ENDIF
  625. '---
  626.  
  627. '+++
  628. '$IFDEF WITH_FULL_SAMPLER
  629.         szSampINIPath = MakePath(szFullSampPath, SAMPLER_INI_FILE)
  630.         'data =
  631.         szSampData = szPengePath + "\" + SAMPLER_PATH
  632.         CreateIniKeyValue szSampINIPath, PRODUCT_INI_DIR_SECTION_NAME, PRODUCT_INI_DIR_ENTRY_NAME, szSampData, cmoOverwrite
  633. ' Don't want to force a specific cd for the full sampler!
  634. '        'volumelabel =
  635. '        szCdDrive$ = mid$( szSrcSetupPath, 1, 1 )
  636. '        szCdVolumeLabel$ = STRING$( 20, 32 )
  637. '        if( GetCdVolumeLabel( szCdVolumeLabel$, szCdDrive$ ) ) then
  638. '            CreateIniKeyValue MakePath(szDestPath, SAMPLER_INI_FILE), PRODUCT_INI_DIR_SECTION_NAME, "VolumeLabel", szCdVolumeLabel$, cmoOverwrite
  639. '        endif
  640. '$ENDIF
  641. '---
  642.  
  643. '+++
  644. '$IFDEF SCRUNGED
  645.  
  646. '    if szMinimalInstall = "OFF"  then
  647.         'data =
  648.         CreateIniKeyValue szAppINIPath, PRODUCT_INI_DIR_SECTION_NAME, PRODUCT_INI_DIR_ENTRY_NAME, szPengePath, cmoOverwrite
  649. '    endif
  650.  
  651. '$ELSE
  652.  
  653.     'DEBUG VERSION
  654.     'data =
  655.     CreateIniKeyValue szAppINIPath, PRODUCT_INI_DIR_SECTION_NAME, PRODUCT_INI_DIR_ENTRY_NAME, MakePath(szPengePath,"data"), cmoOverwrite
  656.     'pages =
  657.     CreateIniKeyValue szAppINIPath, PRODUCT_INI_DIR_SECTION_NAME, "Pages", MakePath(szPengePath,"dkpage"), cmoOverwrite
  658.     CreateIniKeyValue szAppINIPath, PRODUCT_INI_DIR_SECTION_NAME, "Scrunge", "0", cmoOverwrite
  659.     CreateIniKeyValue szAppINIPath, PRODUCT_INI_DIR_SECTION_NAME, "Developer", "1", cmoOverwrite
  660.     CreateIniKeyValue szAppINIPath, PRODUCT_INI_DIR_SECTION_NAME, "Debug", "1", cmoOverwrite
  661.  
  662. '$ENDIF
  663. '---
  664.  
  665. if APPLICATION_EXE_FILE = "sampler.exe" then
  666.     ' Add version entry from version.ini if found
  667.     szSampVersion = GetIniKeyString( MakePath( szSrcBinPath, "VERSION.INI" ), "VERSION", "VERSION" )
  668.     if len( szSampVersion ) > 0 then
  669.         CreateIniKeyValue szAppINIPath, PRODUCT_INI_DIR_SECTION_NAME, "Version", szSampVersion, cmoOverwrite
  670.     endif
  671. endif
  672.  
  673.     ' Add any custom ini entries in the function in product.inc
  674.     CustomIniEntries
  675.  
  676. End Sub
  677.  
  678. '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  679. Sub AddFilesToCopyList(szInstallType$) STATIC
  680.     cursor% = ShowWaitCursor()
  681.  
  682.     szDKUninstall$ = szWinDrive + ":" +  DKREG_INI_DIR
  683.  
  684.     'Shared Files : For ORDER.WRI & FOR MUSEUM TITLES (DKSWTCHW.EXE) Put in \MMAPP
  685.     '$IFDEF WITH_ORDERING_INFO OR NEEDS_MUSEUM_LIFT
  686.     AddSectionFilesToCopyList SETUP_INI_SH_BINARIES_SECTION_NAME, szSrcBinPath, szDKUninstall
  687.     '$ENDIF
  688.  
  689.     '+++
  690.     '$IFDEF WITH_FULL_SAMPLER
  691.  
  692.         AddSectionFilesToCopyList SAMPLER_BINARIES_SECTION_NAME, szSrcBinPath, szFullSampPath
  693.  
  694.     '$ENDIF
  695.     '---
  696.  
  697.     '+++
  698.     '$IFDEF WITH_UNINSTALL
  699.  
  700.         AddSectionFilesToCopyList "UNINSTALL", szSrcBinPath, szDKUninstall
  701.  
  702.     '$ENDIF
  703.     '---
  704.  
  705. '    select case szInstallType
  706. '    case "FULL"
  707.     AddSectionFilesToCopyList SETUP_INI_BINARIES_SECTION_NAME, szSrcBinPath, szDestPath
  708.  
  709. '    case "MINIMAL"
  710. '        ' nothing
  711. '    end select
  712.  
  713.  
  714.     '+++
  715.     '$IFDEF NEEDS_WING
  716.         AddSectionFilesToCopyList SETUP_INI_WING_BINARIES_NAME, szSrcBinPath, szWinSysPath
  717.         AddSectionFilesToCopyList SETUP_INI_WING32_BINARIES_NAME, szSrcBinPath, szWinSysPath
  718.     '$ENDIF
  719.     '---
  720.  
  721.     '+++
  722.     '$IFDEF NEEDS_VFW
  723.  
  724.         ' Don't need to install VFW on Windows 95, it is already there.
  725.         if OS_Windows95 = 0 then
  726.  
  727.             AddSectionFilesToCopyList "VfW Runtime", szSrcBinPath, szWinSysPath
  728.             AddSectionFilesToCopyList "MPlayer", szSrcBinPath, szWinPath
  729.             AddSectionFilesToCopyList "AVICodecs", szSrcBinPath, szWinSysPath
  730.  
  731.             '+++
  732.             '$IFNDEF NEEDS_WIN32S
  733.                 ' Win32s has its own 32-bit OLE
  734.                 AddSectionFilesToCopyList "OLE2", szSrcBinPath, szWinSysPath
  735.             '$ENDIF
  736.             '---
  737.         end if
  738.     '$ENDIF
  739.  
  740.     '$IFDEF NEEDS_SOUND
  741.         ' Don't need to install Sound on Windows 95, it is already there.
  742.         if OS_Windows95 = 0 then
  743.             if fSystemUpdated = 1 then
  744.                 AddSectionFilesToCopyList "ACM Drivers", szSrcBinPath, szWinSysPath
  745.             end if
  746.         end if
  747.     '$ENDIF
  748.  
  749.     RestoreCursor(cursor%)
  750. End Sub
  751.  
  752. ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  753. Sub UpdateFonts() STATIC
  754.     ' Check TT enabled
  755.     MakeListFromSectionFilename "Fonts_list", "Fonts"
  756.  
  757.     listLength% = GetListLength("Fonts_list")
  758.     if listLength% > 0 then
  759.         ' Check to see if the list is just a placeholder or a real list.
  760.         szFontFile$ = GetListItem("Fonts_list", 1)
  761.         if szFontFile <> "NOFONT.ZZZ" then
  762.             ' Do the Win.ini entries
  763.             RegisterFonts
  764.  
  765.             for item% = 1 to listLength%
  766.                 szFontFile = GetListItem("Fonts_list", item%)
  767.                 ' Check if exists
  768.                 ' Install font
  769.                 ret% = InstallFont(MakePath(szSrcBinPath, szFontFile))
  770.                 ' Write WIN.INI
  771.             next
  772.         end if
  773.     end if
  774. End Sub
  775.  
  776. ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  777. Sub CreateReg() STATIC
  778.  
  779.     ' The MMAPP.INI path
  780.     szDKRegIni = szWinDrive + ":" +  DKREG_INI_PATH
  781.  
  782.     if DoesFileExist( szDKRegIni, femExist) = 0 then
  783.         'dkreg.ini doesn't exist - initialize AppCount, create dir, add to InstalledApp
  784.         AppCount% = 1
  785.         CreateDir (szWinDrive+":"+DKREG_INI_DIR), cmoNone
  786.         CreateIniKeyValue szDKRegIni, "InstalledApp", "Applications", str$(AppCount%), cmoOverwrite
  787.         szNum$=str$(AppCount%)
  788.         CreateIniKeyValue szDKRegIni, "InstalledApp",ltrim$(szNum), STR_PRODUCTNAME, cmoOverwrite
  789.         '$IFDEF WITH_FULL_SAMPLER
  790.             ' Create separate Sampler entry
  791.             AppCount% = 2
  792.             CreateIniKeyValue szDKRegIni, "InstalledApp", "Applications", str$(AppCount%), cmoOverwrite
  793.             szNum$=str$(AppCount%)
  794.             CreateIniKeyValue szDKRegIni, "InstalledApp",ltrim$(szNum), STR_SAMPLER, cmoOverwrite
  795.         '$ENDIF
  796.     else
  797.         if DoesIniSectionExist( szDKRegIni, STR_PRODUCTNAME )=1  then
  798.             szDiffPath$=GetIniKeyString(szDKRegIni, STR_PRODUCTNAME, "Path")
  799.             if(szDestPath$  <> szDiffPath$) then
  800.                 ' product is also installed in a different dir - delete files and dir and ini section
  801.                 ret% = DeleteFiles (szDiffPath, STR_PRODUCTNAME, szDKRegIni)
  802.                 ret% = DeleteDir (szDiffPath)
  803.                 ret% = DeleteSection(STR_PRODUCTNAME, szDKRegIni)
  804.             endif
  805.             'product is installed in same dir - do nothing, has overwritten files
  806.         else
  807.               'product name does not exist - increment AppCount, add to InstalledApp
  808.                szAppCount$ = GetIniKeyString( szDKRegIni, "InstalledApp", "Applications" )
  809.                AppCount% = Val(szAppCount$) + 1
  810.                CreateIniKeyValue szDKRegIni, "InstalledApp", "Applications", str$(AppCount%), cmoOverwrite
  811.                'assign product to first available number (maybe gaps due to deletion)
  812.                i%=1
  813.                while( GetIniKeyString( szDKRegIni, "InstalledApp",str$(i%) )<>"")
  814.                    i=i+1
  815.                wend
  816.                szNum$=str$(i%)
  817.                CreateIniKeyValue szDKRegIni, "InstalledApp",ltrim$(szNum), STR_PRODUCTNAME, cmoOverwrite
  818.         endif
  819.  
  820.         '$IFDEF WITH_FULL_SAMPLER
  821.             ' Create separate Sampler entry
  822.             if DoesIniSectionExist( szDKRegIni, STR_SAMPLER )=1  then
  823.                 szDiffPath$=GetIniKeyString(szDKRegIni, STR_SAMPLER, "Path")
  824.                 if(szFullSampPath$  <> szDiffPath$) then
  825.                     ' Sampler is installed in a different dir - delete files and dir and ini section
  826.                     ret% = DeleteFiles (szDiffPath, STR_SAMPLER, szDKREgIni)
  827.                     ret% = DeleteDir (szDiffPath)
  828.                     ret% = DeleteSection(STR_SAMPLER, szDKREgIni)
  829.                 endif
  830.                 'Sampler is installed in same dir - do nothing, will overwrite files
  831.             else
  832.                 'Sampler does not exist - increment AppCount, add to InstalledApp
  833.                 szAppCount$ = GetIniKeyString( szDKRegIni, "InstalledApp", "Applications" )
  834.                 AppCount% = Val(szAppCount$) + 1
  835.                 CreateIniKeyValue szDKRegIni, "InstalledApp", "Applications", str$(AppCount%), cmoOverwrite
  836.                 'assign product to first available number (maybe gaps due to deletion)
  837.                 i%=1
  838.                 while( GetIniKeyString( szDKRegIni, "InstalledApp",str$(i%) )<>"")
  839.                     i=i+1
  840.                 wend
  841.                 szNum$=str$(i%)
  842.                 CreateIniKeyValue szDKRegIni, "InstalledApp",ltrim$(szNum), STR_SAMPLER, cmoOverwrite
  843.             endif
  844.         '$ENDIF
  845.      endif
  846.  
  847.     CreateIniKeyValue szDKRegIni, "InstalledApp","RecentLang", LANG_DLL, cmoOverwrite
  848.     CreateIniKeyValue szDKRegIni, STR_PRODUCTNAME, "Path", szDestPath, cmoOverwrite
  849.     CreateIniKeyValue szDKRegIni, STR_PRODUCTNAME, "Company", STR_COMPANYNAME, cmoOverwrite
  850.     CreateIniKeyValue szDKRegIni, STR_PRODUCTNAME, "Readme", STR_README, cmoOverwrite
  851.     CreateIniKeyValue szDKRegIni, STR_PRODUCTNAME, "Order", STR_ORDER, cmoOverwrite
  852.     CreateIniKeyValue szDKRegIni, STR_PRODUCTNAME, "Exe", APPLICATION_EXE_FILE, cmoOverwrite
  853.     CreateIniKeyValue szDKRegIni, STR_PRODUCTNAME, "1", APPLICATION_INI_FILE , cmoOverwrite  'Ini
  854. '    if szMinimalInstall = "OFF" then
  855.         MakeListFromSectionFilename "BIN_list", "BIN"
  856.         listLength% = GetListLength("BIN_list")
  857.         if listLength% > 0 then
  858.             for item% = 1 to listLength%
  859.                 szBinFile$ = GetListItem("BIN_list", item%)
  860.                 szNum$=str$(item%+1)
  861.                 CreateIniKeyValue szDKRegIni, STR_PRODUCTNAME, ltrim$(szNum), szBinFile , cmoOverwrite
  862.             next
  863.         end if
  864. '    end if
  865.  
  866. '$IFDEF WITH_SAMPLER
  867.     szNum$=str$(item%+1)
  868.     CreateIniKeyValue szDKRegIni, STR_PRODUCTNAME, ltrim$(szNum), SAMPLER_INI_FILE , cmoOverwrite
  869.     item% = item% + 1
  870. '$ENDIF
  871.  
  872.     ' Add Uninstall only files to the list
  873.     UninstallOnly( item% )
  874.  
  875.  
  876. '$IFDEF WITH_FULL_SAMPLER
  877.     ' Create entries in the sampler section
  878.     CreateIniKeyValue szDKRegIni, STR_SAMPLER, "Path", szFullSampPath, cmoOverwrite
  879.     CreateIniKeyValue szDKRegIni, STR_SAMPLER, "Company", STR_COMPANYNAME, cmoOverwrite
  880.     CreateIniKeyValue szDKRegIni, STR_SAMPLER, "Readme", STR_SAMPLER_README, cmoOverwrite
  881.     CreateIniKeyValue szDKRegIni, STR_SAMPLER, "Exe", SAMPLER_EXE_FILE, cmoOverwrite
  882.     CreateIniKeyValue szDKRegIni, STR_SAMPLER, "1", SAMPLER_INI_FILE , cmoOverwrite  'Ini
  883. '    if szMinimalInstall = "OFF" then
  884.         MakeListFromSectionFilename "SAMP_BIN_list", "SAMPBIN"
  885.         listLength% = GetListLength("SAMP_BIN_list")
  886.         if listLength% > 0 then
  887.             for item% = 1 to listLength%
  888.                 szBinFile$ = GetListItem("SAMP_BIN_list", item%)
  889.                 szNum$=str$(item%+1)
  890.                 CreateIniKeyValue szDKRegIni, STR_SAMPLER, ltrim$(szNum), szBinFile , cmoOverwrite
  891.             next
  892.         end if
  893. '    end if
  894. '$ENDIF
  895.  
  896.     ' Add fonts to the uninstall list.
  897. '    listLength% = GetListLength("Fonts_list")
  898. '    if listLength% > 0 then
  899. '        for item% = 1 to listLength%
  900. '            szFontFile$ = GetListItem("Fonts_list", item%)
  901. '            szNum$=str$(item%)
  902. '            CreateIniKeyValue szDKRegIni, STR_PRODUCTNAME,"F"+ltrim$(szNum), szFontFile, cmoOverwrite
  903. '        next
  904. '    end if
  905.  
  906. End Sub
  907.  
  908.