home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
P.B. Bear's Birthday Party
/
DKMMPBBP.iso
/
dksetup
/
dksetup.mst
< prev
next >
Wrap
Text File
|
1995-05-19
|
11KB
|
356 lines
''$DEFINE DEBUG
'$INCLUDE 'dkgen.inc'
' Paths and INI stuff
CONST APPLICATION_INI_FILE = "PBBEAR.ini"
CONST APPLICATION_EXE_FILE = "PBBEAR.exe"
CONST APPLICATION_EXE2_FILE = "dksd2pc.exe"
CONST APPLICATION_MENU_FILE = "custmenu.exe"
CONST APPLICATION_PENGE_FILE = "PBBEAR.png"
CONST INI_FILE_SOURCE = "WinPath" ' OR "AppPath"
' Language dependant strings
CONST APPLICATION_README_FILE = "readme.wri"
'CONST APPLICATION_README_FILE2 = "readme2.txt"
CONST STR_README = "PB Bear's Birthday Party Read Me"
CONST STR_MSGCAPTION = "PB Bear's Birthday Party Setup"
CONST STR_PRODUCTNAME = "PB Bear's Birthday Party"
CONST DEFAULT_INSTALL_PATH = "\DKMM\PBBEAR"
CONST SAMPLER_PATH = "SAMPLER"
DECLARE SUB Install()
DECLARE SUB AddFilesToCopyList(szInstallType$)
DECLARE FUNCTION IsCDROMDrive LIB "dkutils.dll" (wDrive%) As INTEGER
Init:
Initialise STR_PRODUCTNAME, DEFAULT_INSTALL_PATH, STR_MSGCAPTION
WelcomeDlg:
if Welcome() = NAV_BACK then
' Don nothing - cant go back
end if
if TestSystem() = NAV_BACK then
goto WelcomeDlg
end if
ExpressCustomDlg:
' defaults to Express
'if szExpressCustomChoice = "EXPRESS" then
' SetSymbolValue "RadioDefault", "1"
'else
' SetSymbolValue "RadioDefault", "1"
'end if
ECDlgLoop:
szButton = UIStartDlg(CUIDLL_FILENAME, IDD_SPEED, "FRadioDlgProc", IDD_WHIZZHELP, PROC_HELP)
select case szButton
case "REACTIVATE"
goto ECDlgLoop
case "BACK"
UIPop 1
goto WelcomeDlg
case "CONTINUE" ' Install
UIPop 1
if GetSymbolValue("ButtonChecked") = "1" then
szExpressCustomChoice = "EXPRESS"
goto ExpressInstallLoop
else
szExpressCustomChoice = "CUSTOM"
goto CustomInstallLoop
end if
case "EXIT"
AskQuit
goto ECDlgLoop
end select
CustomInstallLoop:
GetPathDlg:
SetSymbolValue "EditTextIn", szDestPath
szOldDestPath = szDestPath
SetSymbolValue "EditFocus", "ALL"
GetPathDlgLoop:
szButton = UIStartDlg(CUIDLL_FILENAME, IDD_DESTPATH, "FEditDlgProc", IDD_PATHHELP, PROC_HELP)
select case szButton
case "REACTIVATE"
goto GetPathDlgLoop
case "BACK"
UIPop 1
szDestPath = szOldDestPath
goto ECDlgLoop
case "CONTINUE"
UIPop 1
szDestPath = GetSymbolValue("EditTextOut")
if mid$(szDestPath, 2, 1) = ":" and mid$(szDestPath, 3, 1) <> "\" then
szTemp$ = mid$(szDestPath, 1, 2) + "\" + mid$(szDestPath, 3, len(szDestPath)-2)
szDestPath = szTemp
end if
if mid$(szDestPath, 2, 1) <> ":" then
if mid$(szDestPath, 1,1) <> "\" then
szDestPath = mid$(szWinPath, 1,1) + ":\" + szDestPath
else
szDestPath = mid$(szWinPath, 1,1) + ":" + szDestPath
end if
elseif IsDriveValid(mid$(szDestPath, 1,1)) = 0 then
szDestPath = szOldDestPath
UIPop 1
BadPath
goto GetPathDlg
end if
' check for "foreign" chars in path
slength% = len(szDestPath)
found% = 0
for i% = 1 to slength%
if asc(mid$(szDestPath, i%, 1)) > 126 then
found% = 1
end if
next i%
if found% = 1 then
szDestPath = szOldDestPath
UIPop 1
BadPath
goto GetPathDlg
end if
wDrive% = asc(mid$(szDestPath, 1,1)) - asc("A")
if IsCDROMDrive(wDrive%) > 0 then
szDestPath = szOldDestPath
UIPop 1
BadPath
goto GetPathDlg
end if
if IsDriveNetwork(mid$(szDestPath,1,1)) = 1 then
szDestPath = szOldDestPath
UIPop 1
NetworkDrive
goto GetPathDlg
end if
if IsDirWritable(szDestPath) = 0 then
szDestPath = szOldDestPath
UIPop 1
BadPath
goto GetPathDlg
end if
' if DoesDirExist(szDestPath) = 0 then
' dButton = DoMsgBox( STR_DIRNOTEXIST, STR_MSGCAPTION, MB_OK+MB_TASKMODAL+MB_ICONHAND)
' if dButton = 7 then
' goto GetPathDlg
' end if
' end if
UIPop 1
case "EXIT"
AskQuit
goto GetPathDlg
end select
GetCustomChoicesDlg:
SetSymbolValue "CheckItemsState", ""
AddListItem "CheckItemsState", szMinimalInstall
AddListItem "CheckItemsState", szAddPMItem
GetCustomChoicesLoop:
ClearCopyList
if szMinimalInstall = "OFF" then
AddFilesToCopyList "FULL"
else
AddFilesToCopyList "MINIMAL"
end if
dDestDrive = asc(mid$(szDestPath, 1,1)) - asc("A")+1
dWinDrive = asc(mid$(szWinPath, 1,1)) - asc("A")+1
SetSymbolValue "DriveStatusText", ""
AddListItem "DriveStatusText", mid$(szDestPath, 1,1) + ":"
AddListItem "DriveStatusText", str$(GetDiskSpaceNeeded(dDestDrive) / 1024) + " K"
AddListItem "DriveStatusText", str$(GetFreeSpaceForDrive(mid$(szDestPath, 1,1))/1024) + " K"
if dDestDrive = dWinDrive then
AddListItem "DriveStatusText", ""
AddListItem "DriveStatusText", ""
AddListItem "DriveStatusText", ""
else
AddListItem "DriveStatusText", mid$(szWinPath, 1,1) + ":"
AddListItem "DriveStatusText", str$(GetDiskSpaceNeeded(dWinDrive)/ 1024 ) + " K"
AddListItem "DriveStatusText", str$(GetFreeSpaceForDrive(mid$(szWinPath, 1,1))/1024) + " K"
end if
AddListItem "DriveStatusText", szDestPath
ChooseInstall:
szButton = UIStartDlg(CUIDLL_FILENAME, IDD_CUSTOM, "FCustInstDlgProc", IDD_CUSTOMHELP, PROC_HELP)
szMinimalInstall = GetListItem("CheckItemsState", 1)
szAddPMItem = GetListItem("CheckItemsState", 2)
select case szButton
case "REACTIVATE"
goto GetCustomChoicesLoop
case "BACK"
UIPop 1
goto GetPathDlg
case "CONTINUE"
UIPop 1
case "EXIT"
AskQuit
goto GetCustomChoicesLoop
end select
ClearCopyList
if szMinimalInstall = "OFF" then
AddFilesToCopyList "FULL"
else
AddFilesToCopyList "MINIMAL"
end if
goto CommonInstallLoop
ExpressInstallLoop:
AddFilesToCopyList "FULL"
goto CommonInstallLoop
CommonInstallLoop:
InitCommonInstall
if szMinimalInstall = "ON" and GetFreeSpaceForDrive(mid$(szDestPath,1,1)) < MINIMUM_DISK_SPACE then
error ERR_NODISKSPACE
elseif GetFreeSpaceForDrive(mid$(szDestPath,1,1)) < GetDiskSpaceNeeded( asc(mid$(szDestPath, 1,1))-asc("A")+1 ) then
error ERR_NODISKSPACE
end if
UpdateWinGDrivers
UpdateIndeoAVIDrivers
Install
CreateProgmanGroup STR_COMPANYNAME, "", cmoNone
ShowProgmanGroup STR_COMPANYNAME, 1, cmoNone
szReadmeTitle$ = STR_PRODUCTNAME + " " + STR_README
szSamplerPath$ = MakePath( mid$(szSrcSetupPath, 1, (len(szSrcSetupPath) - len(SOURCE_SETUP_SUBDIR))-1), SAMPLER_PATH)
szSamplerPath$ = MakePath(szSamplerPath$, APPLICATION_EXE2_FILE)
if szMinimalInstall = "ON" then
szInf$ = MakePath(szSrcBinPath, APPLICATION_MENU_FILE) + " " + MakePath(szSrcBinPath, APPLICATION_EXE_FILE) + " " + MakePath(szSrcBinPath, APPLICATION_PENGE_FILE) + " " + szSamplerPath$
CreateProgmanItem STR_COMPANYNAME, STR_PRODUCTNAME, szInf, szInf, cmoOverwrite
CreateProgmanItem STR_COMPANYNAME, STR_README, "write.exe " + MakePath(szSrcBinPath, APPLICATION_README_FILE), "", cmoOverwrite
else
szInf$ = MakePath(szDestPath, APPLICATION_MENU_FILE) + " " + MakePath(szDestPath, APPLICATION_EXE_FILE) + " " + MakePath(szDestPath, APPLICATION_PENGE_FILE) + " " + szSamplerPath$
CreateProgmanItem STR_COMPANYNAME, STR_PRODUCTNAME, szInf, szInf, cmoOverwrite
CreateProgmanItem STR_COMPANYNAME, STR_README, "write.exe " + MakePath(szDestPath, APPLICATION_README_FILE), "", cmoOverwrite
end if
'$IFDEF DEBUG
DumpCopyList MakePath(szDestPath, "copylist.txt")
'$ENDIF ''DEBUG
EndCommonInstall APPLICATION_README_FILE, 0
quit:
on error goto quit
select case ERR
case 0
hDlg = IDD_EXITSUCCESS
case STFQUIT
hDlg = IDD_EXITQUIT
case ERR_NODISKSPACE
hDlg = IDD_NODISKSPACE
case else
hDlg = IDD_EXITFAILURE
end select
UIPop 10
quit2:
szButton = UIStartDlg(CUIDLL_FILENAME, hDlg, "FInfo0DlgProc", 0, "")
select case szButton
case "REACTIVATE"
goto quit2
end select
UIPop 1
DeInitialise
stop
end
quitError:
dButton = DoMsgBox (STR_QUITERROR, STR_MSGCAPTION, MB_OK+MB_TASKMODAL+MB_ICONHAND)
DeInitialise
stop
end
Sub Install() STATIC
cursor% = ShowWaitCursor()
CreateDir szDestPath, cmoNone
SetRestartDir szDestPath
RestoreCursor(cursor%)
CopyFilesInCopyList
Run ("regedit.exe /s " + MakePath(szWinPath, "mplayer.reg"))
Run ("regedit.exe /s " + MakePath(szWinSysPath, "OLE2.reg"))
Run ("regedit.exe /s " + MakePath(szWinSysPath, "cleanup.reg"))
Run ("profdisp.exe")
if INI_FILE_SOURCE = "AppPath" then
szAppINIPath = MakePath(szDestPath, APPLICATION_INI_FILE)
else
szAppINIPath = MakePath(szWinPath, APPLICATION_INI_FILE)
end if
szPengePath = mid$(szSrcSetupPath, 1,len(szSrcSetupPath)-len(SOURCE_SETUP_SUBDIR)-2) ' -2 removes backslash
CreateIniKeyValue szAppINIPath, PRODUCT_INI_DIR_SECTION_NAME, PRODUCT_INI_DIR_ENTRY_NAME, szPengePath, cmoOverwrite
End Sub
Sub AddFilesToCopyList(szInstallType$) STATIC
cursor% = ShowWaitCursor()
select case szInstallType
case "FULL"
AddSectionFilesToCopyList SETUP_INI_BINARIES_SECTION_NAME, szSrcBinPath, szDestPath
case "MINIMAL"
' nothing
end select
' if fSystemUpdated = 1 then
AddSectionFilesToCopyList SETUP_INI_WING_BINARIES_NAME, szSrcBinPath, szWinSysPath
AddSectionFilesToCopyList SETUP_INI_WING32_BINARIES_NAME, szSrcBinPath, szWinSysPath
AddSectionFilesToCopyList "VfW Runtime", szSrcBinPath, szWinSysPath
AddSectionFilesToCopyList "OLE2", szSrcBinPath, szWinSysPath
AddSectionFilesToCopyList "ACM Drivers", szSrcBinPath, szWinSysPath
AddSectionFilesToCopyList "MPlayer", szSrcBinPath, szWinPath
AddSectionFilesToCopyList "AVICodecs", szSrcBinPath, szWinSysPath
' end if
RestoreCursor(cursor%)
End Sub