'**************************************************************************
'*                       VfW 1.0 Runtime 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 DESTPATH      = 300
CONST EXITFAILURE   = 400
CONST EXITQUIT      = 600
CONST EXITSUCCESS   = 700
CONST OPTIONS       = 800
CONST APPHELP       = 900
CONST APPHELP2      = 1500
CONST APPHELP3      = 1700
CONST CHECK         = 2500
CONST TOOBIG        = 6300
CONST BADPATH       = 6400

''Bitmap ID
CONST LOGO = 1

''Disk Sizes

GLOBAL File1
GLOBAL File2
GLOBAL WantedDiskSize&

''File Types
GLOBAL DEST$        ''Default destination directory.
GLOBAL WINDRIVE$    ''Windows Drive Letter.
GLOBAL OPTCUR$      ''Option selection from option dialog.
GLOBAL CHECKSTATES$
GLOBAL RUNTIME$
GLOBAL AVITOOLS$
GLOBAL MDKTOOLS$
GLOBAL TOOLS$

SrcDir$ = GetSymbolValue("STF_SRCDIR")
WinDir$ = GetWindowsDir()
WinSysDir$ = GetWindowsSysDir()

DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING

INIT:
    CUIDLL$ = "mscuistf.dll"            ''Custom user interface dll
    HELPPROC$ = "FHelpDlgProc"          ''Help dialog procedure

    MajorVer% = GetWindowsMajorVersion()
    MinorVer% = GetWindowsMinorVersion()

    IF  MajorVer% < 3 OR (MajorVer% = 3 AND MinorVer% < 10) THEN
    i% = DoMsgBox("Microsoft Windows version 3.10 or greater is required for this software.  Please upgrade your version of Windows.", "Installation Problem", MB_OK+MB_TASKMODAL+MB_ICONHAND)
        END
    END IF

    SetBitmap CUIDLL$, LOGO
    SetTitle "Video for Windows 1.0"

    szInf$ = GetSymbolValue("STF_SRCINFPATH")
    IF szInf$ = "" THEN
        szInf$ = GetSymbolValue("STF_CWDDIR") + "VFWSETUP.INF"
    END IF
    ReadInfFile szInf$

    WINDRIVE$ = MID$(WinDir$, 1, 1)

WELCOME:
    sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", APPHELP, HELPPROC$)
    IF sz$ = "CONTINUE" THEN
        UIPop 1
    ELSE
        GOSUB ASKQUIT
        GOTO WELCOME
    END IF

ClearCopyList

        WantedDiskSize&=1024000

        DiskSize&=GetFreeSpaceForDrive(WINDRIVE$)

        If WantedDiskSize& > DiskSize& then
            GOSUB TOOBIG
            ERROR STFQUIT
        EndIf

'' Setting RUNTIME files to be copied
        AddSectionFilesToCopyList "MPlayer", SrcDir$, WinDir$
        AddSectionFilesToCopyList "VfW Runtime", SrcDir$, WinSysDir$
        AddSectionFilesToCopyList "AVICodecs", SrcDir$, WinSysDir$

CopyFilesInCopyList

''Updating WIN.INI and SYSTEM.INI
        CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.MSVC", "msvidc.drv", cmoOverwrite
        CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.RT21", "indeo.drv", cmoOverwrite
        CreateIniKeyValue "WIN.INI", "mci extensions", "avi", "AVIVideo", cmoOverwrite
        CreateIniKeyValue WinDir$ + "system.ini", "mci", "AVIVideo", "mciavi.drv", cmoOverwrite

Run ("regedit.exe /s " + MakePath(WinDir$, "mplayer.reg"))

Run ("profdisp")

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 the included support number", "Setup Problem", MB_OK+MB_TASKMODAL+MB_ICONHAND)
    END

ASKQUIT:
    sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")

    IF sz$ = "EXIT" THEN
        UIPopAll
''        ERROR STFQUIT
        END
    ELSEIF sz$ = "REACTIVATE" THEN
        GOTO ASKQUIT
    ELSE
        UIPop 1
    END IF
    RETURN

TOOBIG:
    sz$ = UIStartDlg(CUIDLL$, TOOBIG, "FInfo0DlgProc", 0, "")
    IF sz$ = "REACTIVATE" THEN
        GOTO TOOBIG
    END IF
    UIPop 1
    RETURN

'**
'** 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

