mirror of
				https://github.com/MariaDB/server.git
				synced 2025-10-31 15:50:51 +03:00 
			
		
		
		
	
		
			
				
	
	
		
			641 lines
		
	
	
		
			21 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			641 lines
		
	
	
		
			21 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| 
 | |
| ////////////////////////////////////////////////////////////////////////////////
 | |
| //
 | |
| //  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 setup template.  You should
 | |
| //  modify it to provide all necessary steps for your setup.
 | |
| //
 | |
| //
 | |
| //    File Name:  Setup.rul
 | |
| //
 | |
| //  Description:  InstallShield script
 | |
| //
 | |
| //     Comments:  This template script performs a basic setup on a
 | |
| //                Windows 95 or Windows NT 4.0 platform. With minor
 | |
| //                modifications, this template can be adapted to create
 | |
| //                new, customized setups.
 | |
| //
 | |
| ////////////////////////////////////////////////////////////////////////////////
 | |
| 
 | |
| 
 | |
|   // Include header file
 | |
| #include "sdlang.h"
 | |
| #include "sddialog.h"
 | |
| 
 | |
| ////////////////////// string defines ////////////////////////////
 | |
| 
 | |
| #define UNINST_LOGFILE_NAME      "Uninst.isu"
 | |
| 
 | |
| //////////////////// installation declarations ///////////////////
 | |
| 
 | |
|   // ----- DLL prototypes -----
 | |
| 
 | |
| 
 | |
|      // 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 DialogShowSdSetupType();
 | |
|      prototype DialogShowSdComponentDialog2();
 | |
|      prototype DialogShowSdFinishReboot();
 | |
| 
 | |
|      // your prototypes
 | |
| 
 | |
| 
 | |
|   // ----- global variables ------
 | |
| 
 | |
|      // generated
 | |
|      BOOL        bWinNT, bIsShellExplorer, bInstallAborted, bIs32BitSetup;
 | |
|      STRING      svDir;
 | |
|      STRING      svName, svCompany, svSerial;
 | |
|      STRING      szAppPath;
 | |
|      STRING      svSetupType;
 | |
| 
 | |
| 
 | |
|      // your global variables
 | |
| 
 | |
| 
 | |
| ///////////////////////////////////////////////////////////////////////////////
 | |
| //
 | |
| //   MAIN PROGRAM
 | |
| //
 | |
| //      The setup begins here by hiding the visible setup
 | |
| //      window.  This is done to allow all the titles, images, etc. to
 | |
| //      be established before showing the main window.  The following
 | |
| //      logic then performs the setup in a series of steps.
 | |
| //
 | |
| ///////////////////////////////////////////////////////////////////////////////
 | |
| program
 | |
|     Disable( BACKGROUND );
 | |
| 
 | |
|     CheckRequirements();
 | |
| 
 | |
|     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;
 | |
| 
 | |
| 
 | |
|   end_install:
 | |
| 
 | |
|     CleanUpInstall();
 | |
| 
 | |
|      // If an unrecoverable error occurred, clean up the partial installation.
 | |
|      // Otherwise, exit normally.
 | |
| 
 | |
|     if (bInstallAborted) then
 | |
|         abort;
 | |
|     endif;
 | |
| 
 | |
| endprogram
 | |
| 
 | |
| ///////////////////////////////////////////////////////////////////////////////
 | |
| //                                                                           //
 | |
| // Function:  ShowDialogs                                                    //
 | |
| //                                                                           //
 | |
| //  Purpose:  This function manages the display and navigation               //
 | |
| //            the standard dialogs that exist in a setup.                    //
 | |
| //                                                                           //
 | |
| ///////////////////////////////////////////////////////////////////////////////
 | |
| 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_SdSetupType:
 | |
|         nResult = DialogShowSdSetupType();
 | |
|         if (nResult = BACK) goto Dlg_SdAskDestPath;
 | |
| 
 | |
|     Dlg_SdComponentDialog2:
 | |
|         if ((nResult = BACK) && (svSetupType != "Custom") && (svSetupType != "")) then
 | |
|            goto Dlg_SdSetupType;
 | |
|         endif;
 | |
|         nResult = DialogShowSdComponentDialog2();
 | |
|         if (nResult = BACK) goto Dlg_SdSetupType;
 | |
| 
 | |
|     return 0;
 | |
| 
 | |
|  end;
 | |
| 
 | |
| ///////////////////////////////////////////////////////////////////////////////
 | |
| //                                                                           //
 | |
| // Function: ProcessBeforeDataMove                                           //
 | |
| //                                                                           //
 | |
