home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
VRML Tools for 3D Cyberspace
/
VRML_Tools_For_3D_Cyberspace.iso
/
web_fx
/
webfx.mst
< prev
next >
Wrap
Text File
|
1996-07-01
|
11KB
|
364 lines
'**************************************************************************
'* MSSetup Toolkit Sample 1
'**************************************************************************
'$DEFINE DEBUG ''Define for script development/debugging
'$INCLUDE 'setupapi.inc'
'$INCLUDE 'msdetect.inc'
''Dialog ID's
CONST WELCOME = 100
CONST ASKQUIT = 200
CONST DESTPATH = 300
CONST EXITFAILURE = 400
CONST EXITQUIT = 600
CONST EXITSUCCESS = 700
CONST OPTIONS = 800
CONST APPHELP = 900
CONST BADPATH = 6400
CONST CUSTINST = 6200
CONST NETSCAPE = 8000
CONST BADNETSCAPE = 8100
''Bitmap ID
CONST LOGO = 1
GLOBAL DEST$ ''Default destination directory.
GLOBAL OPTCUR$ ''Option selection from option dialog.
GLOBAL szDATA$ ''Data directory
GLOBAL szVRML$ ''VRML directory
GLOBAL szCastle$ ''Castle directory
GLOBAL szJet$ ''Jet directory
GLOBAL szModels$ ''Models directory
GLOBAL szMtv$ ''Mtv directory
GLOBAL szWeather$ ''Weather directory
GLOBAL szNetscape$ ''Netscape Directory
GLOBAL szPlugin$ ''Plugin Directory
GLOBAL szGreg$ '' Dummy
GLOBAL szNetscapeIni$ '' Netscape INI
GLOBAL szGeeWiz$ '' Another Dummy
DECLARE SUB Install
DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
DECLARE FUNCTION ExeFileType LIB "mscuistf.dll" (szFile$) AS INTEGER
INIT:
CUIDLL$ = "mscuistf.dll" ''Custom user interface dll
HELPPROC$ = "FHelpDlgProc" ''Help dialog procedure
SetBitmap CUIDLL$, LOGO
SetTitle "WebFX for Netscape"
szInf$ = GetSymbolValue("STF_SRCINFPATH")
IF szInf$ = "" THEN
szInf$ = GetSymbolValue("STF_CWDDIR") + "WEBFX.INF"
END IF
ReadInfFile szInf$
OPTCUR$ = "1"
DEST$ = "C:\WEBFX"
szDATA$ = "C:\WEBFX\DATA"
szVRML$ = "C:\WEBFX\VRML"
szCastle$ = "C:\WEBFX\VRML\CASTLE"
szJet$ = "C:\WEBFX\VRML\JET"
szModels$ = "C:\WEBFX\VRML\MODELS"
szMtv$ = "C:\WEBFX\VRML\MTV"
szWeather$ = "C:\WEBFX\VRML\WEATHER"
'$IFDEF DEBUG
i% = SetSizeCheckMode(scmOnIgnore) '' could use scmOff; def = scmOnFatal
WinDrive$ = MID$(GetWindowsDir, 1, 1)
IF IsDriveValid(WinDrive$) = 0 THEN
i% = DoMsgBox("Windows drive ('"+WinDrive$+"') is not a valid drive.", "DEBUG", MB_TASKMODAL+MB_ICONHAND+MB_OK)
GOTO QUIT
END IF
'$ENDIF ''DEBUG
WELCOME:
sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", APPHELP, HELPPROC$)
IF sz$ = "CONTINUE" THEN
UIPop 1
ELSE
GOSUB ASKQUIT
GOTO WELCOME
END IF
OPTION:
OPTL1:
GETPATH:
SetSymbolValue "EditTextIn", DEST$
SetSymbolValue "EditFocus", "END"
GETPATHL1:
sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", APPHELP, HELPPROC$)
DEST$ = GetSymbolValue("EditTextOut")
IF sz$ = "CONTINUE" THEN
IF IsDirWritable(DEST$) = 0 THEN
GOSUB BADPATH
GOTO GETPATHL1
END IF
UIPop 1
ELSEIF sz$ = "REACTIVATE" THEN
GOTO GETPATHL1
ELSEIF sz$ = "BACK" THEN
UIPop 1
GOTO WELCOME
ELSE
GOSUB ASKQUIT
GOTO GETPATH
END IF
NETSCAPE:
szNetscapeIni$ = GetIniKeyString("WIN.INI", "Netscape", "ini")
szNetscape$ = GetIniKeyString("WIN.INI", "Netscape", "ini")
IF szNetscape$ = "" THEN
szNetscape$ = MID$(GetWindowsDir, 1, 1) + ":\NETSCAPE\NETSCAPE.EXE"
szPlugin$ = MID$(GetWindowsDir, 1, 1) + ":\NETSCAPE\PLUGINS"
szData$ = MID$(GetWindowsDir, 1, 1) + ":\NETSCAPE\PLUGINS\DATA"
ELSE
SPLITPATH szNetscape$, drv$, dir$, filename$, ext$
szNetscape$ = drv$ + MID$(dir$, 1, LEN(dir$) - 1) + "\NETSCAPE.EXE"
szPlugin$ = drv$ + MID$(dir$, 1, LEN(dir$) - 1) + "\PLUGINS"
szData$ = drv$ + MID$(dir$, 1, LEN(dir$) - 1) + "\PLUGINS\DATA"
END IF
SetSymbolValue "EditTextIn", szNetscape$
SetSymbolValue "EditFocus", "END"
NETSCAPEL1:
sz$ = UIStartDlg(CUIDLL$, NETSCAPE, "FNetscapeDlgProc", APPHELP, HELPPROC$)
szNetscape$ = GetSymbolValue("EditTextOut")
IF sz$ = "CONTINUE" THEN
'*
'* NEED TO CHECK NETSCAPE.EXE HERE!
'*
'* IF IsDirWritable(DEST$) = 0 THEN
'* GOSUB BADPATH
'* GOTO GETPATHL1
'* END IF
IF ExeFileType(szNetscape$) = 2 THEN
GOSUB BADNETSCAPE
GOTO NETSCAPEL1
ENDIF
IF szNetscape$ = "" THEN
szNetscape$ = MID$(GetWindowsDir, 1, 1) + ":\NETSCAPE\NETSCAPE.EXE"
szPlugin$ = MID$(GetWindowsDir, 1, 1) + ":\NETSCAPE\PLUGINS"
szData$ = MID$(GetWindowsDir, 1, 1) + ":\NETSCAPE\PLUGINS\DATA"
ELSE
SPLITPATH szNetscape$, drv$, dir$, filename$, ext$
szNetscape$ = drv$ + MID$(dir$, 1, LEN(dir$) - 1) + "\NETSCAPE.EXE"
szPlugin$ = drv$ + MID$(dir$, 1, LEN(dir$) - 1) + "\PLUGINS"
szData$ = drv$ + MID$(dir$, 1, LEN(dir$) - 1) + "\PLUGINS\DATA"
END IF
UIPop 1
ELSEIF sz$ = "REACTIVATE" THEN
GOTO NETSCAPEL1
ELSEIF sz$ = "BACK" THEN
UIPop 1
GOTO GETPATHL1
ELSE
GOSUB ASKQUIT
GOTO NETSCAPE
END IF
Install
QUIT:
ON ERROR GOTO ERRQUIT
IF ERR = 0 THEN
dlg% = EXITSUCCESS
ELSEIF ERR = STFQUIT THEN
dlg% = EXITQUIT
ELSE
dlg% = 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, call 1-800-551-5187!", "Setup Message", MB_OK+MB_TASKMODAL+MB_ICONHAND)
END
BADPATH:
sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "")
IF sz$ = "REACTIVATE" THEN
GOTO BADPATH
END IF
UIPop 1
RETURN
BADNETSCAPE:
sz$ = UIStartDlg(CUIDLL$, BADNETSCAPE, "FInfo0DlgProc", 0, "")
IF sz$ = "REACTIVATE" THEN
GOTO BADNETSCAPE
END IF
UIPop 1
RETURN
ASKQUIT:
sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
IF sz$ = "EXIT" THEN
UIPopAll
ERROR STFQUIT
ELSEIF sz$ = "REACTIVATE" THEN
GOTO ASKQUIT
ELSE
UIPop 1
END IF
RETURN
'**
'** Purpose:
'** Builds the copy list and performs all installation operations.
'** Arguments:
'** none.
'** Returns:
'** none.
'*************************************************************************
SUB Install STATIC
SrcDir$ = GetSymbolValue("STF_SRCDIR")
CreateDir DEST$, cmoNone
szVRML$ = MakePath(DEST$, "VRML")
CreateDir szVRML$, cmoNone
szCastle$ = MakePath(DEST$, "VRML\CASTLE")
CreateDir szCastle$, cmoNone
szJet$ = MakePath(DEST$, "VRML\JET")
CreateDir szJet$, cmoNone
szModels$ = MakePath(DEST$, "VRML\MODELS")
CreateDir szModels$, cmoNone
szMtv$ = MakePath(DEST$, "VRML\MTV")
CreateDir szMtv$, cmoNone
szWeather$ = MakePath(DEST$, "VRML\WEATHER")
CreateDir szWeather$, cmoNone
CreateDir szPlugin$, cmoNone
'* szDATA$ = MakePath(DEST$, "DATA")
CreateDir szDATA$, cmoNone
OpenLogFile MakePath(DEST$, "LOGFILE.OUT"), 0
WriteToLogFile ""
WriteToLogFile " User chose as destination directory: '" + DEST$ + "'"
WriteToLogFile " User chose option: '" + OPTCUR$ + "'"
WriteToLogFile ""
WriteToLogFile "May have had to create the directory: " + DEST$
WriteToLogFile ""
AddSectionFilesToCopyList "Files", SrcDir$, DEST$
AddSectionFilesToCopyList "Data", SrcDir$, szDATA$
AddSectionFilesToCopyList "VRML", SrcDir$, szVRML$
AddSectionFilesToCopyList "Castle", SrcDir$, szCastle$
AddSectionFilesToCopyList "Jet", SrcDir$, szJet$
AddSectionFilesToCopyList "Models", SrcDir$, szModels$
AddSectionFilesToCopyList "Weather", SrcDir$, szWeather$
AddSectionFilesToCopyList "Mtv", SrcDir$, szMtv$
AddSectionFilesToCopyList "Plugin", SrcDir$, szPlugin$
CopyFilesInCopyList
REM ini$ = MakePath(DEST$, "DEMO.INI")
REM CreateIniKeyValue "WIN.INI", "WebFX", "Option", OPTCUR$, cmoNone
REM CreateIniKeyValue ini$, "Section 1", "Key 1", "Value 1" , cmoNone
REM CreateIniKeyValue ini$, "Section 2", "Key 2", "Value 2" , cmoNone
REM CreateIniKeyValue ini$, "Section 3", "Key 3", "Value 3" , cmoNone
szGreg$ = MakePath(DEST$,"webfx.exe")
'* RemoveIniKey szNetscapeIni$, "Viewers", "x-world/x-vrml", cmoNone
'* CreateIniKeyValue szNetscapeIni$, "Viewers", "x-world/x-vrml", szGreg$, cmoNone
CreateIniKeyValue szNetscapeIni$, "Viewers", "x-world/x-vrml", szGreg$, cmoOverwrite
'* CreateIniKeyValue szNetscapeIni$, "Viewers", "TYPE20", "x-world/x-vrml", cmoNone
CreateIniKeyValue szNetscapeIni$, "Suffixes", "x-world/x-vrml", "wrl,wrz,gz", cmoOverwrite
'* Let's find the next available entry for this viewer type!!
j%=0
FOR i% = 0 TO 100 STEP 1
szGeeWiz$=STR$(i%)
szGeeWiz$="TYPE"+LTRIM$(szGeeWiz$)
szGeeWiz$ = GetIniKeyString(szNetscapeIni$, "Viewers", szGeeWiz$)
IF szGeeWiz$ = "" THEN
j% = i%
i% = 100
ELSEIF szGeeWiz$ = "x-world/x-vrml" THEN
j% = -1
i% = 100
END IF
NEXT
IF j% <> -1 THEN
szGeeWiz$=STR$(j%)
szGeeWiz$="TYPE"+LTRIM$(szGeeWiz$)
CreateIniKeyValue szNetscapeIni$, "Viewers", szGeeWiz$, "x-world/x-vrml", cmoOverwrite
ENDIF
CreateProgmanGroup "WebFX", "", cmoNone
ShowProgmanGroup "WebFX", 1, cmoNone
CreateProgmanItem "WebFX", "WebFX Plugin for Netscape", szNetscape$+" "+MakePath(DEST$,"welcome.htm"), MakePath(DEST$,"webfx.ico"), cmoOverwrite
CreateProgmanItem "WebFX", "Cool Worlds", szNetscape$+" "+MakePath(DEST$,"coolwrls.htm"), "", cmoOverwrite
CreateProgmanItem "WebFX", "WebFX Readme", "write.exe "+MakePath(DEST$,"webfx.wri"), "", cmoOverwrite
AddDos5Help "WEBFX", "A brief help text for your Windows application."+chr$(10)+"It can be continued on another line with chr$(10).", cmoNone
REM szNetscape$ = FindFileInTree("netscape.exe", "c:\")
szNetscape$ = FindFileUsingFileOpen("netscape.exe")
WriteToLogFile "Found Netscape at: " + szNetscape$
CloseLogFile
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