home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Visual Basic 4 Unleashed
/
Visual_Basic_4_Unleashed_SAMS_Publishing_1995.iso
/
choreo
/
choreo.mst
< prev
next >
Wrap
Text File
|
1995-09-11
|
34KB
|
1,076 lines
'**************************************************************************
'* CHOREO SETUP - TRIAL VERSION 1.1
'**************************************************************************
''Define for script development/debugging
'$DEFINE DEBUG 1
'$INCLUDE 'setupapi.inc'
'$INCLUDE 'msdetect.inc'
'$INCLUDE 'msregdb.inc'
''Dialog ID's
CONST WELCOME = 100
CONST ACROBAT_INFO = 130
CONST ASKQUIT = 200
CONST DESTPATH = 300
CONST EXITFAILURE = 400
CONST EXITQUIT = 600
CONST EXITSUCCESS = 700
CONST APPHELP = 900
CONST CDBADPATH = 6400
CONST CUSTINST = 6200
CONST CDTOOBIG = 6300
CONST MULT_DB_DRIVER = 4000
CONST SING_PROG_GROUP = 4100
CONST AUTOEXEC_PATH = 4200
CONST CDGETNAMEORG = 7500
CONST CDCONFIRMINFO = 7300
CONST VBPATHDLG = 4300
CONST VBCVCTLVBXDLG = 4500
CONST CDGETSERIALNUMBER = 7501
CONST CDSERIAL_ERROR = 7502
'' njg infomercials
CONST INFOMERCIAL1 = 101
''CONST INFOMERCIAL2 = 102
''Bitmap ID
CONST LOGO = 1
''File Types
CONST CHOREOFILES = 1
CONST DBFILES = 2
CONST HELPFILES = 3
CONST EXAMPLEFILES = 4
CONST TUTORFILES = 5
CONST GUPTADBFILES = 6
CONST GUPTADOCFILES = 7
''CONST BADDIR = 0
''CONST NEWAPP = 1
GLOBAL DEST$ ''Default destination directory
GLOBAL DESTDRIVE$ ''Destination drive
GLOBAL WINDRIVE$ ''Windows drive letter
GLOBAL WINSYSDIR$ ''Windows System Directory
GLOBAL WINDOWSDIR$ ''Windows directory
GLOBAL EXAMPLEDIR$
GLOBAL BNDCTLDIR$
GLOBAL DBSDIR$
GLOBAL DIRSQLSUBDIR$
GLOBAL GUPTADIR$
GLOBAL DOCSUBDIR$
''CustInst list symbol names
GLOBAL CHOREONEEDS$ ''Option list costs per drive
GLOBAL DBNEEDS$
GLOBAL HELPNEEDS$
GLOBAL EXAMPLENEEDS$
GLOBAL TUTORNEEDS$
GLOBAL GUPTADBNEEDS$
GLOBAL GUPTADOCNEEDS$
GLOBAL EXTRACOSTS$ ''List of extra costs to add per drive
''Dialog list symbol names
GLOBAL CHECKSTATES$
GLOBAL STATUSTEXT$
GLOBAL DRIVETEXT$
GLOBAL DBLISTIN$
GLOBAL DBLISTOUT$
GLOBAL GRPLISTIN$
GLOBAL GRPLISTOUT$
GLOBAL AUTOEXECPATHDEFAULT$
GLOBAL AUTOEXECPATHGREYED$
GLOBAL AUTOEXECPATHCHECKED$
GLOBAL GUPTANEWAPPSTATE$
GLOBAL VBCVCTLADDSTATE$
''Status of check boxes
GLOBAL NAMEOUT$
GLOBAL ORGOUT$
GLOBAL CONFIRMINFO$
GLOBAL GUPTA_DIR$
GLOBAL VBDIR$
''Flags
GLOBAL GOTDBFILE$
GLOBAL NOT_ENOUGH_SPACE
GLOBAL bInstallDBSforTutorial
DECLARE SUB AddOptFilesToCopyList (ftype%)
DECLARE SUB RecalcOptFiles (ftype%)
DECLARE SUB RecalcPath
DECLARE SUB SetDriveStatus
DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
'' MSCUISTF.DLL function calls
DECLARE FUNCTION UpdateAutoexec LIB "MSCUISTF.DLL" (szChoreoDir$, szGuptaDir$) AS INTEGER
DECLARE FUNCTION CreateExampleAutoexec LIB "MSCUISTF.DLL" (szChoreoDir$, szGuptaDir$) AS INTEGER
DECLARE FUNCTION WriteVBXToMakFile LIB "MSCUISTF.DLL" (szVBPath$,szVBXName$) AS INTEGER
DECLARE FUNCTION GetWinDir LIB "MSCUISTF.DLL" () AS INTEGER
DECLARE FUNCTION GetSysDir LIB "MSCUISTF.DLL" () AS INTEGER
DECLARE FUNCTION MaximizeFrameWnd LIB "MSCUISTF.DLL" (hWnd%) AS INTEGER
DECLARE FUNCTION GetCopyGaugeX LIB "MSCUISTF.DLL" (hWnd%) AS INTEGER
DECLARE FUNCTION GetCopyGaugeY LIB "MSCUISTF.DLL" (hWnd%) AS INTEGER
DECLARE FUNCTION AddINIEntries LIB "MSCUISTF.DLL" () AS INTEGER
INIT:
CUIDLL$ = "mscuistf.dll" ''Custom user interface dll
HELPPROC$ = "FHelpDlgProc" ''Help dialog procedure
GOTDBFILE$ = "NO"
SetBitmap CUIDLL$, LOGO
SetTitle "Choreo for Visual Basic"
'' njg - maximize the frame window
HFRAMEWND% = HwndFrame()
i% = MaximizeFrameWnd (HFRAMEWND%)
'' ------------------------------------------------------------------
'' Add the billboards for display during copying
''AddBlankToBillboardList 5 - api DOESN'T WORK!
FOR i% = 1 TO 7 STEP 1
AddToBillboardList CUIDLL$, INFOMERCIAL1, "FInfomercialProc1", 10
NEXT i%
'' Now adjust the position of the "progress" dlg so it is out of the way...
SetCopyGaugePosition GetCopyGaugeX(HFRAMEWND%), GetCopyGaugeY(HFRAMEWND%)
szInf$ = GetSymbolValue("STF_SRCINFPATH")
IF szInf$ = "" THEN
szInf$ = GetSymbolValue("STF_CWDDIR") + "CHOREO.INF"
END IF
ReadInfFile szInf$
'' Use the Windows functions in ouR DLL to get the Windows and System directories
i% = GetWinDir()
WINDOWSDIR$ = GetSymbolValue("WindowsDir")
WINDRIVE$ = MID$(WINDOWSDIR,1,1)
i% = GetSysDir()
WINSYSDIR$ = GetSymbolValue("WindowsSystemDir")
DEST$ = "C:\CHOREO"
DESTDRIVE$ = "C"
'' ---------------------------------
'' Set up the directory strings
EXAMPLEDIR$ = "Examples"
BNDCTLDIR$ = "Bnd_Ctrl"
DBSDIR$ = "dbs"
DIRSQLSUBDIR$ = "dir_sql"
GUPTADIR$ = "Gupta"
DOCSUBDIR$ = "Doc"
'' ---------------------------------
''Initialize Custom Install List Symbols
CHECKSTATES$ = "CheckItemsState"
STATUSTEXT$ = "StatusItemsText"
DRIVETEXT$ = "DriveStatusText"
DBLISTIN$ = "ListItemsIn"
DBLISTOUT$ = "ListItemsOut"
GRPLISTIN$ = "GroupListIn"
AUTOEXECPATHDEFAULT$ = "RadioDefault"
AUTOEXECPATHGREYED$ = "OptionsGreyed"
AUTOEXECPATHCHECKED$ = "ButtonChecked"
VBCVCTLADDSTATE$ = "ChoreoVBX"
VBDIR$ = "C:\"
FOR i% = 1 TO 3 STEP 1 '' Seven Check Boxes, only first 3 checked
AddListItem CHECKSTATES$, "ON"
NEXT i%
AddListItem CHECKSTATES$, "OFF"
AddListItem CHECKSTATES$, "ON"
AddListItem CHECKSTATES$, "OFF"
AddListItem CHECKSTATES$, "OFF"
FOR i% = 1 TO 7 STEP 1
AddListItem STATUSTEXT$, ""
NEXT i%
FOR i% = 1 TO 7 STEP 1
AddListItem DRIVETEXT$, ""
NEXT i%
ReplaceListItem DRIVETEXT$, 7, DEST$ '' Set IDC_TEXT7 to the chosen path
''Disk cost list symbols
CHOREONEEDS$ = "ChoreoNeeds"
DBNEEDS$ = "DBNeeds"
HELPNEEDS$ = "HelpNeeds"
EXAMPLENEEDS$ = "ExampleNeeds"
TUTORNEEDS$ = "TutorialNeeds"
GUPTADBNEEDS$ = "GuptaNeeds"
GUPTADOCNEEDS$ = "GutpaDocNeeds"
EXTRACOSTS$ = "ExtraCosts"
NOT_ENOUGH_SPACE = 0
bInstallDBSforTutorial = 1
FOR i% = 1 TO 26 STEP 1 '' For the maximum number of drives
AddListItem EXTRACOSTS$, "0"
NEXT i%
'' Get Data Driver information from the .INF file
AddListItem DBLISTIN$, "ODBC"
AddListItem DBLISTOUT$, "ODBC"
DBLISTOUT$ = GetSymbolValue("ListItemsOut")
VBCVCTLADDSTATE$= "ON"
NAMEOUT$ = ""
ORGOUT$ = ""
CONFIRMINFO$ = "ConfirmTextIn"
INSTALLYES$ = "YES"
INSTALLNO$ = ""
AddListItem CONFIRMINFO$, DEST$ '' Directory Path
AddListItem CONFIRMINFO$, DBLISTOUT$ '' Database Drivers
AddListItem CONFIRMINFO$, GRPLISTOUT$ '' Program Group name
AddListItem CONFIRMINFO$, NAMEOUT$ '' User name
AddListItem CONFIRMINFO$, ORGOUT$ '' Org name
AddListItem CONFIRMINFO$, VBDIR$ '' Visual Basic Path
AddListItem CONFIRMINFO$, INSTALLYES$ '' Install Examples
AddListItem CONFIRMINFO$, INSTALLYES$ '' Install tutorial
AddListItem CONFIRMINFO$, INSTALLYES$ '' Install Gupta
AddListItem CONFIRMINFO$, INSTALLYES$ '' Install Doc
AddListItem CONFIRMINFO$, INSTALLYES$ '' Install AutoLoad update
AddListItem AUTOEXECPATHDEFAULT$, "2"
AddListItem AUTOEXECPATHGREYED$, "1"
AddListItem AUTOEXECPATHCHECKED$, "2"
'' SetSymbolValue "ListItemsOut", DBLISTOUT$
RecalcPath
SetDriveStatus
'$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$)
sz$ = UIStartDlg(CUIDLL$, WELCOME, "FWelcomeDlgProc", APPHELP, HELPPROC$)
IF sz$ = "CONTINUE" THEN
UIPop 1
ELSEIF sz$ = "REACTIVATE" THEN
GOTO WELCOME
ELSE
GOSUB ASKQUIT
GOTO WELCOME
END IF
CUSTINST:
sz$ = UIStartDlg(CUIDLL$, CUSTINST, "FCustInstDlgProc", APPHELP, HELPPROC$)
IF sz$ = "CONTINUE" THEN
''Install only if it will fit.
IF NOT_ENOUGH_SPACE >0 THEN
GOSUB TOOBIG
GOTO CUSTINST
END IF
UIPop 1
GOTO GRPNAME
ELSEIF sz$ = "PATH" THEN
GOTO GETPATH
ELSEIF sz$ = "CHK1" THEN
RecalcOptFiles CHOREOFILES
SetDriveStatus
GOTO CUSTINST
ELSEIF sz$ = "CHK2" THEN
RecalcOptFiles DBFILES
SetDriveStatus
GOTO CUSTINST
ELSEIF sz$ = "CHK3" THEN
RecalcOptFiles HELPFILES
SetDriveStatus
GOTO CUSTINST
ELSEIF sz$ = "CHK4" THEN
bInstallDBSforTutorial = 1
RecalcOptFiles EXAMPLEFILES
RecalcOptFiles TUTORFILES
SetDriveStatus
GOTO CUSTINST
ELSEIF sz$ = "CHK5" THEN
RecalcOptFiles TUTORFILES
SetDriveStatus
GOTO CUSTINST
ELSEIF sz$ = "CHK6" THEN
RecalcOptFiles GUPTADBFILES
SetDriveStatus
GOTO CUSTINST
ELSEIF sz$ = "CHK7" THEN
RecalcOptFiles GUPTADOCFILES
SetDriveStatus
GOTO CUSTINST
ELSEIF sz$ = "BTN2" THEN
GOTO DBFILES
ELSEIF sz$ = "REACTIVATE" THEN
SetDriveStatus
GOTO CUSTINST
ELSE
GOSUB ASKQUIT
GOTO CUSTINST
END IF
GETPATH:
SetSymbolValue "EditTextIn", DEST$
SetSymbolValue "EditFocus", "ALL"
olddest$ = DEST$
GETPATHL1:
sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", APPHELP, HELPPROC$)
IF sz$ = "CONTINUE" THEN
olddest$ = DEST$
DEST$ = GetSymbolValue("EditTextOut")
''Validate new path.
IF IsDirWritable(DEST$) = 0 THEN
DEST$ = olddest$
GOSUB BADPATH
GOTO GETPATHL1
END IF
UIPop 1
''Truncate display if too long.
IF LEN(DEST$) > 23 THEN
ReplaceListItem DRIVETEXT$, 7, MID$(DEST$, 1, 23)+"..."
ELSE
ReplaceListItem DRIVETEXT$, 7, DEST$
END IF
''Recalc if path changed.
'' IF (olddest$ <> DEST$) AND (olddest$ <> DEST$+"\") AND (olddest$+"\" <> DEST$) THEN
RecalcPath
SetDriveStatus
'' END IF
olddest$ = ""
'' RecalcPath
'' SetDriveStatus
GOTO CUSTINST
ELSEIF sz$ = "REACTIVATE" THEN
GOTO GETPATHL1
ELSEIF sz$ = "EXIT" THEN
GOSUB ASKQUIT
GOTO GETPATHL1
ELSEIF sz$ = "BACK" THEN
UIPop 1
DEST$ = olddest$
GOTO CUSTINST
ELSE
UIPop 1
GOTO CUSTINST
END IF
DBFILES:
''ng% = DoMsgBox("DBFILES", "Debug Message", MB_OK)
SetSymbolValue "ListItemsOut", DBLISTOUT$
sz$ = UIStartDlg(CUIDLL$, MULT_DB_DRIVER, "FMultiDlgProc", APPHELP, HELPPROC$)
DBLISTOUT$ = GetSymbolValue("ListItemsOut")
GOTDBFILE$ = "YES"
IF sz$ = "CONTINUE" THEN
UIPop 1
RecalcOptFiles DBFILES
SetDriveStatus
GOTO CUSTINST
ELSEIF sz$ = "REACTIVATE" THEN
SetDriveStatus
GOTO DBFILES
ELSEIF sz$ = "EXIT" THEN
GOSUB ASKQUIT
GOTO DBFILES
ELSE
UIPop 1
GOTO CUSTINST
END IF
GRPNAME:
''ng% = DoMsgBox("GRPNAME", "Debug Message", MB_OK)
SetSymbolValue "GroupListOut", GRPLISTOUT$
sz$ = UIStartDlg(CUIDLL$, SING_PROG_GROUP, "FGroupListDlgProc", APPHELP, HELPPROC$)
GRPLISTOUT$ = GetSymbolValue("GroupListOut")
IF sz$ = "CONTINUE" THEN
UIPop 1
GOTO GETNAMEORG
ELSEIF sz$ = "BACK" THEN
UIPop 1
GOTO CUSTINST
ELSEIF sz$ = "EXIT" THEN
GOSUB ASKQUIT
GOTO GRPNAME
ELSEIF sz$ = "REACTIVATE" THEN
GOTO GRPNAME
ELSE
GOSUB ASKQUIT
GOTO GRPNAME
END IF
GETNAMEORG:
''ng% = DoMsgBox("GETNAMEORG", "Debug Message", MB_OK)
SetSymbolValue "NameOut", NAMEOUT$
SetSymbolValue "OrgOut", ORGOUT$
sz$ = UIStartDlg(CUIDLL$, CDGETNAMEORG, "FNameOrgDlgProc", APPHELP, HELPPROC$)
NAMEOUT$ = GetSymbolValue("NameOut")
ORGOUT$ = GetSymbolValue("OrgOut")
IF sz$ = "CONTINUE" THEN
UIPop 1
GOTO VBPATH
ELSEIF sz$ = "BACK" THEN
UIPop 1
GOTO GRPNAME
ELSEIF sz$ = "REACTIVATE" THEN
GOTO GETNAMEORG
ELSEIF sz$ = "EXIT" THEN
GOSUB ASKQUIT
GOTO GETNAMEORG
ELSE
GOSUB ASKQUIT
GOTO GETNAMEORG
END IF
VBPATH:
''ng% = DoMsgBox("VBPATH", "Debug Message", MB_OK)
SetSymbolValue "VBPath", VBDIR$
sz$ = UIStartDlg(CUIDLL$, VBPATHDLG, "VBPathDlgProc", APPHELP, HELPPROC$)
IF sz$ = "CONTINUE" THEN
VBDIR$ = GetSymbolValue("VBPath")
UIPop 1
GOTO VBCVCTLVBX
ELSEIF sz$ = "BACK" THEN
UIPop 1
GOTO GETNAMEORG
ELSEIF sz$ = "EXIT" THEN
GOSUB ASKQUIT
GOTO VBPATH
ELSEIF sz$ = "REACTIVATE" THEN
GOTO VBPATH
ELSE
GOSUB ASKQUIT
GOTO VBPATH
END IF
VBCVCTLVBX:
''ng% = DoMsgBox("VBCVCTLVBX", "Debug Message", MB_OK)
SetSymbolValue "ChoreoVBX", VBCVCTLADDSTATE$
sz$ = UIStartDlg(CUIDLL$,VBCVCTLVBXDLG,"CVCtlAddDlgProc",APPHELP,HELPPROC$)
VBCVCTLADDSTATE$ = GetSymbolValue("ChoreoVBX")
IF sz$ = "CONTINUE" THEN
UIPop 1
GOTO INFOCONFIRM
ELSEIF sz$ = "BACK" THEN
UIPop 1
GOTO VBPATH
ELSEIF sz$ = "REACTIVATE" THEN
GOTO VBCVCTLVBX
'' ELSEIF sz$ = "EXIT" THEN
'' GOSUB ASKQUIT
'' GOTO VBCVCTLVBX
ELSE
GOSUB ASKQUIT
GOTO VBCVCTLVBX
END IF
INFOCONFIRM:
''ng% = DoMsgBox("INFOCONFIRM", "Debug Message", MB_OK)
ReplaceListItem CONFIRMINFO$, 1, DEST$
IF GOTDBFILE$ = "NO" THEN
DBLISTOUT$ = GetSymbolValue("ListItemsOut")
END IF
ReplaceListItem CONFIRMINFO$, 2, DBLISTOUT$
ReplaceListItem CONFIRMINFO$, 3, GRPLISTOUT$
ReplaceListItem CONFIRMINFO$, 4, NAMEOUT$
ReplaceListItem CONFIRMINFO$, 5, ORGOUT$
ReplaceListItem CONFIRMINFO$, 6, VBDIR$
IF GetListItem(CHECKSTATES$, EXAMPLEFILES) = "ON" THEN
ReplaceListItem CONFIRMINFO$, 7, INSTALLYES$
ELSE
ReplaceListItem CONFIRMINFO$, 7, INSTALLNO$
END IF
IF GetListItem(CHECKSTATES$, TUTORFILES) = "ON" THEN
ReplaceListItem CONFIRMINFO$, 8, INSTALLYES$
ELSE
ReplaceListItem CONFIRMINFO$, 8, INSTALLNO$
END IF
IF GetListItem(CHECKSTATES$, GUPTADBFILES) = "ON" THEN
ReplaceListItem CONFIRMINFO$, 9, INSTALLYES$
ELSE
ReplaceListItem CONFIRMINFO$, 9, INSTALLNO$
END IF
IF GetListItem(CHECKSTATES$, GUPTADOCFILES) = "ON" THEN
ReplaceListItem CONFIRMINFO$, 10, INSTALLYES$
ELSE
ReplaceListItem CONFIRMINFO$, 10, INSTALLNO$
END IF
VBCVCTLADDSTATE$ =GetSymbolValue("ChoreoVBX")
IF VBCVCTLADDSTATE$ = "ON" THEN
ReplaceListItem CONFIRMINFO$, 11, INSTALLYES$
ELSE
ReplaceListItem CONFIRMINFO$, 11, INSTALLNO$
END IF
sz$ = UIStartDlg(CUIDLL$, CDCONFIRMINFO, "FConfirmDlgProc", APPHELP, HELPPROC$)
IF sz$ = "CONTINUE" THEN
UIPop 1
GOTO INSTALL1
ELSEIF sz$ = "BACK" THEN
UIPop 1
GOTO VBCVCTLVBX
ELSEIF sz$ = "REACTIVATE" THEN
GOTO INFOCONFIRM
ELSEIF sz$ = "EXIT" THEN
GOSUB ASKQUIT
GOTO INFOCONFIRM
ELSE
GOSUB ASKQUIT
GOTO INFOCONFIRM
END IF
INSTALL1:
''ng% = DoMsgBox("INSTALL1:", "Debug Message", MB_OK)
VBCVCTLADDSTATE$ =GetSymbolValue("ChoreoVBX")
IF VBCVCTLADDSTATE$ = "ON" THEN
' i% = DoMsgBox(VBDIR$, "Setup Message", MB_OK+MB_TASKMODAL+MB_ICONHAND)
i% = WriteVBXToMakFile(VBDIR$,"CVCTL.VBX")
END IF
CursorSave% = ShowWaitCursor()
'' ********************************************************
'' Fill the copy List (after clearing it out first)
'' ********************************************************
ClearCopyList
AddOptFilesToCopyList CHOREOFILES
AddOptFilesToCopyList DBFILES
AddOptFilesToCopyList HELPFILES
'' AddOptFilesToCopyList EXAMPLEFILES
AddOptFilesToCopyList TUTORFILES
'' AddOptFilesToCopyList GUPTADBFILES
'' AddOptFilesToCopyList GUPTADOCFILES
'' ********************************************************
CreateDir DEST$, cmoNone
RestoreCursor CursorSave%
SrcDir$ = GetSymbolValue("STF_SRCDIR")
'' ********************** This is where the copy gets done! ***********************
CopyFilesInCopyList
'' ********************************************************************************
'' ----------------------------------------------
'' Create CHOREO.INI settings
'' ----------------------------------------------
''ng% = DoMsgBox (WINSYSDIR$, "Debug", MB_OK)
ini$ = MakePath(WINDOWSDIR$, "CHOREO.INI")
CreateIniKeyValue ini$, "Messages", "message", MakePath(DEST$, "CHOREO.MSG"), cmoOverwrite
CreateIniKeyValue ini$, "Assocs", "lib1", MakePath(DEST$, "VBASSOC.DLL"), cmoOverwrite
CreateIniKeyValue ini$, "User Info", "UserName", NAMEOUT$, cmoOverwrite
CreateIniKeyValue ini$, "User Info", "OrgName", ORGOUT$, cmoOverwrite
CreateIniKeyValue ini$, "LinkMgr", "VBPath", VBDIR$, cmoOverwrite
'' ----------------------------------------------------------------------
'' 1.1 Choreo section
CreateIniKeyValue ini$, "Choreo", "Path", DEST$, cmoOverwrite
'' kludge moved other entries to the c file!
i% = AddINIEntries
''
'' ----------------------------------------------------------------------
'' 1.1 additions to the LinkMgr section
'' ----------------------------------------------------------------------
'' 1.1 Tutorial
CreateIniKeyValue ini$, "Tutorial", "TutorPath", MakePath(DEST$, "TUTOR.EXE"), cmoOverwrite
CreateIniKeyValue ini$, "Tutorial", "MasterPath", MakePath(DEST$, "EXAMPLES\TMASTER"), cmoOverwrite
CreateIniKeyValue ini$, "Tutorial", "Directory", MakePath(DEST$, "TUTORIAL"), cmoOverwrite
'' Demo addition!
CreateIniKeyValue ini$, "Demo", "Directory", MakePath(DEST$, "Demo"), cmoOverwrite
'' ----------------------------------------------------------------------
'' DataBase driver section
IF GetListItem(CHECKSTATES$, DBFILES) = "ON" THEN
CreateIniKeyValue ini$, "Databases", "ODBC", MakePath(DEST$, "DDODBC.DLL,ODBC"), cmoOverwrite
ENDIF
'' ----------------------------------------------
'' Create the Reg Database group
'' ----------------------------------------------
CreateRegKeyValue ".DLF\shell\open\command", MakePath(DEST$,"linkmgr.exe %1")
CreateRegKeyValue ".MDL\shell\open\command", MakePath(DEST$, "modelmgr.exe %1")
'' ----------------------------------------------
'' Create the Window Group
'' ----------------------------------------------
IF GRPLISTOUT$ = "Choreo for Visual Basic" THEN
CreateProgmanGroup GRPLISTOUT$, "", cmoOverwrite
END IF
ShowProgmanGroup GRPLISTOUT$, 1, cmoNone
CreateProgmanItem GRPLISTOUT$, "Choreo Demonstration Manager", MakePath(DEST$, "ChorDemo.exe"),"", cmoOverwrite
CreateProgmanItem GRPLISTOUT$, "Extend Evaluation", MakePath(DEST$, "cemu.exe"),"", cmoOverwrite
PATHPARAM:
SetSymbolValue "RadioDefault", AUTOEXECPATHDEFAULT$
SetSymbolValue "OptionsGreyed", AUTOEXECPATHGREYED$
sz$ = UIStartDlg(CUIDLL$, AUTOEXEC_PATH, "FRadioDlgProc", APPHELP, HELPPROC$)
IF sz$ = "CONTINUE" THEN
UIPop 1
AUTOEXECPATHCHECKED$ = GetSymbolValue("ButtonChecked")
IF AUTOEXECPATHCHECKED$ = "1" then
IF GetListItem(CHECKSTATES$, GUPTADBFILES) = "ON" THEN
i% = UpdateAutoexec(DEST$, MakePath (DEST$, GUPTADIR$))
ELSE
i% = UpdateAutoexec(DEST$, "")
END IF
ELSE
IF GetListItem(CHECKSTATES$, GUPTADBFILES) = "ON" THEN
i% = CreateExampleAutoexec(DEST$, MakePath (DEST$, GUPTADIR$))
ELSE
i% = CreateExampleAutoexec(DEST$, "")
END IF
END IF
''GOTO QUIT
GOTO GETSERIALNUMBER
ELSEIF sz$ = "BACK" THEN
UIPop 1
GOTO INSTALL1
ELSEIF sz$ = "REACTIVATE" THEN
GOTO PATHPARAM
ELSE
GOSUB ASKQUIT
GOTO PATHPARAM
END IF
GETSERIALNUMBER:
GOTO QUIT ' we don't ask, they don't have one for the trial!
sz$ = UIStartDlg(CUIDLL$, CDGETSERIALNUMBER, "FSerialNumberProc", APPHELP, HELPPROC$)
IF sz$ = "CONTINUE" THEN
UIPop 1
GOTO QUIT
ELSEIF sz$ = "REACTIVATE" THEN
GOTO GETSERIALNUMBER
ELSEIF sz$ = "BACK" THEN
GOSUB SERIALNUMBERERROR
GOTO GETSERIALNUMBER
END IF
SERIALNUMBERERROR:
sz$ = UIStartDlg(CUIDLL$, CDSERIAL_ERROR, "FInfoDlgProc", 0, "")
IF sz$ = "EXIT" THEN
UIPopAll
GOTO QUIT
ELSEIF sz$ = "REACTIVATE" THEN
GOTO SERIALNUMBERERROR
ELSE
UIPop 1
END IF
RETURN
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 415-266-7007!", "Setup Message", MB_OK+MB_TASKMODAL+MB_ICONHAND)
END
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
TOOBIG:
sz$ = UIStartDlg(CUIDLL$, CDTOOBIG, "FInfo0DlgProc", 0, "")
IF sz$ = "REACTIVATE" THEN
RecalcPath
SetDriveStatus
GOTO TOOBIG
END IF
UIPop 1
RETURN
BADPATH:
sz$ = UIStartDlg(CUIDLL$, CDBADPATH, "FInfo0DlgProc", 0, "")
IF sz$ = "REACTIVATE" THEN
RecalcPath
SetDriveStatus
GOTO BADPATH
END IF
UIPop 1
RETURN
'**
'** Purpose:
'** Adds the specified option files to the copy list.
'** Arguments:
'** ftype% - type of files to add, one of the following:
'** CHOREOFILES, DBFILES, HELPFILES, EXAMPLEFILES
'** TUTORFILES, GUPTADBFILES, GUPTADOCFILES
'** Returns:
'** none.
'*************************************************************************
SUB AddOptFilesToCopyList (ftype%) STATIC
IF GetListItem(CHECKSTATES$, ftype%) = "ON" THEN
SrcDir$ = GetSymbolValue("STF_SRCDIR")
'' ---- Choreo
IF ftype% = CHOREOFILES THEN
AddSectionFilesToCopyList "CHOREOFILES", SrcDir$, DEST$
AddSectionFilesToCopyList "VB_FILES",SrcDir$,VBDIR$
AddSectionFilesToCopyList "WIN_SYS", SrcDir$, WINSYSDIR$
'' ---- Database drivers
ELSEIF ftype% = DBFILES THEN
FOR i% = 1 TO GetListLength("ListItemsOut") STEP 1
IF GetListItem("ListItemsOut", i%) = "Gupta SQLBase" THEN
AddSectionKeyFileToCopyList "DBFILES", "SQLBASE", SrcDir$, DEST$
'' MS SqlSvr 4.x uses the Sybase driver
ELSEIF GetListItem("ListItemsOut", i%) = "Microsoft SQL Server 4.x" THEN
AddSectionKeyFileToCopyList "DBFILES", "SYBASE", SrcDir$, DEST$
ELSEIF GetListItem("ListItemsOut", i%) = "Microsoft SQL Server 6" THEN
AddSectionKeyFileToCopyList "DBFILES", "SQLSRVR6", SrcDir$, DEST$
ELSEIF GetListItem("ListItemsOut", i%) = "ODBC" THEN
AddSectionKeyFileToCopyList "DBFILES", "ODBC", SrcDir$, DEST$
'' these use the same driver:
ELSEIF GetListItem("ListItemsOut", i%) = "Oracle6" THEN
AddSectionKeyFileToCopyList "DBFILES", "ORACLE", SrcDir$, DEST$
ELSEIF GetListItem("ListItemsOut", i%) = "Oracle7" THEN
AddSectionKeyFileToCopyList "DBFILES", "ORACLE", SrcDir$, DEST$
ELSEIF GetListItem("ListItemsOut", i%) = "Sybase SQL Server 4.x" THEN
AddSectionKeyFileToCopyList "DBFILES", "SYBASE", SrcDir$, DEST$
ELSEIF GetListItem("ListItemsOut", i%) = "Sybase System 10" THEN
AddSectionKeyFileToCopyList "DBFILES", "SYBASE10", SrcDir$, DEST$
END IF
NEXT i%
'' ---- Help files
ELSEIF ftype% = HELPFILES THEN
AddSectionFilesToCopyList "HELPFILES", SrcDir$, DEST$
'' ---- Example files
ELSEIF ftype% = EXAMPLEFILES THEN
dirExample$ = MakePath(DEST$,EXAMPLEDIR$)
'' ---- Books
AddSectionFilesToCopyList "EXAMPLE_BOOKS", SrcDir$, MakePath(dirExample$, "Books")
'' ---- DBS
AddSectionFilesToCopyList "EXAMPLE_DBS", SrcDir$, MakePath(dirExample$, DBSDIR$)
'' AddSectionFilesToCopyList "EXAMPLE_DBS_X", SrcDir$, MakePath(dirExample$, DBSDIR$)
bInstallDBSforTutorial = 0
'' ---- Access
AddSectionFilesToCopyList "EXAMPLES_ACCESS", SrcDir$, MakePath(dirExample$, "Access")
'' ---- SQL
AddSectionFilesToCopyList "EXAMPLE_SQL", SrcDir$, MakePath(dirExample$, "sql")
'' ---- Bound Control
AddSectionFilesToCopyList "EXAMPLE_BNDCTRL", SrcDir$, makePath(dirExample$, BNDCTLDIR$)
AddSectionFilesToCopyList "EXAMPLE_BNDCTRL_FP", SrcDir$, makePath(dirExample$, MakePath(BNDCTLDIR$, "fp_grid"))
AddSectionFilesToCopyList "EXAMPLE_BNDCTRL_LS", SrcDir$, MakePath(dirExample$, MakePath(BNDCTLDIR$, "fp_list"))
AddSectionFilesToCopyList "EXAMPLE_BNDCTRL_SS", SrcDir$, MakePath(dirExample$, MakePath(BNDCTLDIR$, "ss_grid"))
AddSectionFilesToCopyList "EXAMPLE_BNDCTRL_TG", SrcDir$, MakePath(dirExample$, MakePath(BNDCTLDIR$, "truegrid"))
'' ---- Direct SQL
AddSectionFilesToCopyList "EXAMPLE_DIRSQL", SrcDir$, makePath (dirExample$, DIRSQLSUBDIR$)
AddSectionFilesToCopyList "EXAMPLE_DIRSQL_AD", SrcDir$, makePath (dirExample$, makePath (DIRSQLSUBDIR$, "Adhoc"))
AddSectionFilesToCopyList "EXAMPLE_DIRSQL_LT", SrcDir$, makePath (dirExample$, makePath (DIRSQLSUBDIR$, "sqllite"))
AddSectionFilesToCopyList "EXAMPLE_DIRSQL_TS", SrcDir$, makePath (dirExample$, makePath (DIRSQLSUBDIR$, "sqltest"))
AddSectionFilesToCopyList "EXAMPLE_DIRSQL_SSP", SrcDir$, makePath (dirExample$, makePath (DIRSQLSUBDIR$, "ssp"))
AddSectionFilesToCopyList "EXAMPLE_DIRSQL_2Q", SrcDir$, makePath (dirExample$, makePath (DIRSQLSUBDIR$, "sybsp2q"))
'' ---- Stored Proceedures
'' ---- Tutorial Files
ELSEIF ftype% = TUTORFILES THEN
dirExample$ = MakePath(DEST$,EXAMPLEDIR$)
dirTutor$ = MakePath(dirExample$, "tmaster")
dirDemo$ = MakePath(DEST$, "Demo")
'' ---- Add the tutorial files
'' AddSectionFilesToCopyList "TUTORIAL_2", SrcDir$, makepath (dirTutor$, "lesson2")
'' AddSectionFilesToCopyList "TUTORIAL_3", SrcDir$, makepath (dirTutor$, "lesson3")
'' AddSectionFilesToCopyList "TUTORIAL_4", SrcDir$, makepath (dirTutor$, "lesson4")
'' AddSectionFilesToCopyList "TUTORIAL_5", SrcDir$, makepath (dirTutor$, "lesson5")
'' '' ---- And the tutor!
'' AddSectionFilesToCopyList "TUTORIALFILES", SrcDir$, DEST$
'' '' ---- ensure the DBS is installed as well!
'' IF bInstallDBSforTutorial = 1 THEN
'' AddSectionFilesToCopyList "EXAMPLE_DBS", SrcDir$, MakePath(dirExample$, DBSDIR$)
'' ENDIF
'' ---- Add the DEMO tutorial files
AddSectionFilesToCopyList "TUTORIAL_2", SrcDir$, makepath (dirDemo$, "initial")
AddSectionFilesToCopyList "TUTORIAL_3", SrcDir$, makepath (dirDemo$, "complete")
'' ---- And the tutor!
AddSectionFilesToCopyList "TUTORIALFILES", SrcDir$, DEST$
'' ---- Access
AddSectionFilesToCopyList "ACCESS", SrcDir$, MakePath(dirDemo$, "Access")
'' ---- Gupta
ELSEIF ftype% = GUPTADBFILES THEN
AddSectionFilesToCopyList "GUPTA_SQLBASE", SrcDir$, MakePath(DEST$, GUPTADIR$)
AddSectionFilesToCopyList "GUPTA_WININI", SrcDir$, MakePath(DEST$, GUPTADIR$)
AddSectionFilesToCopyList "GUPTA_DBS", SrcDir$, MakePath(DEST$, makepath (GUPTADIR$, DBSDIR$))
''AddSectionFilesToCopyList "GUPTA_DBS_BOOKS", SrcDir$, MakePath(DEST$, makePath (GUPTADIR$, MakePath (DBSDIR$, "Books")))
AddSectionFilesToCopyList "EXAMPLE_DBS", SrcDir$, MakePath(DEST$, makePath (GUPTADIR$, MakePath (DBSDIR$, "Books")))
'' AddSectionFilesToCopyList "EXAMPLE_DBS_X", SrcDir$, MakePath(DEST$, makePath (GUPTADIR$, MakePath (DBSDIR$, "Books")))
AddSectionFilesToCopyList "GUPTA_WINTALK", SrcDir$, MakePath(DEST$, GUPTADIR$) '' needds to be in the same directory as the DLL's!
ELSEIF ftype% = GUPTADOCFILES THEN
AddSectionFilesToCopyList "GUPTA_DOC", SrcDir$, MakePath(DEST$, Makepath(GUPTADIR$, DOCSUBDIR$))
END IF
SrcDir$ = ""
END IF
END SUB
'**
'** Purpose:
'** Recalculates disk space for the given option files and sets
'** the status info symbol "StatusItemsText".
'** Arguments:
'** ftype% - type of files to add, one of the following:
'** CHOREOFILES, DBFILES, HELPFILES, EXAMPLEFILES
'** Returns:
'** none.
'*************************************************************************
SUB RecalcOptFiles (ftype%) STATIC
CursorSave% = ShowWaitCursor()
ClearCopyList
AddOptFilesToCopyList ftype%
DESTDRIVE$ = MID$(DEST$, 1, 1)
fExtra% = 0
IF ftype% = CHOREOFILES THEN
ListSym$ = CHOREONEEDS$
IF GetListItem(CHECKSTATES$, CHOREOFILES) = "ON" THEN
''Add extra cost to Windows drive for ini/progman, etc.
ndrive% = ASC(ucase$(WINDRIVE$)) - ASC("A") + 1
ReplaceListItem EXTRACOSTS$, ndrive%, "8192"
fExtra% = 1
END IF
ELSEIF ftype% = DBFILES THEN
ListSym$ = DBNEEDS$
ELSEIF ftype% = HELPFILES THEN
ListSym$ = HELPNEEDS$
'' ELSEIF ftype% = EXAMPLEFILES THEN
'' ListSym$ = EXAMPLENEEDS$
ELSEIF ftype% = TUTORFILES THEN
ListSym$ = TUTORNEEDS$
'' ELSEIF ftype% = GUPTADBFILES THEN
'' ListSym$ = GUPTADBNEEDS$
'' NOTE: Gupta SQL.INI file now stored in the Gupta directory inside Choreo
'' ELSEIF ftype% = GUPTADOCFILES THEN
'' ListSym$ = GUPTADOCNEEDS$
END IF
StillNeed& = GetCopyListCost(EXTRACOSTS$, ListSym$, "")
'' StillNeed& = GetCopyListCost("", ListSym$, "")
cost& = 0
FOR i% = 1 TO 26 STEP 1
cost& = cost& + VAL(GetListItem(ListSym$, i%))
NEXT i%
ReplaceListItem STATUSTEXT$, ftype%, STR$(cost& / 1024) + " K"
'' IF StillNeed& > 0 THEN
'' ReplaceListItem BIGLIST$, ftype%, "YES"
'' ELSE
'' ReplaceListItem BIGLIST$, ftype%, ""
'' END IF
IF fExtra% THEN
ReplaceListItem EXTRACOSTS$, ndrive%, "0"
END IF
RestoreCursor CursorSave%
ListSym$ = ""
END SUB
'**
'** Purpose:
'** Recalculates disk space and sets option status info according
'** to the current destination path.
'** Arguments:
'** none.
'** Returns:
'** none.
'*************************************************************************
SUB RecalcPath STATIC
CursorSave% = ShowWaitCursor()
RecalcOptFiles CHOREOFILES
RecalcOptFiles DBFILES
RecalcOptFiles HELPFILES
'' RecalcOptFiles EXAMPLEFILES
'' RecalcOptFiles TUTORFILES
'' RecalcOptFiles GUPTADBFILES
'' RecalcOptFiles GUPTADOCFILES
RestoreCursor CursorSave%
END SUB
'**
'** Purpose:
'** Sets drive status info according to latest disk space calcs.
'** Arguments:
'** none.
'** Returns:
'** none.
'*************************************************************************
SUB SetDriveStatus STATIC
drive$ = MID$(DEST$, 1, 1)
ndrive% = ASC(ucase$(drive$)) - ASC("A") + 1
cost& = 0
cost& = VAL(GetListItem(CHOREONEEDS$, ndrive%)) + VAL(GetListItem(DBNEEDS$, ndrive%)) + VAL(GetListItem(HELPNEEDS$, ndrive%)) '' + VAL(GetListItem(TUTORNEEDS$, ndrive%))
free& = GetFreeSpaceForDrive(drive$)
IF cost& > free& THEN
NOT_ENOUGH_SPACE = 1
ELSE
NOT_ENOUGH_SPACE = 0
END IF
ReplaceListItem DRIVETEXT$, 1, drive$ + ":"
ReplaceListItem DRIVETEXT$, 2, STR$(cost& / 1024) + " K"
ReplaceListItem DRIVETEXT$, 3, STR$(free& / 1024) + " K"
IF drive$ = WINDRIVE$ THEN
ReplaceListItem DRIVETEXT$, 4, ""
ReplaceListItem DRIVETEXT$, 5, ""
ReplaceListItem DRIVETEXT$, 6, ""
ELSE
ndrive% = ASC(ucase$(WINDRIVE$)) - ASC("A") + 1
cost& = VAL(GetListItem(CHOREONEEDS$, ndrive%)) + VAL(GetListItem(DBNEEDS$, ndrive%)) + VAL(GetListItem(HELPNEEDS$, ndrive%)) '' + VAL(GetListItem(TUTORNEEDS$, ndrive%))
IF cost& = 0 THEN
ReplaceListItem DRIVETEXT$, 4, ""
ReplaceListItem DRIVETEXT$, 5, ""
ReplaceListItem DRIVETEXT$, 6, ""
ELSE
free& = GetFreeSpaceForDrive(WINDRIVE$)
ReplaceListItem DRIVETEXT$, 4, WINDRIVE$ + ":"
ReplaceListItem DRIVETEXT$, 5, STR$(cost& / 1024) + " K"
ReplaceListItem DRIVETEXT$, 6, STR$(free& / 1024) + " K"
IF cost& > free& THEN
NOT_ENOUGH_SPACE = NOT_ENOUGH_SPACE + 1
END IF
END IF
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