| //  Purpose: This function performs any necessary operations prior to the    //
 | |
| //           actual data move operation.                                     //
 | |
| //                                                                           //
 | |
| ///////////////////////////////////////////////////////////////////////////////
 | |
| function ProcessBeforeDataMove()
 | |
|     STRING svLogFile;
 | |
|     NUMBER nResult;
 | |
|  begin
 | |
| 
 | |
|   InstallationInfo( @COMPANY_NAME, @PRODUCT_NAME, @PRODUCT_VERSION, @PRODUCT_KEY );
 | |
| 
 | |
|   svLogFile = UNINST_LOGFILE_NAME;
 | |
| 
 | |
|   nResult = DeinstallStart( svDir, svLogFile, @UNINST_KEY, 0 );
 | |
|   if (nResult < 0) then
 | |
|       MessageBox( @ERROR_UNINSTSETUP, WARNING );
 | |
|   endif;
 | |
| 
 | |
|   szAppPath = TARGETDIR; // TODO : if your application .exe is in a subdir of TARGETDIR then add subdir
 | |
| 
 | |
|   if ((bIs32BitSetup) && (bIsShellExplorer)) then
 | |
|       RegDBSetItem( REGDB_APPPATH, szAppPath );
 | |
|       RegDBSetItem( REGDB_APPPATH_DEFAULT, szAppPath ^ @PRODUCT_KEY );
 | |
|       RegDBSetItem( REGDB_UNINSTALL_NAME, @UNINST_DISPLAY_NAME );
 | |
|   endif;
 | |
| 
 | |
|   // TODO : update any items you want to process before moving the data
 | |
|   //
 | |
| 
 | |
|   return 0;
 | |
|  end;
 | |
| 
 | |
| ///////////////////////////////////////////////////////////////////////////////
 | |
| //                                                                           //
 | |
| // Function:  MoveFileData                                                   //
 | |
| //                                                                           //
 | |
| //  Purpose:  This function handles the data movement for                    //
 | |
| //            the setup.                                                     //
 | |
| //                                                                           //
 | |
| ///////////////////////////////////////////////////////////////////////////////
 | |
| 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 function handles the error (if any) during the move data   //
 | |
| //           operation.                                                      //
 | |
| //                                                                           //
 | |
| ///////////////////////////////////////////////////////////////////////////////
 | |
| function HandleMoveDataError( nResult )
 | |
|     STRING szErrMsg, svComponent , svFileGroup , svFile;
 | |
|  begin
 | |
| 
 | |
|   svComponent = "";
 | |
|   svFileGroup = "";
 | |
|   svFile = "";
 | |
| 
 | |
|   switch (nResult)
 | |
|   case 0:
 | |
|        return 0;
 | |
|   default:
 | |
|        ComponentError ( MEDIA , svComponent , svFileGroup , svFile , nResult );
 | |
|        szErrMsg = @ERROR_MOVEDATA  + "\n\n" +
 | |
|                   @ERROR_COMPONENT + " " + svComponent + "\n" +
 | |
|                   @ERROR_FILEGROUP + " " + svFileGroup + "\n" +
 | |
|                   @ERROR_FILE      + " " + svFile;
 | |
|        SprintfBox( SEVERE, @TITLE_CAPTIONBAR, szErrMsg, nResult );
 | |
|        bInstallAborted = TRUE;
 | |
|        return nResult;
 | |
|   endswitch;
 | |
| 
 | |
|  end;
 | |
| 
 | |
| ///////////////////////////////////////////////////////////////////////////////
 | |
| //                                                                           //
 | |
| // Function: ProcessAfterDataMove                                            //
 | |
| //                                                                           //
 | |
| //  Purpose: This function performs any necessary operations needed after    //
 | |
| //           all data has been moved.                                        //
 | |
| //                                                                           //
 | |
| ///////////////////////////////////////////////////////////////////////////////
 | |
| function ProcessAfterDataMove()
 | |
|  begin
 | |
| 
 | |
|   // TODO : update self-registered files and other processes that
 | |
|   //        should be performed after the data has been moved.
 | |
| 
 | |
| 
 | |
|   return 0;
 | |
|  end;
 | |
| 
 | |
| ///////////////////////////////////////////////////////////////////////////////
 | |
| //                                                                           //
 | |
| // Function: SetupRegistry                                                   //
 | |
| //                                                                           //
 | |
| //  Purpose: This function makes the registry entries for this setup.        //
 | |
| //                                                                           //
 | |
| ///////////////////////////////////////////////////////////////////////////////
 | |
