bug 77981 - Hook libxpnet's pause/resume support into the windows installer

bug 77244 - Installers need to create Win32 Reg. key schema that Gecko Embedding browsers can follow
bug 64567 - Unable to see which build is being installed by installer (fix only for mozilla)
bug 64567 - Unable to see which build is being installed by installer
bug 75655 - FTP vs. HTTP Downloading
bug 78449 - Add config.ini key to disable the Site Selector menu.
bug 79173 - The string get cut-off in "Start Install"

Puts a temporary workaround for bug:
  bug 77179 - Download hangs on Win98 machine over Cable/DSL through SERA

http://bugscape/show_bug.cgi?id=4886
http://bugscape.netscape.com/show_bug.cgi?id=4858 - Win installer should indicate version being installed

r=dveditz
sr=mscott

affects only windows platforms.
This commit is contained in:
ssu%netscape.com 2001-05-10 07:33:40 +00:00
parent 1f94b08342
commit beee90e929
15 changed files with 914 additions and 214 deletions

View File

@ -121,7 +121,7 @@ Verify Existence=
[Dialog Welcome]
Show Dialog=TRUE
;*** LOCALIZE ME BABY ***
Title=$ProductName$ Setup - Welcome
Title=$ProductName$ ($Version$) Setup - Welcome
;*** LOCALIZE ME BABY ***
Message0=Welcome to %s Setup.
;*** LOCALIZE ME BABY ***
@ -132,7 +132,7 @@ Message2=Click Cancel to quit Setup and then close any programs you have running
[Dialog License]
Show Dialog=TRUE
;*** LOCALIZE ME BABY ***
Title=$ProductName$ Setup - Software License Agreement
Title=$ProductName$ ($Version$) Setup - Software License Agreement
License File=license.txt
;*** LOCALIZE ME BABY ***
Message0=Please read the following license agreement. Use the scroll bar to view the rest of this agreement.
@ -142,7 +142,7 @@ Message1=Click Accept if you accept the terms of the preceeding license agreemen
[Dialog Setup Type]
Show Dialog=TRUE
;*** LOCALIZE ME BABY ***
Title=$ProductName$ Setup - Setup Type
Title=$ProductName$ ($Version$) Setup - Setup Type
;*** LOCALIZE ME BABY ***
Message0=Click the type of setup you prefer, then click Next.
Readme Filename=readme.txt
@ -221,14 +221,14 @@ C9=Component QFA
[Dialog Select Components]
Show Dialog=TRUE
;*** LOCALIZE ME BABY ***
Title=$ProductName$ Setup - Select Components
Title=$ProductName$ ($Version$) Setup - Select Components
;*** LOCALIZE ME BABY ***
Message0=The browser is always installed. Select or clear the additional components you want to install.
[Dialog Select Additional Components]
Show Dialog=FALSE
;*** LOCALIZE ME BABY ***
Title=$ProductName$ Setup - Select Additional Components
Title=$ProductName$ ($Version$) Setup - Select Additional Components
;*** LOCALIZE ME BABY ***
Message0=Select or clear the additional components you want to install.
@ -236,7 +236,7 @@ Message0=Select or clear the additional components you want to install.
; do not localize this part because it is not currently being used
[Dialog Windows Integration]
Show Dialog=FALSE
Title=$ProductName$ Setup - Windows Integration
Title=$ProductName$ ($Version$) Setup - Windows Integration
Message0=Check the Mozilla Preference options you would like Setup to perform.
Message1=These settings allow you to set default Internet preferences for browsing and searching. They affect browsers installed on your machine, including Mozilla Communicator and Microsoft Internet Explorer.
@ -261,19 +261,30 @@ Archive=
[Dialog Program Folder]
Show Dialog=TRUE
;*** LOCALIZE ME BABY ***
Title=$ProductName$ Setup - Select Program Folder
Title=$ProductName$ ($Version$) Setup - Select Program Folder
;*** LOCALIZE ME BABY ***
Message0=Setup will add program icons to the Program Folder listed below. You may type a new folder name, or select one from the Existing Folders list. Click Next to continue.
[Dialog Download Options]
Show Dialog=TRUE
;*** LOCALIZE ME BABY ***
Title=$ProductName$ Setup - Download Options
Title=$ProductName$ ($Version$) Setup - Download Options
;*** LOCALIZE ME BABY ***
Message0=Select the region you wish to download from, or leave on Default to download from the nearest geographic location.
;*** LOCALIZE ME BABY ***
Message1=Select the following option if you wish to save downloaded Setup files on your own computer. This allows you to re-run Setup without downloading the files again. The Setup files will be saved to the path below.
Save Installer=
[Dialog Advanced Settings]
Show Dialog=TRUE
;*** LOCALIZE ME BABY ***
Title=$ProductName$ ($Version$) Setup - Advanced Settings
;*** LOCALIZE ME BABY ***
Message0=If your Internet connection requires a proxy server, enter your server name and port information. If your Internet connection doesn't require a proxy server, leave the fields blank.
Proxy Server=
Proxy Port=
Proxy User=
Proxy Password=
; Use Protocol accepts only two options:
; FTP
; HTTP
@ -287,21 +298,10 @@ Use Protocol Settings=ENABLED
; Default value is TRUE
Show Protocols=TRUE
[Dialog Advanced Settings]
Show Dialog=TRUE
;*** LOCALIZE ME BABY ***
Title=$ProductName$ Setup - Advanced Settings
;*** LOCALIZE ME BABY ***
Message0=If your Internet connection requires a proxy server, enter your server name and port information. If your Internet connection doesn't require a proxy server, leave the fields blank.
Proxy Server=
Proxy Port=
Proxy User=
Proxy Password=
[Dialog Start Install]
Show Dialog=TRUE
;*** LOCALIZE ME BABY ***
Title=$ProductName$ Setup - Start Install
Title=$ProductName$ ($Version$) Setup - Start Install
;*** LOCALIZE ME BABY ***
Message Install=Setup has enough information to start copying the program files. If you want to review or change settings, click Back. If you are satisfied with the current settings, click Install to begin copying files.
;*** LOCALIZE ME BABY ***
@ -310,11 +310,11 @@ Message Download=Setup has enough information to start downloading and copying t
[Dialog Download]
Show Dialog=TRUE
;*** LOCALIZE ME BABY ***
Title=$ProductName$ Setup - Download
Title=$ProductName$ ($Version$) Setup - Download
;*** LOCALIZE ME BABY ***
Message Download0=Downloading files now
Message Download0=Setup is downloading the required files now. This may take some time given your network connection speed.
;*** LOCALIZE ME BABY ***
Message Retry0=Redownloading files that have failed CRC checks now
Message Retry0=Some files have failed the CRC check and are being downloaded again. Only those files that have failed will be downloaded.
[Dialog Reboot]
; Show Dialog values are:
@ -663,6 +663,48 @@ WorkingDir=[SETUP PATH]
[Windows Registry0]
Root Key=HKEY_LOCAL_MACHINE
;*** LOCALIZE ME BABY ***
Key=Software\$CompanyName$
Name=
Name Value=
Type=REG_SZ
Decrypt Key=FALSE
Decrypt Name=FALSE
Decrypt Name Value=TRUE
Overwrite Key=TRUE
Overwrite Name=TRUE
Timing=pre smartupdate
[Windows Registry1]
Root Key=HKEY_LOCAL_MACHINE
;*** LOCALIZE ME BABY ***
Key=Software\$CompanyName$\$ProductName$
Name=
Name Value=
Type=REG_SZ
Decrypt Key=FALSE
Decrypt Name=FALSE
Decrypt Name Value=TRUE
Overwrite Key=TRUE
Overwrite Name=TRUE
Timing=pre smartupdate
[Windows Registry2]
Root Key=HKEY_LOCAL_MACHINE
;*** LOCALIZE ME BABY ***
Key=Software\$CompanyName$\$ProductName$\$UserAgent$
Name=
Name Value=
Type=REG_SZ
Decrypt Key=FALSE
Decrypt Name=FALSE
Decrypt Name Value=TRUE
Overwrite Key=TRUE
Overwrite Name=TRUE
Timing=pre smartupdate
[Windows Registry3]
Root Key=HKEY_LOCAL_MACHINE
;*** LOCALIZE ME BABY ***
Key=Software\$CompanyName$\$ProductName$\$UserAgent$\Main
Name=Program Folder Path
Name Value=[Default Folder]
@ -674,7 +716,63 @@ Overwrite Key=TRUE
Overwrite Name=TRUE
Timing=pre smartupdate
[Windows Registry1]
[Windows Registry4]
Root Key=HKEY_CURRENT_USER
;*** LOCALIZE ME BABY ***
Key=Software\$CompanyName$
Name=
Name Value=
Type=REG_SZ
Decrypt Key=FALSE
Decrypt Name=FALSE
Decrypt Name Value=TRUE
Overwrite Key=TRUE
Overwrite Name=TRUE
Timing=pre smartupdate
[Windows Registry5]
Root Key=HKEY_CURRENT_USER
;*** LOCALIZE ME BABY ***
Key=Software\$CompanyName$\$ProductName$
Name=
Name Value=
Type=REG_SZ
Decrypt Key=FALSE
Decrypt Name=FALSE
Decrypt Name Value=TRUE
Overwrite Key=TRUE
Overwrite Name=TRUE
Timing=pre smartupdate
[Windows Registry6]
Root Key=HKEY_CURRENT_USER
;*** LOCALIZE ME BABY ***
Key=Software\$CompanyName$\$ProductName$\$UserAgent$
Name=
Name Value=
Type=REG_SZ
Decrypt Key=FALSE
Decrypt Name=FALSE
Decrypt Name Value=TRUE
Overwrite Key=TRUE
Overwrite Name=TRUE
Timing=pre smartupdate
[Windows Registry7]
Root Key=HKEY_CURRENT_USER
;*** LOCALIZE ME BABY ***
Key=Software\$CompanyName$\$ProductName$\$UserAgent$\Main
Name=Program Folder Path
Name Value=[Default Folder]
Type=REG_SZ
Decrypt Key=FALSE
Decrypt Name=FALSE
Decrypt Name Value=TRUE
Overwrite Key=TRUE
Overwrite Name=TRUE
Timing=pre smartupdate
[Windows Registry8]
Root Key=HKEY_LOCAL_MACHINE
Key=Software\Microsoft\Windows\CurrentVersion\Uninstall\$ProductName$ ($UserAgentShort$)
Name=DisplayName
@ -687,7 +785,7 @@ Overwrite Key=TRUE
Overwrite Name=TRUE
Timing=post smartupdate
[Windows Registry2]
[Windows Registry9]
Root Key=HKEY_LOCAL_MACHINE
Key=Software\Microsoft\Windows\CurrentVersion\Uninstall\$ProductName$ ($UserAgentShort$)
Name=UninstallString
@ -703,9 +801,8 @@ Timing=post smartupdate
; The following keys are to help JRE's installer locate where mozilla gets
; installed to. It has not been updated to look for the new keys.
[Windows Registry3]
[Windows Registry10]
Root Key=HKEY_LOCAL_MACHINE
;*** LOCALIZE ME BABY ***
Key=Software\Mozilla
Name=
Name Value=
@ -717,7 +814,7 @@ Overwrite Key=TRUE
Overwrite Name=TRUE
Timing=pre smartupdate
[Windows Registry4]
[Windows Registry11]
Root Key=HKEY_LOCAL_MACHINE
;*** LOCALIZE ME BABY ***
Key=Software\Mozilla\Seamonkey
@ -731,7 +828,7 @@ Overwrite Key=TRUE
Overwrite Name=TRUE
Timing=pre smartupdate
[Windows Registry5]
[Windows Registry12]
Root Key=HKEY_LOCAL_MACHINE
;*** LOCALIZE ME BABY ***
Key=Software\Mozilla\Seamonkey\$UserAgent$
@ -745,7 +842,7 @@ Overwrite Key=TRUE
Overwrite Name=TRUE
Timing=pre smartupdate
[Windows Registry6]
[Windows Registry13]
Root Key=HKEY_LOCAL_MACHINE
;*** LOCALIZE ME BABY ***
Key=Software\Mozilla\Seamonkey\$UserAgent$\Main
@ -759,6 +856,142 @@ Overwrite Key=TRUE
Overwrite Name=TRUE
Timing=pre smartupdate
; These sections (14-22) are to register information for
; Gecko Embedding Clients. This is necessary for 3rd party
; apps to locate this Clients' components or plugins path.
[Windows Registry14]
Root Key=HKEY_LOCAL_MACHINE
; Do Not Localize the "Software\Mozilla" part. It must be "Software\Mozilla"
;*** LOCALIZE ME BABY ***
Key=Software\Mozilla\$ProductName$ $UserAgentShort$
Name=
Name Value=
Type=REG_SZ
Decrypt Key=FALSE
Decrypt Name=FALSE
Decrypt Name Value=TRUE
Overwrite Key=TRUE
Overwrite Name=TRUE
Timing=pre smartupdate
[Windows Registry15]
Root Key=HKEY_LOCAL_MACHINE
; Do Not Localize the "Software\Mozilla" part. It must be "Software\Mozilla"
;*** LOCALIZE ME BABY ***
Key=Software\Mozilla\$ProductName$ $UserAgentShort$\Extensions
Name=
Name Value=
Type=REG_SZ
Decrypt Key=FALSE
Decrypt Name=FALSE
Decrypt Name Value=TRUE
Overwrite Key=TRUE
Overwrite Name=TRUE
Timing=pre smartupdate
[Windows Registry16]
Root Key=HKEY_LOCAL_MACHINE
; Do Not Localize the "Software\Mozilla" part. It must be "Software\Mozilla"
;*** LOCALIZE ME BABY ***
Key=Software\Mozilla\$ProductName$ $UserAgentShort$\Extensions
Name=Components
Name Value=[Setup Path]\Components
Type=REG_SZ
Decrypt Key=FALSE
Decrypt Name=FALSE
Decrypt Name Value=TRUE
Overwrite Key=TRUE
Overwrite Name=TRUE
Timing=pre smartupdate
[Windows Registry17]
Root Key=HKEY_LOCAL_MACHINE
; Do Not Localize the "Software\Mozilla" part. It must be "Software\Mozilla"
;*** LOCALIZE ME BABY ***
Key=Software\Mozilla\$ProductName$ $UserAgentShort$\Extensions
Name=Plugins
Name Value=[Setup Path]\Plugins
Type=REG_SZ
Decrypt Key=FALSE
Decrypt Name=FALSE
Decrypt Name Value=TRUE
Overwrite Key=TRUE
Overwrite Name=TRUE
Timing=pre smartupdate
[Windows Registry18]
Root Key=HKEY_CURRENT_USER
Key=Software\Mozilla
Name=
Name Value=
Type=REG_SZ
Decrypt Key=FALSE
Decrypt Name=FALSE
Decrypt Name Value=TRUE
Overwrite Key=TRUE
Overwrite Name=TRUE
Timing=pre smartupdate
[Windows Registry19]
Root Key=HKEY_CURRENT_USER
; Do Not Localize the "Software\Mozilla" part. It must be "Software\Mozilla"
;*** LOCALIZE ME BABY ***
Key=Software\Mozilla\$ProductName$ $UserAgentShort$
Name=
Name Value=
Type=REG_SZ
Decrypt Key=FALSE
Decrypt Name=FALSE
Decrypt Name Value=TRUE
Overwrite Key=TRUE
Overwrite Name=TRUE
Timing=pre smartupdate
[Windows Registry20]
Root Key=HKEY_CURRENT_USER
; Do Not Localize the "Software\Mozilla" part. It must be "Software\Mozilla"
;*** LOCALIZE ME BABY ***
Key=Software\Mozilla\$ProductName$ $UserAgentShort$\Extensions
Name=
Name Value=
Type=REG_SZ
Decrypt Key=FALSE
Decrypt Name=FALSE
Decrypt Name Value=TRUE
Overwrite Key=TRUE
Overwrite Name=TRUE
Timing=pre smartupdate
[Windows Registry21]
Root Key=HKEY_CURRENT_USER
; Do Not Localize the "Software\Mozilla" part. It must be "Software\Mozilla"
;*** LOCALIZE ME BABY ***
Key=Software\Mozilla\$ProductName$ $UserAgentShort$\Extensions
Name=Components
Name Value=[Setup Path]\Components
Type=REG_SZ
Decrypt Key=FALSE
Decrypt Name=FALSE
Decrypt Name Value=TRUE
Overwrite Key=TRUE
Overwrite Name=TRUE
Timing=pre smartupdate
[Windows Registry22]
Root Key=HKEY_CURRENT_USER
; Do Not Localize the "Software\Mozilla" part. It must be "Software\Mozilla"
;*** LOCALIZE ME BABY ***
Key=Software\Mozilla\$ProductName$ $UserAgentShort$\Extensions
Name=Plugins
Name Value=[Setup Path]\Plugins
Type=REG_SZ
Decrypt Key=FALSE
Decrypt Name=FALSE
Decrypt Name Value=TRUE
Overwrite Key=TRUE
Overwrite Name=TRUE
Timing=pre smartupdate
; Values for Show Folder:
; HIDE Hides the window and activates another window.
@ -837,15 +1070,15 @@ Program Folder=[Default Folder]
[Strings]
;*** LOCALIZE ME BABY ***
Message Unfinished Download Restart=Setup has detected that a previous session of this Setup did not finish its download of all the necessary archives. Would you like to keep the archives currently downloaded, so as to not redownload them again, during this session?
Message Unfinished Download Restart=Setup has detected that a previous session of this Setup did not finish its download of all the necessary archives. Would you like to keep the archives currently downloaded, so as to not redownload them again during this session?
;*** LOCALIZE ME BABY ***
Error Corrupted Archives Detected=Setup has detected that the following archives within this Setup are corrupted:%sYou will need to obtain another copy of the $ProductName$ Setup in order for installation to proceed.
;*** LOCALIZE ME BABY ***
Error Corrupted Archives Detected AUTO mode=Setup has detected that at least one archive within this Setup is corrupt. You will need to obtain another copy of the $ProductName$ Setup in order for installation to proceed.
;*** LOCALIZE ME BABY ***
Error Too Many CRC Failures=Too many download failures. Setup will cancel. You can restart Setup to continue where it left off.
Error Too Many CRC Failures=Too many download failures. Setup will cancel. Any files already downloaded will not be deleted. The next time Setup is run, these files will be taken into account during the download.
;*** LOCALIZE ME BABY ***
Error Too Many Network Errors=Too many network errors trying to download %s. Please retry again later. You can restart Setup to continue where it left off.
Error Too Many Network Errors=Too many network errors trying to download %s. Please retry again later. Any files already downloaded will not be deleted. The next time Setup is run, these files will be taken into account during the download.
;*** LOCALIZE ME BABY ***
Message Verifying Archives=Verifying integrity of archives, please wait...
;*** LOCALIZE ME BABY ***
@ -853,11 +1086,15 @@ Error Undefined=Error undefined
;*** LOCALIZE ME BABY ***
Error Out Of Memory=Out of memory!
;*** LOCALIZE ME BABY ***
Status Download=Downloading file %d of %d (%uKB of %uKB total - %d%%)
Status Download=%s at %.2fKB/sec (%uKB of %uKB downloaded)
;*** LOCALIZE ME BABY ***
Status Retry=Redownloading file %d of %d (%uKB of %uKB total - %d%%)
Status Retry=%s at %.2fKB/sec (%uKB of %uKB downloaded)
;*** LOCALIZE ME BABY ***
Dialog Download Title Minimized=%d%% for all files
Status File Info=%s
;*** LOCALIZE ME BABY ***
Status Percentage Completed=%d%%
;*** LOCALIZE ME BABY ***
Dialog Download Title Minimized=%d%% completed
;*** LOCALIZE ME BABY ***
STR Force Upgrade Required=(Required)
;*** LOCALIZE ME BABY ***
@ -867,14 +1104,22 @@ Error File Uncompress=Error uncompressing file %s: %d
;*** LOCALIZE ME BABY ***
UsageMsg Usage=Usage: %s [options]%s [options] can be any of the following combination:%s -h: This help.%s -a [path]: Alternate archive search path.%s -n [filename]: Setup's parent's process filename.%s -ma: Run setup in Auto mode.%s -ms: Run setup in Silent mode.%s -ira: Ignore the [RunAppX] sections%s -ispf: Ignore the [Program FolderX] sections that show%s the Start Menu shortcut folder at the end of installation.
;*** LOCALIZE ME BABY ***
IDC Use FTP=Use &FTP
IDC Use FTP=Use &FTP for downloading files
;*** LOCALIZE ME BABY ***
IDC Use HTTP=Use &HTTP
IDC Use HTTP=Use &HTTP for downloading files
;*** LOCALIZE ME BABY ***
IDC Save Installer Files=&Save installer files locally
;*** LOCALIZE ME BABY ***
Message Download Paused=Setup has encountered a network problem and has paused the download. If you have just lost your network connection, please click Resume once your network has been reestablished.
[Site Selector]
; Dictates whether or not to show the pull down menu.
; Default value is SHOW.
; If Status= is set to HIDE, then Indentifier0 will be used
; and all other IdentifiersX will be ignored.
Status=HIDE
Identifier0=Site0
;*** LOCALIZE ME BABY ***
Description0=Default

