home *** CD-ROM | disk | FTP | other *** search
/ Computer Tool Software / soft.iso / Cdr / CORELCD / CREATR1 / SETUP.MST < prev    next >
Encoding:
Text File  |  1995-11-07  |  30.3 KB  |  985 lines

  1. ''
  2. ''   ┌──────────────────────────────────────────────────────────────┐
  3. ''   │                 Corel CD Creator Setup (.mst)                │
  4. ''   ├──────────────────────────────────────────────────────────────┤
  5. ''   │    SETUP (.mst) Script File Configuration file for:          │
  6. ''   │                                                              │
  7. ''   │     - OEM Customer: Corel Retail Version                     │
  8. ''   │     - Script Type: 'Full' CD Creator Version                 │
  9. ''   │     - Script Version: 1.02 - Build 62                        │
  10. ''   │     - Language Type: 'English'                               │
  11. ''   │     - Date Created:   June      01, 1994.                    │
  12. ''   │     - Date Modified:  November  07, 1995. by S. Racicot      │
  13. ''   ├──────────────────────────────────────────────────────────────┤
  14. ''   │ Copyright (C) 1995.  Corel Corporation   All Rights Reserved │
  15. ''   └──────────────────────────────────────────────────────────────┘
  16. ''                                                                  
  17.  
  18. ''$DEFINE DEBUG  ''Define for script development/debugging
  19.  
  20. '$INCLUDE 'setupapi.inc'
  21. '$INCLUDE 'msdetect.inc'
  22.           
  23. ''Make SetUp full screen:
  24.  
  25. CONST WS_VISIBLE    =&H10000000
  26. CONST WS_BORDER        =&H00800000
  27. CONST WSCLIPCHILDREN    =&H02000000
  28. CONST GWL_STYLE        =-16
  29. CONST SW_SHOWMAXIMIZED  =3
  30.  
  31. DECLARE FUNCTION ShowWindow LIB "user.exe" (hWnd%, iShow%) AS INTEGER
  32. DECLARE FUNCTION SetWindowLong LIB "user.exe" (hWnd%, offset%, style&) AS LONG
  33.  
  34. hWnd%=HwndFrame()
  35.  
  36. sti%=SetWindowLong(hWnd%, GWL_STYLE, WS_VISIBLE + WS_BORDER + WS_CLIPCHILDREN)
  37. stj%=ShowWindow(hWnd%, SW_SHOWMAXIMIZED)    
  38.           
  39. ''Dialog ID's
  40. CONST WELCOME           = 100
  41. CONST ASKQUIT           = 101
  42. CONST EXITFAILURE       = 102
  43. CONST UPDATEASK            = 103
  44. CONST EXITQUIT          = 104
  45. CONST RESTARTWINDOWS    = 105
  46. CONST NOWINRESTART      = 106
  47. CONST SAMEPATH          = 107
  48. CONST NOSPACE           = 108
  49. CONST BADPATH           = 109
  50. CONST MANUALUPDATE      = 110
  51. CONST AUTOUPDATE        = 111     
  52. CONST DESTPATHDRIVE     = 112
  53. CONST WINEXECFAIL       = 113
  54. CONST PATHEDIT          = 114
  55. CONST FLOPPYDRIVEEDIT   = 115
  56. CONST INVALIDDRIVE      = 116
  57. CONST SCSIPROMPT        = 117
  58.  
  59. CONST APPHELP           = 210
  60. CONST UPDATEHELP        = 211
  61. CONST DESTPATHHELP      = 212
  62.                   
  63.                   
  64. ''Billboards
  65. CONST REGISTER          = 300
  66. CONST SPLASHBB            = 301
  67. CONST DRIVERMODELESS    = 302
  68.  
  69. ''Bitmap ID
  70. CONST LOGO = 1
  71.  
  72. CONST FILES             = 1
  73. CONST WINDOWS_FILES     = 2
  74. CONST SYSTEM_FILES      = 3
  75. CONST OLE_DLL_FILES     = 4
  76. CONST STDOLE_FILES      = 5
  77. CONST OLEREG_FILES      = 6
  78. CONST VSHARE_FILES      = 7
  79. CONST IOSUBSYS_FILES    = 8
  80.  
  81. GLOBAL DEST$        ''Default destination directory.
  82. GLOBAL STATUSTEXT$
  83. GLOBAL DRIVETEXT$ 
  84. GLOBAL DRIVELIST$
  85. GLOBAL LOCALDRIVELIST$
  86. GLOBAL EXTRACOSTS$
  87. GLOBAL NUMBEROFDRIVES$
  88.  
  89. GLOBAL UPDATEMODE%    ''=0 for manual update, =1 for automated update
  90. GLOBAL SECONDUPDATE%    ''set to 1 if update selected on second chance
  91.  
  92. GLOBAL FILESNEED$
  93. GLOBAL WINDOWSFILESNEED$
  94. GLOBAL SYSTEMFILESNEED$
  95. GLOBAL OLEDLLFILESNEED$
  96. GLOBAL STDOLEFILESNEED$
  97. GLOBAL OLEREGFILESNEED$
  98. GLOBAL VSHAREFILESNEED$
  99. GLOBAL IOSUBSYSFILESNEED$
  100.  
  101. DECLARE SUB Install
  102. DECLARE SUB DriversInstall
  103. DECLARE SUB SetDriveStatus
  104. DECLARE SUB RecalcPath 
  105. DECLARE SUB AddOptFilesToCopyList (ftype%, SrcDir$)                          ''J.B.
  106. DECLARE SUB RecalcOptFiles (ftype%)
  107. DECLARE SUB DoBackGround 
  108.  
  109.  
  110. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  111. DECLARE FUNCTION FileDate (szDateOfSource$, szDateOfDest$) AS STRING
  112. DECLARE FUNCTION FileName (szUncompName$, szCompName$) AS STRING
  113. DECLARE FUNCTION UTLSysIniKeyValueExist LIB "cdw_cust.dll" (FILENAME$, SECTION$, KEY$, VALUE$) AS INTEGER
  114. DECLARE FUNCTION WinExec LIB "krnl386.exe" (CMDLINE$, CMDSHOW%) AS INTEGER  
  115.  
  116. ''------------------------------------------------------------------------------------
  117. '' Chicago
  118.  
  119.   GLOBAL WinVer%
  120.   GLOBAL Win95%
  121.  
  122.   WinVer% = GetWindowsMajorVersion()*100 + GetWindowsMinorVersion()
  123.   Win95%  = (WinVer% >= 395)
  124.  
  125. ''  
  126. ''------------------------------------------------------------------------------------
  127.        
  128.        
  129. INIT:
  130.     CUIDLL$     = "cdw_cust.dll"            ''Custom user interface dll
  131.     HELPPROC$ = "FHelpDlgProc"          ''Help dialog procedure
  132.  
  133.     SetBitmap CUIDLL$, LOGO
  134.     SetTitle "Corel CD Creator Setup"
  135.  
  136.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  137.     IF szInf$ = "" THEN
  138.         szInf$ = GetSymbolValue("STF_CWDDIR") + "SETUP.INF"
  139.     END IF
  140.     ReadInfFile szInf$
  141.  
  142.     OPTCUR$ = "1"
  143.     
  144.     IniFile$ = "win.ini"
  145.     IF (DoesIniKeyExist(IniFile$, "CDCreator", "installed") = 0 ) THEN
  146.             DEST$   = "C:\CDCREATR" 
  147.         ELSE
  148.             DEST$ = GetIniKeyString(IniFile$, "CDCreator", "installed")
  149.             IF DEST$="" THEN
  150.               DEST$ = "C:\CDCREATR" ''JanB
  151.             END IF
  152.         END IF
  153.             
  154.     
  155.     FILESNEED$          = "Files"
  156.     WINDOWSFILESNEED$   = "Windows_Files"
  157.     SYSTEMFILESNEED$    = "System_Files"
  158.     OLEDLLFILESNEED$    = "OLE_DLL_Files"
  159.     STDOLEFILESNEED$    = "StdOLE_Files"
  160.     OLEREGFILESNEED$    = "OLEReg_Files"
  161.     VSHAREFILESNEED$    = "VSHARE_Files"
  162.     IOSUBSYSFILESNEED$  = "IOSUBSYS_Files"
  163.  
  164.     STATUSTEXT$       = "StatusItemsText"
  165.     DRIVETEXT$        = "DriveStatusText" 
  166.     DRIVELIST$        = "Drives"
  167.     LOCALDRIVELIST$   = "LocalDrives" 
  168.     EXTRACOSTS$       = "ExtraCosts"
  169.     NUMBEROFDRIVES$   = "NumDrives"
  170.  
  171.     FOR i% = 1 TO 11 STEP 1
  172.        AddListItem STATUSTEXT$, ""
  173.     NEXT i%
  174.  
  175.     FOR i% = 1 TO 7 STEP 1
  176.        AddListItem DRIVETEXT$,""
  177.     NEXT i% 
  178.     
  179.     FOR i% = 1 TO 26 STEP 1
  180.        AddListItem DRIVELIST$,""
  181.     NEXT i% 
  182.     
  183.     FOR i% = 1 TO 4 STEP 1
  184.        AddListItem LOCALDRIVELIST$,"-"
  185.     NEXT i% 
  186.     
  187.     FOR i% = 1 TO 26 STEP 1
  188.         AddListItem EXTRACOSTS$, "0"
  189.     NEXT i%
  190.  
  191.     FOR i% = 1 TO 2 STEP 1
  192.         AddListItem NUMBEROFDRIVES$, "1"
  193.     NEXT i%
  194.  
  195.     drive$ = MID$(DEST$, 1, 1)
  196.     free& = GetFreeSpaceForDrive(drive$)
  197.       ReplaceListItem DRIVETEXT$, 1, DEST$
  198.     ReplaceListItem DRIVETEXT$, 3, STR$(free& / 1024) + " K"
  199.  
  200.     i% = SetSizeCheckMode(scmOff)    ''turn off file size checking error
  201.  
  202.       AddToBillboardList CUIDLL$, REGISTER, "FModelessBillBoardDlgProc", 1  
  203.  
  204.  
  205. '$IFDEF DEBUG
  206. '    i% = SetSizeCheckMode(scmOnIgnore)    '' could use scmOff; def = scmOnFatal
  207.     WinDrive$ = MID$(GetWindowsDir, 1, 1)
  208.     IF IsDriveValid(WinDrive$) = 0 THEN
  209.         i% = DoMsgBox("Windows drive ('"+WinDrive$+"') is not a valid drive.", "DEBUG", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  210.         GOTO QUIT
  211.     END IF
  212. '$ENDIF ''DEBUG    
  213.  
  214.  
  215. WELCOME:
  216.         DoBackGround
  217. WELCOME1:
  218.     sz$ = UIStartDlg(CUIDLL$, WELCOME, "FEditDlgProc", APPHELP, HELPPROC$)
  219.     IF sz$ = "CONTINUE" THEN
  220.         UIPop 1
  221.     ELSEIF sz$ = "REACTIVATE" THEN
  222.         GOTO WELCOME1
  223.     ELSE
  224.         GOSUB ASKQUIT
  225.         GOTO WELCOME1
  226.     END IF
  227.          
  228. GETPATH:
  229.     DEST$ = GetListItem(DRIVETEXT$, 1)
  230.         cost& = 0        
  231.     RecalcPath
  232.         SetDriveStatus
  233.     GetLocalHardDrivesList DRIVELIST$
  234.     ListLength% = GetListLength(DRIVELIST$)
  235.     IF ListLength% = 1 THEN
  236.            HardDrive$ = GetListItem(DRIVELIST$, 1)
  237.             freedrivespace& = GetFreeSpaceForDrive(HardDrive$)
  238.              ReplaceListItem LOCALDRIVELIST$, 1, HardDrive$ + ":" + STR$(freedrivespace& / 1024) + " K"
  239.              ReplaceListItem LOCALDRIVELIST$, 1 + 2, STR$(freedrivespace& / 1024) + " K"
  240.     ELSEIF ListLength% >= 2 THEN
  241.              ReplaceListItem NUMBEROFDRIVES$, 1, "2"
  242.         FOR i% = 1 TO 2 STEP 1 
  243.             HardDrive$ = GetListItem(DRIVELIST$, i%)
  244.                  freedrivespace& = GetFreeSpaceForDrive(HardDrive$)
  245.                ReplaceListItem LOCALDRIVELIST$, i%, HardDrive$ + ":" + STR$(freedrivespace& / 1024) + " K"
  246.                ReplaceListItem LOCALDRIVELIST$, i% + 2, STR$(freedrivespace& / 1024) + " K"
  247.         NEXT i%
  248.     END IF
  249. GETPATH1:
  250.     sz$ = UIStartDlg(CUIDLL$, DESTPATHDRIVE, "FPathDlgBoxProc", DESTPATHHELP, HELPPROC$)
  251.     DEST$ = GetListItem(DRIVETEXT$, 1)
  252.  
  253.     IF sz$ = "CONTINUE" THEN
  254.             szFileCheck$ = DEST$ + "\cdcreatr.exe" 
  255.         IF DoesFileExist(szFileCheck$, femExists) = 1 THEN
  256.             UIPop 1
  257.             GOTO SAMEPATHWARNING
  258.         END IF
  259.         UIPop 1
  260.     ELSEIF sz$ = "REACTIVATE" THEN
  261.         GOTO GETPATH1
  262.     ELSEIF sz$ = "PATH EDIT" THEN 
  263.             UIPop 1
  264.         GOTO EDITPATH
  265.         GOTO GETPATH
  266.     ELSE
  267.         GOSUB ASKQUIT
  268.         GOTO GETPATH1
  269.     END IF
  270.  
  271.  
  272. CHECKDISK:
  273.         cost& = 0
  274.     RecalcPath
  275.       SetDriveStatus
  276.       cost& = VAL(GetListItem(DRIVETEXT$, 2))
  277.       free& = VAL(GetListItem(DRIVETEXT$, 3))
  278.  
  279.     IF ( cost& > free& ) THEN
  280.         GOSUB INSUFFICIENTSPACE
  281.         ENDIF
  282.  
  283.  
  284. UPDATEPROMPT:
  285.     sz$ = UIStartDlg(CUIDLL$, UPDATEASK, "FEditDlgProc", UPDATEHELP, HELPPROC$)
  286.     IF sz$ = "CONTINUE" THEN
  287.                 UPDATEMODE% = 1   '' automated update
  288.         UIPop 1
  289.     ELSEIF sz$ = "REACTIVATE" THEN
  290.         GOTO UPDATEPROMPT
  291.     ELSE
  292.                 UPDATEMODE% = 0        '' manual update
  293.         UIPop 1
  294.     END IF
  295.  
  296.  
  297. Install  
  298.  
  299.  
  300. REGISTEROLE:
  301.     windows$ = GetWindowsDir()
  302.     winsystem$ = windows$ + "SYSTEM"
  303.       winDrive$ = MID$(windows$, 1, 1)
  304.     IF GetWindowsMajorVersion() = 3 THEN
  305.       
  306.       '' JanB:
  307.       szRegload$ = GetSymbolValue("STF_CWDDIR") + "REGLOAD.EXE /S " + winsystem$ + "\OLE2.REG"
  308.       '' was:
  309.         '' szFile$ = winDrive$ + ":\corelcdc.tmp\REGLOAD.EXE" 
  310.       '' IF DoesFileExist(szFile$, femExists) = 1 THEN
  311.         ''   szRegload$ = winDrive$ + ":\corelcdc.tmp\REGLOAD.EXE /S " + winsystem$ + "\OLE2.REG"
  312.         '' ELSE
  313.         ''   szRegload$ = winDrive$ + ":\windows\corelcdc.tmp\regload.exe /S " + winsystem$ + "\OLE2.REG"
  314.         '' END IF
  315.  
  316.            i%=WinExec(szRegload$, 8)                   ''8 is sw_showna  
  317.         IF i% < 32 THEN
  318.             sz$ = UIStartDlg(CUIDLL$, WINEXECFAIL, "FInfo0DlgProc", 0, "")
  319.             IF sz$ = "REACTIVATE" THEN
  320.             GOTO REGISTEROLE
  321.             ELSEIF sz$ = "CONTINUE" THEN
  322.                 UIPop 1
  323.             END IF 
  324.             ERR = 1
  325.           END IF
  326.       END IF
  327.  
  328.                   
  329.                   
  330. RECORDERDRIVERS:
  331.         SrcDir$ = GetSymbolValue("STF_SRCDIR")
  332.         szOemFileCheck$ = SrcDir$ + "cdrdrvs.inf"
  333.         ReplaceListItem DRIVETEXT$, 5, szOemFileCheck$ 
  334.         ReplaceListItem DRIVETEXT$, 6, szOemFileCheck$ 
  335.         ReplaceListItem DRIVETEXT$, 7, SrcDir$ 
  336. ''i% = DoMsgBox(szOemFileCheck$, "Debug Message", MB_OK)
  337.     IF DoesFileExist(szOemFileCheck$, femExists) = 0 THEN
  338.             sz$ = UIStartDlg(CUIDLL$, FLOPPYDRIVEEDIT, "FEditDriveDlgProc", 0, "")
  339.             IF sz$ = "REACTIVATE" THEN
  340.              GOTO RECORDERDRIVERS
  341.         ELSEIF sz$ = "CONTINUE" THEN 
  342.             IF GetListItem(DRIVETEXT$, 5) = "" THEN
  343.                 UIPop 1
  344.               GOSUB INVALIDDRIVE
  345.               GOTO RECORDERDRIVERS
  346.           END IF
  347.             UIPop 1
  348.             END IF  
  349.     END IF
  350.  
  351.  
  352. DriversInstall
  353.  
  354.  
  355. QUIT:
  356.     ON ERROR GOTO ERRQUIT
  357.     UIPopAll
  358.     DoBackGround
  359.                       
  360.         bDlg = 0
  361.         SECONDUPDATE% = 0
  362.     IF ERR = 0 THEN
  363.       bDlg = 1
  364.             IF UPDATEMODE% = 0 THEN
  365.                 GOSUB UPDATECHANCE2                      
  366.            ELSE    
  367.                dlg% = AUTOUPDATE
  368.       END IF
  369.     ELSEIF ERR = STFQUIT THEN
  370.         dlg% = EXITQUIT
  371.     ELSE
  372.         dlg% = EXITFAILURE
  373.     END IF
  374. QUIT1:
  375.         IF SECONDUPDATE% = 0 THEN
  376.         sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
  377.         IF sz$ = "REACTIVATE" THEN
  378.             GOTO QUIT1
  379.         END IF
  380.         UIPop 1
  381.       END IF
  382. QUIT2:        
  383.     IF bDlg = 1 THEN
  384.         IF ERR = 0 THEN
  385.             sz$ = UIStartDlg(CUIDLL$, SCSIPROMPT, "FEditDlgProc", APPHELP, HELPPROC$)
  386.             IF sz$ = "CONTINUE" THEN
  387.             UIPop 1
  388.             ELSEIF sz$ = "REACTIVATE" THEN
  389.             GOTO QUIT2
  390.             END IF
  391.            END IF
  392. QUIT3:        
  393.         IF UPDATEMODE% = 0 THEN
  394.             sz$ = UIStartDlg(CUIDLL$, NOWINRESTART, "FEditDlgProc", APPHELP, HELPPROC$)
  395.             IF sz$ = "CONTINUE" THEN
  396.                 UIPop 1
  397.             ELSE
  398.                 GOTO QUIT3
  399.             END IF
  400.         ELSE    
  401.                 SrcDir$ = GetSymbolValue("STF_SRCDIR")
  402.                 szPathsome$ = SrcDir$ + "CDW_REBT.EXE /DOBOOT"
  403.                sz$ = UIStartDlg(CUIDLL$, RESTARTWINDOWS, "FInfo1DlgProc", 0, "")
  404.              IF sz$ = "RESTART WINDOWS" THEN
  405.                     i%=WinExec(szPathsome$, 8)                   ''8 is sw_showna
  406.                     UIPop 1
  407.           ELSEIF sz$ = "RETURN TO WINDOWS" THEN
  408.                 UIPop 1        
  409.           END IF
  410.       END IF    
  411.     END IF
  412.     
  413.     END
  414.  
  415.      
  416.      
  417. INSUFFICIENTSPACE:
  418.         freespace$ = GetListItem(DRIVETEXT$, 3)
  419.         sz$ = UIStartDlg(CUIDLL$, NOSPACE, "FCustInstDlgProc", 0, "")
  420.         IF sz$ = "REACTIVATE" THEN
  421.          GOTO INSUFFICIENTSPACE
  422.     ELSEIF sz$ = "BACK" THEN
  423.         UIPop 1
  424.         GOTO GETPATH
  425.     ELSEIF sz$ = "EXIT" THEN
  426.             GOSUB ASKQUIT 
  427.             GOTO INSUFFICIENTSPACE
  428.         END IF
  429.         RETURN             
  430.                     
  431.                      
  432. EDITPATH:
  433.     SetSymbolValue "EditTextIn", DEST$
  434.     SetSymbolValue "EditFocus", "END" 
  435.         sz$ = UIStartDlg(CUIDLL$, PATHEDIT, "FEditPathDlgProc", 0, "")
  436.     DEST$ = GetSymbolValue("EditTextOut")
  437.         IF sz$ = "REACTIVATE" THEN
  438.          GOTO EDITPATH
  439.     ELSE
  440.           TempDrive$ = MID$(DEST$, 1, 1)
  441.       IF IsDriveValid(TempDrive$) = 0 THEN
  442.           GOSUB BADPATH
  443.           GOTO EDITPATH
  444.       END IF
  445.       IF IsDirWritable(DEST$) = 0 THEN 
  446.           GOSUB BADPATH
  447.           GOTO EDITPATH
  448.       END IF
  449.         UIPop 1
  450.         GOTO GETPATH
  451.         END IF  
  452.           
  453.         
  454.                          
  455. SAMEPATHWARNING:
  456.         sz$ = UIStartDlg(CUIDLL$, SAMEPATH, "FInfo1DlgProc", 0, "")
  457.         IF sz$ = "REACTIVATE" THEN
  458.          GOTO SAMEPATHWARNING
  459.     ELSEIF sz$ = "BACK" THEN
  460.         UIPop 1
  461.         GOTO GETPATH
  462.     ELSEIF sz$ = "CONTINUE" THEN
  463.         UIPop 1
  464.             GOTO CHECKDISK
  465.         END IF  
  466.         RETURN                   
  467.            
  468.                            
  469. UPDATECHANCE2: 
  470.     sz$ = UIStartDlg(CUIDLL$, MANUALUPDATE, "FUpdateDlgProc", 0, "")
  471.     IF sz$ = "CONTINUE" THEN
  472.       UIPop 1
  473.             UPDATEMODE% = 0
  474.             SECONDUPDATE% = 1
  475.         ELSEIF sz$ = "REACTIVATE" THEN
  476.       GOTO UPDATECHANCE2
  477.        ELSEIF sz$ = "UPDATE" THEN
  478.         systemini$ = GetWindowsDir() + "SYSTEM.INI" 
  479.             RemoveFile MakePath(DEST$, "system.new"), cmoForce
  480.          CopyFile MakePath(windows$, "system.ini"), MakePath(DEST$, "system.old"), cmoOverwrite, 0
  481.             IF (UTLSysIniKeyValueExist(systemini$, "386Enh", "device", "corelcdw.386") = 0)  THEN
  482.              CreateSysIniKeyValue systemini$, "386Enh", "device", "corelcdw.386", cmoOverwrite
  483.         END IF
  484.         IF (UTLSysIniKeyValueExist(systemini$, "386Enh", "device", "vshare.386") = 0)  THEN
  485.               CreateSysIniKeyValue systemini$, "386Enh", "device", "vshare.386", cmoOverwrite
  486.         END IF
  487.           UIPop 1
  488.             UPDATEMODE% = 1  
  489.             SECONDUPDATE% = 0
  490.             dlg% = AUTOUPDATE
  491.         END IF 
  492.     RETURN
  493.          
  494.          
  495.  
  496. ERRQUIT:
  497.     i% = DoMsgBox("Setup sources were corrupted, Call CorelSCSI Technical Support 613-728-1010!", "Setup Message", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  498.     END
  499.  
  500.  
  501.  
  502. BADPATH:
  503.     sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "")
  504.     IF sz$ = "REACTIVATE" THEN
  505.         GOTO BADPATH
  506.     END IF
  507.     UIPop 1
  508.     RETURN
  509.  
  510.  
  511.  
  512. INVALIDDRIVE:
  513.     sz$ = UIStartDlg(CUIDLL$, INVALIDDRIVE, "FInfo0DlgProc", 0, "")
  514.     IF sz$ = "REACTIVATE" THEN
  515.         GOTO INVALIDDRIVE
  516.     END IF
  517.     UIPop 1
  518.     RETURN
  519.  
  520.  
  521.  
  522. ASKQUIT:
  523.     sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  524.  
  525.     IF sz$ = "EXIT" THEN
  526.         UIPopAll
  527.         DoBackGround 
  528.         ERROR STFQUIT
  529.     ELSEIF sz$ = "REACTIVATE" THEN
  530.         GOTO ASKQUIT
  531.     ELSE
  532.         UIPop 1
  533.     END IF
  534.     RETURN
  535.  
  536.  
  537.  
  538.  
  539. '**
  540. '** Purpose:
  541. '**     Builds the copy list and performs all installation operations.
  542. '** Arguments:
  543. '**     none.
  544. '** Returns:
  545. '**     none.
  546. '*************************************************************************
  547. SUB Install STATIC
  548.  
  549.     UIPopAll
  550.     ClearCopyList
  551.      
  552.        SrcDir$ = GetSymbolValue("STF_SRCDIR")
  553.     CreateDir DEST$, cmoNone
  554.     windows$ = GetWindowsDir()
  555.     winsystem$ = windows$ + "SYSTEM"
  556.  
  557.     AddOptFilesToCopyList FILES, SrcDir$                                     ''J.B.
  558.     AddOptFilesToCopyList WINDOWS_FILES, SrcDir$                             ''J.B.
  559.     AddOptFilesToCopyList SYSTEM_FILES, SrcDir$                              ''J.B.
  560.     IF GetWindowsMajorVersion() = 3 THEN
  561.         AddOptFilesToCopyList OLE_DLL_FILES, SrcDir$                           ''J.B.
  562.         AddOptFilesToCopyList STDOLE_FILES, SrcDir$                            ''J.B.
  563.         AddOptFilesToCopyList OLEREG_FILES, SrcDir$                            ''J.B.
  564.       END IF
  565.     AddOptFilesToCopyList VSHARE_FILES, SrcDir$                              ''J.B.
  566.     IF Win95% THEN
  567.       AddOptFilesToCopyList IOSUBSYS_FILES, SrcDir$                          ''J.B.
  568.     END IF
  569.     
  570.     CursorSave% = ShowWaitCursor()
  571.     CopyFilesInCopyList
  572.     RestoreCursor CursorSave%
  573.  
  574.     groupname$ = "Corel Multimedia"
  575.  
  576.     CreateProgmanGroup groupname$, "", cmoVital
  577.     ShowProgmanGroup groupname$, 1, cmoVital
  578.  
  579.     CreateProgmanItem  groupname$, "Corel CD Creator", DEST$+"\CDCreatr.exe", "", cmoOverwrite
  580.  
  581.     CreateProgmanItem  groupname$, "PCD Creator", DEST$+"\PCDCrtr.exe", "", cmoOverwrite
  582.  
  583. ''    CreateProgmanItem  groupname$, "Session Changer ", DEST$+"\ChgSesn.exe", "", cmoOverwrite
  584.  
  585.     CreateProgmanItem  groupname$, "CDBrowser", DEST$+"\cdbrowse.exe", "", cmoOverwrite
  586.  
  587.     CreateProgmanItem  groupname$, "Wave Edit", DEST$+"\windat.exe", "", cmoOverwrite
  588.  
  589.     systemini$ = GetWindowsDir() + "SYSTEM.INI" 
  590.  
  591.       IF (UPDATEMODE% = 0) THEN
  592.          CopyFile MakePath(windows$, "system.ini"), MakePath(DEST$, "system.new"), cmoOverwrite, 0
  593.              systemini$ = MakePath(DEST$, "system.new")    
  594.             IF (UTLSysIniKeyValueExist(systemini$, "386Enh", "device", "corelcdw.386") = 0)  THEN
  595.              CreateSysIniKeyValue systemini$, "386Enh", "device", "corelcdw.386 ;added by Corel CD Creator", cmoOverwrite
  596.         END IF
  597.         IF (UTLSysIniKeyValueExist(systemini$, "386Enh", "device", "vshare.386") = 0)  THEN
  598.               CreateSysIniKeyValue systemini$, "386Enh", "device", "vshare.386", cmoOverwrite
  599.         END IF
  600.        ELSE
  601.          CopyFile MakePath(windows$, "system.ini"), MakePath(DEST$, "system.old"), cmoOverwrite, 0
  602.             IF (UTLSysIniKeyValueExist(systemini$, "386Enh", "device", "corelcdw.386") = 0)  THEN
  603.              CreateSysIniKeyValue systemini$, "386Enh", "device", "corelcdw.386 ;added by Corel CD Creator", cmoOverwrite
  604.         END IF
  605.         IF (UTLSysIniKeyValueExist(systemini$, "386Enh", "device", "vshare.386") = 0)  THEN
  606.               CreateSysIniKeyValue systemini$, "386Enh", "device", "vshare.386", cmoOverwrite
  607.         END IF
  608.     END IF
  609.                    
  610.        CopyFile MakePath(windows$, "win.ini"), MakePath(DEST$, "win.old"), cmoOverwrite, 0
  611.     CreateIniKeyValue "win.ini", "CDCreator", "installed", DEST$, cmoOverwrite
  612.                    
  613. END SUB
  614.  
  615.  
  616.  
  617. '**
  618. '** Purpose: Copy the CD Recorded Device Drivers to the install Dir.
  619. '**     Builds the copy list and performs all installation operations.
  620. '** Arguments:
  621. '**     none.
  622. '** Returns:
  623. '**     none.
  624. '*************************************************************************
  625. SUB DriversInstall STATIC
  626.  
  627.     UIPopAll
  628.     ClearCopyList
  629.      
  630.     szInf$ = GetListItem(DRIVETEXT$, 5)
  631.     ReadInfFile szInf$
  632.  
  633.     IF DoesFileExist(GetListItem(DRIVETEXT$, 6), femExists) = 0 THEN
  634.       SrcDir$ = ""
  635.       SrcDir$ = MID$(GetListItem(DRIVETEXT$, 5), 1, 1) + ":\"
  636.     ELSE
  637.       SrcDir$ = GetListItem(DRIVETEXT$, 7)
  638.     END IF
  639.  
  640.     AddSectionFilesToCopyList "Drivers", SrcDir$, DEST$
  641.  
  642. ''    OldIni$ = MakePath(GetWindowsDir(),"cdcreatr.ini")
  643. ''    Backup$ = MakePath(DEST$,"cdcr_ini.old")
  644.  
  645. ''    IF DoesFileExist(OldIni$,femExists) THEN
  646. ''      CopyFile OldIni$,Backup$,cmoAll,0
  647. ''      RemoveFile OldIni$,cmoForce
  648. ''    END IF
  649.  
  650.     AddSectionFilesToCopyList "INI_File", SrcDir$, GetWindowsDir()
  651.     AddOptFilesToCopyList SYSTEM_FILES, SrcDir$                              ''J.B.
  652.  
  653.     IF Win95% THEN
  654.       AddSectionFilesToCopyList "IOSUBSYS_Files", SrcDir$, GetWindowsSysDir() + "IOSUBSYS" ''S.R.
  655.     END IF
  656.  
  657.     CursorSave% = ShowWaitCursor()
  658.     CopyFilesInCopyList
  659.     RestoreCursor CursorSave%
  660.  
  661.     IF DoesFileExist(DEST$ + "\readme.txt", femExists) = 1 THEN
  662.        groupname$ = "Corel Multimedia"
  663.        CreateProgmanItem  groupname$, "CD Creator ReadMe", DEST$+"\readme.txt", "", cmoOverwrite
  664.     END IF
  665.  
  666.     IF Win95% THEN
  667.        IF DoesFileExist(DEST$ + "\readme95.txt", femExists) = 1 THEN
  668.           groupname$ = "Corel Multimedia"
  669.           CreateProgmanItem  groupname$, "CD Creator Win95 ReadMe", DEST$+"\readme95.txt", "", cmoOverwrite
  670.        END IF
  671.     END IF
  672.  
  673.  
  674.  
  675.                    
  676. END SUB
  677.  
  678.  
  679.  
  680. '**
  681. '** Purpose:
  682. '**     Adds the specified option files to the copy list.
  683. '** Arguments:
  684. '**     ftype%  - type of files to add, one of the following:
  685. '**             APPFILES, OPTFILES1, OPTFILES2
  686. '** Returns:
  687. '**     none.
  688. '*************************************************************************
  689. SUB AddOptFilesToCopyList (ftype%, SrcDir$) STATIC                           ''J.B.
  690.  
  691.   windows$ = GetWindowsDir()
  692.   winsystem$ = windows$ + "SYSTEM"
  693. ''J.B.  SrcDir$ = GetSymbolValue("STF_SRCDIR")
  694.  
  695.   IF ftype% = FILES THEN
  696.       AddSectionFilesToCopyList "Files", SrcDir$, DEST$
  697. ''J.B.        SrcDir$ = ""
  698.   ELSEIF ftype% = WINDOWS_FILES THEN
  699.     AddSectionFilesToCopyList "Windows_Files", SrcDir$, windows$
  700. ''J.B.        SrcDir$ = ""
  701.   ELSEIF ftype% = OLE_DLL_FILES THEN
  702.     AddSectionFilesToCopyList "OLE_DLL_Files", SrcDir$, winsystem$
  703. ''J.B.        SrcDir$ = ""
  704.   ELSEIF ftype% = SYSTEM_FILES THEN                                  ''J.B. block changed
  705.  
  706.     szSource$ = FileName(SrcDir$+"cdcreatr\corelcdw.386",SrcDir$+"cdcreatr\corelcdw.38_") 
  707.     IF 0=DoesFileExist(SrcDir$+"cdcreatr\corelcdw.386",femExists) THEN
  708.       szSource$ = FileName(SrcDir$ + "corelcdw.386", SrcDir$ + "corelcdw.38_") 
  709.     ENDIF
  710.     
  711.     szDest$ = winsystem$ + "\corelcdw.386"
  712.     exist% = DoesFileExist(szDest$, femExists)
  713.     IF exist% = 0 THEN
  714.       AddSectionFilesToCopyList "System_Files", SrcDir$, winsystem$
  715.     ELSEIF exist% = 1 THEN
  716.       DateCheck$ = FileDate (szSource$, szDest$)
  717.       IF DateCheck$ = "Source" THEN
  718.         AddSectionFilesToCopyList "System_Files", SrcDir$, winsystem$
  719.       END IF
  720.     ENDIF
  721.  
  722. ''J.B. SrcDir$ = ""   
  723.   ELSEIF ftype% = STDOLE_FILES THEN
  724.         IF DoesFileExist(SrcDir$ + "ole\stdole.tlb", femExists) = 1 THEN
  725.               szSource$ = FileName(SrcDir$ + "ole\stdole.tlb", SrcDir$ + "ole\stdole.tl_") 
  726.         ELSE
  727.               szSource$ = FileName(SrcDir$ + "stdole.tlb", SrcDir$ + "stdole.tl_") 
  728.         ENDIF
  729.         szDest$ = winsystem$ + "\stdole.tlb"
  730.       exist% = DoesFileExist(szDest$, femExists)
  731.       IF exist% = 0 THEN
  732.           AddSectionFilesToCopyList "StdOLE_Files", SrcDir$, winsystem$
  733.       ELSEIF exist% = 1 THEN
  734.           DateCheck$ = FileDate (szSource$, szDest$)
  735.           IF DateCheck$ = "Source" THEN
  736.             AddSectionFilesToCopyList "StdOLE_Files", SrcDir$, winsystem$
  737.           END IF
  738.       END IF
  739. ''J.B.        SrcDir$ = ""   
  740.   ELSEIF ftype% = OLEREG_FILES THEN 
  741.         IF DoesFileExist(SrcDir$ + "ole\ole2.reg", femExists) = 1 THEN
  742.               szSource$ = FileName(SrcDir$ + "ole\ole2.reg", SrcDir$ + "ole\ole2.re_") 
  743.         ELSE
  744.               szSource$ = FileName(SrcDir$ + "ole2.reg", SrcDir$ + "ole2.re_") 
  745.         ENDIF
  746.         szDest$ = winsystem$ + "\ole2.reg"
  747.       exist% = DoesFileExist(szDest$, femExists)
  748.       IF exist% = 0 THEN
  749.           AddSectionFilesToCopyList "OLEReg_Files", SrcDir$, winsystem$
  750.       ELSEIF exist% = 1 THEN
  751.           DateCheck$ = FileDate (szSource$, szDest$)
  752.           IF DateCheck$ = "Source" THEN
  753.             AddSectionFilesToCopyList "OLEReg_Files", SrcDir$, winsystem$
  754.           END IF
  755.       END IF
  756. ''J.B.        SrcDir$ = ""   
  757.   ELSEIF ftype% = VSHARE_FILES THEN 
  758.         IF DoesFileExist(SrcDir$ + "cdcreatr\vshare.386", femExists) = 1 THEN
  759.                 szSource$ = FileName(SrcDir$ + "cdcreatr\vshare.386", SrcDir$ + "cdcreatr\vshare.38_") 
  760.         ELSE
  761.               szSource$ = FileName(SrcDir$ + "vshare.386", SrcDir$ + "vshare.38_") 
  762.         ENDIF
  763.         szDest$ = winsystem$ + "\vshare.386"
  764.       exist% = DoesFileExist(szDest$, femExists)
  765.       IF exist% = 0 THEN
  766.           AddSectionFilesToCopyList "VSHARE_Files", SrcDir$, winsystem$
  767.       ELSEIF exist% = 1 THEN
  768.           DateCheck$ = FileDate (szSource$, szDest$)
  769.           IF DateCheck$ = "Source" THEN
  770.             AddSectionFilesToCopyList "VSHARE_Files", SrcDir$, winsystem$
  771.           END IF
  772.       END IF
  773. ''J.B.        SrcDir$ = ""   
  774.   ELSEIF ftype% = IOSUBSYS_FILES THEN 
  775.     IF DoesFileExist(SrcDir$ + "cdcreatr\vxdaspi.vxd", femExists) = 1 THEN
  776.       szSource$ = FileName(SrcDir$ + "cdcreatr\vxdaspi.vxd", SrcDir$ + "cdcreatr\vxdaspi.vx_") 
  777.     ELSE
  778.       szSource$ = FileName(SrcDir$ + "vxdaspi.vxd", SrcDir$ + "vxdaspi.vx_") 
  779.     ENDIF
  780.         szDest$ = winsystem$ + "\IOSUBSYS\vxdaspi.vxd"
  781.       exist% = DoesFileExist(szDest$, femExists)
  782.       IF exist% = 0 THEN
  783.           AddSectionFilesToCopyList "IOSUBSYS_Files", SrcDir$, winsystem$+"\IOSUBSYS"
  784.       ELSEIF exist% = 1 THEN
  785.           DateCheck$ = FileDate (szSource$, szDest$)
  786.           IF DateCheck$ = "Source" THEN
  787.             AddSectionFilesToCopyList "IOSUBSYS_Files", SrcDir$, winsystem$+"\IOSUBSYS"
  788.           END IF
  789.       END IF
  790. ''J.B.        SrcDir$ = ""   
  791.   END IF
  792.  
  793. END SUB
  794.                           
  795.                           
  796. '**
  797. '** Purpose:
  798. '**     Appends a file name to the end of a directory path,
  799. '**     inserting a backslash character as needed.
  800. '** Arguments:
  801. '**     szDir$  - full directory path (with optional ending "\")
  802. '**     szFile$ - filename to append to directory
  803. '** Returns:
  804. '**     Resulting fully qualified path name.
  805. '*************************************************************************
  806. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  807.     IF szDir$ = "" THEN
  808.         MakePath = szFile$
  809.     ELSEIF szFile$ = "" THEN
  810.         MakePath = szDir$
  811.     ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  812.         MakePath = szDir$ + szFile$
  813.     ELSE
  814.         MakePath = szDir$ + "\" + szFile$
  815.     END IF
  816. END FUNCTION
  817.  
  818.  
  819. '**
  820. '** Purpose:
  821. '**     Recalculates disk space for the given option files and sets
  822. '**     the status info symbol "StatusItemsText".
  823. '** Arguments:
  824. '**     ftype% - type of files to add, one of the following:
  825. '**             UNIFILES, CDFILES  etc
  826. '** Returns:
  827. '**     none.
  828. '*************************************************************************
  829. SUB RecalcOptFiles (ftype%) STATIC
  830.  
  831.     CursorSave% = ShowWaitCursor()
  832.  
  833.     ClearCopyList
  834.     SrcDir$ = GetSymbolValue("STF_SRCDIR")                                   ''J.B.
  835.     AddOptFilesToCopyList ftype%, SrcDir$                                    ''J.B.
  836.  
  837.     IF ftype% = FILES THEN
  838.             ListSym$ = FILESNEED$
  839.     ELSEIF ftype% = WINDOWS_FILES THEN
  840.             ListSym$ = WINDOWSFILESNEED$
  841.     ELSEIF ftype% = SYSTEM_FILES THEN
  842.             ListSym$ = SYSTEMFILESNEED$
  843.     ELSEIF ftype% = OLE_DLL_FILES THEN
  844.             ListSym$ = OLEDLLFILESNEED$
  845.     ELSEIF ftype% = STDOLE_FILES THEN
  846.             ListSym$ = STDOLEFILESNEED$
  847.     ELSEIF ftype% = OLEREG_FILES THEN
  848.             ListSym$ = OLEREGFILESNEED$
  849.     ELSEIF ftype% = VSHARE_FILES THEN
  850.             ListSym$ = VSHAREFILESNEED$
  851.     ELSEIF ftype% = IOSUBSYS_FILES THEN
  852.             ListSym$ = IOSUBSYSFILESNEED$
  853.     END IF
  854.  
  855.     StillNeed& = GetCopyListCost(EXTRACOSTS$, ListSym$, "")
  856.  
  857.     FOR i% = 1 TO 26 STEP 1
  858.         cost&  = cost& + VAL(GetListItem(ListSym$, i%)) 
  859.     NEXT i%                                             
  860.     ReplaceListItem STATUSTEXT$, ftype%, STR$(cost& / 1024) + " K"
  861.  
  862.     RestoreCursor CursorSave%
  863.     ListSym$ = ""
  864. END SUB
  865.  
  866.  
  867.  
  868. '**
  869. '** Purpose:
  870. '**     Recalculates disk space and sets option status info according
  871. '**     to the current destination path.
  872. '** Arguments:
  873. '**     none.
  874. '** Returns:
  875. '**     none.
  876. '*************************************************************************
  877. SUB RecalcPath STATIC
  878.  
  879.     CursorSave% = ShowWaitCursor()
  880.  
  881.     RecalcOptFiles FILES
  882.     RecalcOptFiles WINDOWS_FILES
  883.     RecalcOptFiles SYSTEM_FILES
  884.     RecalcOptFiles OLE_DLL_FILES
  885.     RecalcOptFiles STDOLE_FILES
  886.     RecalcOptFiles OLEREG_FILES
  887.     RecalcOptFiles VSHARE_FILES
  888.     IF Win95% THEN
  889.       RecalcOptFiles IOSUBSYS_FILES
  890.     END IF
  891.  
  892.     RestoreCursor CursorSave%
  893. END SUB
  894.  
  895.  
  896.  
  897. '**
  898. '** Purpose:
  899. '**     Sets drive status info according to latest disk space calcs.
  900. '** Arguments:
  901. '**     none.
  902. '** Returns:
  903. '**     none.
  904. '*************************************************************************
  905. SUB SetDriveStatus STATIC
  906.    
  907.   drive$ = MID$(DEST$, 1, 1)
  908.   ndrive% = ASC(ucase$(drive$)) - ASC("A") + 1
  909.   cost& = VAL(GetListItem(FILESNEED$, ndrive%)) + VAL(GetListItem(WINDOWSFILESNEED$,ndrive%)) + VAL(GetListItem(SYSTEMFILESNEED$,ndrive%)) + 1024000
  910.     
  911.     IF cost& < 0 THEN
  912.         cost& = 0
  913.     END IF
  914.  
  915.   free& = GetFreeSpaceForDrive(drive$)
  916.   cost& = cost&
  917.   ReplaceListItem DRIVETEXT$, 1, DEST$
  918.   ReplaceListItem DRIVETEXT$, 2, STR$(cost& / 1024) + " K"
  919.   ReplaceListItem DRIVETEXT$, 3, STR$(free& / 1024) + " K"
  920.   ReplaceListItem DRIVETEXT$, 4, drive$ + ":"
  921.  
  922. END SUB       
  923.  
  924.   
  925.   
  926. '**
  927. '** Purpose:
  928. '**     Display a background bitmap
  929. '*************************************************************************
  930. SUB DoBackGround STATIC
  931.     DLL$ = "cdw_cust.dll"
  932.     stm$ = UIStartDlg(DLL$, SPLASHBB, "FModelessDlgProc", 0, "")
  933. END SUB
  934.  
  935.      
  936.      
  937. '**
  938. '** Purpose:
  939. '**     Compares dates of 2 files
  940. '** Arguments:
  941. '**     szSource$  - date of file to be installed
  942. '**     szDest$    - date of file already installed
  943. '** Returns:
  944. '**     Filename with most recent date
  945. '*************************************************************************
  946. FUNCTION FileDate (szSource$, szDest$) STATIC AS STRING
  947.  
  948.       szSourceDate$ = GetDateOfFile(szSource$)
  949.       szDestDate$ = GetDateOfFile(szDest$)
  950.         szSourceDate$ = MID$(szSourceDate$,1,4) + MID$(szSourceDate$,6,2) + MID$(szSourceDate$,9,2)
  951.         szSourceDate$ = szSourceDate$ + MID$(szSourceDate$, 12, 2) + MID$(szSourceDate$, 15, 2) + MID$(szSourceDate$, 18, 2)
  952.         szDestDate$ = MID$(szDestDate$,1,4) + MID$(szDestDate$,6,2) + MID$(szDestDate$,9,2)
  953.         szDestDate$ = szDestDate$ +    MID$(szDestDate$, 12, 2) + MID$(szDestDate$, 15, 2) + MID$(szDestDate$, 18, 2)
  954.  
  955. '' i% = DoMsgBox("In FileDate: SourceDate= "+szSourceDate$+" : DestDate= "+szDestDate$, "Debug Message", MB_OK)
  956.         IF VAL(szSourceDate$) > VAL(szDestDate$) THEN
  957.             FileDate = "Source"             
  958.         ELSEIF VAL(szSourceDate$) <= VAL(szDestDate$) THEN
  959.             FileDate = "Dest"
  960.         END IF
  961.          
  962. END FUNCTION
  963.  
  964.  
  965.  
  966. '**
  967. '** Purpose:
  968. '**     Checks source file format (compressed or uncompressed)
  969. '** Arguments:
  970. '**     szUncompName$  - Uncompressed file name
  971. '**     szCompName$    - Compressed file name
  972. '** Returns:
  973. '**     Name of existing source file
  974. '*************************************************************************
  975. FUNCTION FileName (szUncompName$, szCompName$) STATIC AS STRING
  976.  
  977.       fexist% = DoesFileExist(szUncompName$, femExists)
  978.       IF fexist% = 1 THEN
  979.           FileName = szUncompName$
  980.       ELSE
  981.           FileName = szCompName$
  982.         END IF      
  983.  
  984. END FUNCTION
  985.