| function SetupRegistry()
 | |
|  NUMBER nResult;
 | |
| 
 | |
|  begin
 | |
| 
 | |
|   // TODO : Add all your registry entry keys here
 | |
|   //
 | |
|   //
 | |
|   //    RegDBCreateKeyEx, RegDBSetKeyValueEx....
 | |
|   //
 | |
| 
 | |
|   nResult = CreateRegistrySet( "" );
 | |
| 
 | |
|   return nResult;
 | |
|  end;
 | |
| 
 | |
| ///////////////////////////////////////////////////////////////////////////////
 | |
| //
 | |
| // Function: SetupFolders
 | |
| //
 | |
| //  Purpose: This function creates all the folders and shortcuts for the
 | |
| //           setup.  This includes program groups and items for Windows 3.1.
 | |
| //
 | |
| ///////////////////////////////////////////////////////////////////////////////
 | |
| function SetupFolders()
 | |
|  NUMBER nResult;
 | |
| 
 | |
|  begin
 | |
| 
 | |
| 
 | |
|   // TODO : Add all your folder (program group) along with shortcuts (program items)
 | |
|   //
 | |
|   //
 | |
|   //    CreateProgramFolder, AddFolderIcon....
 | |
|   //
 | |
| 
 | |
|   nResult = CreateShellObjects( "" );
 | |
| 
 | |
|   return nResult;
 | |
|  end;
 | |
| 
 | |
| ///////////////////////////////////////////////////////////////////////////////
 | |
| //                                                                           //
 | |
| // Function: CleanUpInstall                                                  //
 | |
| //                                                                           //
 | |
| //  Purpose: This cleans up the setup.  Anything that should                 //
 | |
| //           be released or deleted at the end of the setup should           //
 | |
| //           be done here.                                                   //
 | |
| //                                                                           //
 | |
| ///////////////////////////////////////////////////////////////////////////////
 | |
| function CleanUpInstall()
 | |
|  begin
 | |
| 
 | |
| 
 | |
|   if (bInstallAborted) then
 | |
|       return 0;
 | |
|   endif;
 | |
| 
 | |
|   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 );
 | |
| 
 | |
|   bInstallAborted = FALSE;
 | |
| 
 | |
|   if (bIs32BitSetup) then
 | |
|       svDir = "C:\\mysql"; //PROGRAMFILES ^ @COMPANY_NAME ^ @PRODUCT_NAME;
 | |
|   else
 | |
|       svDir = "C:\\mysql"; //PROGRAMFILES ^ @COMPANY_NAME16 ^ @PRODUCT_NAME16; // use shorten names
 | |
|   endif;
 | |
| 
 | |
|   TARGETDIR  = svDir;
 | |
| 
 | |
|   SdProductName( @PRODUCT_NAME );
 | |
| 
 | |
|   Enable( DIALOGCACHE );
 | |
| 
 | |
|   return 0;
 | |
|  end;
 | |
| 
 | |
| ///////////////////////////////////////////////////////////////////////////////
 | |
| //                                                                           //
 | |
| // Function:  SetupScreen                                                    //
 | |
| //                                                                           //
 | |
| //  Purpose:  This function establishes  the screen look.  This includes     //
 | |
| //            colors, fonts, and text to be displayed.                       //
 | |
| //                                                                           //
 | |
| ///////////////////////////////////////////////////////////////////////////////
 | |
| function SetupScreen()
 | |
|  begin
 | |
| 
 | |
|   Enable( FULLWINDOWMODE );
 | |
|   Enable( INDVFILESTATUS );
 | |
|   SetTitle( @TITLE_MAIN, 24, WHITE );
 | |
| 
 | |
|   SetTitle( @TITLE_CAPTIONBAR, 0, BACKGROUNDCAPTION ); // Caption bar text.
 | |
| 
 | |
|   Enable( BACKGROUND );
 | |
| 
 | |
|   Delay( 1 );
 | |
|  end;
 | |
| 
 | |
| ///////////////////////////////////////////////////////////////////////////////
 | |
| //                                                                           //
 | |
| // Function:  CheckRequirements                                              //
 | |
| //                                                                           //
 | |
| //  Purpose:  This function checks all minimum requirements for the          //
 | |
| //            application being installed.  If any fail, then the user       //
 | |
| //            is informed and the setup is terminated.                       //
 | |
| //                                                                           //
 | |
| ///////////////////////////////////////////////////////////////////////////////
 | |
| function CheckRequirements()
 | |
|     NUMBER  nvDx, nvDy, nvResult;
 | |
|     STRING  svResult;
 | |
