home *** CD-ROM | disk | FTP | other *** search
- '**************************************************************************
- '* Puzzlemania Setup
- '**************************************************************************
- '$INCLUDE 'setupapi.inc'
- '$INCLUDE 'mscpydis.inc' ' System
- '$INCLUDE 'msdetect.inc' ' Detects Avalilable Disk Space
-
- ' Dialog ID's
- CONST WELCOME = 100
- CONST ASKQUIT = 200
- CONST EXITSUCCESS = 700
- CONST APPHELP = 2000
- CONST SUCCESSHELP = 2300
- CONST BADWINVER = 6500
- CONST HASWINNT = 6600
-
- ' Bitmap ID
- CONST LOGO = 1
-
- ' The following were taken from windows.h. &H means they're hex
- CONST WS_VISIBLE = &H10000000
- CONST WS_BORDER = &H00800000
- CONST WS_CLIPCHILDREN = &H02000000
- CONST GWL_STYLE = -16
- CONST SW_SHOWMAXIMIZED = 3
-
- GLOBAL RebootMsg%
- GLOBAL PuzzleDestDir$
-
- DECLARE SUB CreateProgGroup
- DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
- DECLARE FUNCTION OnWindowsNT LIB "INIUPD.DLL" AS INTEGER
- DECLARE FUNCTION ShowWindow LIB "user.exe" (hWnd%, iShow%) AS INTEGER
- DECLARE FUNCTION SetWindowLong LIB "user.exe" (hWnd%, offset%, style&) AS LONG
-
- '******************************************************************
- '** Declare the funcitons in USER.EXE we need to register a
- '** unique message identifier and needed to post that message
- '** to the Setup shell program. See the Windows api documentation
- '** for additional information on these functions.
- '******************************************************************
- DECLARE FUNCTION PostMessage LIB "user" (hwnd%, msg%, wparam%, lparam&) AS INTEGER
- DECLARE FUNCTION RegisterWindowMessage LIB "user" (szRebootMessage$) AS INTEGER
-
- INIT:
-
- CUIDLL$ = "mscuistf.dll" ''Custom user interface dll
- HELPPROC$ = "FHelpDlgProc" ''Help dialog procedure
-
- WIN32ENABLED% = 0
- MajorVer% = GetWindowsMajorVersion()
- MinorVer% = GetWindowsMinorVersion()
-
- IF MajorVer% < 3 OR (MajorVer% = 3 AND MinorVer% < 10) THEN
- GOSUB WRONGWIN
- END
- END IF
-
- IF OnWindowsNT() THEN
- GOSUB WINNT
- END
- END IF
-
- SetBitmap CUIDLL$, LOGO
- SetTitle "PUZZLEMANIA"
-
- hWnd% = HwndFrame()
- i1& = SetWindowLong(hWnd%,GWL_STYLE,WS_VISIBLE+WS_BORDER+WS_CLIPCHILDREN)
- j1%=ShowWindow(hWnd%,SW_SHOWMAXIMIZED)
-
- szInf$ = GetSymbolValue("STF_SRCINFPATH")
- IF szInf$ = "" THEN
- szInf$ = GetSymbolValue("STF_CWDDIR") + "SETUP.INF"
- END IF
- ReadInfFile szInf$
-
- '***************************************************************
- '** Here we go registering the message so we can communicate
- '** with the Setup shell.
- '***************************************************************
- RebootMsg% = RegisterWindowMessage ("SetupOK")
-
- WELCOME:
- sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", APPHELP, HELPPROC$)
- IF sz$ = "CONTINUE" THEN
- UIPop 1
- ELSE
- GOSUB ASKQUIT
- GOTO WELCOME
- END IF
-
- ' We just create the program group and start the QT installer
- PuzzleDestDir$ = GetSymbolValue("STF_SRCDIR")
- PuzzleDestDir$ = MID$(PuzzleDestDir$, 1, 2) 'extract volume we are running from
- CreateProgGroup
-
- QUIT:
- sz$ = UIStartDlg(CUIDLL$, EXITSUCCESS, "FInfo0DlgProc", SUCCESSHELP, HELPPROC$)
- IF sz$ = "REACTIVATE" THEN
- GOTO QUIT
- END IF
-
- ' Run QuickTime install
- j% = PostMessage (65535, RebootMsg%, 0, 0)
-
- END ' exit
-
- ASKQUIT:
- sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
-
- IF sz$ = "EXIT" THEN
- UIPopAll
- END
- ELSEIF sz$ = "REACTIVATE" THEN
- GOTO ASKQUIT
- ELSE
- UIPop 1
- END IF
- RETURN
-
- WRONGWIN:
- sz$ = UIStartDlg(CUIDLL$, BADWINVER, "FInfo0DlgProc", 0, "")
- IF sz$ = "REACTIVATE" THEN
- GOTO WRONGWIN
- END IF
- UIPop 1
- RETURN
-
- WINNT:
- sz$ = UIStartDlg(CUIDLL$, HASWINNT, "FInfo0DlgProc", 0, "")
- IF sz$ = "REACTIVATE" THEN
- GOTO WINNT
- END IF
- UIPop 1
- RETURN
-
- ' Creates program group.
- SUB CreateProgGroup STATIC
- CreateProgmanGroup "PUZZLEMANIA", "", cmoNone
- ShowProgmanGroup "PUZZLEMANIA", 1, cmoNone
- CreateProgmanItem "PUZZLEMANIA", "PUZZLEMANIA", MakePath(PuzzleDestDir$, "puzmania.exe"), "", cmoOverwrite
- CreateProgmanItem "PUZZLEMANIA", "About PUZZLEMANIA", MakePath(PuzzleDestDir$, "puzmania.wri"), "", cmoOverwrite
- 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
-