home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
DP Tool Club 26
/
CD_ASCQ_26_1295.iso
/
vrac
/
al205.zip
/
AL.MST
< prev
next >
Wrap
Text File
|
1995-09-14
|
6KB
|
245 lines
'**************************************************************************
'* MSSetup Toolkit Sample 1
'**************************************************************************
'$INCLUDE 'setupapi.inc'
'$INCLUDE 'msdetect.inc'
''Dialog ID's
CONST DLG_WELCOME = 100
CONST DLG_ASKQUIT = 200
CONST DLG_GETPATH = 300
CONST DLG_FAILEXIT = 400
CONST DLG_AUTOSTART = 500
CONST DLG_USEREXIT = 600
CONST DLG_DONEEXIT = 700
CONST DLG_BADPATH = 6400
CONST DLG_TOOBIG = 6300
''Bitmap ID
CONST LOGO=1
GLOBAL DEST$ ''Default destination directory.
GLOBAL DRIVE$ ''Installation drive
GLOBAL AVAIL& ''Space available on destination drive
GLOBAL SIZE& ''Space used by AL files
GLOBAL RETVAL$ ''Misc return value
GLOBAL SIZELIST$ ''List of file sizes for each drive
GLOBAL EXTRALIST$ ''List of extra space needed for each drive
GLOBAL START$ ''Start AL when Windows is started
DECLARE SUB Install
DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
INIT:
CUIDLL$ = "mscuistf.dll" ''Custom user interface dll
SetBitmap CUIDLL$, LOGO
SetTitle "AL Setup"
szInf$ = GetSymbolValue("STF_SRCINFPATH")
IF szInf$ = "" THEN
szInf$ = GetSymbolValue("STF_CWDDIR") + "AL.INF"
END IF
ReadInfFile szInf$
DEST$ = "C:\AL"
''Initialize Lists ???
SIZELIST$="SizeList"
EXTRALIST$="ExtraList"
''Initialize Extra Space Needed List
FOR i%=1 TO 26 STEP 1
AddListItem EXTRALIST$,"0"
NEXT i%
''Get the space needed to copy the files to the hard drive
WELCOME:
sz$ = UIStartDlg(CUIDLL$, DLG_WELCOME, "FInfoDlgProc",0,"")
IF sz$ = "CONTINUE" THEN
UIPop 1
ELSE
GOSUB ASKQUIT
GOTO WELCOME
END IF
GETPATH:
SetSymbolValue "EditTextIn", DEST$
SetSymbolValue "EditFocus", "END"
GETPATHL1:
sz$ = UIStartDlg(CUIDLL$, DLG_GETPATH, "FEditDlgProc",0,"")
DEST$ = GetSymbolValue("EditTextOut")
IF sz$ = "EXIT" THEN
GOSUB ASKQUIT
GOTO GETPATHL1
ELSEIF sz$ = "CONTINUE" THEN
IF IsDirWritable(DEST$) = 0 THEN
GOSUB BADPATH
GOTO GETPATHL1
END IF
ClearCopyList
SrcDir$ = GetSymbolValue("STF_SRCDIR")
AddSectionFilesToCopyList "Files", SrcDir$, DEST$
stillneed&=GetCopyListCost(EXTRALIST$,SIZELIST$,"")
drivenum%=ASC(DEST$)-ASC("A")+1
SIZE&=VAL(GetListItem(SIZELIST$,drivenum%))+VAL(GetListItem(EXTRALIST$,drivenum%))
DRIVE$ = MID$(DEST$, 1, 1)
AVAIL& = GetFreeSpaceForDrive(drive$)
IF SIZE&>AVAIL& THEN
GOSUB TOOBIG
GOTO GETPATHL1
END IF
UIPop 1
ELSEIF sz$ = "REACTIVATE" THEN
GOTO GETPATHL1
ELSE
GOTO GETPATH
END IF
STARTUP:
sz$=UIStartDlg(CUIDLL$,DLG_AUTOSTART,"FInfoDlgProc",0,"")
IF sz$ = "EXIT" THEN
GOSUB ASKQUIT
GOTO STARTUP
ELSEIF sz$ = "BACK" THEN
UIPop 1
GOTO GETPATH
ELSEIF sz$ = "YES" THEN
UIPop 1
START$="YES"
ELSEIF sz$ = "NO" THEN
UIPop 1
START$="NO"
ELSE
GOTO STARTUP
END IF
Install
QUIT:
ON ERROR GOTO ERRQUIT
IF ERR = 0 THEN
dlg% = DLG_DONEEXIT
ELSEIF ERR = STFQUIT THEN
dlg% = DLG_USEREXIT
ELSE
dlg% = DLG_FAILEXIT
END IF
QUITL1:
sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfoDlgProc", 0, "")
IF sz$ = "REACTIVATE" THEN
GOTO QUITL1
END IF
UIPop 1
END
ERRQUIT:
i% = DoMsgBox("Setup aborted due to fatal error!", "ERROR", MB_OK+MB_TASKMODAL+MB_ICONHAND)
END
BADPATH:
sz$ = UIStartDlg(CUIDLL$,DLG_BADPATH, "FInfoDlgProc", 0, "")
IF sz$ = "REACTIVATE" THEN
GOTO BADPATH
END IF
UIPop 1
RETURN
ASKQUIT:
sz$ = UIStartDlg(CUIDLL$, DLG_ASKQUIT, "FQuitDlgProc", 0, "")
IF sz$ = "EXIT" THEN
UIPopAll
ERROR STFQUIT
ELSEIF sz$ = "REACTIVATE" THEN
GOTO ASKQUIT
ELSE
UIPop 1
END IF
RETURN
TOOBIG:
SetSymbolValue "DestDrive", DRIVE$+":"
SetSymbolValue "SpaceNeeded", STR$(SIZE&)+" bytes"
SetSymbolValue "SpaceAvailable", STR$(AVAIL&)+" bytes"
sz$ = UIStartDlg(CUIDLL$,DLG_TOOBIG,"FInfo0DlgProc",0,"")
IF sz$ = "EXIT" THEN
GOTO ASKQUIT
END IF
UIPop 1
RETURN
'**
'** Purpose:
'** Builds the copy list and performs all installation operations.
'** Arguments:
'** none.
'** Returns:
'** none.
'*************************************************************************
SUB Install STATIC
dim DataPath$
dim CommLine$
SrcDir$ = GetSymbolValue("STF_SRCDIR")
CreateDir DEST$, cmoNone
ClearCopyList
AddSectionFilesToCopyList "Files", SrcDir$, DEST$
CopyFilesInCopyList
CreateProgmanGroup "AL","",cmoNone
ShowProgmanGroup "AL",1,cmoNone
DataPath=MAKEPATH(DEST$,"AL.DAT")
CommLine=MakePath(DEST$,"AL.EXE")+" "+DataPath
CreateProgmanItem "AL","AL",CommLine, "", cmoOverwrite
CreateProgmanItem "AL","READ ME",MakePath(DEST$,"readme.wri"),"",cmoOverwrite
CreateProgmanItem "AL","PM2AL",MakePath(DEST$,"pm2al.exe"), "", cmoOverwrite
CreateProgmanItem "AL","AL HELP",MakePath(DEST$,"al.hlp"), "", cmoOverwrite
CreateProgmanItem "AL","AL MANUAL",MakePath(DEST$,"manual.wri"), "", cmoOverwrite
IF START$ = "YES" THEN
CreateProgmanGroup "StartUp","",cmoNone
ShowProgmanGroup "StartUp",1,cmoNone
CreateProgmanItem "StartUp","AL",CommLine, "", cmoOverwrite
END IF
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