home *** CD-ROM | disk | FTP | other *** search
- '**************************************************************************
- '* MediaMania Setup Script
- '**************************************************************************
-
- '$DEFINE DEBUG ''Define for script development/debugging
-
- '$INCLUDE 'setupapi.inc'
- '$INCLUDE 'msdetect.inc'
-
- '' Dialog ID's are stored in file created by COLLIDD utility
- '$INCLUDE 'dialogs.inc'
-
- '' Bitmap ID
- CONST LOGOTIT = 1
- CONST LOGOTYP = 1000
-
-
- '' -------------------------------------------------------------------------
- '' --------- Option checkbox names (see Custom Installation Dialog) --------
- '' --------- Corresponding section names and target directories
- '' ---------------- see AddOptFilesToCopyList function body
- '' -------------------------------------------------------------------------
- CONST OPT_MEDIAMANIA = 1
- CONST OPT_SAMPLES = 2
-
- CONST OPT_LAST = 2 '' Maximum option number
-
-
- '' -------------------------------------------------------------------------
- '' -------------------------- Global Variables -----------------------------
- '' -------------------------------------------------------------------------
- GLOBAL DEST$ ''Default destination directory.
- GLOBAL WINDIR$
- GLOBAL CUIDLL$
- GLOBAL SHAREDIR$
- GLOBAL TOTALNEEDED& ''Extra space required
-
- '' -------------------------------------------------------------------------
- '' -------------------------- Dialog Functions -----------------------------
- '' -------------------------------------------------------------------------
- DECLARE SUB CustInstInfo0Dlg(template%)
-
- '' -------------------------------------------------------------------------
- '' -------------------------- Utility Functions ----------------------------
- '' -------------------------------------------------------------------------
- DECLARE FUNCTION IDC(s$) AS INTEGER
- DECLARE FUNCTION DriveN (path$) AS INTEGER
- DECLARE SUB ClearCopyListExtra
- DECLARE SUB AddExtraCost (drive%,cost&)
- DECLARE SUB AddOptFilesToCopyList (ftype%,falways%)
- DECLARE SUB RecalcOptFiles (ftype%)
- DECLARE SUB RecalcPath
- DECLARE SUB SetDriveStatus
- DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
-
-
- DECLARE FUNCTION FCreateLogoWnd LIB "mscuistf.dll" (hParent%,nID%) AS INTEGER
- DECLARE FUNCTION FGetAvailableRAM LIB "mscuistf.dll" AS LONG
- DECLARE FUNCTION FGetSwapFileSize LIB "mscuistf.dll" AS LONG
- DECLARE FUNCTION FGetLicenseInfo LIB "mscuistf.dll" AS INTEGER
-
- DECLARE FUNCTION DestroyWindow LIB "user" (hWnd%) AS INTEGER
- DECLARE SUB MessageBeep LIB "user" (idBeep%)
- DECLARE SUB ShowWindow LIB "user" (hWnd%,nShowCmd%)
-
-
- '' -------------------------------------------------------------------------
- '' -------------------------------------------------------------------------
- '' ---------- ------------
- '' ---------- B E G I N N I N G ------------
- '' ---------- ------------
- '' -------------------------------------------------------------------------
- '' -------------------------------------------------------------------------
-
- '' ----------- Several common definitions
-
- CUIDLL$ = "mscuistf.dll" ''Custom user interface dll
- INFFILE$ = "setup.inf"
- TITLE$ = "MediaMaster Demo Setup"
- DEST$ = "C:\MDMASTER"
- WINDIR$ = GetWindowsDir
- IF IsWindowsShared THEN
- SHAREDIR$ = WINDIR$
- ELSE
- SHAREDIR$ = GetWindowsSysDir
- END IF
- MEDIAMANIA_EXE$ = "PROGRAMS\MDMASTER.EXE"
- MEDIAMANIA_INI$ = MakePath(GetWindowsDir(),"MDMASTER.INI")
- STAMP_SUBDIR$ = "PROGRAMS"
- LOGOTYPE_DELAY& = 5000
-
- '' ShowWindow HwndFrame(),3 '' Maximize frame
- SetBitmap CUIDLL$, LOGOTIT
- SetTitle TITLE$
-
- '' -------------- Display logotype for some period of time
-
- '' sz$ = UIStartDlg(CUIDLL$,IDD_MODELESS,"FModelessDlgProc",0,"")
- hLogoWnd% = FCreateLogoWnd(HwndFrame(),LOGOTYP)
- IF hLogoWnd% <> 0 THEN
- CursorSave% = ShowWaitCursor
- time0& = Timer
- ABOUTL1:
- time1& = Timer
- IF time1& >= time0& AND time1 < time0&+LOGOTYPE_DELAY& THEN
- GOTO ABOUTL1
- END IF
- i% = DestroyWindow(hLogoWnd%)
- RestoreCursor CursorSave%
- END IF
-
- '' ---------------------------------------------------------------------
- '' ------------------------- INF FILE READING --------------------------
- '' ---------------------------------------------------------------------
-
- szInf$ = GetSymbolValue("STF_SRCINFPATH")
- IF szInf$ = "" THEN
- szInf$ = GetSymbolValue("STF_CWDDIR") + INFFILE$
- END IF
- ReadInfFile szInf$
-
-
- '' ---------------------------------------------------------------------
- '' ------------------- WELCOME DIALOG PROCESSING -----------------------
- '' ---------------------------------------------------------------------
-
- WELCOME:
- sz$ = UIStartDlg(CUIDLL$, IDD_WELCOME, "FInfoDlgProc", IDD_WELCOME_HELP, "FHelpDlgProc" )
- IF sz$ = "CONTINUE" THEN
- UIPop 1
- ELSE
- GOSUB ASKQUIT
- GOTO WELCOME
- END IF
-
-
- '' ---------------------------------------------------------------------
- '' -------------------- SYSREQ DIALOG PROCESSING -----------------------
- '' ---------------------------------------------------------------------
-
- DIM req(6) AS INTEGER
-
- req(1) = 1
- IF GetWindowsMajorVersion < 3 THEN
- req(1) = 0
- ELSEIF GetWindowsMajorVersion = 3 AND GetWindowsMinorVersion < 10 THEN
- req(1) = 0
- ELSEIF GetWindowsMode < 2 THEN
- req(1) = 0
- END IF
-
- req(2) = GetProcessorType >= 3
- req(3) = Has87MathChip
- req(4) = FGetSwapFileSize <> 0
-
- req(5) = FGetAvailableRAM >= 6*1024
- req(6) = HasMouseInstalled
-
- req(0) = 1
- FOR i% = 1 TO 6 STEP 1
- IF req(i%) = 0 THEN
- req(0) = 0
- END IF
- NEXT i%
-
- IF req(0) THEN
- GOTO LICENSE
- END IF
-
- req(0) = 1
- FOR i% = 1 TO 4 STEP 1
- IF req(i%) = 0 THEN
- req(0) = 0
- END IF
- NEXT i%
-
- IF req(0) = 0 THEN
- AddListItem "ControlsDisabled",Str$(IDC("C"))
- END IF
- FOR i% = 1 TO 6 STEP 1
- IF req(i) THEN
- AddListItem "StatusItemsText", "Present"
- ELSE
- AddListItem "StatusItemsText", "Absent"
- END IF
- NEXT i%
-
- SYSREQ:
- sz$ = UIStartDlg(CUIDLL$, IDD_SYSREQ, "FCustInstDlgProc", IDD_SYSREQ_HELP, "FHelpDlgProc" )
- IF sz$ = "CONTINUE" THEN
- UIPop 1
- ELSEIF sz$ = "CANCEL" THEN
- IF req(0) = 0 THEN
- UIPopAll
- ERROR STFQUIT
- ELSE
- GOSUB ASKQUIT
- GOTO SYSREQ
- END IF
- ELSE
- GOTO SYSREQ
- END IF
-
- RemoveSymbol "StatusItemsText"
-
- '' ---------------------------------------------------------------------
- '' --------------------- LICENSE DIALOG PROCESSING ---------------------
- '' ---------------------------------------------------------------------
-
- LICENSE:
- i% = FGetLicenseInfo
- IF i% < 0 THEN
- GOTO ERRQUIT
- ELSEIF i% > 0 THEN
- AddListItem "ConfirmTextIn", GetSymbolValue("NameOut")
- AddListItem "ConfirmTextIn", GetSymbolValue("OrgOut")
- ALREADYUSEDL1:
- sz$ = UIStartDlg(CUIDLL$, IDD_CDALREADYUSED, "FConfirmDlgProc", 0, "" )
- IF sz$ = "EXIT" THEN
- GOSUB ASKQUIT
- GOTO ALREADYUSEDL1
- END IF
- UIPop 1
- fAlreadyStamped% = 1
- ELSE
-
- GETNAMEORGL1:
- sz$ = UIStartDlg(CUIDLL$, IDD_CDGETNAMEORG, "FNameOrgDlgProc", 0, "" )
- IF sz$ = "EXIT" THEN
- GOSUB ASKQUIT
- GOTO GETNAMEORGL1
- END IF
- IF (GetSymbolValue("NameOut") = "" AND GetSymbolValue("OrgOut") = "") OR GetSymbolValue("SerialNoOut") = "" THEN
- MessageBeep -1
- GOTO GETNAMEORGL1
- END IF
- ' UIPop 1
- AddListItem "ConfirmTextIn", GetSymbolValue("NameOut")
- AddListItem "ConfirmTextIn", GetSymbolValue("OrgOut")
- AddListItem "ConfirmTextIn", GetSymbolValue("SerialNoOut")
- CONFIRMNAMEORGL1:
- sz$ = UIStartDlg(CUIDLL$, IDD_CDCONFIRMINFO, "FConfirmDlgProc", 0, "" )
- IF sz$ = "BACK" THEN
- UiPop 1
- RemoveSymbol "ConfirmTextIn"
- GOTO GETNAMEORGL1
- END IF
- UIPop 2
- fAlreadyStamped% = 0
- END IF
- stamp$ = "LC"+GetSymbolValue("NameOut")+chr$(0)+GetSymbolValue("OrgOut")+chr$(0)+GetSymbolValue("SerialNoOut")+chr$(0)
-
-
- '' ---------------------------------------------------------------------
- '' --------------- CUSTOM INSTALLATION DIALOG PROCESSING ---------------
- '' ---------------------------------------------------------------------
-
- CUSTINST:
- '' --------- Try to find MediaMania if previously installed
-
- sz$ = GetIniKeyString(MEDIAMANIA_INI$,"Directories","Root")
- IF sz$ <> "" THEN
- DEST$ = sz$
- END IF
-
-
- '' --------- Custom Installation Dialog Box Initialization
-
- '' Clear the list of extra space (not listed in setup.inf)
- '' required per drive. This list is used in calls to
- '' GetCopyListCost function to provide the information
- '' about additional required space.
- FOR i% = 1 TO 26 STEP 1
- AddListItem "ExtraCosts", "0"
- NEXT i%
-
- '' Initialize the dialog input values
- RemoveSymbol "CheckItemsState"
- FOR i% = 1 TO 2 STEP 1
- AddListItem "CheckItemsState", "ON"
- NEXT i%
- FOR i% = 1 TO 2 STEP 1
- AddListItem "StatusItemsText", ""
- NEXT i%
- FOR i% = 1 TO 6 STEP 1
- AddListItem "DriveStatusText", ""
- NEXT i%
- AddListItem "DriveStatusText", DEST$
-
- '' Language combo box init
-
- AddListItem "ListItemsIn","English"
- AddListItem "ListItemsIn","Russian"
- SetSymbolValue "ListItemsOut","Russian"
-
-
- '' Compute data to be displayed in the dialog
- RecalcPath
- SetDriveStatus
-
-
- '' -------- Custom Installation Dialog Box Loop
-
- CUSTINSTL1:
- RemoveSymbol "ControlsDisabled"
- sz$ = Str$(IDC("STATIC1"))
- sz1$ = Str$(IDC("LIST1"))
- IF GetListItem("CheckItemsState",OPT_MEDIAMANIA) = "ON" THEN
- sz$ = "*"+sz$
- sz1$ = "*"+sz1$
- END IF
- AddListItem "ControlsDisabled",sz$
- AddListItem "ControlsDisabled",sz1$
-
-
- sz$ = UIStartDlg(CUIDLL$, IDD_CUSTINST, "FCustInstDlgProc", IDD_CUSTINST_HELP, "FHelpDlgProc")
-
- IF sz$ = "CONTINUE" THEN
- IF TOTALNEEDED& > 0 THEN
- CustInstInfo0Dlg IDD_TOOBIG
- ELSE
- LANGUAGE$ = GetSymbolValue("ListItemsOut")
- UIPop 1
- GOTO INSTALL
- ENDIF
- ELSEIF sz$ = "PATH" THEN
- GOSUB GETPATH
- ELSEIF len(sz$) >= 3 AND mid$(sz$,1,3) = "CHK" THEN
- SetDriveStatus
- ELSEIF sz$ = "CANCEL" THEN
- GOSUB ASKQUIT
- ELSEIF sz$ = "REACTIVATE" THEN
- RecalcPath
- SetDriveStatus
- END IF
- GOTO CUSTINSTL1
-
-
- '' ---------------------------------------------------------------------
- '' --------------------- GET PATH DIALOG PROCESSING --------------------
- '' ---------------------------------------------------------------------
-
- GETPATH:
- SetSymbolValue "EditTextIn", DEST$
- SetSymbolValue "EditFocus", "END"
- GETPATHL1:
- sz$ = UIStartDlg(CUIDLL$, IDD_DESTPATH, "FEditDlgProc", IDD_DESTPATH_HELP, "FHelpDlgProc")
-
- IF sz$ = "CONTINUE" THEN
-
- olddest$ = DEST$
- DEST$ = GetSymbolValue("EditTextOut")
-
- ''Validate new path.
- IF IsDirWritable(DEST$) = 0 THEN
- CustInstInfo0Dlg IDD_BADPATH
- DEST$ = olddest$
- GOTO GETPATHL1
- END IF
- UIPop 1
-
- ''Truncate display if too long.
- IF LEN(DEST$) > 30 THEN
- ReplaceListItem "DriveStatusText", 7, MID$(DEST$, 1, 30)+"..."
- ELSE
- ReplaceListItem "DriveStatusText", 7, DEST$
- END IF
-
- ''Recalc if path changed.
- IF (olddest$ <> DEST$) AND (olddest$ <> DEST$+"\") AND (olddest$+"\" <> DEST$) THEN
- RecalcPath
- SetDriveStatus
- END IF
-
- olddest$ = ""
- RETURN
- ELSEIF sz$ = "REACTIVATE" THEN
- RecalcPath
- SetDriveStatus
- ELSE
- UIPop 1
- RETURN
- END IF
- GOTO GETPATHL1
-
-
- '' ---------------------------------------------------------------------
- '' ---------------------------- INSTALLATION ---------------------------
- '' ---------------------------------------------------------------------
-
- INSTALL:
- ClearCopyListExtra
- FOR i% = 1 TO OPT_LAST
- AddOptFilesToCopyList i%,0
- NEXT i%
-
- IF fAlreadyStamped% = 0 THEN
- szDir$ = GetSymbolValue("STF_SRCDIR")
- CHECKWRITABLE:
- IF IsDirWritable(szDir$) = 0 THEN
- ASKWRITABLE:
- i% = DoMsgBox("Write protect error writing drive "+UCase$(Mid$(szDir$,1,1))+":","Error",5)
- IF i% = 2 THEN
- GOSUB ASKQUIT
- GOTO ASKWRITABLE
- END IF
- GOTO CHECKWRITABLE
- END IF
- sz$ = stamp$
- StampResource "Setup Files","License",GetSymbolValue("STF_SRCDIR"),1111,1111,sz$,LEN(sz$)
- END IF
-
- CreateDir DEST$, cmoNone
- CopyFilesInCopyList
-
- sz$ = stamp$
- StampResource "MediaMaster","License",MakePath(DEST$,STAMP_SUBDIR$),1111,1111,sz$,LEN(sz$)
-
-
- IF GetListItem("CheckItemsState", OPT_MEDIAMANIA) = "ON" THEN
-
- CreateIniKeyValue MEDIAMANIA_INI$,"Settings","Language",LANGUAGE$,cmoOverwrite
- CreateIniKeyValue MEDIAMANIA_INI$,"Directories","Root",DEST$,cmoOverwrite
-
- CreateProgmanGroup "MediaMaster", "", cmoNone
- ShowProgmanGroup "MediaMaster", 1, cmoNone
- CreateProgmanItem "MediaMaster", "MediaMaster", MakePath(DEST$,MEDIAMANIA_EXE$), "", cmoOverwrite
- CreateProgmanItem "MediaMaster", "Release Notes", "NOTEPAD.EXE "+MakePath(DEST$,"MMREADME.NP"), "", cmoOverwrite
- ''Demo
- ''CreateProgmanItem "MediaMaster", "Video Notes", "NOTEPAD.EXE "+MakePath(DEST$,"VIDEO.NP"), "", cmoOverwrite
- END IF
-
-
- '' ---------------------------------------------------------------------
- '' ------------------------ SETUP QUIT PROCESSING ----------------------
- '' ---------------------------------------------------------------------
-
- QUIT:
- ON ERROR GOTO ERRQUIT
-
- IF ERR = 0 THEN
- dlg% = IDD_EXITSUCCESS
- ELSEIF ERR = STFQUIT THEN
- dlg% = IDD_EXITQUIT
- ELSE
- dlg% = IDD_EXITFAILURE
- END IF
- QUITL1:
- sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
- IF sz$ = "REACTIVATE" THEN
- GOTO QUITL1
- END IF
- UIPop 1
-
- END
-
- ERRQUIT:
- i% = DoMsgBox("Setup sources were corrupted!", "Setup Message", MB_OK+MB_TASKMODAL+MB_ICONHAND)
- END
-
-
- '' -------------------------------------------------------------------------
- '' -------------------------------------------------------------------------
- '' ---------- ------------
- '' ---------- A U X I L I A R Y D I A L O G S ------------
- '' ---------- ------------
- '' -------------------------------------------------------------------------
- '' -------------------------------------------------------------------------
-
-
- '' ---------------------------------------------------------------------
- '' --------------------- ASK QUIT DIALOG PROCESSING --------------------
- '' ---------------------------------------------------------------------
-
- ASKQUIT:
- sz$ = UIStartDlg(CUIDLL$, IDD_ASKQUIT, "FQuitDlgProc", 0, "")
-
- IF sz$ = "EXIT" THEN
- UIPopAll
- ERROR STFQUIT
- ELSEIF sz$ = "REACTIVATE" THEN
- GOTO ASKQUIT
- ELSE
- UIPop 1
- END IF
- RETURN
-
- '' ---------------------------------------------------------------------
- '' ------------------- CUSTINST INFO0 DIALOG PROCESSING ----------------
- '' ---------------------------------------------------------------------
-
- SUB CustInstInfo0Dlg(template%) STATIC
- L1:
- sz$ = UIStartDlg(CUIDLL$, template%, "FInfo0DlgProc", 0, "")
- IF sz$ = "REACTIVATE" THEN
- ''RecalcPath
- ''SetDriveStatus
- GOTO L1
- END IF
- UIPop 1
- END SUB
-
- '' -------------------------------------------------------------------------
- '' -------------------------------------------------------------------------
- '' ---------- ------------
- '' ---------- U T I L I T Y F U N C T I O N S ------------
- '' ---------- ------------
- '' -------------------------------------------------------------------------
- '' -------------------------------------------------------------------------
-
- '' --------------- Returns control identifier by given string
- '' for letters and statics,
- '' e.g. IDC("A")=IDC_A, IDC("B")=IDC_B,
- '' IDC("STATIC1")=IDC_STATIC1, etc.
- FUNCTION IDC(s$) STATIC AS INTEGER
- IF Len(s$) = 1 THEN
- IDC = 401+asc(s$)-asc("A")
- ELSEIF Mid$(s$,1,6) = "STATIC" THEN
- IDC = 600+val(Mid$(s$,7))
- ELSEIF Mid$(s$,1,4) = "LIST" THEN
- IDC = 428+val(Mid$(s$,5))
- ELSE
- IDC = -1
- END IF
- END FUNCTION
-
- '' --------------- Converts ASCII path to integer drive number
- FUNCTION DriveN(path$) STATIC AS INTEGER
- DriveN = asc(ucase$(path$))-asc("A")+1
- END FUNCTION
-
- '' --------------- Clears copy list and ExtraCosts list
- SUB ClearCopyListExtra STATIC
-
- ClearCopyList
- FOR i% = 1 TO 26 STEP 1
- ReplaceListItem "ExtraCosts", i%, "0"
- NEXT i%
- END SUB
-
- '' -------- Adds specified cost to the drive% item of the ExtraCosts list
- SUB AddExtraCost (drive%,cost&) STATIC
-
- ReplaceListItem "ExtraCosts", drive%, STR$( VAL(GetListItem("ExtraCosts",drive%))+cost& )
- END SUB
-
-
- '**
- '** Purpose:
- '** Adds the specified section files to the copy list.
- '** Arguments:
- '** ftype% - type of option to add, one of the following:
- '** OPT_MEDIAMANIA, OPT_SAMPLES
- '** falways% - if this parameter is zero then the section is added
- '** depending on the corresponding checkbox state. If this
- '** parameter is non-zero the section is always added.
- '** Returns:
- '** none.
- '*************************************************************************
- SUB AddOptFilesToCopyList (ftype%,falways%) STATIC
-
- IF falways% <> 0 OR GetListItem("CheckItemsState", ftype%) = "ON" THEN
- SrcDir$ = GetSymbolValue("STF_SRCDIR")
- IF ftype% = OPT_MEDIAMANIA THEN
- AddSectionFilesToCopyList "MediaMaster", SrcDir$, MakePath$(DEST$,"PROGRAMS")
- AddSectionFilesToCopyList "Behaviours", SrcDir$, MakePath$(DEST$,"BEHAVIOR")
- AddSectionFilesToCopyList "Shared Files", SrcDir$, SHAREDIR$
- AddSectionFilesToCopyList "Ini Files", SrcDir$, WINDIR$
- AddSectionFilesToCopyList "Readme Files", SrcDir$, DEST$
- ''Add extra cost to Windows drive for ini/progman, etc.
- ''Also add extra cost to Dest drive for inifile
- AddExtraCost DriveN(WINDIR$),10240
- AddExtraCost DriveN(DEST$),10240
- ELSEIF ftype% = OPT_SAMPLES THEN
- AddSectionFilesToCopyList "Samples", SrcDir$, MakePath$(DEST$,"SAMPLES")
- END IF
- END IF
- END SUB
-
-
- '**
- '** Purpose:
- '** Recalculates disk space for the given option files and sets
- '** the status info symbol "StatusItemsText".
- '** Arguments:
- '** ftype% - type of option to add, one of the following:
- '** OPT_MEDIAMANIA, OPT_SAMPLES
- '** Returns:
- '** none.
- '*************************************************************************
- SUB RecalcOptFiles (ftype%) STATIC
-
- ClearCopyListExtra
- AddOptFilesToCopyList ftype%,1
-
- StillNeed& = GetCopyListCost("ExtraCosts", "SizeList", "")
-
- cost& = 0
- FOR i% = 1 TO 26 STEP 1
- cost& = cost& + VAL(GetListItem("SizeList", i%))
- NEXT i%
- ReplaceListItem "StatusItemsText", ftype%, STR$((cost& + 1023) / 1024) + " K"
-
- RemoveSymbol("SizeList")
- END SUB
-
-
- '**
- '** Purpose:
- '** Recalculates disk space and sets option status info according
- '** to the current destination path.
- '** Arguments:
- '** none.
- '** Returns:
- '** none.
- '*************************************************************************
- SUB RecalcPath STATIC
-
- CursorSave% = ShowWaitCursor()
-
- for i% = 1 TO OPT_LAST STEP 1
- RecalcOptFiles i%
- NEXT i%
-
- RestoreCursor CursorSave%
- END SUB
-
-
- '**
- '** Purpose:
- '** Sets drive status info according to latest disk space calcs.
- '** Arguments:
- '** none.
- '** Returns:
- '** none.
- '*************************************************************************
- SUB SetDriveStatus STATIC
-
- CursorSave% = ShowWaitCursor()
-
- ClearCopyListExtra
- FOR i% = 1 TO OPT_LAST STEP 1
- AddOptFilesToCopyList i%,0
- NEXT i%
-
- TOTALNEEDED& = GetCopyListCost("ExtraCosts","SizeList","")
-
- drive$ = UCASE$(MID$(DEST$,1,1))
- ndrive% = DriveN(drive$)
- cost& = VAL(GetListItem("SizeList", ndrive%))
- free& = GetFreeSpaceForDrive(drive$)
- ReplaceListItem "DriveStatusText", 1, drive$ + ":"
- ReplaceListItem "DriveStatusText", 2, STR$((cost&+1023) / 1024) + " K"
- ReplaceListItem "DriveStatusText", 3, STR$(free& / 1024) + " K"
-
- IF ndrive% = DriveN(WINDIR$) THEN
- ReplaceListItem "DriveStatusText", 4, ""
- ReplaceListItem "DriveStatusText", 5, ""
- ReplaceListItem "DriveStatusText", 6, ""
- ELSE
- drive$ = UCASE$(MID$(WINDIR$,1,1))
- ndrive% = DriveN(WINDIR$)
- cost& = VAL(GetListItem("SizeList", ndrive%))
- IF cost& = 0 THEN
- ReplaceListItem "DriveStatusText", 4, ""
- ReplaceListItem "DriveStatusText", 5, ""
- ReplaceListItem "DriveStatusText", 6, ""
- ELSE
- free& = GetFreeSpaceForDrive(drive$)
- ReplaceListItem "DriveStatusText", 4, drive$ + ":"
- ReplaceListItem "DriveStatusText", 5, STR$((cost&+1023) / 1024) + " K"
- ReplaceListItem "DriveStatusText", 6, STR$(free& / 1024) + " K"
- END IF
- END IF
-
- RestoreCursor CursorSave%
- END SUB
-
-
- '**
- '** Purpose:
- '** Appends a file name to the end of a directory path,
- '** inserting a backslash character as needed.
- '** Arguments:
- '** szDir$ - full directory path (with optional ending "\")
- '** szFile$ - filename to append to directory
- '** Returns:
- '** Resulting fully qualified path name.
- '*************************************************************************
- FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
- IF szDir$ = "" THEN
- MakePath = szFile$
- ELSEIF szFile$ = "" THEN
- MakePath = szDir$
- ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
- MakePath = szDir$ + szFile$
- ELSE
- MakePath = szDir$ + "\" + szFile$
- END IF
- END FUNCTION
-
-