This repository has been archived on 2024-03-20. You can view files and clone it, but you cannot make any changes to it's state, such as pushing and creating new issues, pull requests or comments.
ContactBook/Install/Script Files/Setup.rul
2024-03-20 09:28:18 -05:00

540 lines
21 KiB
Text

////////////////////////////////////////////////////////////////////////////////
// //
// IIIIIII SSSSSS //
// II SS InstallShield (R) //
// II SSSSSS (c) 1996-1997, InstallShield Software Corporation //
// II SS (c) 1990-1996, InstallShield Corporation //
// IIIIIII SSSSSS All Rights Reserved. //
// //
// //
// This code is generated as a starting installation template. You should //
// modify it to provide all necessary steps for your installation. //
// //
// //
// File Name: setup.rul //
// //
// Description: InstallShield Script //
// //
// Comments: This template script performs a basic installation to a //
// Windows 95 or Windows NT platform. With minor modifications,//
// this template can be adapted to create new, customized //
// installations. //
// //
// //
////////////////////////////////////////////////////////////////////////////////
// Include header file
#include "sddialog.h"
//////////////////// string defines ///////////////////
#define UNINST_LOGFILE_NAME "cb12unin.isu"
//////////////////// installation declarations ///////////////////
// ----- DLL prototypes -----
// generated
// your DLL prototypes
// ---- script prototypes -----
// generated
prototype ShowDialogs();
prototype MoveFileData();
prototype HandleMoveDataError( NUMBER );
prototype ProcessBeforeDataMove();
prototype ProcessAfterDataMove();
prototype SetupRegistry();
prototype SetupFolders();
prototype CleanUpInstall();
prototype SetupInstall();
prototype SetupScreen();
prototype CheckRequirements();
prototype DialogShowSdWelcome();
prototype DialogShowSdShowInfoList();
prototype DialogShowSdAskDestPath();
prototype DialogShowSdSelectFolder();
prototype DialogShowSdFinishReboot();
// your prototypes
// ----- global variables ------
// generated
BOOL bWinNT, bIsShellExplorer;
STRING svDir;
STRING svName, svCompany, svSerial;
STRING svDefGroup;
STRING szAppPath;
STRING svSetupType;
LIST listStartCopy;
// your global variables
///////////////////////////////////////////////////////////////////////////////
// //
// MAIN PROGRAM //
// //
// The installation begins here by staring out by hiding the visible //
// installation window. This is done to allow all the titles, images //
// etc.. to be setup before showing the main window. The following //
// logic then performs the installation in a series of steps. //
// //
///////////////////////////////////////////////////////////////////////////////
program
Disable( BACKGROUND );
SetupInstall();
SetupScreen();
if (ShowDialogs()<0) goto end_install;
if (ProcessBeforeDataMove()<0) goto end_install;
if (MoveFileData()<0) goto end_install;
if (ProcessAfterDataMove()<0) goto end_install;
if (SetupRegistry()<0) goto end_install;
if (SetupFolders()<0) goto end_install;
if (CleanUpInstall()<0) goto end_install;
end_install:
exit;
///////////////////////////////////////////////////////////////////////////////
// //
// Function: ShowDialogs //
// //
// Purpose: This function manages the operation of showing and navigating //
// the standard dialogs that exist in a installation. //
// //
///////////////////////////////////////////////////////////////////////////////
function ShowDialogs()
NUMBER nResult;
begin
Dlg_Start:
// beginning of dialogs label
Dlg_SdWelcome:
nResult = DialogShowSdWelcome();
if (nResult = BACK) goto Dlg_Start;
Dlg_SdShowInfoList:
nResult = DialogShowSdShowInfoList();
if (nResult = BACK) goto Dlg_SdWelcome;
Dlg_SdAskDestPath:
nResult = DialogShowSdAskDestPath();
if (nResult = BACK) goto Dlg_SdShowInfoList;
Dlg_SdSelectFolder:
nResult = DialogShowSdSelectFolder();
if (nResult = BACK) goto Dlg_SdAskDestPath;
return 0;
end;
///////////////////////////////////////////////////////////////////////////////
// //
// Function: MoveFileData //
// //
// Purpose: This function will setup and handle the data movement for //
// the installation. //
// //
///////////////////////////////////////////////////////////////////////////////
function MoveFileData()
NUMBER nResult, nDisk;
begin
nDisk = 1;
SetStatusWindow( 0, "" );
Disable( DIALOGCACHE );
Enable( STATUS );
StatusUpdate( ON, 100 );
nResult = ComponentMoveData( MEDIA, nDisk, 0 );
HandleMoveDataError( nResult );
Disable( STATUS );
return nResult;
end;
///////////////////////////////////////////////////////////////////////////////
// //
// Function: HandleMoveDataError //
// //
// Purpose: This will handle the error (if any) during the move data //
// operation. //
// //
///////////////////////////////////////////////////////////////////////////////
function HandleMoveDataError( nResult )
begin
switch (nResult)
case 0:
return 0;
default:
SprintfBox( WARNING, @TITLE_CAPTIONBAR, @ERROR_MOVEDATA, nResult );
return nResult;
endswitch;
end;
///////////////////////////////////////////////////////////////////////////////
// //
// Function: ProcessAfterDataMove //
// //
// Purpose: This will perform any necessary operations needed after all //
// data has been moved. //
// //
///////////////////////////////////////////////////////////////////////////////
function ProcessAfterDataMove()
begin
// TODO : update self-registered files and other processes that
// should be perform after the data has been moved.
return 0;
end;
///////////////////////////////////////////////////////////////////////////////
// //
// Function: ProcessBeforeDataMove //
// //
// Purpose: This will perform any necessary operations prior to the //
// actual data move operation. //
// //
///////////////////////////////////////////////////////////////////////////////
function ProcessBeforeDataMove()
STRING svLogFile;
begin
// TODO : update any items you want to process before moving the data
//
InstallationInfo( @COMPANY_NAME, @PRODUCT_NAME, @PRODUCT_VERSION, @PRODUCT_KEY );
svLogFile = UNINST_LOGFILE_NAME;
DeinstallStart( svDir, svLogFile, @UNINST_KEY, 0 );
RegDBSetItem( REGDB_APPPATH, szAppPath );
RegDBSetItem( REGDB_APPPATH_DEFAULT, szAppPath ^ @PRODUCT_KEY );
RegDBSetItem( REGDB_UNINSTALL_NAME, @UNINST_DISPLAY_NAME );
return 0;
end;
///////////////////////////////////////////////////////////////////////////////
// //
// Function: SetupRegistry //
// //
// Purpose: This will setup the registry entries for this installation. //
// //
// //
///////////////////////////////////////////////////////////////////////////////
function SetupRegistry()
begin
// TODO : Add all your registry entry keys here
//
//
// RegDBCreateKey, RegDBSetKeyValue....
//
return 0;
end;
///////////////////////////////////////////////////////////////////////////////
// //
// Function: SetupFolders //
// //
// Purpose: This function will setup all the folders and shortcuts for the //
// installation. This includes program groups, items for Win31 //
// //
///////////////////////////////////////////////////////////////////////////////
function SetupFolders()
begin
AddFolderIcon(svDefGroup , @PRODUCT_NAME,
svDir ^ @PRODUCT_KEY,
"" , "" , 0 , "" , REPLACE );
AddFolderIcon(svDefGroup , "ReadMe",
svDir ^ "README.TXT",
"" , "" , 0 , "" , REPLACE ); return 0;
end;
///////////////////////////////////////////////////////////////////////////////
// //
// Function: CleanUpInstall //
// //
// Purpose: This will cleanup the installation. Anything that should //
// be released or delete at the end of the installation should //
// be done here. //
// //
///////////////////////////////////////////////////////////////////////////////
function CleanUpInstall()
begin
DialogShowSdFinishReboot();
if (BATCH_INSTALL) then // ensure locked files are properly written
CommitSharedFiles(0);
endif;
return 0;
end;
///////////////////////////////////////////////////////////////////////////////
// //
// Function: SetupInstall //
// //
// Purpose: This will setup the installation. Any general initialization //
// needed for the installation should be performed here. //
// //
///////////////////////////////////////////////////////////////////////////////
function SetupInstall()
begin
Enable( CORECOMPONENTHANDLING );
listStartCopy = ListCreate(0);
svDir = WINSYSDISK ^ "CBook";
TARGETDIR = svDir;
szAppPath = svDir;
SdProductName( @PRODUCT_NAME );
Enable( DIALOGCACHE );
return 0;
end;
///////////////////////////////////////////////////////////////////////////////
// //
// Function: SetupScreen //
// //
// Purpose: This function will set up the screen look. This includes //
// colors, fonts, text to be displayed, etc. //
// //
///////////////////////////////////////////////////////////////////////////////
function SetupScreen()
NUMBER nDx, nDy;
begin
GetExtents( nDx, nDy );
Enable( FULLWINDOWMODE );
SetTitle( @TITLE_MAIN, 24, WHITE );
SetTitle( @TITLE_CAPTIONBAR, 0, BACKGROUNDCAPTION ); // Caption bar text.
Enable(BITMAP256COLORS);
SetColor(BACKGROUND, BK_BLUE);
Enable( BACKGROUND );
Delay( 1 );
end;
///////////////////////////////////////////////////////////////////////////////
// //
// Function: CheckRequirements //
// //
// Purpose: This function will check all minimum requirements for the //
// application being installed. If any fail, then the user //
// is informed and the installation is terminated. //
// //
///////////////////////////////////////////////////////////////////////////////
function CheckRequirements()
NUMBER nvDx, nvDy, nvResult;
STRING svResult;
begin
// Check screen resolution.
GetExtents( nvDx, nvDy );
if (nvDy < 480) then
MessageBox( @ERROR_VGARESOLUTION, WARNING );
abort;
endif;
// Determine the target system's operating system.
GetSystemInfo( OS, nvResult, svResult );
bWinNT = FALSE;
bIsShellExplorer = FALSE;
if (nvResult = IS_WINDOWSNT) then
bWinNT = TRUE; // Running Windows NT.
// Check to see if the shell being used is EXPLORER shell.
if (( nvResult = IS_WINDOWSNT ) || ( nvResult = IS_WINDOWS95 )) then
if (GetSystemInfo( OSMAJOR, nvResult, svResult ) = 0) then
if (nvResult >= 4) then
bIsShellExplorer = TRUE;
endif;
endif;
endif;
elseif (nvResult = IS_WINDOWS95 ) then
bIsShellExplorer = TRUE;
endif;
end;
///////////////////////////////////////////////////////////////////////////////
// //
// Function: DialogShowSdWelcome //
// //
// Purpose: This function will handle the standard welcome dialog. //
// //
// //
///////////////////////////////////////////////////////////////////////////////
function DialogShowSdWelcome()
NUMBER nResult;
STRING szTitle, szMsg;
begin
szTitle = "";
szMsg = "";
nResult = SdWelcome( szTitle, szMsg );
return nResult;
end;
///////////////////////////////////////////////////////////////////////////////
// //
// Function: DialogShowSdShowInfoList //
// //
// Purpose: This function will handle the general information list dialog. //
// //
// //
///////////////////////////////////////////////////////////////////////////////
function DialogShowSdShowInfoList()
NUMBER nResult;
LIST list;
STRING szTitle, szMsg, szFile;
begin
szFile = SUPPORTDIR ^ "infolist.txt";
list = ListCreate( STRINGLIST );
ListReadFromFile( list, szFile );
szTitle = "";
szMsg = " ";
nResult = SdShowInfoList( szTitle, szMsg, list );
ListDestroy( list );
return nResult;
end;
///////////////////////////////////////////////////////////////////////////////
// //
// Function: DialogShowSdAskDestPath //
// //
// Purpose: This function will handle the query of the user for the //
// destination directory. //
// //
///////////////////////////////////////////////////////////////////////////////
function DialogShowSdAskDestPath()
NUMBER nResult;
STRING szTitle, szMsg;
begin
szTitle = "";
szMsg = "";
nResult = SdAskDestPath( szTitle, szMsg, svDir, 0 );
TARGETDIR = svDir;
return nResult;
end;
///////////////////////////////////////////////////////////////////////////////
// //
// Function: DialogShowSdSelectFolder //
// //
// Purpose: This function will handle the standard folder selection dialog. //
// //
// //
///////////////////////////////////////////////////////////////////////////////
function DialogShowSdSelectFolder()
NUMBER nResult;
STRING szTitle, szMsg;
begin
if (svDefGroup = "") then
svDefGroup = @FOLDER_NAME;
endif;
szTitle = "";
szMsg = "";
nResult = SdSelectFolder( szTitle, szMsg, svDefGroup );
return nResult;
end;
///////////////////////////////////////////////////////////////////////////////
// //
// Function: DialogShowSdFinishReboot //
// //
// Purpose: This function will show the last dialog of the product. //
// It will allow the user to reboot and/or show some readme text. //
// //
///////////////////////////////////////////////////////////////////////////////
function DialogShowSdFinishReboot()
NUMBER nResult, nDefOptions;
STRING szTitle, szMsg1, szMsg2, szOption1, szOption2;
NUMBER bOpt1, bOpt2;
begin
if (!BATCH_INSTALL) then
bOpt1 = FALSE;
bOpt2 = FALSE;
szMsg1 = "";
szMsg2 = "";
szOption1 = "";
szOption2 = "";
nResult = SdFinish( szTitle, szMsg1, szMsg2, szOption1, szOption2, bOpt1, bOpt2 );
return 0;
endif;
nDefOptions = SYS_BOOTMACHINE;
szTitle = "";
szMsg1 = "";
szMsg2 = "";
nResult = SdFinishReboot( szTitle, szMsg1, nDefOptions, szMsg2, 0 );
return nResult;
end;
// --- include script file section ---
#include "sddialog.rul"