| 
 | |
|  begin
 | |
| 
 | |
|   bWinNT           = FALSE;
 | |
|   bIsShellExplorer = FALSE;
 | |
| 
 | |
|   // Check screen resolution.
 | |
|   GetExtents( nvDx, nvDy );
 | |
| 
 | |
|   if (nvDy < 480) then
 | |
|       MessageBox( @ERROR_VGARESOLUTION, WARNING );
 | |
|       abort;
 | |
|   endif;
 | |
| 
 | |
|   // set 'setup' operation mode
 | |
|   bIs32BitSetup = TRUE;
 | |
|   GetSystemInfo( ISTYPE, nvResult, svResult );
 | |
|   if (nvResult = 16) then
 | |
|       bIs32BitSetup = FALSE; // running 16-bit setup
 | |
|       return 0; // no additional information required
 | |
|   endif;
 | |
| 
 | |
|   // --- 32-bit testing after this point ---
 | |
| 
 | |
|   // Determine the target system's operating system.
 | |
|   GetSystemInfo( OS, nvResult, svResult );
 | |
| 
 | |
|   if (nvResult =  IS_WINDOWSNT) then
 | |
|       // Running Windows NT.
 | |
|       bWinNT = TRUE;
 | |
| 
 | |
|       // Check to see if the shell being used is EXPLORER shell.
 | |
|       if (GetSystemInfo( OSMAJOR, nvResult, svResult ) = 0) then
 | |
|           if (nvResult >= 4) then
 | |
|               bIsShellExplorer = TRUE;
 | |
|           endif;
 | |
|       endif;
 | |
| 
 | |
|   elseif (nvResult = IS_WINDOWS95 ) then
 | |
|       bIsShellExplorer = TRUE;
 | |
| 
 | |
|   endif;
 | |
| 
 | |
| end;
 | |
| 
 | |
| 
 | |
| ///////////////////////////////////////////////////////////////////////////////
 | |
| //                                                                           //
 | |
| // Function: DialogShowSdWelcome                                             //
 | |
| //                                                                           //
 | |
| //  Purpose: This function handles 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 displays 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 asks 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: DialogShowSdSetupType                                           //
 | |
| //                                                                           //
 | |
| //  Purpose: This function displays the standard setup type dialog.          //
 | |
| //                                                                           //
 | |
| ///////////////////////////////////////////////////////////////////////////////
 | |
| function DialogShowSdSetupType()
 | |
|     NUMBER nResult, nType;
 | |
|     STRING szTitle, szMsg;
 | |
|  begin
 | |
| 
 | |
|   switch (svSetupType)
 | |
|   case "Typical":
 | |
|        nType = TYPICAL;
 | |
|   case "Custom":
 | |
|        nType = CUSTOM;
 | |
|   case "Compact":
 | |
|        nType = COMPACT;
 | |
|   case "":
 | |
|        svSetupType = "Typical";
 | |
|        nType = TYPICAL;
 | |
|   endswitch;
 | |
| 
 | |
|   szTitle = "";
 | |
|   szMsg   = "";
 | |
|   nResult = SetupType( szTitle, szMsg, "", nType, 0 );
 | |
| 
 | |
|   switch (nResult)
 | |
|   case COMPACT:
 | |
|        svSetupType = "Compact";
 | |
|   case TYPICAL:
 | |
|        svSetupType = "Typical";
 | |
|   case CUSTOM:
 | |
|        svSetupType = "Custom";
 | |
|   endswitch;
 | |
| 
 | |
|   return nResult;
 | |
|  end;
 | |
| 
 | |
| 
 | |
| ///////////////////////////////////////////////////////////////////////////////
 | |
| //                                                                           //
 | |
| // Function: DialogShowSdComponentDialog2                                    //
 | |
| //                                                                           //
 | |
| //  Purpose: This function displays the custom component dialog.             //
 | |
| //                                                                           //
 | |
| //                                                                           //
 | |
| ///////////////////////////////////////////////////////////////////////////////
 | |
| function DialogShowSdComponentDialog2()
 | |
|     NUMBER nResult;
 | |
|     STRING szTitle, szMsg;
 | |
|  begin
 | |
| 
 | |
|   if ((svSetupType != "Custom") && (svSetupType != "")) then
 | |
|       return 0;
 | |
|   endif;
 | |
| 
 | |
|   szTitle  = "";
 | |
|   szMsg    = "";
 | |
|   nResult  = SdComponentDialog2( szTitle, szMsg, svDir, "" );
 | |
| 
 | |
|   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"
 | |
| 
 | |
| 
 |