View File

@ -15,9 +15,10 @@ PASSWORD=Password:
SELECTDIRECTORY=Select a directory
DIRECTORIES_=&Directories:
DRIVES_=Dri&ves:
STATUS=Status:
STATUS=Remaining:
FILE=File:
URL=Url:
URL=From URL:
TO=To Path:
ACCEPT_=&Accept
NO_=&No
PROGRAMFOLDER_=&Program Folder:
@ -36,6 +37,8 @@ CURRENTSETTINGS=Current Settings:
INSTALL_=&Install
DELETE_=&Delete
README=Re&ad Me
PAUSE_=&Pause
RESUME_=&Resume
EXTRACTING=Extracting...

View File

@ -66,10 +66,10 @@ $seiFileNameSpecificStub = "mozilla-win32-stub-installer.exe";
$seuFileNameSpecific = "MozillaUninstall.exe";
# set environment vars for use by other .pl scripts called from this script.
$ENV{WIZ_userAgent} = "0.9 (en)";
$ENV{WIZ_userAgentShort} = "0.9";
$ENV{WIZ_xpinstallVersion} = "0.9.0";
$ENV{WIZ_nameCompany} = "Mozilla.org";
$ENV{WIZ_userAgent} = "0.9.1 (en)"; # ie: "0.9 (en)"
$ENV{WIZ_userAgentShort} = "0.9.1"; # ie: "0.9"
$ENV{WIZ_xpinstallVersion} = "0.9.1"; # ie: "0.9.0"
$ENV{WIZ_nameCompany} = "mozilla.org";
$ENV{WIZ_nameProduct} = "Mozilla";
$ENV{WIZ_fileMainExe} = "Mozilla.exe";
$ENV{WIZ_fileUninstall} = $seuFileNameSpecific;

