home *** CD-ROM | disk | FTP | other *** search
Wrap
'************************************************************************** '* HGC and Kodak Precision Setup script '************************************************************************** '$DEFINE DEBUG ''Define for script development/debugging '$INCLUDE 'setupapi.inc' '$INCLUDE 'msdetect.inc' ''Additional message box constants CONST MB_YESNO = 4 CONST MB_RETRYCANCEL = 5 CONST MB_ICONQUESTION = 32 CONST MB_ICONEXCLAMATION = 48 CONST IDYES = 6 CONST IDRETRY = 4 CONST IDCANCEL = 2 ''Dialog ID's CONST WELCOME_DLG = 1000 CONST WELCOME_HLP = 1001 CONST DESTPATH_DLG = 1100 CONST DESTPATH_HLP = 1101 CONST ALREADYINST_DLG = 1200 CONST ALREADYINST_HLP = 1201 CONST BADWINVER_DLG = 1300 CONST UPDATING_DLG = 2000 CONST SUPPATH_DLG = 2100 CONST SUPPATH_HLP = 2101 CONST UNINST_SUCCESS_DLG = 3000 CONST UNINST_FAILURE_DLG = 3100 CONST UNINST_QUIT_DLG = 3200 CONST UNINST_ASKQUIT_DLG = 3300 CONST UNINST_COMPLETE_DLG = 300 CONST ASKQUIT = 200 CONST EXITFAILURE = 400 CONST EXITQUIT = 600 CONST EXITSUCCESS = 700 CONST BADPATH = 6400 ''Bitmap ID CONST LOGO = 1 GLOBAL SUPSRC$ ''Default supplementary directory. GLOBAL DEST$ ''Default destination directory. GLOBAL DATAB$ ''Default database directory. GLOBAL PTDIR$ ''KEPS PT directory GLOBAL CPDIR$ ''KEPS CP directory GLOBAL WINDIR$ ''Windows directory GLOBAL SYSDIR$ ''Windows System directory GLOBAL OPTCUR$ ''Option selection from option dialog. GLOBAL HGCInstalled% GLOBAL CUIDLL$ ''DLL containing Specific setup UI GLOBAL KPCMSInstalled% GLOBAL STARTUP$ '' Contains StartUp group real name GLOBAL NOTENOUGHSPACE% ''Additional Win API functions Declare Function GetDC Lib "User" (hWnd%) As Integer Declare Function ReleaseDC Lib "User" (hWnd%, hDC%) As Integer Declare Function GetDeviceCaps Lib "GDI" (hDC%, nIndex%) As Integer Const NUMCOLORS = 24 ' Number of colors the device supports Declare Function GetModuleHandle Lib "Kernel" (szMod$) As Integer Declare Function LoadString Lib "User" (hMod%, i%, sz$, i%) As Integer ''Setup script functions declarations Declare SUB Install Declare SUB UnInstall Declare FUNCTION MakePath (szDir$, szFile$) AS STRING Declare FUNCTION IsHGCInstalled () AS INTEGER Declare FUNCTION GetDisplayNumColors () AS INTEGER '' XDF support GLOBAL hXDFLibInst% DECLARE FUNCTION LoadLibrary LIB "krnl386.exe" (szLibName$) AS INTEGER DECLARE FUNCTION FreeLibrary LIB "krnl386.exe" (hInst%) AS INTEGER DECLARE SUB UNLOAD_XDF '' Multi-languages support GLOBAL RESSRC$ '************************************************************************* INIT: ' JPH 11/02/95 add version testing IF NOT (GetWindowsMinorVersion = 3) AND NOT (GetWindowsMinorVersion = 10) THEN i% = DoMsgBox("This program requires Windows 3.1x", "Warning", MB_ICONEXCLAMATION+MB_OK) END END IF ' Load XDF support DLL if present hXDFLibInst%=LoadLibrary("XDFLIB.DLL") ON END UNLOAD_XDF ''RDI fUninstall% = 0 HELPPROC$ = "FHelpDlgProc" ''Help dialog procedure LANGUAGE$ = GetIniKeyString("WIN.INI","intl","sLanguage") LANGUAGE$ = LCASE$(LANGUAGE$) CUIDLL$ = "mscui_e.dll" ''Custom user interface dll RESSRC$ = "ENGLISH" IF LANGUAGE$ = "deu" THEN ''German CUIDLL$ = "mscui_g.dll" RESSRC$ = "GERMAN" ' BILL BILL BILL ' To add other language (when available) just remove the leading ' ' before the 3 desired lines ' ELSEIF LANGUAGE$ = "fra" THEN ''French ' CUIDLL$ = "mscui_f.dll" ' RESSRC$ = "FRENCH" ' ELSEIF LANGUAGE$ = "frc" THEN ''French Canadian ' CUIDLL$ = "mscui_f.dll" ' RESSRC$ = "FRENCH" ' ELSEIF LANGUAGE$ = "esp" THEN ''Spanish ' CUIDLL$ = "mscui_s.dll" ' RESSRC$ = "SPANISH" ' ELSEIF LANGUAGE$ = "esn" THEN ''Spanish (Modern) ' CUIDLL$ = "mscui_s.dll" ' RESSRC$ = "SPANISH" ' ELSEIF LANGUAGE$ = "ita" THEN ''Italian ' CUIDLL$ = "mscui_i.dll" ' RESSRC$ = "ITALIAN" END IF SetBitmap CUIDLL$, LOGO SetTitle "Colorific Setup" szInf$ = GetSymbolValue("STF_SRCINFPATH") IF szInf$ = "" THEN szInf$ = GetSymbolValue("STF_CWDDIR") + "HGCSETUP.INF" END IF ReadInfFile szInf$ OPTCUR$ = "1" WINDIR$ = GetWindowsDir() SYSDIR$ = GetWindowsSysDir() ' To be compatible with foreign versions of Windows ' Get the name of the startup group ini$ = MakePath(GetWindowsDir (), "PROGMAN.INI") STARTUP$ = GetIniKeyString (ini$, "Settings", "StartUp") ' If no explicit override, look in PROGMAN.EXE file IF STARTUP$ = "" THEN hmod% = GetModuleHandle ("PROGMAN") IF hmod% THEN STARTUP$ = String$(127, 0) ' The name is stored as string 120 in the resource i% = LoadString (hmod%, 120, STARTUP$, Len (STARTUP$)) ' In the US version the string is encoded Start Up but the group is StartUp IF MID$(STARTUP$, 1, 5) = "Start" AND MID$(STARTUP$, Len (STARTUP$) - 1, 2) = "Up" THEN STARTUP$ = "StartUp" END IF ' String not found in resource IF i% = 0 THEN STARTUP$ = "StartUp" END IF ELSE ' If another program used as a shell STARTUP$ = "StartUp" END IF END IF '$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: fUninstall% = 0 sz$ = UIStartDlg(CUIDLL$, WELCOME_DLG, "FInfoDlgProc", WELCOME_HLP, HELPPROC$) IF sz$ = "CONTINUE" THEN UIPop 1 ELSE GOSUB ASKQUIT GOTO WELCOME END IF HGCInstalled% = IsHGCInstalled IF HGCInstalled% = 1 THEN ' Save the previous SYSTEM.INI for rescue CopyFile MakePath(WINDIR$, "SYSTEM.INI"), MakePath(WINDIR$, "CLRIFIC1.INI"), cmoOverwrite, 0 ALREADYINST: sz$ = UIStartDlg(CUIDLL$, ALREADYINST_DLG, "FInfoDlgProc", ALREADYINST_HLP, HELPPROC$) IF sz$ = "CONTINUE" THEN UIPop 1 ELSEIF sz$ = "REACTIVATE" THEN GOTO ALREADYINST ELSEIF sz$ = "BACK" THEN UIPop 1 fUninstall% = 1 UnInstall MITSUBISHI: sz$ = UIStartDlg(CUIDLL$, UNINST_COMPLETE_DLG, "FInfoDlgProc", 0, "") IF sz$ = "REACTIVATE" THEN GOTO MITSUBISHI ELSEIF sz$ = "EXIT" THEN UIPop 1 ShowProgmanGroup STARTUP$, 2, cmoNone ShowProgmanGroup STARTUP$, 1, cmoNone MITSUBISHI1: sz$ = UIStartDlg(CUIDLL$, UNINST_SUCCESS_DLG, "FInfo0DlgProc", 0, "") IF sz$ = "REACTIVATE" THEN GOTO MITSUBISHI1 END IF UIPop 1 END ELSE UIPop 1 IF MID$ (WINDIR$, 2, 1) = ":" THEN DEST$ = MID$ (WINDIR$, 1, 2) ELSE DEST$ = "C:" ENDIF DEST$ = DEST$ + "\HGC" GOTO WELCOME END IF ELSE GOSUB ASKQUIT GOTO ALREADYINST END IF ELSE ' Save the virgin SYSTEM.INI for rescue CopyFile MakePath(WINDIR$, "SYSTEM.INI"), MakePath(WINDIR$, "CLRIFIC0.INI"), cmoOverwrite, 0 GETPATH: SetSymbolValue "EditTextIn", DEST$ SetSymbolValue "EditFocus", "END" GETPATHL1: sz$ = UIStartDlg(CUIDLL$, DESTPATH_DLG, "FEditDlgProc", DESTPATH_HLP, 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 END IF ini$ = MakePath(WINDIR$, "kpcms.ini") IF DoesFileExist (ini$, femExists) THEN DATAB$ = GetIniKeyString (ini$, "KEPS Precision", "DRIVE") PTDIR$ = DATAB$ + GetIniKeyString (ini$, "API", "PT_DIR") CPDIR$ = DATAB$ + GetIniKeyString (ini$, "KCP", "CP_DIR") DATAB$ = DATAB$ + "\KPCMS" KPCMSInstalled% = 1 ELSE IF MID$ (DEST$, 2, 1) = ":" THEN DATAB$ = MID$ (DEST$, 1, 2) ELSE DATAB$ = "C:" END IF DATAB$ = DATAB$ + "\KPCMS" PTDIR$ = MakePath(DATAB$, "DCPDB") CPDIR$ = MakePath(DATAB$, "CMSCP") KPCMSInstalled% = 0 END IF Install IF NOTENOUGHSPACE% = 1 THEN goto GETPATH ENDIF QUIT: ON ERROR GOTO ERRQUIT IF ERR = 0 THEN IF fUninstall% THEN dlg% = UNINST_SUCCESS_DLG ELSE dlg% = EXITSUCCESS END IF ELSEIF ERR = STFQUIT THEN IF fUninstall% THEN dlg% = UNINST_QUIT_DLG ELSE dlg% = EXITQUIT END IF ELSE IF fUninstall% THEN dlg% = UNINST_FAILURE_DLG ELSE dlg% = EXITFAILURE END IF END IF QUITL1: sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "") IF sz$ = "REACTIVATE" THEN GOTO QUITL1 ELSEIF sz$ = "BACK" THEN Run "NOTEPAD " + MakePath (DEST$, "README.TXT") GOTO QUITL1 END IF UIPop 1 END ERRQUIT: i% = DoMsgBox("Setup sources were corrupted, call Sonnetech!", "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 ASKQUIT: IF fUninstall% THEN dlg% = UNINST_ASKQUIT_DLG ELSE dlg% = ASKQUIT END IF sz$ = UIStartDlg(CUIDLL$, dlg%, "FQuitDlgProc", 0, "") IF sz$ = "EXIT" THEN UIPopAll IF fUninstall% = 0 THEN ERROR STFQUIT END IF 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 OpenLogFile MakePath(WINDIR$, "CLRIFIC.LOG"), 0 HGCLutDir$ = MakePath(DEST$, "LUT") CreateDir HGCLutDir$, cmoNone IF KPCMSInstalled% = 0 THEN WriteToLogFile "No KPCMS database" CreateDir DATAB$, cmoNone CreateDir PTDIR$, cmoNone CreateDir CPDIR$, cmoNone ELSE WriteToLogFile "KPCMS database already exists" END IF WriteToLogFile "KPCMS database path:'"+PTDIR$ WriteToLogFile "" WriteToLogFile " Remove all previous version files" WriteToLogFile "" i% = SetSilentMode (1) AddSectionFilesToCopyList "DelOldHGC", SrcDir$, WINDIR$ i% = SetSilentMode (i%) WriteToLogFile "" WriteToLogFile " User chose as destination directory: '" + DEST$ + "'" WriteToLogFile "" WriteToLogFile "May have had to create the directory: " + DEST$ WriteToLogFile "" AddSectionFilesToCopyList "KodakINI", SrcDir$, WINDIR$ AddSectionFilesToCopyList "KodakCMSCP", SrcDir$, CPDIR$ AddSectionFilesToCopyList "KodakPT", SrcDir$, PTDIR$ AddSectionFilesToCopyList "KodakDLL", SrcDir$, WINDIR$ AddSectionFilesToCopyList "HGC", SrcDir$, DEST$ WriteToLogFile "" WriteToLogFile "HGC resources section : '" + RESSRC$ + "'" WriteToLogFile "" AddSectionFilesToCopyList RESSRC$, SrcDir$, DEST$ i% = SetSizeCheckMode (scmOff) AddSectionFilesToCopyList "HGCINI", SrcDir$, WINDIR$ l& = GetCopyListCost (Extras$, Costs$, Neededs$) IF l& = 0 THEN CopyFilesInCopyList NOTENOUGHSPACE% = 0 ELSE NOTENOUGHSPACE% = 1 i% = DoMsgBox("Insufficient space on drive "+MID$ (DEST$, 1, 2)+" .Please select an other path for installation.", "Colorific Setup", MB_ICONEXCLAMATION+MB_OK) goto ENDINSTALL ENDIF '**** Installing additional precision transform if available ' Removed, was not useful 'GETSUP: ' SetSymbolValue "EditTextIn", "A:\" ' sz$ = UIStartDlg(CUIDLL$, SUPPATH_DLG, "FEditDlgProc", SUPPATH_HLP, HELPPROC$) ' SUPSRC$ = GetSymbolValue("EditTextOut") ' ' WriteToLogFile "" ' WriteToLogFile " User chose as supplementary disk directory: '" + SUPSRC$ + "'" ' WriteToLogFile "" ' ' IF sz$ = "CONTINUE" THEN ' IF DoesDirExist (SUPSRC$) THEN ' SupInf$ = MakePath (SUPSRC$, "SUPPLEM.INF") ' IF DoesFileExist (SupInf$, femExists) THEN ' UIPop 1 ' ReadInfFile SupInf$ ' AddSectionFilesToCopyList "Files", SUPSRC$, PTDIR$ ' CopyFilesInCopyList ' ClearCopyList ' ELSE ' i% = DoMsgBox ("The disk '"+SUPSRC$+"' is not a Colorific Supplementary Disk", "Colorific Error", MB_ICONEXCLAMATION + MB_RETRYCANCEL) ' IF i% = IDRETRY THEN ' goto GETSUP ' ELSE ' goto GETSUP ' END IF ' END IF ' ELSE ' i% = DoMsgBox ("The drive or directory '"+SUPSRC$+"' is not valid", "Colorific Error", MB_ICONEXCLAMATION + MB_RETRYCANCEL) ' IF i% = IDRETRY THEN ' goto GETSUP ' ELSE ' goto GETSUP ' END IF ' END IF ' ELSE ' UIPop 1 ' END IF sz$ = UIStartDlg(CUIDLL$, UPDATING_DLG, "FModelessDlgProc", 0, "") ' KCFG.INI file initialization ' WriteToLogFile "KCFG.INI Initialization" ' ini$ = MakePath(WINDIR$, "KCFG.INI") ' CreateIniKeyValue ini$, "PATHS", "ImportFiltPath", ImportDir$, cmoNone ' KCMS.INI file initialization WriteToLogFile "KPCMS.INI Initialization" ini$ = MakePath(WINDIR$, "KPCMS.INI") CreateIniKeyValue ini$, "KEPS Precision", "DRIVE", CHR$(34) + MID$(DATAB$, 1, 2) + CHR$(34), cmoOverwrite '************************************************************************************************************ ' BILL - BILL - BILL - BILL - BILL - BILL - BILL - BILL - BILL - BILL - BILL ' The following line must be there in order to use the KCME1.DLL '************************************************************************************************************ CreateIniKeyValue ini$, "KCP", "CTE_NAME", CHR$(34) + "KCME1.DLL" + CHR$(34), cmoOverwrite '************************************************************************************************************ ' HGCCTRL.INI file initialization WriteToLogFile "HGCCTRL.INI Initialization" ini$ = MakePath(WINDIR$, "HGCCTRL.INI") CreateIniKeyValue ini$, "Config", "State", "Off" , cmoOverwrite ' To allow easy Add-On setup CreateIniKeyValue ini$, "Config", "InputState", "Off" , cmoOverwrite ' CreateIniKeyValue ini$, "Config", "DisplayState", "On" , cmoOverwrite CreateIniKeyValue ini$, "Config", "OutputState", "On" , cmoOverwrite CreateIniKeyValue ini$, "Flags", "Input", "01400" , cmoOverwrite NbColors% = GetDisplayNumColors() IF NbColors% > 256 THEN CreateIniKeyValue ini$, "Flags", "Display", "00975" , cmoOverwrite ELSEIF NbColors% < 256 THEN CreateIniKeyValue ini$, "Flags", "Display", "00000" , cmoOverwrite CreateIniKeyValue ini$, "Config", "DisplayState", "Off" , cmoOverwrite ELSE CreateIniKeyValue ini$, "Flags", "Display", "00048" , cmoOverwrite END IF CreateIniKeyValue ini$, "Flags", "Output", "02047" , cmoOverwrite CreateIniKeyValue ini$, "Dir", "Program", DEST$ + "\", cmoOverwrite CreateIniKeyValue ini$, "Dir", "Lut", HGCLutDir$ + "\", cmoOverwrite ' To allow Hiding of Colorific/KODAK Icon ' Default, compatible with previous version no hide button CreateIniKeyValue ini$, "Config", "ControlPanel", "" , cmoOverwrite ' Hide button enabled, initial state is "On" ' CreateIniKeyValue ini$, "Config", "ControlPanel", "On" , cmoOverwrite ' Hide button enabled, initial state is "Off" ' CreateIniKeyValue ini$, "Config", "ControlPanel", "Off" , cmoOverwrite ' SYSTEM.INI file modification WriteToLogFile "SYSTEM.INI Initialization" 'Add ATM checking JPH 12/07/94 ini$ = MakePath(WINDIR$, "SYSTEM.INI") szSys$ = GetIniKeyString (ini$, "boot", "system.drv") 'Add handling of the empty system.drv= line JPH 02/24/95 IF szSys$ = "" THEN szSys$ = "system.drv" END IF IF HGCInstalled% = 0 THEN IF Instr (UCase$ (szSys$), "ATMSYS.DRV") = 0 THEN CreateIniKeyValue ini$, "boot", "system.drv", MakePath (DEST$, "hgcsys.drv"), cmoOverwrite CreateIniKeyValue ini$, "boot", "hgc.system.drv", szSys$, cmoOverwrite ELSE 'Add special handling for ATM already installed JPH 02/24/95 szSys$ = GetIniKeyString (ini$, "boot", "atm.system.drv") CreateIniKeyValue ini$, "boot", "hgc.system.drv", szSys$, cmoOverwrite CreateIniKeyValue ini$, "boot", "atm.system.drv", MakePath (DEST$, "hgcsys.drv"), cmoOverwrite END IF ELSE IF Instr (UCase$ (szSys$), "HGCSYS.DRV") = 0 THEN IF Instr (UCase$ (szSys$), "ATMSYS.DRV") = 0 THEN ' What to do ? ELSE CreateIniKeyValue ini$, "boot", "atm.system.drv", MakePath (DEST$, "hgcsys.drv"), cmoOverwrite END IF ELSE ' Add special handling to convert from old config SYSTEM=HGC->ATM->SYSTEM ' CreateIniKeyValue ini$, "boot", "system.drv", MakePath (DEST$, "hgcsys.drv"), cmoOverwrite szSys$ = GetIniKeyString (ini$, "boot", "hgc.system.drv") IF Instr (UCase$ (szSys$), "ATMSYS.DRV") = 0 THEN CreateIniKeyValue ini$, "boot", "system.drv", MakePath (DEST$, "hgcsys.drv"), cmoOverwrite ELSE szSys$ = GetIniKeyString (ini$, "boot", "atm.system.drv") CreateIniKeyValue ini$, "boot", "atm.system.drv", MakePath (DEST$, "hgcsys.drv"), cmoOverwrite CreateIniKeyValue ini$, "boot", "hgc.system.drv", szSys$, cmoOverwrite CreateIniKeyValue ini$, "boot", "system.drv", "atmsys.drv", cmoOverwrite END IF END IF END IF UIPop 1 WriteToLogFile "Startup group name: '" + STARTUP$ + "'" CreateProgmanGroup STARTUP$, "", cmoNone CreateProgmanItem STARTUP$, "Colorific On/Off", MakePath(DEST$, "hgconoff.exe"), "", cmoOverwrite CreateProgmanGroup "Colorific", "", cmoNone CreateProgmanItem "Colorific", "Colorific", MakePath(DEST$, "clrific.exe"), "", cmoOverwrite ' JPH 03/03/95 Add NOTEPAD README.TXT icon in the Colorific group CreateProgmanItem "Colorific", "Colorific Read Me", "Notepad " + MakePath(DEST$, "readme.txt"), "", cmoOverwrite ' JPH 06/11/95 Add a copy of Control Panel in Colorfific group ' CreateProgmanItem "Colorific", "Colorific Control Panel", MakePath(DEST$, "hgconoff.exe"), "", cmoOverwrite ' JPH 10/29/95 Add Colorific Manual CreateProgmanItem "Colorific", "Colorific Manual", "WinHelp " + MakePath(DEST$, "clficman.hlp"), "", cmoOverwrite ENDINSTALL: ClearCopyList CloseLogFile END SUB '************************************************************************* '** Purpose: '** UnInstall an existing copy of HGC '** Arguments: '** none. '** Returns: '** none. '************************************************************************* SUB UnInstall STATIC SrcDir$ = GetSymbolValue("STF_SRCDIR") OpenLogFile MakePath(WINDIR$, "CLRIFIC.LOG"), 1 WriteToLogFile "" WriteToLogFile " Uninstalling HGC" WriteToLogFile "" WriteToLogFile "" WriteToLogFile " Remove all previous version files" WriteToLogFile "" i% = SetSilentMode (1) AddSectionFilesToCopyList "DelOldHGC", SrcDir$, WINDIR$ CopyFilesInCopyList ClearCopyList i% = SetSilentMode (i%) '**** SYSTEM.INI Restoration WriteToLogFile "SYSTEM.INI Restoration" ini$ = MakePath(WINDIR$, "SYSTEM.INI") 'Add ATM checking JPH 12/07/94 szSys$ = GetIniKeyString (ini$, "boot", "system.drv") IF HGCInstalled% = 1 THEN IF Instr (UCase$ (szSys$), "HGCSYS.DRV") = 0 THEN IF Instr (UCase$ (szSys$), "ATMSYS.DRV") = 0 THEN ' What to do ELSE szSys$ = GetIniKeyString (ini$, "boot", "hgc.system.drv") CreateIniKeyValue ini$, "boot", "atm.system.drv", szSys$, cmoOverwrite END IF ELSE szSys$ = GetIniKeyString (ini$, "boot", "hgc.system.drv") CreateIniKeyValue ini$, "boot", "system.drv", szSys$, cmoOverwrite END IF RemoveIniKey ini$, "boot", "hgc.system.drv", cmoNone END IF '**** Deleting HGC files ini$ = MakePath(WINDIR$, "HGCCTRL.INI") IF DoesFileExist (ini$, femExists) THEN DEST$ = GetIniKeyString (ini$, "Dir", "Program") IF DoesDirExist (DEST$) THEN AddSectionFilesToCopyList "DelHGC", SrcDir$, DEST$ AddSectionFilesToCopyList "DelHGCINI", SrcDir$, WINDIR$ CopyFilesInCopyList ClearCopyList SETFILE MakePath (DEST$, "*.LOG"), ON FOR LogFile$ IN FILELIST RemoveFile LogFile$, cmoForce NEXT CLEARLIST HGCLutDir$ = MakePath(DEST$, "LUT") IF DoesDirExist (HGCLutDir$) THEN SETFILE MakePath (HGCLutDir$, "*.HGC"), ON FOR LutFile$ IN FILELIST RemoveFile LutFile$, cmoForce NEXT CLEARLIST ' i% = RemoveDirectory (HGCLutDir$) END IF ' RemoveDir DEST$, cmoNone END IF RemoveFile ini$, cmoForce END IF WriteToLogFile "Startup group name: '" + STARTUP$ + "'" CloseLogFile END SUB '************************************************************************* '** Purpose: '** Check if HGC is already installed '** Arguments: '** none '** Returns: '** 1 if already installed '************************************************************************* FUNCTION IsHGCInstalled () STATIC AS INTEGER ' Check a previous install by the hgc.system.drv entry szSys$ = GetIniKeyString (MakePath (WINDIR$, "SYSTEM.INI"), "boot", "hgc.system.drv") IF szSys$ = "" THEN ' If first install propose the default path IF MID$ (WINDIR$, 2, 1) = ":" THEN DEST$ = MID$ (WINDIR$, 1, 2) ELSE DEST$ = "C:" ENDIF DEST$ = DEST$ + "\HGC" IsHGCInstalled = 0 ELSE ini$ = MakePath (WINDIR$, "HGCCTRL.INI") IF DoesFileExist (ini$, femExists) THEN ' If already installed propose the previous path as default DEST$ = GetIniKeyString (ini$, "Dir", "Program") IF MID$(DEST$, LEN(DEST$), 1) = "\" THEN ' Remove trailing "\" if any DEST$ = MID$(DEST$, 1, LEN(DEST$) - 1) END IF ELSE ' The HGCCTRL.INI has been erased, propose default path IF MID$ (WINDIR$, 2, 1) = ":" THEN DEST$ = MID$ (WINDIR$, 1, 2) ELSE DEST$ = "C:" ENDIF DEST$ = DEST$ + "\HGC" END IF IsHGCInstalled = 1 END IF END FUNCTION '************************************************************************* '** Purpose: '** Check number of color of display device '** Arguments: '** none '** Returns: '** Nb of colors '************************************************************************* FUNCTION GetDisplayNumColors () STATIC AS Integer hDC% = GetDC (0) If hDC% <> 0 Then iNum% = GetDeviceCaps (hDC%, NUMCOLORS) If iNum% < 1 Then GetDisplayNumColors = 32767 else GetDisplayNumColors = iNum% End If i% = ReleaseDC (0, hDC%) Else GetDisplayNumColors = 256 ' Default value End If END FUNCTION '************************************************************************* '** 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 '************************************************************************* '** Purpose: '** Remove the XDF library from library '************************************************************************* STATIC SUB UNLOAD_XDF IF hXDFLibInst%<>0 THEN junk%=FreeLibrary(hXDFLibInst%) hXDFLibInst%=0 END IF END SUB