View File

@ -1632,9 +1632,18 @@ LRESULT CALLBACK DlgProcProgramFolder(HWND hDlg, UINT msg, WPARAM wParam, LONG l
return(0);
}
void SaveDownloadProtocolOption(HWND hDlg)
{
if(IsDlgButtonChecked(hDlg, IDC_USE_FTP) == BST_CHECKED)
diDownloadOptions.dwUseProtocol = UP_FTP;
else if(IsDlgButtonChecked(hDlg, IDC_USE_HTTP) == BST_CHECKED)
diDownloadOptions.dwUseProtocol = UP_HTTP;
}
LRESULT CALLBACK DlgProcAdvancedSettings(HWND hDlg, UINT msg, WPARAM wParam, LONG lParam)
{
RECT rDlg;
char szBuf[MAX_BUF];
switch(msg)
{
@ -1656,6 +1665,11 @@ LRESULT CALLBACK DlgProcAdvancedSettings(HWND hDlg, UINT msg, WPARAM wParam, LON
0,
SWP_NOSIZE);
GetPrivateProfileString("Strings", "IDC Use Ftp", "", szBuf, sizeof(szBuf), szFileIniConfig);
SetDlgItemText(hDlg, IDC_USE_FTP, szBuf);
GetPrivateProfileString("Strings", "IDC Use Http", "", szBuf, sizeof(szBuf), szFileIniConfig);
SetDlgItemText(hDlg, IDC_USE_HTTP, szBuf);
SetDlgItemText(hDlg, IDC_STATIC, sgInstallGui.szProxySettings);
SetDlgItemText(hDlg, IDC_STATIC1, sgInstallGui.szServer);
SetDlgItemText(hDlg, IDC_STATIC2, sgInstallGui.szPort);
@ -1675,6 +1689,35 @@ LRESULT CALLBACK DlgProcAdvancedSettings(HWND hDlg, UINT msg, WPARAM wParam, LON
SendDlgItemMessage (hDlg, IDC_EDIT_PROXY_PORT, WM_SETFONT, (WPARAM)myGetSysFont(), 0L);
SendDlgItemMessage (hDlg, IDC_EDIT_PROXY_USER, WM_SETFONT, (WPARAM)myGetSysFont(), 0L);
SendDlgItemMessage (hDlg, IDC_EDIT_PROXY_PASSWD, WM_SETFONT, (WPARAM)myGetSysFont(), 0L);
SendDlgItemMessage (hDlg, IDC_USE_FTP, WM_SETFONT, (WPARAM)myGetSysFont(), 0L);
SendDlgItemMessage (hDlg, IDC_USE_HTTP, WM_SETFONT, (WPARAM)myGetSysFont(), 0L);
switch(diDownloadOptions.dwUseProtocol)
{
case UP_HTTP:
CheckDlgButton(hDlg, IDC_USE_FTP, BST_UNCHECKED);
CheckDlgButton(hDlg, IDC_USE_HTTP, BST_CHECKED);
break;
case UP_FTP:
default:
CheckDlgButton(hDlg, IDC_USE_FTP, BST_CHECKED);
CheckDlgButton(hDlg, IDC_USE_HTTP, BST_UNCHECKED);
break;
}
if((diDownloadOptions.bShowProtocols) && (diDownloadOptions.bUseProtocolSettings))
{
ShowWindow(GetDlgItem(hDlg, IDC_USE_FTP), SW_SHOW);
ShowWindow(GetDlgItem(hDlg, IDC_USE_HTTP), SW_SHOW);
}
else
{
ShowWindow(GetDlgItem(hDlg, IDC_USE_FTP), SW_HIDE);
ShowWindow(GetDlgItem(hDlg, IDC_USE_HTTP), SW_HIDE);
}
break;
case WM_COMMAND:
@ -1689,6 +1732,7 @@ LRESULT CALLBACK DlgProcAdvancedSettings(HWND hDlg, UINT msg, WPARAM wParam, LON
GetDlgItemText(hDlg, IDC_EDIT_PROXY_USER, diAdvancedSettings.szProxyUser, MAX_BUF);
GetDlgItemText(hDlg, IDC_EDIT_PROXY_PASSWD, diAdvancedSettings.szProxyPasswd, MAX_BUF);
SaveDownloadProtocolOption(hDlg);
DestroyWindow(hDlg);
DlgSequenceNext();
break;
@ -1720,12 +1764,6 @@ void SaveDownloadOptions(HWND hDlg, HWND hwndCBSiteSelector)
diDownloadOptions.bSaveInstaller = TRUE;
else
diDownloadOptions.bSaveInstaller = FALSE;
if(IsDlgButtonChecked(hDlg, IDC_USE_FTP) == BST_CHECKED)
diDownloadOptions.dwUseProtocol = UP_FTP;
else if(IsDlgButtonChecked(hDlg, IDC_USE_HTTP) == BST_CHECKED)
diDownloadOptions.dwUseProtocol = UP_HTTP;
}
LRESULT CALLBACK DlgProcDownloadOptions(HWND hDlg, UINT msg, WPARAM wParam, LONG lParam)
@ -1742,15 +1780,17 @@ LRESULT CALLBACK DlgProcDownloadOptions(HWND hDlg, UINT msg, WPARAM wParam, LONG
switch(msg)
{
case WM_INITDIALOG:
if(gdwSiteSelectorStatus == SS_HIDE)
{
ShowWindow(GetDlgItem(hDlg, IDC_MESSAGE0), SW_HIDE);
ShowWindow(GetDlgItem(hDlg, IDC_LIST_SITE_SELECTOR), SW_HIDE);
}
DisableSystemMenuItems(hDlg, FALSE);
SetWindowText(hDlg, diDownloadOptions.szTitle);
SetDlgItemText(hDlg, IDC_MESSAGE0, diDownloadOptions.szMessage0);
SetDlgItemText(hDlg, IDC_MESSAGE1, diDownloadOptions.szMessage1);
GetPrivateProfileString("Strings", "IDC Use Ftp", "", szBuf, sizeof(szBuf), szFileIniConfig);
SetDlgItemText(hDlg, IDC_USE_FTP, szBuf);
GetPrivateProfileString("Strings", "IDC Use Http", "", szBuf, sizeof(szBuf), szFileIniConfig);
SetDlgItemText(hDlg, IDC_USE_HTTP, szBuf);
GetPrivateProfileString("Strings", "IDC Save Installer Files", "", szBuf, sizeof(szBuf), szFileIniConfig);
SetDlgItemText(hDlg, IDC_CHECK_SAVE_INSTALLER_FILES, szBuf);
@ -1770,8 +1810,6 @@ LRESULT CALLBACK DlgProcDownloadOptions(HWND hDlg, UINT msg, WPARAM wParam, LONG
SendDlgItemMessage (hDlg, IDC_MESSAGE1, WM_SETFONT, (WPARAM)myGetSysFont(), 0L);
SendDlgItemMessage (hDlg, IDC_CHECK_SAVE_INSTALLER_FILES, WM_SETFONT, (WPARAM)myGetSysFont(), 0L);
SendDlgItemMessage (hDlg, IDC_EDIT_LOCAL_INSTALLER_PATH, WM_SETFONT, (WPARAM)myGetSysFont(), 0L);
SendDlgItemMessage (hDlg, IDC_USE_FTP, WM_SETFONT, (WPARAM)myGetSysFont(), 0L);
SendDlgItemMessage (hDlg, IDC_USE_HTTP, WM_SETFONT, (WPARAM)myGetSysFont(), 0L);
if(GetClientRect(hDlg, &rDlg))
SetWindowPos(hDlg,
@ -1810,32 +1848,6 @@ LRESULT CALLBACK DlgProcDownloadOptions(HWND hDlg, UINT msg, WPARAM wParam, LONG
else
CheckDlgButton(hDlg, IDC_CHECK_SAVE_INSTALLER_FILES, BST_UNCHECKED);
switch(diDownloadOptions.dwUseProtocol)
{
case UP_HTTP:
CheckDlgButton(hDlg, IDC_USE_FTP, BST_UNCHECKED);
CheckDlgButton(hDlg, IDC_USE_HTTP, BST_CHECKED);
break;
case UP_FTP:
default:
CheckDlgButton(hDlg, IDC_USE_FTP, BST_CHECKED);
CheckDlgButton(hDlg, IDC_USE_HTTP, BST_UNCHECKED);
break;
}
if((diDownloadOptions.bShowProtocols) && (diDownloadOptions.bUseProtocolSettings))
{
ShowWindow(GetDlgItem(hDlg, IDC_USE_FTP), SW_SHOW);
ShowWindow(GetDlgItem(hDlg, IDC_USE_HTTP), SW_SHOW);
}
else
{
ShowWindow(GetDlgItem(hDlg, IDC_USE_FTP), SW_HIDE);
ShowWindow(GetDlgItem(hDlg, IDC_USE_HTTP), SW_HIDE);
}
break;
case WM_COMMAND:
@ -2866,4 +2878,5 @@ HFONT myGetSysFont()
fontDlg = CreateFontIndirect( &lf );
return fontDlg;
}
}

View File

@ -63,6 +63,7 @@ void SaveDownloadOptions(HWND hDlg, HWND hwndCBSiteSelector);
WNDPROC SubclassWindow( HWND hWnd, WNDPROC NewWndProc);
LRESULT CALLBACK ListBoxBrowseWndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
void DisableSystemMenuItems(HWND hWnd, BOOL bDisableClose);
HFONT myGetSysFont();
#endif /* _DIALOGS_H_ */

View File

@ -62,6 +62,7 @@ extern DWORD dwSetupType;
extern DWORD dwTempSetupType;
extern DWORD gdwUpgradeValue;
extern DWORD gdwSiteSelectorStatus;
extern BOOL bSDUserCanceled;
extern BOOL bIdiArchivesExists;

View File

@ -275,6 +275,69 @@ BOOL CheckForPreviousUnfinishedDownload()
return(bRv);
}
void UnsetSetupCurrentDownloadFile(void)
{
char szKey[MAX_BUF];
wsprintf(szKey,
"Software\\%s\\%s\\%s",
sgProduct.szCompanyName,
sgProduct.szProductName,
sgProduct.szUserAgent);
DeleteWinRegValue(HKEY_LOCAL_MACHINE,
szKey,
"Setup Current Download");
}
void SetSetupCurrentDownloadFile(char *szCurrentFilename)
{
char szKey[MAX_BUF];
wsprintf(szKey,
"Software\\%s\\%s\\%s",
sgProduct.szCompanyName,
sgProduct.szProductName,
sgProduct.szUserAgent);
SetWinReg(HKEY_LOCAL_MACHINE,
szKey,
TRUE,
"Setup Current Download",
TRUE,
REG_SZ,
szCurrentFilename,
lstrlen(szCurrentFilename),
FALSE,
FALSE);
}
char *GetSetupCurrentDownloadFile(char *szCurrentDownloadFile,
DWORD dwCurrentDownloadFileBufSize)
{
char szKey[MAX_BUF];
if(!szCurrentDownloadFile)
return(NULL);
ZeroMemory(szCurrentDownloadFile, dwCurrentDownloadFileBufSize);
if(sgProduct.szCompanyName &&
sgProduct.szProductName &&
sgProduct.szUserAgent)
{
wsprintf(szKey,
"Software\\%s\\%s\\%s",
sgProduct.szCompanyName,
sgProduct.szProductName,
sgProduct.szUserAgent);
GetWinReg(HKEY_LOCAL_MACHINE,
szKey,
"Setup Current Download",
szCurrentDownloadFile,
dwCurrentDownloadFileBufSize);
}
return(szCurrentDownloadFile);
}
BOOL UpdateFile(char *szInFilename, char *szOutFilename, char *szIgnoreStr)
{
FILE *ifp;
@ -476,6 +539,7 @@ HRESULT Initialize(HINSTANCE hInstance)
bCreateDestinationDir = FALSE;
bReboot = FALSE;
gdwUpgradeValue = UG_NONE;
gdwSiteSelectorStatus = SS_SHOW;
gbILUseTemp = TRUE;
gbIgnoreRunAppX = FALSE;
gbIgnoreProgramFolderX = FALSE;
@ -1410,6 +1474,7 @@ long RetrieveArchives()
char szCorruptedArchiveList[MAX_BUF];
char szFailedFile[MAX_BUF];
char szBuf[MAX_BUF];
char szPartiallyDownloadedFilename[MAX_BUF];
int iCRCRetries;
int iNetRetries;
int iRv;
@ -1421,6 +1486,8 @@ long RetrieveArchives()
lstrcpy(szFileIdiGetArchives, szTempDir);
AppendBackSlash(szFileIdiGetArchives, sizeof(szFileIdiGetArchives));
lstrcat(szFileIdiGetArchives, FILE_IDI_GETARCHIVES);
GetSetupCurrentDownloadFile(szPartiallyDownloadedFilename,
sizeof(szPartiallyDownloadedFilename));
bDownloadTriggered = FALSE;
lResult = WIZ_OK;
@ -1433,8 +1500,15 @@ long RetrieveArchives()
{
/* If a previous unfinished setup was detected, then
* include the TEMP dir when searching for archives.
* Only download jars if not already in the local machine */
if(LocateJar(siCObject, NULL, 0, gbPreviousUnfinishedDownload) == AP_NOT_FOUND)
* Only download jars if not already in the local machine.
* Also if the last file being downloaded should be resumed.
* The resume detection is done automatically. */
if((LocateJar(siCObject,
NULL,
0,
gbPreviousUnfinishedDownload) == AP_NOT_FOUND) ||
(lstrcmpi(szPartiallyDownloadedFilename,
siCObject->szArchiveName) == 0))
{
wsprintf(szSection, "File%d", dwFileCounter);
if((lResult = AddArchiveToIdiFile(siCObject,
@ -4886,12 +4960,15 @@ int CRCCheckArchivesStartup(char *szCorruptedArchiveList, DWORD dwCorruptedArchi
char szArchivePathWithFilename[MAX_BUF];
char szArchivePath[MAX_BUF];
char szMsgCRCCheck[MAX_BUF];
char szPartiallyDownloadedFilename[MAX_BUF];
int iRv;
int iResult;
if(szCorruptedArchiveList != NULL)
ZeroMemory(szCorruptedArchiveList, dwCorruptedArchiveListSize);
GetSetupCurrentDownloadFile(szPartiallyDownloadedFilename,
sizeof(szPartiallyDownloadedFilename));
GetPrivateProfileString("Strings", "Message Verifying Archives", "", szMsgCRCCheck, sizeof(szMsgCRCCheck), szFileIniConfig);
ShowMessage(szMsgCRCCheck, TRUE);
@ -4903,7 +4980,9 @@ int CRCCheckArchivesStartup(char *szCorruptedArchiveList, DWORD dwCorruptedArchi
{
/* only download jars if not already in the local machine */
iRv = LocateJar(siCObject, szArchivePath, sizeof(szArchivePath), bIncludeTempPath);
if(iRv != AP_NOT_FOUND)
if((iRv != AP_NOT_FOUND) &&
(lstrcmpi(szPartiallyDownloadedFilename,
siCObject->szArchiveName) != 0))
{
if(lstrlen(szArchivePath) < sizeof(szArchivePathWithFilename))
lstrcpy(szArchivePathWithFilename, szArchivePath);
@ -5226,28 +5305,6 @@ HRESULT ParseConfigIni(LPSTR lpszCmdLine)
if(lstrcmpi(szBuf, "TRUE") == 0)
diDownloadOptions.bSaveInstaller = TRUE;
GetPrivateProfileString("Dialog Download Options", "Use Protocol", "", szBuf, sizeof(szBuf), szFileIniConfig);
if(lstrcmpi(szBuf, "HTTP") == 0)
diDownloadOptions.dwUseProtocol = UP_HTTP;
else
diDownloadOptions.dwUseProtocol = UP_FTP;
GetPrivateProfileString("Dialog Download Options", "Use Protocol Settings", "", szBuf, sizeof(szBuf), szFileIniConfig);
if(lstrcmpi(szBuf, "DISABLED") == 0)
diDownloadOptions.bUseProtocolSettings = FALSE;
else
diDownloadOptions.bUseProtocolSettings = TRUE;
GetPrivateProfileString("Dialog Download Options",
"Show Protocols",
"",
szBuf,
sizeof(szBuf), szFileIniConfig);
if(lstrcmpi(szBuf, "FALSE") == 0)
diDownloadOptions.bShowProtocols = FALSE;
else
diDownloadOptions.bShowProtocols = TRUE;
if(lstrcmpi(szShowDialog, "TRUE") == 0)
diDownloadOptions.bShowDialog = TRUE;
@ -5262,6 +5319,28 @@ HRESULT ParseConfigIni(LPSTR lpszCmdLine)
if(lstrcmpi(szShowDialog, "TRUE") == 0)
diAdvancedSettings.bShowDialog = TRUE;
GetPrivateProfileString("Dialog Advanced Settings", "Use Protocol", "", szBuf, sizeof(szBuf), szFileIniConfig);
if(lstrcmpi(szBuf, "HTTP") == 0)
diDownloadOptions.dwUseProtocol = UP_HTTP;
else
diDownloadOptions.dwUseProtocol = UP_FTP;
GetPrivateProfileString("Dialog Advanced Settings", "Use Protocol Settings", "", szBuf, sizeof(szBuf), szFileIniConfig);
if(lstrcmpi(szBuf, "DISABLED") == 0)
diDownloadOptions.bUseProtocolSettings = FALSE;
else
diDownloadOptions.bUseProtocolSettings = TRUE;
GetPrivateProfileString("Dialog Advanced Settings",
"Show Protocols",
"",
szBuf,
sizeof(szBuf), szFileIniConfig);
if(lstrcmpi(szBuf, "FALSE") == 0)
diDownloadOptions.bShowProtocols = FALSE;
else
diDownloadOptions.bShowProtocols = TRUE;
/* Start Install dialog */
GetPrivateProfileString("Dialog Start Install", "Show Dialog", "", szShowDialog, sizeof(szShowDialog), szFileIniConfig);
GetPrivateProfileString("Dialog Start Install", "Title", "", diStartInstall.szTitle, MAX_BUF, szFileIniConfig);
@ -5325,6 +5404,11 @@ HRESULT ParseConfigIni(LPSTR lpszCmdLine)
if(lstrcmpi(szBuf, "TRUE") == 0)
diWindowsIntegration.wiCB3.bCheckBoxState = TRUE;
/* Read in the Site Selector Status */
GetPrivateProfileString("Site Selector", "Status", "", szBuf, sizeof(szBuf), szFileIniConfig);
if(lstrcmpi(szBuf, "HIDE") == 0)
gdwSiteSelectorStatus = SS_HIDE;
switch(sgProduct.dwMode)
{
case AUTO:
@ -5477,6 +5561,7 @@ HRESULT ParseInstallIni()
GetPrivateProfileString("General", "STATUS", "", sgInstallGui.szStatus, sizeof(sgInstallGui.szStatus), szFileIniInstall);
GetPrivateProfileString("General", "FILE", "", sgInstallGui.szFile, sizeof(sgInstallGui.szFile), szFileIniInstall);
GetPrivateProfileString("General", "URL", "", sgInstallGui.szUrl, sizeof(sgInstallGui.szUrl), szFileIniInstall);
GetPrivateProfileString("General", "TO", "", sgInstallGui.szTo, sizeof(sgInstallGui.szTo), szFileIniInstall);
GetPrivateProfileString("General", "ACCEPT_", "", sgInstallGui.szAccept_, sizeof(sgInstallGui.szAccept_), szFileIniInstall);
GetPrivateProfileString("General", "NO_", "", sgInstallGui.szNo_, sizeof(sgInstallGui.szNo_), szFileIniInstall);
GetPrivateProfileString("General", "PROGRAMFOLDER_", "", sgInstallGui.szProgramFolder_, sizeof(sgInstallGui.szProgramFolder_), szFileIniInstall);
@ -5496,6 +5581,8 @@ HRESULT ParseInstallIni()
GetPrivateProfileString("General", "DELETE_", "", sgInstallGui.szDelete_, sizeof(sgInstallGui.szDelete_), szFileIniInstall);
GetPrivateProfileString("General", "EXTRACTING", "", sgInstallGui.szExtracting, sizeof(sgInstallGui.szExtracting), szFileIniInstall);
GetPrivateProfileString("General", "README", "", sgInstallGui.szReadme_, sizeof(sgInstallGui.szReadme_), szFileIniInstall);
GetPrivateProfileString("General", "PAUSE_", "", sgInstallGui.szPause_, sizeof(sgInstallGui.szPause_), szFileIniInstall);
GetPrivateProfileString("General", "RESUME_", "", sgInstallGui.szResume_, sizeof(sgInstallGui.szResume_), szFileIniInstall);
return(0);
}

View File

@ -40,7 +40,6 @@ HRESULT NS_LoadString(HANDLE hInstance, DWORD dwID, LPSTR szStringBuf,
HRESULT WinSpawn(LPSTR szClientName, LPSTR szParameters, LPSTR szCurrentDir, int iShowCmd, BOOL bWait);
HRESULT ParseConfigIni(LPSTR lpszCmdLine);
HRESULT ParseInstallIni();
HFONT myGetSysFont();
HRESULT DecryptString(LPSTR szOutputStr, LPSTR szInputStr);
HRESULT DecryptVariable(LPSTR szVariable, DWORD dwVariableSize);
HRESULT InitSetupGeneral(void);
@ -198,6 +197,11 @@ int UpdateIdiFile(char *szPartialUrl,
char *szSection,
char *szKey,
char *szFileIdiGetArchives);
void SetDownloadFile(void);
void UnsetSetupCurrentDownloadFile(void);
void SetSetupCurrentDownloadFile(char *szCurrentFilename);
char *GetSetupCurrentDownloadFile(char *szCurrentDownloadFile,
DWORD dwCurrentDownloadFileBufSize);
#endif /* _EXTRA_H_ */

View File

@ -64,6 +64,7 @@ DWORD dwScreenY;
DWORD dwTempSetupType;
DWORD gdwUpgradeValue;
DWORD gdwSiteSelectorStatus;
BOOL bSDUserCanceled;
BOOL bIdiArchivesExists;

View File

@ -212,6 +212,10 @@ typedef int PRInt32;
#define DSR_TEMP 2
#define DSR_DOWNLOAD_SIZE 3
/* SS: Site Selector */
#define SS_HIDE 0
#define SS_SHOW 1
typedef struct dlgSetup
{
DWORD dwDlgID;
@ -445,6 +449,7 @@ typedef struct dlgInstall
char szStatus[MAX_BUF];
char szFile[MAX_BUF];
char szUrl[MAX_BUF];
char szTo[MAX_BUF];
char szAccept_[MAX_BUF];
char szNo_[MAX_BUF];
char szProgramFolder_[MAX_BUF];
@ -464,6 +469,8 @@ typedef struct dlgInstall
char szDelete_[MAX_BUF];
char szExtracting[MAX_BUF];
char szReadme_[MAX_BUF];
char szPause_[MAX_BUF];
char szResume_[MAX_BUF];
} installGui;
/* structure message stream */

View File

@ -23,6 +23,7 @@
#include <windows.h>
#include <string.h>
#include <time.h>
#include <sys\stat.h>
#ifdef __cplusplus
extern "C"
@ -40,10 +41,17 @@ extern "C"
#include "nsFTPConn.h"
#include "nsHTTPConn.h"
#include "nsSocket.h"
#define UPDATE_INTERVAL_STATUS 1
#define UPDATE_INTERVAL_PROGRESS_BAR 1
/* Cancel Status */
#define CS_NONE 0x00000000
#define CS_CANCEL 0x00000001
#define CS_PAUSE 0x00000002
#define CS_RESUME 0x00000003
const int kProxySrvrLen = 1024;
const char kHTTP[8] = "http://";
const char kFTP[7] = "ftp://";
@ -51,18 +59,21 @@ const char kLoclFile[7] = "zzzFTP";
static long glLastBytesSoFar;
static long glAbsoluteBytesSoFar;
static long glBytesResumedFrom;
static long glTotalKb;
char gszStrCopyingFile[MAX_BUF_MEDIUM];
char gszCurrentDownloadPath[MAX_BUF];
char gszCurrentDownloadFilename[MAX_BUF_TINY];
char gszCurrentDownloadFileDescription[MAX_BUF_TINY];
char gszUrl[MAX_BUF];
char gszTo[MAX_BUF];
char gszFileInfo[MAX_BUF];
char *gszConfigIniFile;
BOOL gbDlgDownloadMinimized;
BOOL gbDlgDownloadJustMinimized;
BOOL gbUrlChanged;
BOOL gbCancelDownload;
BOOL gbShowDownloadRetryMsg;
DWORD gdwDownloadDialogStatus;
int giIndex;
int giTotalArchivesToDownload;
@ -88,6 +99,16 @@ struct ExtractFilesDlgInfo
int nArchiveBars; // current number of bars to display
} dlgInfo;
struct TickInfo
{
DWORD dwTickBegin;
DWORD dwTickEnd;
DWORD dwTickDif;
BOOL bTickStarted;
BOOL bTickDownloadResumed;
};
struct TickInfo gtiPaused;
BOOL CheckInterval(long *lModLastValue, int iInterval)
{
@ -111,42 +132,213 @@ BOOL CheckInterval(long *lModLastValue, int iInterval)
return(bRv);
}
char *GetTimeLeft(DWORD dwTimeLeft,
char *szTimeString,
DWORD dwTimeStringBufSize)
{
DWORD dwTimeLeftPP;
SYSTEMTIME stTime;
ZeroMemory(&stTime, sizeof(stTime));
dwTimeLeftPP = dwTimeLeft + 1;
stTime.wHour = (unsigned)(dwTimeLeftPP / 60 / 60);
stTime.wMinute = (unsigned)((dwTimeLeftPP / 60) % 60);
stTime.wSecond = (unsigned)(dwTimeLeftPP % 60);
ZeroMemory(szTimeString, dwTimeStringBufSize);
/* format time string using user's local time format information */
GetTimeFormat(LOCALE_USER_DEFAULT,
TIME_NOTIMEMARKER|TIME_FORCE24HOURFORMAT,
&stTime,
NULL,
szTimeString,
dwTimeStringBufSize);
return(szTimeString);
}
DWORD AddToTick(DWORD dwTick, DWORD dwTickMoreToAdd)
{
DWORD dwTickLeftTillWrap = 0;
/* Since GetTickCount() is the number of milliseconds since the system
* has been on and the return value is a DWORD, this value will wrap
* every 49.71 days or 0xFFFFFFFF milliseconds. */
dwTickLeftTillWrap = 0xFFFFFFFF - dwTick;
if(dwTickMoreToAdd > dwTickLeftTillWrap)
dwTick = dwTickMoreToAdd - dwTickLeftTillWrap;
else
dwTick = dwTick + dwTickMoreToAdd;
return(dwTick);
}
DWORD GetTickDif(DWORD dwTickEnd, DWORD dwTickStart)
{
DWORD dwTickDif;
/* Since GetTickCount() is the number of milliseconds since the system
* has been on and the return value is a DWORD, this value will wrap
* every 49.71 days or 0xFFFFFFFF milliseconds.
*
* Assumption: dwTickEnd has not wrapped _and_ passed dwTickStart */
if(dwTickEnd < dwTickStart)
dwTickDif = 0xFFFFFFFF - dwTickStart + dwTickEnd;
else
dwTickDif = dwTickEnd - dwTickStart;
return(dwTickDif);
}
void InitTickInfo(void)
{
gtiPaused.dwTickBegin = 0;
gtiPaused.dwTickEnd = 0;
gtiPaused.dwTickDif = 0;
gtiPaused.bTickStarted = FALSE;
gtiPaused.bTickDownloadResumed = FALSE;
}
DWORD RoundDouble(double dValue)
{
if(0.5 <= (dValue - (DWORD)dValue))
return((DWORD)dValue + 1);
else
return((DWORD)dValue);
}
void SetStatusStatus(void)
{
char szStatusStatusLine[MAX_BUF_MEDIUM];
char szCurrentStatusInfo[MAX_BUF_MEDIUM];
char szPercentString[MAX_BUF_MEDIUM];
char szPercentageCompleted[MAX_BUF_MEDIUM];
static long lModLastValue = 0;
double dRate;
static double dRateCounter;
static DWORD dwTickStart = 0;
DWORD dwTickNow;
DWORD dwTickDif;
DWORD dwKBytesSoFar;
DWORD dwRoundedRate;
char szTimeLeft[MAX_BUF_TINY];
/* If the user just clicked on the Resume button, then the time lapsed
* between dwTickStart and when the Resume button was clicked needs to
* be subtracted taken into account when calculating dwTickDif. So
* "this" lapsed time needs to be added to dwTickStart. */
if(gtiPaused.bTickDownloadResumed)
{
dwTickStart = AddToTick(dwTickStart, gtiPaused.dwTickDif);
InitTickInfo();
}
/* GetTickCount() returns time in milliseconds. This is more accurate,
* which will allow us to get at a 2 decimal precision value for the
* download rate. */
dwTickNow = GetTickCount();
if(dwTickStart == 0)
dwTickNow = dwTickStart = GetTickCount();
dwTickDif = GetTickDif(dwTickNow, dwTickStart);
/* Only update the UI every UPDATE_INTERVAL_STATUS interval,
* which is currently set to 1 sec. */
if(!CheckInterval(&lModLastValue, UPDATE_INTERVAL_STATUS))
return;
if(glAbsoluteBytesSoFar == 0)
dRateCounter = 0.0;
else
dRateCounter = dwTickDif / 1000;
if(dRateCounter == 0.0)
dRate = 0.0;
else
dRate = (glAbsoluteBytesSoFar - glBytesResumedFrom) / dRateCounter / 1024;
dwKBytesSoFar = glAbsoluteBytesSoFar / 1024;
/* Use a rate that is rounded to the nearest integer. If dRate used directly,
* the "Time Left" will jump around quite a bit due to the rate usually
* varying up and down by quite a bit. The rounded rate give a "more linear"
* count down of the "Time Left". */
dwRoundedRate = RoundDouble(dRate);
if(dwRoundedRate > 0)
GetTimeLeft((glTotalKb - dwKBytesSoFar) / dwRoundedRate,
szTimeLeft,
sizeof(szTimeLeft));
else
lstrcpy(szTimeLeft, "00:00:00");
if(!gbShowDownloadRetryMsg)
{
GetPrivateProfileString("Strings", "Status Download", "", szStatusStatusLine, sizeof(szStatusStatusLine), szFileIniConfig);
GetPrivateProfileString("Strings",
"Status Download",
"",
szStatusStatusLine,
sizeof(szStatusStatusLine),
szFileIniConfig);
if(*szStatusStatusLine != '\0')
wsprintf(szCurrentStatusInfo, szStatusStatusLine, (giIndex + 1), giTotalArchivesToDownload, (glAbsoluteBytesSoFar / 1024), glTotalKb, (int)GetPercentSoFar());
sprintf(szCurrentStatusInfo,
szStatusStatusLine,
szTimeLeft,
dRate,
dwKBytesSoFar,
glTotalKb);
else
wsprintf(szCurrentStatusInfo, "Downloading file %d of %d (%uKB of %uKB total - %d%%)", (giIndex + 1), giTotalArchivesToDownload, (glAbsoluteBytesSoFar / 1024), glTotalKb, (int)GetPercentSoFar());
sprintf(szCurrentStatusInfo,
"%s at %.2fKB/sec (%uKB of %uKB downloaded)",
szTimeLeft,
dRate,
dwKBytesSoFar,
glTotalKb);
}
else
{
GetPrivateProfileString("Strings", "Status Retry", "", szStatusStatusLine, sizeof(szStatusStatusLine), szFileIniConfig);
GetPrivateProfileString("Strings",
"Status Retry",
"",
szStatusStatusLine,
sizeof(szStatusStatusLine),
szFileIniConfig);
if(*szStatusStatusLine != '\0')
wsprintf(szCurrentStatusInfo, szStatusStatusLine, (giIndex + 1), giTotalArchivesToDownload, (glAbsoluteBytesSoFar / 1024), glTotalKb, (int)GetPercentSoFar());
sprintf(szCurrentStatusInfo,
szStatusStatusLine,
szTimeLeft,
dRate,
dwKBytesSoFar,
glTotalKb);
else
wsprintf(szCurrentStatusInfo, "Redownloading file %d of %d (%uKB of %uKB total - %d%%)", (giIndex + 1), giTotalArchivesToDownload, (glAbsoluteBytesSoFar / 1024), glTotalKb, (int)GetPercentSoFar());
sprintf(szCurrentStatusInfo,
"%s at %.2KB/sec (%uKB of %uKB downloaded)",
szTimeLeft,
dRate,
dwKBytesSoFar,
glTotalKb);
}
GetPrivateProfileString("Strings",
"Status Percentage Completed",
"",
szPercentageCompleted,
sizeof(szPercentageCompleted),
szFileIniConfig);
wsprintf(szPercentString, szPercentageCompleted, (int)GetPercentSoFar());
/* Set the download dialog title */
SetDlgItemText(dlgInfo.hWndDlg, IDC_STATUS_STATUS, szCurrentStatusInfo);
SetDlgItemText(dlgInfo.hWndDlg, IDC_PERCENTAGE, szPercentString);
}
void SetStatusFile(void)
{
/* Set the download dialog status*/
SetDlgItemText(dlgInfo.hWndDlg, IDC_STATUS_FILE, gszCurrentDownloadFileDescription);
SetStatusStatus();
char szString[MAX_BUF];
/* Set the download dialog status*/
wsprintf(szString, gszFileInfo, gszCurrentDownloadFileDescription);
SetDlgItemText(dlgInfo.hWndDlg, IDC_STATUS_FILE, szString);
SetStatusStatus();
}
void SetStatusUrl(void)
@ -155,7 +347,9 @@ void SetStatusUrl(void)
if(gbUrlChanged)
{
char szUrlPathBuf[MAX_BUF];
char szToPathBuf[MAX_BUF];
HWND hStatusUrl = NULL;
HWND hStatusTo = NULL;
hStatusUrl = GetDlgItem(dlgInfo.hWndDlg, IDC_STATUS_URL);
if(hStatusUrl)
@ -163,7 +357,14 @@ void SetStatusUrl(void)
else
lstrcpy(szUrlPathBuf, gszUrl);
hStatusTo = GetDlgItem(dlgInfo.hWndDlg, IDC_STATUS_TO);
if(hStatusTo)
TruncateString(hStatusTo, gszTo, szToPathBuf, sizeof(szToPathBuf));
else
lstrcpy(szToPathBuf, gszTo);
SetDlgItemText(dlgInfo.hWndDlg, IDC_STATUS_URL, szUrlPathBuf);
SetDlgItemText(dlgInfo.hWndDlg, IDC_STATUS_TO, szToPathBuf);
SetStatusFile();
gbUrlChanged = FALSE;
}
@ -357,7 +558,7 @@ int DownloadViaFTP(char *szUrl)
if(strrchr(path, '/') != (path + strlen(path)))
file = strrchr(path, '/') + 1; // set to leaf name
rv = conn->Get(path, file, nsFTPConn::BINARY, 1, ProgressCB);
rv = conn->Get(path, file, nsFTPConn::BINARY, TRUE, ProgressCB);
conn->Close();
if(host)
@ -370,6 +571,21 @@ int DownloadViaFTP(char *szUrl)
return(rv);
}
void PauseTheDownload(int rv, int *iFileDownloadRetries)
{
if(rv != nsFTPConn::E_USER_CANCEL)
{
SendMessage(dlgInfo.hWndDlg, WM_COMMAND, IDPAUSE, 0);
--*iFileDownloadRetries;
}
while(gdwDownloadDialogStatus == CS_PAUSE)
{
SleepEx(200, FALSE);
ProcessWindowsMessages();
}
}
int DownloadFiles(char *szInputIniFile,
char *szDownloadDir,
char *szProxyServer,
@ -392,6 +608,7 @@ int DownloadFiles(char *szInputIniFile,
int iFileDownloadRetries;
int iIgnoreFileNetworkError;
DWORD dwTotalEstDownloadSize;
char szPartiallyDownloadedFilename[MAX_BUF];
if(szInputIniFile == NULL)
return(WIZ_ERROR_UNDEFINED);
@ -399,6 +616,7 @@ int DownloadFiles(char *szInputIniFile,
if(szFailedFile)
ZeroMemory(szFailedFile, dwFailedFileSize);
InitTickInfo();
GetCurrentDirectory(sizeof(szSavedCwd), szSavedCwd);
SetCurrentDirectory(szDownloadDir);
@ -407,16 +625,19 @@ int DownloadFiles(char *szInputIniFile,
giTotalArchivesToDownload = 0;
glLastBytesSoFar = 0;
glAbsoluteBytesSoFar = 0;
glBytesResumedFrom = 0;
gbUrlChanged = TRUE;
gbDlgDownloadMinimized = FALSE;
gbDlgDownloadJustMinimized = FALSE;
gbCancelDownload = FALSE;
gdwDownloadDialogStatus = CS_NONE;
gbShowDownloadRetryMsg = bShowRetryMsg;
gszConfigIniFile = szInputIniFile;
GetTotalArchivesToDownload(&giTotalArchivesToDownload,
&dwTotalEstDownloadSize);
glTotalKb = dwTotalEstDownloadSize;
GetSetupCurrentDownloadFile(szPartiallyDownloadedFilename,
sizeof(szPartiallyDownloadedFilename));
InitDownloadDlg();
@ -448,6 +669,29 @@ int DownloadFiles(char *szInputIniFile,
0,
gszConfigIniFile);
/* save the file name to be downloaded */
ParsePath(gszUrl,
szCurrentFile,
sizeof(szCurrentFile),
TRUE,
PP_FILENAME_ONLY);
if((*szPartiallyDownloadedFilename != 0) &&
(lstrcmpi(szPartiallyDownloadedFilename, szCurrentFile) == 0))
{
struct stat statBuf;
if(stat(szPartiallyDownloadedFilename, &statBuf) != -1)
{
glAbsoluteBytesSoFar += statBuf.st_size;
glBytesResumedFrom = statBuf.st_size;
}
}
lstrcpy(gszTo, szDownloadDir);
AppendBackSlash(gszTo, sizeof(gszTo));
lstrcat(gszTo, szCurrentFile);
if(gbDlgDownloadMinimized)
SetMinimizedDownloadTitle((int)GetPercentSoFar());
else
@ -456,16 +700,11 @@ int DownloadFiles(char *szInputIniFile,
SetRestoredDownloadTitle();
}
SetSetupCurrentDownloadFile(szCurrentFile);
iFileDownloadRetries = 0;
do
{
/* save the file name to be downloaded */
ParsePath(gszUrl,
szCurrentFile,
sizeof(szCurrentFile),
TRUE,
PP_FILENAME_ONLY);
ProcessWindowsMessages();
/* Download starts here */
if((szProxyServer != NULL) && (szProxyPort != NULL) &&
(*szProxyServer != '\0') && (*szProxyPort != '\0'))
@ -485,23 +724,65 @@ int DownloadFiles(char *szInputIniFile,
rv = DownloadViaFTP(gszUrl);
}
if(rv == nsFTPConn::E_USER_CANCEL)
if((rv == nsFTPConn::E_USER_CANCEL) ||
(gdwDownloadDialogStatus == CS_PAUSE))
{
char szFile[MAX_BUF];
if(gdwDownloadDialogStatus == CS_PAUSE)
{
PauseTheDownload(rv, &iFileDownloadRetries);
lstrcpy(szFile, szDownloadDir);
AppendBackSlash(szFile, sizeof(szFile));
lstrcat(szFile, szCurrentFile);
/* rv needs to be set to something
* other than E_USER_CANCEL or E_OK */
rv = nsFTPConn::E_CMD_UNEXPECTED;
}
else
{
/* break out of the do loop */
break;
}
}
else if((rv != nsFTPConn::OK) &&
(rv != nsFTPConn::E_CMD_FAIL) &&
(gdwDownloadDialogStatus != CS_CANCEL))
{
char szTitle[MAX_BUF_SMALL];
char szMsgDownloadPaused[MAX_BUF];
if(FileExists(szFile))
DeleteFile(szFile);
/* Start the pause tick counter here because we don't know how
* long before the user will dismiss the MessageBox() */
if(!gtiPaused.bTickStarted)
{
gtiPaused.dwTickBegin = GetTickCount();
gtiPaused.bTickStarted = TRUE;
gtiPaused.bTickDownloadResumed = FALSE;
}
/* break out of the do loop */
break;
/* The connection exepectedly dropped for some reason, so inform
* the user that the download will be Paused, and then update the
* Download dialog to show the Paused state. */
GetPrivateProfileString("Messages",
"MB_WARNING_STR",
"",
szTitle,
sizeof(szTitle),
szFileIniInstall);
GetPrivateProfileString("Strings",
"Message Download Paused",
"",
szMsgDownloadPaused,
sizeof(szMsgDownloadPaused),
szFileIniConfig);
MessageBox(dlgInfo.hWndDlg,
szMsgDownloadPaused,
szTitle,
MB_ICONEXCLAMATION);
PauseTheDownload(rv, &iFileDownloadRetries);
}
++iFileDownloadRetries;
if(iFileDownloadRetries > MAX_FILE_DOWNLOAD_RETRIES)
if((iFileDownloadRetries > MAX_FILE_DOWNLOAD_RETRIES) &&
(rv != nsFTPConn::E_USER_CANCEL) &&
(gdwDownloadDialogStatus != CS_CANCEL))
{
/* since the download retries maxed out, increment the counter
* to read the next url for the current file */
@ -520,11 +801,12 @@ int DownloadFiles(char *szInputIniFile,
* file download retries to 0 since it's a new url. */
gbUrlChanged = TRUE;
iFileDownloadRetries = 0;
SetStatusUrl();
}
}
} while((rv != nsFTPConn::E_USER_CANCEL) &&
(rv != nsFTPConn::OK) &&
(gdwDownloadDialogStatus != CS_CANCEL) &&
(iFileDownloadRetries <= MAX_FILE_DOWNLOAD_RETRIES));
if((iFileDownloadRetries > MAX_FILE_DOWNLOAD_RETRIES) && iNetRetries)
@ -534,8 +816,13 @@ int DownloadFiles(char *szInputIniFile,
* because each retry should not count as a new download. */
*iNetRetries = iFileDownloadRetries - 1;
if(rv == nsFTPConn::E_USER_CANCEL)
if((rv == nsFTPConn::E_USER_CANCEL) ||
(gdwDownloadDialogStatus == CS_CANCEL))
{
/* make sure rv is E_USER_CANCEL when gdwDownloadDialogStatus
* is CS_CANCEL */
rv = nsFTPConn::E_USER_CANCEL;
if(szFailedFile && ((DWORD)lstrlen(szCurrentFile) <= dwFailedFileSize))
lstrcpy(szFailedFile, gszCurrentDownloadFileDescription);
@ -574,6 +861,8 @@ int DownloadFiles(char *szInputIniFile,
}
else if(bIgnoreAllNetworkErrors || iIgnoreFileNetworkError)
rv = nsFTPConn::OK;
UnsetSetupCurrentDownloadFile();
}
DeInitDownloadDlg();
@ -583,9 +872,9 @@ int DownloadFiles(char *szInputIniFile,
int ProgressCB(int aBytesSoFar, int aTotalFinalSize)
{
long lBytesDiffSoFar;
long lBytesDiffSoFar;
double dPercentSoFar;
int iRv = nsFTPConn::OK;
int iRv = nsFTPConn::OK;
if(sgProduct.dwMode != SILENT)
{
@ -610,7 +899,8 @@ int ProgressCB(int aBytesSoFar, int aTotalFinalSize)
UpdateGaugeFileProgressBar(dPercentSoFar);
SetStatusStatus();
if(gbCancelDownload)
if((gdwDownloadDialogStatus == CS_CANCEL) ||
(gdwDownloadDialogStatus == CS_PAUSE))
iRv = nsFTPConn::E_USER_CANCEL;
}
@ -639,32 +929,45 @@ CenterWindow(HWND hWndDlg)
LRESULT CALLBACK
DownloadDlgProc(HWND hWndDlg, UINT msg, WPARAM wParam, LPARAM lParam)
{
switch (msg)
switch (msg)
{
case WM_INITDIALOG:
DisableSystemMenuItems(hWndDlg, FALSE);
CenterWindow(hWndDlg);
if(gbShowDownloadRetryMsg)
SetDlgItemText(hWndDlg, IDC_MESSAGE0, diDownload.szMessageRetry0);
else
SetDlgItemText(hWndDlg, IDC_MESSAGE0, diDownload.szMessageDownload0);
case WM_INITDIALOG:
GetPrivateProfileString("Strings",
"Status File Info",
"",
gszFileInfo,
sizeof(gszFileInfo),
szFileIniConfig);
DisableSystemMenuItems(hWndDlg, FALSE);
CenterWindow(hWndDlg);
if(gbShowDownloadRetryMsg)
SetDlgItemText(hWndDlg, IDC_MESSAGE0, diDownload.szMessageRetry0);
else
SetDlgItemText(hWndDlg, IDC_MESSAGE0, diDownload.szMessageDownload0);
SetDlgItemText(hWndDlg, IDC_STATIC1, sgInstallGui.szStatus);
SetDlgItemText(hWndDlg, IDC_STATIC2, sgInstallGui.szFile);
SetDlgItemText(hWndDlg, IDC_STATIC3, sgInstallGui.szUrl);
SetDlgItemText(hWndDlg, IDCANCEL, sgInstallGui.szCancel);
SendDlgItemMessage (hWndDlg, IDC_STATIC1, WM_SETFONT, (WPARAM)myGetSysFont(), 0L);
SendDlgItemMessage (hWndDlg, IDC_STATIC2, WM_SETFONT, (WPARAM)myGetSysFont(), 0L);
SendDlgItemMessage (hWndDlg, IDC_STATIC3, WM_SETFONT, (WPARAM)myGetSysFont(), 0L);
SendDlgItemMessage (hWndDlg, IDCANCEL, WM_SETFONT, (WPARAM)myGetSysFont(), 0L);
SendDlgItemMessage (hWndDlg, IDC_MESSAGE0, WM_SETFONT, (WPARAM)myGetSysFont(), 0L);
SendDlgItemMessage (hWndDlg, IDC_STATUS_STATUS, WM_SETFONT, (WPARAM)myGetSysFont(), 0L);
SendDlgItemMessage (hWndDlg, IDC_STATUS_FILE, WM_SETFONT, (WPARAM)myGetSysFont(), 0L);
SendDlgItemMessage (hWndDlg, IDC_STATUS_URL, WM_SETFONT, (WPARAM)myGetSysFont(), 0L);
EnableWindow(GetDlgItem(hWndDlg, IDRESUME), FALSE);
SetDlgItemText(hWndDlg, IDC_STATIC1, sgInstallGui.szStatus);
SetDlgItemText(hWndDlg, IDC_STATIC2, sgInstallGui.szFile);
SetDlgItemText(hWndDlg, IDC_STATIC4, sgInstallGui.szTo);
SetDlgItemText(hWndDlg, IDC_STATIC3, sgInstallGui.szUrl);
SetDlgItemText(hWndDlg, IDCANCEL, sgInstallGui.szCancel_);
SetDlgItemText(hWndDlg, IDPAUSE, sgInstallGui.szPause_);
SetDlgItemText(hWndDlg, IDRESUME, sgInstallGui.szResume_);
SendDlgItemMessage (hWndDlg, IDC_STATIC1, WM_SETFONT, (WPARAM)myGetSysFont(), 0L);
SendDlgItemMessage (hWndDlg, IDC_STATIC2, WM_SETFONT, (WPARAM)myGetSysFont(), 0L);
SendDlgItemMessage (hWndDlg, IDC_STATIC3, WM_SETFONT, (WPARAM)myGetSysFont(), 0L);
SendDlgItemMessage (hWndDlg, IDCANCEL, WM_SETFONT, (WPARAM)myGetSysFont(), 0L);
SendDlgItemMessage (hWndDlg, IDPAUSE, WM_SETFONT, (WPARAM)myGetSysFont(), 0L);
SendDlgItemMessage (hWndDlg, IDRESUME, WM_SETFONT, (WPARAM)myGetSysFont(), 0L);
SendDlgItemMessage (hWndDlg, IDC_MESSAGE0, WM_SETFONT, (WPARAM)myGetSysFont(), 0L);
SendDlgItemMessage (hWndDlg, IDC_STATUS_STATUS, WM_SETFONT, (WPARAM)myGetSysFont(), 0L);
SendDlgItemMessage (hWndDlg, IDC_STATUS_FILE, WM_SETFONT, (WPARAM)myGetSysFont(), 0L);
SendDlgItemMessage (hWndDlg, IDC_STATUS_URL, WM_SETFONT, (WPARAM)myGetSysFont(), 0L);
SendDlgItemMessage (hWndDlg, IDC_STATUS_TO, WM_SETFONT, (WPARAM)myGetSysFont(), 0L);
return FALSE;
return FALSE;
case WM_SIZE:
case WM_SIZE:
switch(wParam)
{
case SIZE_MINIMIZED:
@ -681,22 +984,45 @@ DownloadDlgProc(HWND hWndDlg, UINT msg, WPARAM wParam, LPARAM lParam)
}
return(FALSE);
case WM_COMMAND:
case WM_COMMAND:
switch(LOWORD(wParam))
{
case IDCANCEL:
if(AskCancelDlg(hWndDlg))
gbCancelDownload = TRUE;
gdwDownloadDialogStatus = CS_CANCEL;
break;
case IDPAUSE:
if(!gtiPaused.bTickStarted)
{
gtiPaused.dwTickBegin = GetTickCount();
gtiPaused.bTickStarted = TRUE;
gtiPaused.bTickDownloadResumed = FALSE;
}
EnableWindow(GetDlgItem(hWndDlg, IDPAUSE), FALSE);
EnableWindow(GetDlgItem(hWndDlg, IDRESUME), TRUE);
gdwDownloadDialogStatus = CS_PAUSE;
break;
case IDRESUME:
gtiPaused.dwTickEnd = GetTickCount();
gtiPaused.dwTickDif = GetTickDif(gtiPaused.dwTickEnd,
gtiPaused.dwTickBegin);
gtiPaused.bTickDownloadResumed = TRUE;
EnableWindow(GetDlgItem(hWndDlg, IDRESUME), FALSE);
EnableWindow(GetDlgItem(hWndDlg, IDPAUSE), TRUE);
gdwDownloadDialogStatus = CS_NONE;
break;
default:
break;
}
return(TRUE);
}
return(TRUE);
}
return(FALSE); // didn't handle the message
return(FALSE); // didn't handle the message
}
// This routine will update the File Gauge progress bar to the specified percentage

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 76 KiB

View File

@ -7,11 +7,14 @@
#endif
#include "winresrc.h"
#define IDS_ERROR_FILE_NOT_FOUND 3
#define IDRESUME 3
#define IDPAUSE 4
#define IDS_MSG_RETRIEVE_INSTALLINI 11
#define IDI_ICON1 105
#define IDI_SETUP 105
#define IDB_BITMAP_WELCOME 108
#define DLG_MESSAGE 110
#define IDB_BITMAP_DOWNLOAD_LOGO 114
#define DLG_BROWSE_DIR 503
#define IDC_STATUS 1001
#define IDC_STATUS1 1001
@ -22,6 +25,7 @@
#define ID_IGNORE 1002
#define IDC_STATUS2 1003
#define IDC_STATUS_URL2 1003
#define IDC_STATUS_TO 1003
#define IDC_STATUS0 1004
#define IDC_STATUS3 1005
#define ID_YES_TO_ALL 1005
@ -53,6 +57,7 @@
#define IDC_STATIC2 1035
#define IDC_STATIC3 1036
#define IDC_STATIC4 1037
#define IDC_PERCENTAGE 1038
#define IDC_MESSAGE1 1040
#define IDC_PICT0 1041
#define IDC_MESSAGE0 1042
@ -126,7 +131,7 @@
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NO_MFC 1
#define _APS_NEXT_RESOURCE_VALUE 113
#define _APS_NEXT_RESOURCE_VALUE 115
#define _APS_NEXT_COMMAND_VALUE 40001
#define _APS_NEXT_CONTROL_VALUE 1074
#define _APS_NEXT_SYMED_VALUE 101

View File

@ -52,11 +52,11 @@ END
// Dialog
//
DLG_WELCOME DIALOGEX 51, 56, 315, 205
DLG_WELCOME DIALOG DISCARDABLE 51, 56, 315, 205
STYLE DS_MODALFRAME | WS_MINIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION |
WS_SYSMENU
CLASS "MozillaSetupDlg"
FONT 8, "MS Sans Serif", 0, 0, 0x1
FONT 8, "MS Sans Serif"
BEGIN
DEFPUSHBUTTON "",IDWIZNEXT,188,186,53,14
PUSHBUTTON "",IDCANCEL,252,186,53,14
@ -69,12 +69,12 @@ BEGIN
WS_EX_STATICEDGE
END
DLG_SETUP_TYPE DIALOGEX 51, 56, 315, 205
DLG_SETUP_TYPE DIALOG DISCARDABLE 51, 56, 315, 205
STYLE DS_MODALFRAME | WS_MINIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION |
WS_SYSMENU
CAPTION ":"
CLASS "MozillaSetupDlg"
FONT 8, "MS Sans Serif", 0, 0, 0x1
FONT 8, "MS Sans Serif"
BEGIN
CONTROL "",IDC_RADIO_ST0,"Button",BS_AUTORADIOBUTTON |
WS_TABSTOP,102,29,65,12
@ -103,11 +103,11 @@ BEGIN
WS_GROUP,107,160,143,9
END
DLG_SELECT_COMPONENTS DIALOGEX 51, 56, 315, 205
DLG_SELECT_COMPONENTS DIALOG DISCARDABLE 51, 56, 315, 205
STYLE DS_MODALFRAME | WS_MINIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION |
WS_SYSMENU
CLASS "MozillaSetupDlg"
FONT 8, "MS Sans Serif", 0, 0, 0x1
FONT 8, "MS Sans Serif"
BEGIN
DEFPUSHBUTTON "",IDWIZNEXT,188,186,53,14
PUSHBUTTON "",IDCANCEL,252,186,53,14
@ -131,11 +131,11 @@ BEGIN
LTEXT "",IDC_STATIC4,206,148,94,9
END
DLG_WINDOWS_INTEGRATION DIALOGEX 51, 56, 315, 205
DLG_WINDOWS_INTEGRATION DIALOG DISCARDABLE 51, 56, 315, 205
STYLE DS_MODALFRAME | WS_MINIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION |
WS_SYSMENU
CLASS "MozillaSetupDlg"
FONT 8, "MS Sans Serif", 0, 0, 0x1
FONT 8, "MS Sans Serif"
BEGIN
CONTROL "",IDC_CHECK0,"Button",BS_AUTOCHECKBOX | BS_TOP |
BS_MULTILINE | WS_TABSTOP,101,32,205,17
@ -156,11 +156,11 @@ BEGIN
WS_EX_STATICEDGE
END
DLG_PROGRAM_FOLDER DIALOGEX 51, 56, 315, 205
DLG_PROGRAM_FOLDER DIALOG DISCARDABLE 51, 56, 315, 205
STYLE DS_MODALFRAME | WS_MINIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION |
WS_SYSMENU
CLASS "MozillaSetupDlg"
FONT 8, "MS Sans Serif", 0, 0, 0x1
FONT 8, "MS Sans Serif"
BEGIN
EDITTEXT IDC_EDIT_PROGRAM_FOLDER,101,64,204,12,ES_AUTOHSCROLL
LISTBOX IDC_LIST,101,94,204,79,LBS_SORT | LBS_NOINTEGRALHEIGHT |
@ -177,11 +177,11 @@ BEGIN
WS_EX_STATICEDGE
END
DLG_LICENSE DIALOGEX 51, 56, 315, 205
DLG_LICENSE DIALOG DISCARDABLE 51, 56, 315, 205
STYLE DS_MODALFRAME | WS_MINIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION |
WS_SYSMENU
CLASS "MozillaSetupDlg"
FONT 8, "MS Sans Serif", 0, 0, 0x1
FONT 8, "MS Sans Serif"
BEGIN
DEFPUSHBUTTON "",IDWIZNEXT,188,186,53,14
PUSHBUTTON "",IDCANCEL,252,186,53,14
@ -194,26 +194,25 @@ BEGIN
WS_EX_STATICEDGE
END
DLG_START_INSTALL DIALOGEX 51, 56, 315, 205
DLG_START_INSTALL DIALOG DISCARDABLE 51, 56, 315, 205
STYLE DS_MODALFRAME | WS_MINIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION |
WS_SYSMENU
CLASS "MozillaSetupDlg"
FONT 8, "MS Sans Serif", 0, 0, 0x1
FONT 8, "MS Sans Serif"
BEGIN
EDITTEXT IDC_CURRENT_SETTINGS,101,67,204,106,ES_MULTILINE |
ES_OEMCONVERT | ES_READONLY | WS_VSCROLL | WS_HSCROLL
PUSHBUTTON "",IDWIZBACK,134,186,53,14
DEFPUSHBUTTON "",IDWIZNEXT,188,186,53,14
PUSHBUTTON "",IDCANCEL,252,186,53,14
LTEXT "",IDC_MESSAGE0,101,11,204,33,NOT WS_GROUP
LTEXT "",IDC_STATIC,101,57,163,8,NOT WS_GROUP
LTEXT "",IDC_MESSAGE0,101,11,204,52,NOT WS_GROUP
CONTROL 108,IDC_STATIC,"Static",SS_BITMAP,11,11,83,162,
WS_EX_CLIENTEDGE
CONTROL "",IDC_STATIC,"Static",SS_ETCHEDHORZ,11,179,295,1,
WS_EX_STATICEDGE
END
DLG_BROWSE_DIR DIALOGEX 147, 23, 190, 143
DLG_BROWSE_DIR DIALOG DISCARDABLE 147, 23, 190, 143
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
FONT 8, "MS Shell Dlg"
BEGIN
@ -267,17 +266,21 @@ BEGIN
CONTROL "",IDC_GAUGE_ARCHIVE,"GaugeArchive",0x0,9,21,175,11
END
DLG_ADVANCED_SETTINGS DIALOGEX 51, 56, 315, 205
DLG_ADVANCED_SETTINGS DIALOG DISCARDABLE 51, 56, 315, 205
STYLE DS_MODALFRAME | WS_MINIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION |
WS_SYSMENU
CLASS "MozillaSetupDlg"
FONT 8, "MS Sans Serif", 0, 0, 0x1
FONT 8, "MS Sans Serif"
BEGIN
EDITTEXT IDC_EDIT_PROXY_SERVER,165,57,134,12,ES_AUTOHSCROLL
EDITTEXT IDC_EDIT_PROXY_PORT,165,74,134,12,ES_AUTOHSCROLL
EDITTEXT IDC_EDIT_PROXY_USER,165,101,134,12,ES_AUTOHSCROLL
EDITTEXT IDC_EDIT_PROXY_PASSWD,165,118,134,12,ES_PASSWORD |
ES_AUTOHSCROLL
CONTROL "",IDC_USE_FTP,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,
101,148,205,9
CONTROL "",IDC_USE_HTTP,"Button",BS_AUTORADIOBUTTON,101,161,205,
9
DEFPUSHBUTTON "",IDWIZNEXT,188,186,53,14
PUSHBUTTON "",IDCANCEL,252,186,53,14
CONTROL 108,IDC_STATIC,"Static",SS_BITMAP,11,11,83,162,
@ -292,11 +295,11 @@ BEGIN
RTEXT "",IDC_STATIC4,108,120,52,9
END
DLG_SELECT_ADDITIONAL_COMPONENTS DIALOGEX 51, 56, 315, 205
DLG_SELECT_ADDITIONAL_COMPONENTS DIALOG DISCARDABLE 51, 56, 315, 205
STYLE DS_MODALFRAME | WS_MINIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION |
WS_SYSMENU
CLASS "MozillaSetupDlg"
FONT 8, "MS Sans Serif", 0, 0, 0x1
FONT 8, "MS Sans Serif"
BEGIN
PUSHBUTTON "",IDWIZBACK,134,186,53,14
DEFPUSHBUTTON "",IDWIZNEXT,188,186,53,14
@ -337,47 +340,50 @@ DLG_DOWNLOAD_OPTIONS DIALOGEX 51, 56, 315, 205
STYLE DS_MODALFRAME | WS_MINIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION |
WS_SYSMENU
CLASS "MozillaSetupDlg"
FONT 8, "MS Sans Serif", 0, 0, 0x1
FONT 8, "MS Sans Serif"
BEGIN
COMBOBOX IDC_LIST_SITE_SELECTOR,101,45,206,124,CBS_DROPDOWNLIST |
CBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP
LTEXT "",IDC_MESSAGE1,101,72,204,33,NOT WS_GROUP
CONTROL "",IDC_CHECK_SAVE_INSTALLER_FILES,"Button",
BS_AUTOCHECKBOX | WS_TABSTOP,101,109,204,9
EDITTEXT IDC_EDIT_LOCAL_INSTALLER_PATH,101,122,204,12,
BS_AUTOCHECKBOX | WS_TABSTOP,101,48,204,9
EDITTEXT IDC_EDIT_LOCAL_INSTALLER_PATH,101,61,204,12,
ES_AUTOHSCROLL | ES_READONLY
CONTROL "",IDC_USE_FTP,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,
101,148,112,9
CONTROL "",IDC_USE_HTTP,"Button",BS_AUTORADIOBUTTON,101,161,112,
9
LTEXT "",IDC_MESSAGE0,101,85,204,25,NOT WS_GROUP
COMBOBOX IDC_LIST_SITE_SELECTOR,101,115,204,124,CBS_DROPDOWNLIST |
CBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP
PUSHBUTTON "",IDC_BUTTON_PROXY_SETTINGS,221,159,84,14
PUSHBUTTON "",IDWIZBACK,134,186,53,14
DEFPUSHBUTTON "",IDWIZNEXT,188,186,53,14
PUSHBUTTON "",IDCANCEL,252,186,53,14
LTEXT "",IDC_MESSAGE0,101,15,204,25,NOT WS_GROUP
LTEXT "",IDC_MESSAGE1,101,11,204,33,NOT WS_GROUP
CONTROL 108,-1,"Static",SS_BITMAP,11,11,83,162,WS_EX_CLIENTEDGE
CONTROL "",-1,"Static",SS_ETCHEDHORZ,11,179,295,1,
WS_EX_STATICEDGE
END
DLG_DOWNLOADING DIALOGEX 0, 0, 311, 114
DLG_DOWNLOADING DIALOG DISCARDABLE 0, 0, 312, 154
STYLE DS_MODALFRAME | WS_MINIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION |
WS_SYSMENU
CLASS "MozillaSetupDlg"
FONT 8, "MS Sans Serif"
BEGIN
PUSHBUTTON "",IDCANCEL,131,92,50,14,WS_GROUP
LTEXT "",IDC_MESSAGE0,9,9,293,21
RTEXT "",IDC_STATIC2,9,53,37,8,SS_NOPREFIX
CONTROL "",IDC_STATUS_FILE,"Static",SS_LEFTNOWORDWRAP |
SS_NOPREFIX | WS_GROUP,49,53,253,8
RTEXT "",IDC_STATIC3,9,61,37,8,SS_NOPREFIX
DEFPUSHBUTTON "",IDPAUSE,136,134,50,14,WS_GROUP
PUSHBUTTON "",IDRESUME,187,134,50,14,WS_GROUP
PUSHBUTTON "",IDCANCEL,252,134,50,14,WS_GROUP
LTEXT "",IDC_MESSAGE0,9,39,293,23
LTEXT "",IDC_STATIC3,9,83,37,8,SS_NOPREFIX
CONTROL "",IDC_STATUS_URL,"Static",SS_LEFTNOWORDWRAP |
SS_NOPREFIX | WS_GROUP,49,61,253,8
RTEXT "",IDC_STATIC1,9,44,37,8,SS_NOPREFIX
SS_NOPREFIX | WS_GROUP,49,83,253,8
LTEXT "",IDC_STATIC1,9,103,37,8,SS_NOPREFIX
CONTROL "",IDC_STATUS_STATUS,"Static",SS_LEFTNOWORDWRAP |
SS_NOPREFIX | WS_GROUP,49,44,253,8
CONTROL "",IDC_GAUGE_FILE,"GaugeFile",0x0,9,72,293,11
SS_NOPREFIX | WS_GROUP,49,103,253,8
LTEXT "",IDC_STATIC2,9,74,37,8,SS_NOPREFIX
CONTROL "",IDC_STATUS_FILE,"Static",SS_LEFTNOWORDWRAP |
SS_NOPREFIX | WS_GROUP,49,74,253,8
CONTROL "",IDC_GAUGE_FILE,"GaugeFile",0x0,24,114,256,11
LTEXT "",IDC_PERCENTAGE,282,115,20,8,SS_NOPREFIX
CONTROL 114,IDC_STATIC,"Static",SS_BITMAP,0,0,312,34
LTEXT "",IDC_STATIC4,9,93,37,8,SS_NOPREFIX
CONTROL "",IDC_STATUS_TO,"Static",SS_LEFTNOWORDWRAP |
SS_NOPREFIX | WS_GROUP,49,93,253,8
END
@ -399,6 +405,7 @@ IDB_BOX_UNCHECKED BITMAP FIXED IMPURE "box_unch.bmp"
IDB_BOX_CHECKED BITMAP FIXED IMPURE "box_chec.bmp"
IDB_BITMAP_WELCOME BITMAP DISCARDABLE "bitmap1.bmp"
IDB_BOX_CHECKED_DISABLED BITMAP FIXED IMPURE "box_ch_d.bmp"
IDB_BITMAP_DOWNLOAD_LOGO BITMAP DISCARDABLE "downloadLogo.bmp"
/////////////////////////////////////////////////////////////////////////////
//