зеркало из https://github.com/mozilla/pjs.git
fixing bug 64105 - Remove blue background screen during installation
bug 60149 - Missing folder name in uninstall error bug 64007 - Mozilla/Netscape strings hardcoded bug 60039 - Uninstaller doesn't remove N6 cck entry in add/remove programs This affects only windows platforms. sr=sspitzer r=dveditz,dbragg
This commit is contained in:
Родитель
f4353c7481
Коммит
9ae89e8774
|
@ -55,6 +55,16 @@ void AskCancelDlg(HWND hDlg)
|
|||
}
|
||||
}
|
||||
|
||||
void DisableSystemMenuItems(HWND hWnd, BOOL bDisableClose)
|
||||
{
|
||||
EnableMenuItem(GetSystemMenu(hWnd, FALSE), SC_RESTORE, MF_BYCOMMAND | MF_GRAYED);
|
||||
EnableMenuItem(GetSystemMenu(hWnd, FALSE), SC_SIZE, MF_BYCOMMAND | MF_GRAYED);
|
||||
EnableMenuItem(GetSystemMenu(hWnd, FALSE), SC_MAXIMIZE, MF_BYCOMMAND | MF_GRAYED);
|
||||
|
||||
if(bDisableClose)
|
||||
EnableMenuItem(GetSystemMenu(hWnd, FALSE), SC_CLOSE, MF_BYCOMMAND | MF_GRAYED);
|
||||
}
|
||||
|
||||
void PaintGradientShade(HWND hWnd, HDC hdc)
|
||||
{
|
||||
RECT rectClient; // Rectangle for entire client area
|
||||
|
@ -154,6 +164,7 @@ LRESULT CALLBACK DlgProcWelcome(HWND hDlg, UINT msg, WPARAM wParam, LONG lParam)
|
|||
switch(msg)
|
||||
{
|
||||
case WM_INITDIALOG:
|
||||
DisableSystemMenuItems(hDlg, FALSE);
|
||||
SetWindowText(hDlg, diWelcome.szTitle);
|
||||
|
||||
wsprintf(szBuf, diWelcome.szMessage0, sgProduct.szProductName);
|
||||
|
@ -163,6 +174,7 @@ LRESULT CALLBACK DlgProcWelcome(HWND hDlg, UINT msg, WPARAM wParam, LONG lParam)
|
|||
|
||||
if(GetClientRect(hDlg, &rDlg))
|
||||
SetWindowPos(hDlg, HWND_TOP, (dwScreenX/2)-(rDlg.right/2), (dwScreenY/2)-(rDlg.bottom/2), 0, 0, SWP_NOSIZE);
|
||||
|
||||
break;
|
||||
|
||||
case WM_COMMAND:
|
||||
|
@ -170,12 +182,7 @@ LRESULT CALLBACK DlgProcWelcome(HWND hDlg, UINT msg, WPARAM wParam, LONG lParam)
|
|||
{
|
||||
case IDWIZNEXT:
|
||||
DestroyWindow(hDlg);
|
||||
PostMessage(hWndMain, WM_COMMAND, IDWIZNEXT, 0);
|
||||
break;
|
||||
|
||||
case IDWIZBACK:
|
||||
DestroyWindow(hDlg);
|
||||
PostMessage(hWndMain, WM_COMMAND, IDWIZBACK, 0);
|
||||
DlgSequenceNext();
|
||||
break;
|
||||
|
||||
case IDCANCEL:
|
||||
|
@ -204,6 +211,7 @@ LRESULT CALLBACK DlgProcLicense(HWND hDlg, UINT msg, WPARAM wParam, LONG lParam)
|
|||
switch(msg)
|
||||
{
|
||||
case WM_INITDIALOG:
|
||||
DisableSystemMenuItems(hDlg, FALSE);
|
||||
SetWindowText(hDlg, diLicense.szTitle);
|
||||
SetDlgItemText(hDlg, IDC_MESSAGE0, diLicense.szMessage0);
|
||||
SetDlgItemText(hDlg, IDC_MESSAGE1, diLicense.szMessage1);
|
||||
|
@ -239,12 +247,12 @@ LRESULT CALLBACK DlgProcLicense(HWND hDlg, UINT msg, WPARAM wParam, LONG lParam)
|
|||
{
|
||||
case IDWIZNEXT:
|
||||
DestroyWindow(hDlg);
|
||||
PostMessage(hWndMain, WM_COMMAND, IDWIZNEXT, 0);
|
||||
DlgSequenceNext();
|
||||
break;
|
||||
|
||||
case IDWIZBACK:
|
||||
DestroyWindow(hDlg);
|
||||
PostMessage(hWndMain, WM_COMMAND, IDWIZBACK, 0);
|
||||
DlgSequencePrev();
|
||||
break;
|
||||
|
||||
case IDCANCEL:
|
||||
|
@ -602,6 +610,7 @@ LRESULT CALLBACK DlgProcSetupType(HWND hDlg, UINT msg, WPARAM wParam, LONG lPara
|
|||
switch(msg)
|
||||
{
|
||||
case WM_INITDIALOG:
|
||||
DisableSystemMenuItems(hDlg, FALSE);
|
||||
SetWindowText(hDlg, diSetupType.szTitle);
|
||||
|
||||
hDestinationPath = GetDlgItem(hDlg, IDC_EDIT_DESTINATION); /* handle to the static destination path text window */
|
||||
|
@ -853,14 +862,14 @@ LRESULT CALLBACK DlgProcSetupType(HWND hDlg, UINT msg, WPARAM wParam, LONG lPara
|
|||
CheckWizardStateCustom(DLG_ADVANCED_SETTINGS);
|
||||
|
||||
DestroyWindow(hDlg);
|
||||
PostMessage(hWndMain, WM_COMMAND, IDWIZNEXT, 0);
|
||||
DlgSequenceNext();
|
||||
break;
|
||||
|
||||
case IDWIZBACK:
|
||||
dwTempSetupType = dwSetupType;
|
||||
lstrcpy(szTempSetupPath, sgProduct.szPath);
|
||||
DestroyWindow(hDlg);
|
||||
PostMessage(hWndMain, WM_COMMAND, IDWIZBACK, 0);
|
||||
DlgSequencePrev();
|
||||
break;
|
||||
|
||||
case IDCANCEL:
|
||||
|
@ -1091,6 +1100,7 @@ LRESULT CALLBACK DlgProcSelectComponents(HWND hDlg, UINT msg, WPARAM wParam, LON
|
|||
switch(msg)
|
||||
{
|
||||
case WM_INITDIALOG:
|
||||
DisableSystemMenuItems(hDlg, FALSE);
|
||||
SetWindowText(hDlg, diSelectComponents.szTitle);
|
||||
SetDlgItemText(hDlg, IDC_MESSAGE0, diSelectComponents.szMessage0);
|
||||
|
||||
|
@ -1275,12 +1285,12 @@ LRESULT CALLBACK DlgProcSelectComponents(HWND hDlg, UINT msg, WPARAM wParam, LON
|
|||
|
||||
case IDWIZNEXT:
|
||||
DestroyWindow(hDlg);
|
||||
PostMessage(hWndMain, WM_COMMAND, IDWIZNEXT, 0);
|
||||
DlgSequenceNext();
|
||||
break;
|
||||
|
||||
case IDWIZBACK:
|
||||
DestroyWindow(hDlg);
|
||||
PostMessage(hWndMain, WM_COMMAND, IDWIZBACK, 0);
|
||||
DlgSequencePrev();
|
||||
break;
|
||||
|
||||
case IDCANCEL:
|
||||
|
@ -1316,6 +1326,7 @@ LRESULT CALLBACK DlgProcSelectAdditionalComponents(HWND hDlg, UINT msg, WPARAM w
|
|||
switch(msg)
|
||||
{
|
||||
case WM_INITDIALOG:
|
||||
DisableSystemMenuItems(hDlg, FALSE);
|
||||
SetWindowText(hDlg, diSelectAdditionalComponents.szTitle);
|
||||
SetDlgItemText(hDlg, IDC_MESSAGE0, diSelectAdditionalComponents.szMessage0);
|
||||
|
||||
|
@ -1445,12 +1456,12 @@ LRESULT CALLBACK DlgProcSelectAdditionalComponents(HWND hDlg, UINT msg, WPARAM w
|
|||
|
||||
case IDWIZNEXT:
|
||||
DestroyWindow(hDlg);
|
||||
PostMessage(hWndMain, WM_COMMAND, IDWIZNEXT, 0);
|
||||
DlgSequenceNext();
|
||||
break;
|
||||
|
||||
case IDWIZBACK:
|
||||
DestroyWindow(hDlg);
|
||||
PostMessage(hWndMain, WM_COMMAND, IDWIZBACK, 0);
|
||||
DlgSequencePrev();
|
||||
break;
|
||||
|
||||
case IDCANCEL:
|
||||
|
@ -1482,6 +1493,7 @@ LRESULT CALLBACK DlgProcWindowsIntegration(HWND hDlg, UINT msg, WPARAM wParam, L
|
|||
switch(msg)
|
||||
{
|
||||
case WM_INITDIALOG:
|
||||
DisableSystemMenuItems(hDlg, FALSE);
|
||||
SetWindowText(hDlg, diWindowsIntegration.szTitle);
|
||||
SetDlgItemText(hDlg, IDC_MESSAGE0, diWindowsIntegration.szMessage0);
|
||||
SetDlgItemText(hDlg, IDC_MESSAGE1, diWindowsIntegration.szMessage1);
|
||||
|
@ -1568,7 +1580,7 @@ LRESULT CALLBACK DlgProcWindowsIntegration(HWND hDlg, UINT msg, WPARAM wParam, L
|
|||
}
|
||||
|
||||
DestroyWindow(hDlg);
|
||||
PostMessage(hWndMain, WM_COMMAND, IDWIZNEXT, 0);
|
||||
DlgSequenceNext();
|
||||
break;
|
||||
|
||||
case IDWIZBACK:
|
||||
|
@ -1576,7 +1588,7 @@ LRESULT CALLBACK DlgProcWindowsIntegration(HWND hDlg, UINT msg, WPARAM wParam, L
|
|||
CheckWizardStateCustom(DLG_SETUP_TYPE);
|
||||
|
||||
DestroyWindow(hDlg);
|
||||
PostMessage(hWndMain, WM_COMMAND, IDWIZBACK, 0);
|
||||
DlgSequencePrev();
|
||||
break;
|
||||
|
||||
case IDCANCEL:
|
||||
|
@ -1602,6 +1614,7 @@ LRESULT CALLBACK DlgProcProgramFolder(HWND hDlg, UINT msg, WPARAM wParam, LONG l
|
|||
switch(msg)
|
||||
{
|
||||
case WM_INITDIALOG:
|
||||
DisableSystemMenuItems(hDlg, FALSE);
|
||||
SetWindowText(hDlg, diProgramFolder.szTitle);
|
||||
SetDlgItemText(hDlg, IDC_MESSAGE0, diProgramFolder.szMessage0);
|
||||
SetDlgItemText(hDlg, IDC_EDIT_PROGRAM_FOLDER, sgProduct.szProgramFolderName);
|
||||
|
@ -1645,12 +1658,12 @@ LRESULT CALLBACK DlgProcProgramFolder(HWND hDlg, UINT msg, WPARAM wParam, LONG l
|
|||
dwWizardState = DLG_ADVANCED_SETTINGS;
|
||||
|
||||
DestroyWindow(hDlg);
|
||||
PostMessage(hWndMain, WM_COMMAND, IDWIZNEXT, 0);
|
||||
DlgSequenceNext();
|
||||
break;
|
||||
|
||||
case IDWIZBACK:
|
||||
DestroyWindow(hDlg);
|
||||
PostMessage(hWndMain, WM_COMMAND, IDWIZBACK, 0);
|
||||
DlgSequencePrev();
|
||||
break;
|
||||
|
||||
case IDC_LIST:
|
||||
|
@ -1680,6 +1693,7 @@ LRESULT CALLBACK DlgProcAdvancedSettings(HWND hDlg, UINT msg, WPARAM wParam, LON
|
|||
switch(msg)
|
||||
{
|
||||
case WM_INITDIALOG:
|
||||
DisableSystemMenuItems(hDlg, FALSE);
|
||||
SetWindowText(hDlg, diAdvancedSettings.szTitle);
|
||||
SetDlgItemText(hDlg, IDC_MESSAGE0, diAdvancedSettings.szMessage0);
|
||||
SetDlgItemText(hDlg, IDC_EDIT_PROXY_SERVER, diAdvancedSettings.szProxyServer);
|
||||
|
@ -1701,13 +1715,13 @@ LRESULT CALLBACK DlgProcAdvancedSettings(HWND hDlg, UINT msg, WPARAM wParam, LON
|
|||
GetDlgItemText(hDlg, IDC_EDIT_PROXY_PORT, diAdvancedSettings.szProxyPort, MAX_BUF);
|
||||
|
||||
DestroyWindow(hDlg);
|
||||
PostMessage(hWndMain, WM_COMMAND, IDWIZNEXT, 0);
|
||||
DlgSequenceNext();
|
||||
break;
|
||||
|
||||
case IDWIZBACK:
|
||||
case IDCANCEL:
|
||||
DestroyWindow(hDlg);
|
||||
PostMessage(hWndMain, WM_COMMAND, IDWIZBACK, 0);
|
||||
DlgSequencePrev();
|
||||
break;
|
||||
|
||||
default:
|
||||
|
@ -1747,6 +1761,7 @@ LRESULT CALLBACK DlgProcDownloadOptions(HWND hDlg, UINT msg, WPARAM wParam, LONG
|
|||
switch(msg)
|
||||
{
|
||||
case WM_INITDIALOG:
|
||||
DisableSystemMenuItems(hDlg, FALSE);
|
||||
SetWindowText(hDlg, diDownloadOptions.szTitle);
|
||||
SetDlgItemText(hDlg, IDC_MESSAGE0, diDownloadOptions.szMessage0);
|
||||
SetDlgItemText(hDlg, IDC_MESSAGE1, diDownloadOptions.szMessage1);
|
||||
|
@ -1792,20 +1807,20 @@ LRESULT CALLBACK DlgProcDownloadOptions(HWND hDlg, UINT msg, WPARAM wParam, LONG
|
|||
case IDWIZNEXT:
|
||||
SaveDownloadOptions(hDlg, hwndCBSiteSelector);
|
||||
DestroyWindow(hDlg);
|
||||
PostMessage(hWndMain, WM_COMMAND, IDWIZNEXT, 0);
|
||||
DlgSequenceNext();
|
||||
break;
|
||||
|
||||
case IDWIZBACK:
|
||||
SaveDownloadOptions(hDlg, hwndCBSiteSelector);
|
||||
DestroyWindow(hDlg);
|
||||
PostMessage(hWndMain, WM_COMMAND, IDWIZBACK, 0);
|
||||
DlgSequencePrev();
|
||||
break;
|
||||
|
||||
case IDC_BUTTON_ADDITIONAL_SETTINGS:
|
||||
SaveDownloadOptions(hDlg, hwndCBSiteSelector);
|
||||
dwWizardState = DLG_PROGRAM_FOLDER;
|
||||
DestroyWindow(hDlg);
|
||||
PostMessage(hWndMain, WM_COMMAND, IDWIZNEXT, 0);
|
||||
DlgSequenceNext();
|
||||
break;
|
||||
|
||||
case IDCANCEL:
|
||||
|
@ -2065,6 +2080,7 @@ LRESULT CALLBACK DlgProcStartInstall(HWND hDlg, UINT msg, WPARAM wParam, LONG lP
|
|||
switch(msg)
|
||||
{
|
||||
case WM_INITDIALOG:
|
||||
DisableSystemMenuItems(hDlg, FALSE);
|
||||
SetWindowText(hDlg, diStartInstall.szTitle);
|
||||
|
||||
if(GetClientRect(hDlg, &rDlg))
|
||||
|
@ -2093,19 +2109,19 @@ LRESULT CALLBACK DlgProcStartInstall(HWND hDlg, UINT msg, WPARAM wParam, LONG lP
|
|||
{
|
||||
case IDWIZNEXT:
|
||||
DestroyWindow(hDlg);
|
||||
PostMessage(hWndMain, WM_COMMAND, IDWIZNEXT, 0);
|
||||
DlgSequenceNext();
|
||||
break;
|
||||
|
||||
case IDWIZBACK:
|
||||
dwWizardState = DLG_ADVANCED_SETTINGS;
|
||||
DestroyWindow(hDlg);
|
||||
PostMessage(hWndMain, WM_COMMAND, IDWIZBACK, 0);
|
||||
DlgSequencePrev();
|
||||
break;
|
||||
|
||||
case IDC_BUTTON_SITE_SELECTOR:
|
||||
dwWizardState = DLG_PROGRAM_FOLDER;
|
||||
DestroyWindow(hDlg);
|
||||
PostMessage(hWndMain, WM_COMMAND, IDWIZNEXT, 0);
|
||||
DlgSequenceNext();
|
||||
break;
|
||||
|
||||
case IDCANCEL:
|
||||
|
@ -2132,6 +2148,7 @@ LRESULT CALLBACK DlgProcReboot(HWND hDlg, UINT msg, WPARAM wParam, LONG lParam)
|
|||
switch(msg)
|
||||
{
|
||||
case WM_INITDIALOG:
|
||||
DisableSystemMenuItems(hDlg, FALSE);
|
||||
CheckDlgButton(hDlg, IDC_RADIO_YES, BST_CHECKED);
|
||||
SetFocus(hRadioYes);
|
||||
|
||||
|
@ -2193,10 +2210,28 @@ LRESULT CALLBACK DlgProcMessage(HWND hDlg, UINT msg, WPARAM wParam, LONG lParam)
|
|||
LOGFONT logFont;
|
||||
HFONT hfontTmp;
|
||||
HFONT hfontOld;
|
||||
char szBuf[MAX_BUF];
|
||||
char szBuf2[MAX_BUF];
|
||||
|
||||
ZeroMemory(szBuf, sizeof(szBuf));
|
||||
ZeroMemory(szBuf2, sizeof(szBuf2));
|
||||
|
||||
switch(msg)
|
||||
{
|
||||
case WM_INITDIALOG:
|
||||
DisableSystemMenuItems(hDlg, TRUE);
|
||||
|
||||
if(NS_LoadString(hSetupRscInst, IDS_STR_MESSAGEBOX_TITLE, szBuf2, sizeof(szBuf2)) == WIZ_OK)
|
||||
{
|
||||
if((sgProduct.szProductName != NULL) && (*sgProduct.szProductName != '\0'))
|
||||
wsprintf(szBuf, szBuf2, sgProduct.szProductName);
|
||||
else
|
||||
wsprintf(szBuf, szBuf2, "");
|
||||
}
|
||||
else if((sgProduct.szProductName != NULL) && (*sgProduct.szProductName != '\0'))
|
||||
lstrcpy(szBuf, sgProduct.szProductName);
|
||||
|
||||
SetWindowText(hDlg, szBuf);
|
||||
break;
|
||||
|
||||
case WM_COMMAND:
|
||||
|
@ -2220,8 +2255,8 @@ LRESULT CALLBACK DlgProcMessage(HWND hDlg, UINT msg, WPARAM wParam, LONG lParam)
|
|||
ReleaseDC(hSTMessage, hdcSTMessage);
|
||||
|
||||
SetWindowPos(hDlg, HWND_TOP,
|
||||
(dwScreenX/2)-((sizeString.cx + 40)/2), (dwScreenY/2)-((sizeString.cy + 40)/2),
|
||||
sizeString.cx + 40, sizeString.cy + 40,
|
||||
(dwScreenX/2)-((sizeString.cx + 55)/2), (dwScreenY/2)-((sizeString.cy + 50)/2),
|
||||
sizeString.cx + 55, sizeString.cy + 50,
|
||||
SWP_SHOWWINDOW);
|
||||
|
||||
if(GetClientRect(hDlg, &rDlg))
|
||||
|
@ -2309,231 +2344,256 @@ void DlgSequenceNext()
|
|||
HRESULT hrValue;
|
||||
HRESULT hrErr;
|
||||
char szBuf[MAX_PATH];
|
||||
BOOL bDone = FALSE;
|
||||
|
||||
switch(dwWizardState)
|
||||
do
|
||||
{
|
||||
case DLG_NONE:
|
||||
dwWizardState = DLG_WELCOME;
|
||||
gbProcessingXpnstallFiles = FALSE;
|
||||
if(diWelcome.bShowDialog)
|
||||
hDlgCurrent = InstantiateDialog(hWndMain, dwWizardState, diWelcome.szTitle, DlgProcWelcome);
|
||||
else
|
||||
PostMessage(hWndMain, WM_COMMAND, IDWIZNEXT, 0);
|
||||
break;
|
||||
switch(dwWizardState)
|
||||
{
|
||||
case DLG_NONE:
|
||||
dwWizardState = DLG_WELCOME;
|
||||
gbProcessingXpnstallFiles = FALSE;
|
||||
if(diWelcome.bShowDialog)
|
||||
{
|
||||
hDlgCurrent = InstantiateDialog(hWndMain, dwWizardState, diWelcome.szTitle, DlgProcWelcome);
|
||||
bDone = TRUE;
|
||||
}
|
||||
break;
|
||||
|
||||
case DLG_WELCOME:
|
||||
dwWizardState = DLG_LICENSE;
|
||||
gbProcessingXpnstallFiles = FALSE;
|
||||
if(diLicense.bShowDialog)
|
||||
hDlgCurrent = InstantiateDialog(hWndMain, dwWizardState, diLicense.szTitle, DlgProcLicense);
|
||||
else
|
||||
PostMessage(hWndMain, WM_COMMAND, IDWIZNEXT, 0);
|
||||
case DLG_WELCOME:
|
||||
dwWizardState = DLG_LICENSE;
|
||||
gbProcessingXpnstallFiles = FALSE;
|
||||
if(diLicense.bShowDialog)
|
||||
{
|
||||
hDlgCurrent = InstantiateDialog(hWndMain, dwWizardState, diLicense.szTitle, DlgProcLicense);
|
||||
bDone = TRUE;
|
||||
}
|
||||
break;
|
||||
|
||||
break;
|
||||
case DLG_LICENSE:
|
||||
dwWizardState = DLG_SETUP_TYPE;
|
||||
gbProcessingXpnstallFiles = FALSE;
|
||||
if(diSetupType.bShowDialog)
|
||||
{
|
||||
hDlgCurrent = InstantiateDialog(hWndMain, dwWizardState, diSetupType.szTitle, DlgProcSetupType);
|
||||
bDone = TRUE;
|
||||
}
|
||||
else
|
||||
{
|
||||
CheckWizardStateCustom(DLG_ADVANCED_SETTINGS);
|
||||
}
|
||||
break;
|
||||
|
||||
case DLG_LICENSE:
|
||||
dwWizardState = DLG_SETUP_TYPE;
|
||||
gbProcessingXpnstallFiles = FALSE;
|
||||
if(diSetupType.bShowDialog)
|
||||
hDlgCurrent = InstantiateDialog(hWndMain, dwWizardState, diSetupType.szTitle, DlgProcSetupType);
|
||||
else
|
||||
{
|
||||
CheckWizardStateCustom(DLG_ADVANCED_SETTINGS);
|
||||
PostMessage(hWndMain, WM_COMMAND, IDWIZNEXT, 0);
|
||||
}
|
||||
break;
|
||||
case DLG_SETUP_TYPE:
|
||||
dwWizardState = DLG_SELECT_COMPONENTS;
|
||||
gbProcessingXpnstallFiles = FALSE;
|
||||
if(diSelectComponents.bShowDialog)
|
||||
{
|
||||
hDlgCurrent = InstantiateDialog(hWndMain, dwWizardState, diSelectComponents.szTitle, DlgProcSelectComponents);
|
||||
bDone = TRUE;
|
||||
}
|
||||
break;
|
||||
|
||||
case DLG_SETUP_TYPE:
|
||||
dwWizardState = DLG_SELECT_COMPONENTS;
|
||||
gbProcessingXpnstallFiles = FALSE;
|
||||
if(diSelectComponents.bShowDialog)
|
||||
hDlgCurrent = InstantiateDialog(hWndMain, dwWizardState, diSelectComponents.szTitle, DlgProcSelectComponents);
|
||||
else
|
||||
PostMessage(hWndMain, WM_COMMAND, IDWIZNEXT, 0);
|
||||
break;
|
||||
case DLG_SELECT_COMPONENTS:
|
||||
dwWizardState = DLG_SELECT_ADDITIONAL_COMPONENTS;
|
||||
gbProcessingXpnstallFiles = FALSE;
|
||||
if((diSelectAdditionalComponents.bShowDialog) && (GetAdditionalComponentsCount() > 0))
|
||||
{
|
||||
hDlgCurrent = InstantiateDialog(hWndMain, dwWizardState, diSelectAdditionalComponents.szTitle, DlgProcSelectAdditionalComponents);
|
||||
bDone = TRUE;
|
||||
}
|
||||
break;
|
||||
|
||||
case DLG_SELECT_COMPONENTS:
|
||||
dwWizardState = DLG_SELECT_ADDITIONAL_COMPONENTS;
|
||||
gbProcessingXpnstallFiles = FALSE;
|
||||
if((diSelectAdditionalComponents.bShowDialog) && (GetAdditionalComponentsCount() > 0))
|
||||
hDlgCurrent = InstantiateDialog(hWndMain, dwWizardState, diSelectAdditionalComponents.szTitle, DlgProcSelectAdditionalComponents);
|
||||
else
|
||||
PostMessage(hWndMain, WM_COMMAND, IDWIZNEXT, 0);
|
||||
break;
|
||||
case DLG_SELECT_ADDITIONAL_COMPONENTS:
|
||||
dwWizardState = DLG_WINDOWS_INTEGRATION;
|
||||
gbProcessingXpnstallFiles = FALSE;
|
||||
if(diWindowsIntegration.bShowDialog)
|
||||
{
|
||||
hDlgCurrent = InstantiateDialog(hWndMain, dwWizardState, diWindowsIntegration.szTitle, DlgProcWindowsIntegration);
|
||||
bDone = TRUE;
|
||||
}
|
||||
break;
|
||||
|
||||
case DLG_SELECT_ADDITIONAL_COMPONENTS:
|
||||
dwWizardState = DLG_WINDOWS_INTEGRATION;
|
||||
gbProcessingXpnstallFiles = FALSE;
|
||||
if(diWindowsIntegration.bShowDialog)
|
||||
hDlgCurrent = InstantiateDialog(hWndMain, dwWizardState, diWindowsIntegration.szTitle, DlgProcWindowsIntegration);
|
||||
else
|
||||
PostMessage(hWndMain, WM_COMMAND, IDWIZNEXT, 0);
|
||||
break;
|
||||
case DLG_WINDOWS_INTEGRATION:
|
||||
dwWizardState = DLG_PROGRAM_FOLDER;
|
||||
gbProcessingXpnstallFiles = FALSE;
|
||||
if(diProgramFolder.bShowDialog)
|
||||
{
|
||||
hDlgCurrent = InstantiateDialog(hWndMain, dwWizardState, diProgramFolder.szTitle, DlgProcProgramFolder);
|
||||
bDone = TRUE;
|
||||
}
|
||||
else
|
||||
{
|
||||
dwWizardState = DLG_ADVANCED_SETTINGS;
|
||||
}
|
||||
break;
|
||||
|
||||
case DLG_WINDOWS_INTEGRATION:
|
||||
dwWizardState = DLG_PROGRAM_FOLDER;
|
||||
gbProcessingXpnstallFiles = FALSE;
|
||||
if(diProgramFolder.bShowDialog)
|
||||
hDlgCurrent = InstantiateDialog(hWndMain, dwWizardState, diProgramFolder.szTitle, DlgProcProgramFolder);
|
||||
else
|
||||
{
|
||||
case DLG_PROGRAM_FOLDER:
|
||||
dwWizardState = DLG_ADVANCED_SETTINGS;
|
||||
PostMessage(hWndMain, WM_COMMAND, IDWIZNEXT, 0);
|
||||
}
|
||||
break;
|
||||
gbProcessingXpnstallFiles = FALSE;
|
||||
if(diAdvancedSettings.bShowDialog)
|
||||
{
|
||||
hDlgCurrent = InstantiateDialog(hWndMain, dwWizardState, diAdvancedSettings.szTitle, DlgProcAdvancedSettings);
|
||||
bDone = TRUE;
|
||||
}
|
||||
else
|
||||
{
|
||||
dwWizardState = DLG_ADVANCED_SETTINGS;
|
||||
}
|
||||
break;
|
||||
|
||||
case DLG_PROGRAM_FOLDER:
|
||||
dwWizardState = DLG_ADVANCED_SETTINGS;
|
||||
gbProcessingXpnstallFiles = FALSE;
|
||||
if(diAdvancedSettings.bShowDialog)
|
||||
hDlgCurrent = InstantiateDialog(hWndMain, dwWizardState, diAdvancedSettings.szTitle, DlgProcAdvancedSettings);
|
||||
else
|
||||
{
|
||||
dwWizardState = DLG_ADVANCED_SETTINGS;
|
||||
PostMessage(hWndMain, WM_COMMAND, IDWIZNEXT, 0);
|
||||
}
|
||||
break;
|
||||
case DLG_ADVANCED_SETTINGS:
|
||||
dwWizardState = DLG_DOWNLOAD_OPTIONS;
|
||||
gbProcessingXpnstallFiles = FALSE;
|
||||
|
||||
case DLG_ADVANCED_SETTINGS:
|
||||
dwWizardState = DLG_DOWNLOAD_OPTIONS;
|
||||
gbProcessingXpnstallFiles = FALSE;
|
||||
do
|
||||
{
|
||||
hrValue = VerifyDiskSpace();
|
||||
if(hrValue == IDOK)
|
||||
{
|
||||
/* show previous visible window */
|
||||
dwWizardState = DLG_SELECT_COMPONENTS;
|
||||
DlgSequencePrev();
|
||||
bDone = TRUE;
|
||||
break;
|
||||
}
|
||||
else if(hrValue == IDCANCEL)
|
||||
{
|
||||
AskCancelDlg(hWndMain);
|
||||
hrValue = IDRETRY;
|
||||
}
|
||||
}while(hrValue == IDRETRY);
|
||||
|
||||
do
|
||||
{
|
||||
hrValue = VerifyDiskSpace();
|
||||
if(hrValue == IDOK)
|
||||
{
|
||||
/* show previous visible window */
|
||||
dwWizardState = DLG_SELECT_COMPONENTS;
|
||||
DlgSequencePrev();
|
||||
/* break out of this case because we need to show the previous dialog */
|
||||
bDone = TRUE;
|
||||
break;
|
||||
}
|
||||
else if(hrValue == IDCANCEL)
|
||||
|
||||
if((diDownloadOptions.bShowDialog == TRUE) && (GetTotalArchivesToDownload() > 0))
|
||||
{
|
||||
AskCancelDlg(hWndMain);
|
||||
hrValue = IDRETRY;
|
||||
hDlgCurrent = InstantiateDialog(hWndMain, dwWizardState, diDownloadOptions.szTitle, DlgProcDownloadOptions);
|
||||
bDone = TRUE;
|
||||
}
|
||||
}while(hrValue == IDRETRY);
|
||||
|
||||
if(hrValue == IDOK)
|
||||
{
|
||||
/* break out of this case because we need to show the previous dialog */
|
||||
break;
|
||||
}
|
||||
|
||||
if((diDownloadOptions.bShowDialog == TRUE) && (GetTotalArchivesToDownload() > 0))
|
||||
hDlgCurrent = InstantiateDialog(hWndMain, dwWizardState, diDownloadOptions.szTitle, DlgProcDownloadOptions);
|
||||
else
|
||||
{
|
||||
dwWizardState = DLG_DOWNLOAD_OPTIONS;
|
||||
PostMessage(hWndMain, WM_COMMAND, IDWIZNEXT, 0);
|
||||
}
|
||||
break;
|
||||
|
||||
case DLG_DOWNLOAD_OPTIONS:
|
||||
dwWizardState = DLG_START_INSTALL;
|
||||
gbProcessingXpnstallFiles = FALSE;
|
||||
if(diStartInstall.bShowDialog)
|
||||
hDlgCurrent = InstantiateDialog(hWndMain, dwWizardState, diStartInstall.szTitle, DlgProcStartInstall);
|
||||
else
|
||||
PostMessage(hWndMain, WM_COMMAND, IDWIZNEXT, 0);
|
||||
break;
|
||||
|
||||
default:
|
||||
dwWizardState = DLG_START_INSTALL;
|
||||
gbProcessingXpnstallFiles = TRUE;
|
||||
|
||||
/* PRE_DOWNLOAD process file manipulation functions */
|
||||
ProcessFileOps(T_PRE_DOWNLOAD);
|
||||
|
||||
if(RetrieveArchives() == WIZ_OK)
|
||||
{
|
||||
char szInstallLogFile[MAX_BUF];
|
||||
|
||||
/* POST_DOWNLOAD process file manipulation functions */
|
||||
ProcessFileOps(T_POST_DOWNLOAD);
|
||||
/* PRE_XPCOM process file manipulation functions */
|
||||
ProcessFileOps(T_PRE_XPCOM);
|
||||
|
||||
ProcessXpcomFile();
|
||||
|
||||
/* POST_XPCOM process file manipulation functions */
|
||||
ProcessFileOps(T_POST_XPCOM);
|
||||
/* PRE_SMARTUPDATE process file manipulation functions */
|
||||
ProcessFileOps(T_PRE_SMARTUPDATE);
|
||||
|
||||
if(CheckInstances())
|
||||
else
|
||||
{
|
||||
dwWizardState = DLG_DOWNLOAD_OPTIONS;
|
||||
}
|
||||
break;
|
||||
|
||||
case DLG_DOWNLOAD_OPTIONS:
|
||||
dwWizardState = DLG_START_INSTALL;
|
||||
gbProcessingXpnstallFiles = FALSE;
|
||||
if(diStartInstall.bShowDialog)
|
||||
{
|
||||
hDlgCurrent = InstantiateDialog(hWndMain, dwWizardState, diStartInstall.szTitle, DlgProcStartInstall);
|
||||
bDone = TRUE;
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
dwWizardState = DLG_START_INSTALL;
|
||||
gbProcessingXpnstallFiles = TRUE;
|
||||
|
||||
/* PRE_DOWNLOAD process file manipulation functions */
|
||||
ProcessFileOps(T_PRE_DOWNLOAD);
|
||||
|
||||
if(RetrieveArchives() == WIZ_OK)
|
||||
{
|
||||
char szInstallLogFile[MAX_BUF];
|
||||
|
||||
/* POST_DOWNLOAD process file manipulation functions */
|
||||
ProcessFileOps(T_POST_DOWNLOAD);
|
||||
/* PRE_XPCOM process file manipulation functions */
|
||||
ProcessFileOps(T_PRE_XPCOM);
|
||||
|
||||
ProcessXpcomFile();
|
||||
|
||||
/* POST_XPCOM process file manipulation functions */
|
||||
ProcessFileOps(T_POST_XPCOM);
|
||||
/* PRE_SMARTUPDATE process file manipulation functions */
|
||||
ProcessFileOps(T_PRE_SMARTUPDATE);
|
||||
|
||||
if(CheckInstances())
|
||||
{
|
||||
/* save the installer files in the local machine */
|
||||
if(diDownloadOptions.bSaveInstaller)
|
||||
SaveInstallerFiles();
|
||||
|
||||
CleanupXpcomFile();
|
||||
PostQuitMessage(0);
|
||||
|
||||
/* break out of switch statment */
|
||||
bDone = TRUE;
|
||||
break;
|
||||
}
|
||||
|
||||
lstrcpy(szBuf, sgProduct.szPath);
|
||||
if(*sgProduct.szSubPath != '\0')
|
||||
{
|
||||
AppendBackSlash(szBuf, sizeof(szBuf));
|
||||
lstrcat(szBuf, sgProduct.szSubPath);
|
||||
}
|
||||
AppendBackSlash(szBuf, sizeof(szBuf));
|
||||
|
||||
if(gdwUpgradeValue == UG_DELETE)
|
||||
{
|
||||
char szMessage[MAX_BUF];
|
||||
|
||||
NS_LoadString(hSetupRscInst, IDS_STR_DELETING_DESTINATION_DIR, szMessage, sizeof(szMessage));
|
||||
ShowMessage(szMessage, TRUE);
|
||||
DirectoryRemove(szBuf, TRUE);
|
||||
CreateDirectoriesAll(szBuf, TRUE);
|
||||
ShowMessage(szMessage, FALSE);
|
||||
}
|
||||
|
||||
/* copy the install_wizard.log file from the temp\ns_temp dir to
|
||||
* the destination dir and use the new destination file to continue
|
||||
* logging.
|
||||
*/
|
||||
lstrcpy(szInstallLogFile, szTempDir);
|
||||
AppendBackSlash(szInstallLogFile, sizeof(szInstallLogFile));
|
||||
lstrcat(szInstallLogFile, FILE_INSTALL_LOG);
|
||||
FileCopy(szInstallLogFile, szBuf, FALSE);
|
||||
DeleteFile(szInstallLogFile);
|
||||
gbILUseTemp = FALSE;
|
||||
|
||||
lstrcat(szBuf, "Uninstall\\");
|
||||
CreateDirectoriesAll(szBuf, TRUE);
|
||||
|
||||
/* save the installer files in the local machine */
|
||||
if(diDownloadOptions.bSaveInstaller)
|
||||
SaveInstallerFiles();
|
||||
|
||||
CleanupXpcomFile();
|
||||
PostQuitMessage(0);
|
||||
|
||||
/* break out of switch statment */
|
||||
break;
|
||||
}
|
||||
|
||||
lstrcpy(szBuf, sgProduct.szPath);
|
||||
if(*sgProduct.szSubPath != '\0')
|
||||
{
|
||||
AppendBackSlash(szBuf, sizeof(szBuf));
|
||||
lstrcat(szBuf, sgProduct.szSubPath);
|
||||
}
|
||||
AppendBackSlash(szBuf, sizeof(szBuf));
|
||||
|
||||
if(gdwUpgradeValue == UG_DELETE)
|
||||
{
|
||||
char szMessage[MAX_BUF];
|
||||
|
||||
NS_LoadString(hSetupRscInst, IDS_STR_DELETING_DESTINATION_DIR, szMessage, sizeof(szMessage));
|
||||
ShowMessage(szMessage, TRUE);
|
||||
DirectoryRemove(szBuf, TRUE);
|
||||
CreateDirectoriesAll(szBuf, TRUE);
|
||||
ShowMessage(szMessage, FALSE);
|
||||
}
|
||||
|
||||
/* copy the install_wizard.log file from the temp\ns_temp dir to
|
||||
* the destination dir and use the new destination file to continue
|
||||
* logging.
|
||||
*/
|
||||
lstrcpy(szInstallLogFile, szTempDir);
|
||||
AppendBackSlash(szInstallLogFile, sizeof(szInstallLogFile));
|
||||
lstrcat(szInstallLogFile, FILE_INSTALL_LOG);
|
||||
FileCopy(szInstallLogFile, szBuf, FALSE);
|
||||
DeleteFile(szInstallLogFile);
|
||||
gbILUseTemp = FALSE;
|
||||
|
||||
lstrcat(szBuf, "Uninstall\\");
|
||||
CreateDirectoriesAll(szBuf, TRUE);
|
||||
|
||||
/* save the installer files in the local machine */
|
||||
if(diDownloadOptions.bSaveInstaller)
|
||||
SaveInstallerFiles();
|
||||
|
||||
hrErr = SmartUpdateJars();
|
||||
if((hrErr == WIZ_OK) || (hrErr == 999))
|
||||
{
|
||||
UpdateJSProxyInfo();
|
||||
|
||||
/* POST_SMARTUPDATE process file manipulation functions */
|
||||
ProcessFileOps(T_POST_SMARTUPDATE);
|
||||
/* PRE_LAUNCHAPP process file manipulation functions */
|
||||
ProcessFileOps(T_PRE_LAUNCHAPP);
|
||||
|
||||
LaunchApps();
|
||||
|
||||
/* POST_LAUNCHAPP process file manipulation functions */
|
||||
ProcessFileOps(T_POST_LAUNCHAPP);
|
||||
/* DEPEND_REBOOT process file manipulation functions */
|
||||
ProcessFileOps(T_DEPEND_REBOOT);
|
||||
ProcessProgramFolderShowCmd();
|
||||
|
||||
if(NeedReboot())
|
||||
hrErr = SmartUpdateJars();
|
||||
if((hrErr == WIZ_OK) || (hrErr == 999))
|
||||
{
|
||||
CleanupXpcomFile();
|
||||
hDlgCurrent = InstantiateDialog(hWndMain, DLG_RESTART, diReboot.szTitle, DlgProcReboot);
|
||||
UpdateJSProxyInfo();
|
||||
|
||||
/* POST_SMARTUPDATE process file manipulation functions */
|
||||
ProcessFileOps(T_POST_SMARTUPDATE);
|
||||
/* PRE_LAUNCHAPP process file manipulation functions */
|
||||
ProcessFileOps(T_PRE_LAUNCHAPP);
|
||||
|
||||
LaunchApps();
|
||||
|
||||
/* POST_LAUNCHAPP process file manipulation functions */
|
||||
ProcessFileOps(T_POST_LAUNCHAPP);
|
||||
/* DEPEND_REBOOT process file manipulation functions */
|
||||
ProcessFileOps(T_DEPEND_REBOOT);
|
||||
ProcessProgramFolderShowCmd();
|
||||
|
||||
if(NeedReboot())
|
||||
{
|
||||
CleanupXpcomFile();
|
||||
hDlgCurrent = InstantiateDialog(hWndMain, DLG_RESTART, diReboot.szTitle, DlgProcReboot);
|
||||
}
|
||||
else
|
||||
{
|
||||
CleanupXpcomFile();
|
||||
PostQuitMessage(0);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -2543,119 +2603,125 @@ void DlgSequenceNext()
|
|||
}
|
||||
else
|
||||
{
|
||||
bSDUserCanceled = TRUE;
|
||||
CleanupXpcomFile();
|
||||
PostQuitMessage(0);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
bSDUserCanceled = TRUE;
|
||||
CleanupXpcomFile();
|
||||
PostQuitMessage(0);
|
||||
}
|
||||
gbProcessingXpnstallFiles = FALSE;
|
||||
|
||||
break;
|
||||
}
|
||||
gbProcessingXpnstallFiles = FALSE;
|
||||
bDone = TRUE;
|
||||
break;
|
||||
}
|
||||
} while(!bDone);
|
||||
}
|
||||
|
||||
void DlgSequencePrev()
|
||||
{
|
||||
switch(dwWizardState)
|
||||
BOOL bDone = FALSE;
|
||||
|
||||
do
|
||||
{
|
||||
case DLG_START_INSTALL:
|
||||
dwWizardState = DLG_ADVANCED_SETTINGS;
|
||||
gbProcessingXpnstallFiles = FALSE;
|
||||
if(diAdvancedSettings.bShowDialog)
|
||||
hDlgCurrent = InstantiateDialog(hWndMain, dwWizardState, diAdvancedSettings.szTitle, DlgProcAdvancedSettings);
|
||||
else
|
||||
PostMessage(hWndMain, WM_COMMAND, IDWIZBACK, 0);
|
||||
break;
|
||||
switch(dwWizardState)
|
||||
{
|
||||
case DLG_START_INSTALL:
|
||||
dwWizardState = DLG_ADVANCED_SETTINGS;
|
||||
gbProcessingXpnstallFiles = FALSE;
|
||||
if(diAdvancedSettings.bShowDialog)
|
||||
{
|
||||
hDlgCurrent = InstantiateDialog(hWndMain, dwWizardState, diAdvancedSettings.szTitle, DlgProcAdvancedSettings);
|
||||
bDone = TRUE;
|
||||
}
|
||||
break;
|
||||
|
||||
case DLG_ADVANCED_SETTINGS:
|
||||
dwWizardState = DLG_DOWNLOAD_OPTIONS;
|
||||
gbProcessingXpnstallFiles = FALSE;
|
||||
if((diDownloadOptions.bShowDialog == TRUE) && (GetTotalArchivesToDownload() > 0))
|
||||
hDlgCurrent = InstantiateDialog(hWndMain, dwWizardState, diDownloadOptions.szTitle, DlgProcDownloadOptions);
|
||||
else
|
||||
PostMessage(hWndMain, WM_COMMAND, IDWIZBACK, 0);
|
||||
break;
|
||||
case DLG_ADVANCED_SETTINGS:
|
||||
dwWizardState = DLG_DOWNLOAD_OPTIONS;
|
||||
gbProcessingXpnstallFiles = FALSE;
|
||||
if((diDownloadOptions.bShowDialog == TRUE) && (GetTotalArchivesToDownload() > 0))
|
||||
{
|
||||
hDlgCurrent = InstantiateDialog(hWndMain, dwWizardState, diDownloadOptions.szTitle, DlgProcDownloadOptions);
|
||||
bDone = TRUE;
|
||||
}
|
||||
break;
|
||||
|
||||
case DLG_DOWNLOAD_OPTIONS:
|
||||
dwWizardState = DLG_PROGRAM_FOLDER;
|
||||
gbProcessingXpnstallFiles = FALSE;
|
||||
if(CheckWizardStateCustom(DLG_SELECT_COMPONENTS))
|
||||
{
|
||||
if(diProgramFolder.bShowDialog)
|
||||
hDlgCurrent = InstantiateDialog(hWndMain, dwWizardState, diProgramFolder.szTitle, DlgProcProgramFolder);
|
||||
else
|
||||
PostMessage(hWndMain, WM_COMMAND, IDWIZBACK, 0);
|
||||
}
|
||||
else
|
||||
PostMessage(hWndMain, WM_COMMAND, IDWIZBACK, 0);
|
||||
break;
|
||||
case DLG_DOWNLOAD_OPTIONS:
|
||||
dwWizardState = DLG_PROGRAM_FOLDER;
|
||||
gbProcessingXpnstallFiles = FALSE;
|
||||
if(CheckWizardStateCustom(DLG_SELECT_COMPONENTS))
|
||||
{
|
||||
if(diProgramFolder.bShowDialog)
|
||||
hDlgCurrent = InstantiateDialog(hWndMain, dwWizardState, diProgramFolder.szTitle, DlgProcProgramFolder);
|
||||
bDone = TRUE;
|
||||
}
|
||||
break;
|
||||
|
||||
case DLG_PROGRAM_FOLDER:
|
||||
dwWizardState = DLG_WINDOWS_INTEGRATION;
|
||||
gbProcessingXpnstallFiles = FALSE;
|
||||
if(diWindowsIntegration.bShowDialog)
|
||||
hDlgCurrent = InstantiateDialog(hWndMain, dwWizardState, diWindowsIntegration.szTitle, DlgProcWindowsIntegration);
|
||||
else
|
||||
PostMessage(hWndMain, WM_COMMAND, IDWIZBACK, 0);
|
||||
break;
|
||||
case DLG_PROGRAM_FOLDER:
|
||||
dwWizardState = DLG_WINDOWS_INTEGRATION;
|
||||
gbProcessingXpnstallFiles = FALSE;
|
||||
if(diWindowsIntegration.bShowDialog)
|
||||
{
|
||||
hDlgCurrent = InstantiateDialog(hWndMain, dwWizardState, diWindowsIntegration.szTitle, DlgProcWindowsIntegration);
|
||||
bDone = TRUE;
|
||||
}
|
||||
break;
|
||||
|
||||
case DLG_WINDOWS_INTEGRATION:
|
||||
dwWizardState = DLG_SELECT_ADDITIONAL_COMPONENTS;
|
||||
gbProcessingXpnstallFiles = FALSE;
|
||||
if((diSelectAdditionalComponents.bShowDialog) && (GetAdditionalComponentsCount() > 0))
|
||||
hDlgCurrent = InstantiateDialog(hWndMain, dwWizardState, diSelectAdditionalComponents.szTitle, DlgProcSelectAdditionalComponents);
|
||||
else
|
||||
PostMessage(hWndMain, WM_COMMAND, IDWIZBACK, 0);
|
||||
break;
|
||||
case DLG_WINDOWS_INTEGRATION:
|
||||
dwWizardState = DLG_SELECT_ADDITIONAL_COMPONENTS;
|
||||
gbProcessingXpnstallFiles = FALSE;
|
||||
if((diSelectAdditionalComponents.bShowDialog) && (GetAdditionalComponentsCount() > 0))
|
||||
{
|
||||
hDlgCurrent = InstantiateDialog(hWndMain, dwWizardState, diSelectAdditionalComponents.szTitle, DlgProcSelectAdditionalComponents);
|
||||
bDone = TRUE;
|
||||
}
|
||||
break;
|
||||
|
||||
case DLG_SELECT_ADDITIONAL_COMPONENTS:
|
||||
dwWizardState = DLG_SELECT_COMPONENTS;
|
||||
gbProcessingXpnstallFiles = FALSE;
|
||||
if(diSelectComponents.bShowDialog)
|
||||
hDlgCurrent = InstantiateDialog(hWndMain, dwWizardState, diSelectComponents.szTitle, DlgProcSelectComponents);
|
||||
else
|
||||
PostMessage(hWndMain, WM_COMMAND, IDWIZBACK, 0);
|
||||
break;
|
||||
case DLG_SELECT_ADDITIONAL_COMPONENTS:
|
||||
dwWizardState = DLG_SELECT_COMPONENTS;
|
||||
gbProcessingXpnstallFiles = FALSE;
|
||||
if(diSelectComponents.bShowDialog)
|
||||
{
|
||||
hDlgCurrent = InstantiateDialog(hWndMain, dwWizardState, diSelectComponents.szTitle, DlgProcSelectComponents);
|
||||
bDone = TRUE;
|
||||
}
|
||||
break;
|
||||
|
||||
case DLG_SELECT_COMPONENTS:
|
||||
dwWizardState = DLG_SETUP_TYPE;
|
||||
gbProcessingXpnstallFiles = FALSE;
|
||||
if(diSetupType.bShowDialog)
|
||||
hDlgCurrent = InstantiateDialog(hWndMain, dwWizardState, diSetupType.szTitle, DlgProcSetupType);
|
||||
else
|
||||
PostMessage(hWndMain, WM_COMMAND, IDWIZBACK, 0);
|
||||
break;
|
||||
case DLG_SELECT_COMPONENTS:
|
||||
dwWizardState = DLG_SETUP_TYPE;
|
||||
gbProcessingXpnstallFiles = FALSE;
|
||||
if(diSetupType.bShowDialog)
|
||||
{
|
||||
hDlgCurrent = InstantiateDialog(hWndMain, dwWizardState, diSetupType.szTitle, DlgProcSetupType);
|
||||
bDone = TRUE;
|
||||
}
|
||||
break;
|
||||
|
||||
case DLG_SETUP_TYPE:
|
||||
dwWizardState = DLG_LICENSE;
|
||||
gbProcessingXpnstallFiles = FALSE;
|
||||
if(diLicense.bShowDialog)
|
||||
hDlgCurrent = InstantiateDialog(hWndMain, dwWizardState, diLicense.szTitle, DlgProcLicense);
|
||||
else
|
||||
PostMessage(hWndMain, WM_COMMAND, IDWIZBACK, 0);
|
||||
break;
|
||||
case DLG_SETUP_TYPE:
|
||||
dwWizardState = DLG_LICENSE;
|
||||
gbProcessingXpnstallFiles = FALSE;
|
||||
if(diLicense.bShowDialog)
|
||||
{
|
||||
hDlgCurrent = InstantiateDialog(hWndMain, dwWizardState, diLicense.szTitle, DlgProcLicense);
|
||||
bDone = TRUE;
|
||||
}
|
||||
break;
|
||||
|
||||
case DLG_LICENSE:
|
||||
dwWizardState = DLG_WELCOME;
|
||||
gbProcessingXpnstallFiles = FALSE;
|
||||
if(diWelcome.bShowDialog)
|
||||
hDlgCurrent = InstantiateDialog(hWndMain, dwWizardState, diWelcome.szTitle, DlgProcWelcome);
|
||||
else
|
||||
PostMessage(hWndMain, WM_COMMAND, IDWIZBACK, 0);
|
||||
break;
|
||||
case DLG_LICENSE:
|
||||
dwWizardState = DLG_WELCOME;
|
||||
gbProcessingXpnstallFiles = FALSE;
|
||||
if(diWelcome.bShowDialog)
|
||||
{
|
||||
hDlgCurrent = InstantiateDialog(hWndMain, dwWizardState, diWelcome.szTitle, DlgProcWelcome);
|
||||
bDone = TRUE;
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
dwWizardState = DLG_WELCOME;
|
||||
gbProcessingXpnstallFiles = FALSE;
|
||||
if(diWelcome.bShowDialog)
|
||||
hDlgCurrent = InstantiateDialog(hWndMain, DLG_WELCOME, diWelcome.szTitle, DlgProcWelcome);
|
||||
else
|
||||
PostMessage(hWndMain, WM_COMMAND, IDWIZBACK, 0);
|
||||
break;
|
||||
}
|
||||
default:
|
||||
dwWizardState = DLG_WELCOME;
|
||||
gbProcessingXpnstallFiles = FALSE;
|
||||
if(diWelcome.bShowDialog)
|
||||
{
|
||||
hDlgCurrent = InstantiateDialog(hWndMain, DLG_WELCOME, diWelcome.szTitle, DlgProcWelcome);
|
||||
bDone = TRUE;
|
||||
}
|
||||
break;
|
||||
}
|
||||
} while(!bDone);
|
||||
}
|
||||
|
|
|
@ -62,5 +62,6 @@ void TruncateString(HWND hWnd, LPSTR szInPath, DWORD dwInPathBufSiz
|
|||
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);
|
||||
|
||||
#endif
|
||||
|
|
|
@ -87,51 +87,16 @@ BOOL InitDialogClass(HINSTANCE hInstance, HINSTANCE hSetupRscInst)
|
|||
|
||||
BOOL InitApplication(HINSTANCE hInstance, HINSTANCE hSetupRscInst)
|
||||
{
|
||||
BOOL bRv;
|
||||
WNDCLASS wc;
|
||||
|
||||
wc.style = CS_HREDRAW | CS_VREDRAW | CS_PARENTDC | CS_SAVEBITS;
|
||||
wc.lpfnWndProc = (WNDPROC)DlgProcMain;
|
||||
wc.cbClsExtra = 0;
|
||||
wc.cbWndExtra = 0;
|
||||
wc.hInstance = hInstance;
|
||||
wc.hIcon = LoadIcon(hSetupRscInst, MAKEINTRESOURCE(IDI_SETUP));
|
||||
wc.hCursor = LoadCursor(NULL, IDC_ARROW);
|
||||
wc.hbrBackground = (HBRUSH)(COLOR_ACTIVECAPTION + 1);
|
||||
wc.lpszMenuName = NULL;
|
||||
wc.lpszClassName = CLASS_NAME_SETUP;
|
||||
|
||||
bRv = RegisterClass(&wc);
|
||||
if(bRv == FALSE)
|
||||
return(bRv);
|
||||
|
||||
return(InitDialogClass(hInstance, hSetupRscInst));
|
||||
}
|
||||
|
||||
BOOL InitInstance(HINSTANCE hInstance, DWORD dwCmdShow)
|
||||
{
|
||||
HWND hWnd;
|
||||
|
||||
dwScreenX = GetSystemMetrics(SM_CXSCREEN);
|
||||
dwScreenY = GetSystemMetrics(SM_CYSCREEN);
|
||||
|
||||
hInst = hInstance;
|
||||
hWnd = CreateWindow(CLASS_NAME_SETUP,
|
||||
CLASS_NAME_SETUP,
|
||||
WS_OVERLAPPEDWINDOW | WS_CLIPCHILDREN | WS_CLIPSIBLINGS | WS_MAXIMIZE,
|
||||
0,
|
||||
0,
|
||||
dwScreenX,
|
||||
dwScreenY,
|
||||
NULL,
|
||||
NULL,
|
||||
hInstance,
|
||||
NULL);
|
||||
|
||||
if(!hWnd)
|
||||
return(FALSE);
|
||||
|
||||
hWndMain = hWnd;
|
||||
hWndMain = NULL;
|
||||
|
||||
return(TRUE);
|
||||
}
|
||||
|
@ -1841,6 +1806,8 @@ HRESULT InitSetupGeneral()
|
|||
return(1);
|
||||
if((sgProduct.szProgramName = NS_GlobalAlloc(MAX_BUF)) == NULL)
|
||||
return(1);
|
||||
if((sgProduct.szCompanyName = NS_GlobalAlloc(MAX_BUF)) == NULL)
|
||||
return(1);
|
||||
if((sgProduct.szProductName = NS_GlobalAlloc(MAX_BUF)) == NULL)
|
||||
return(1);
|
||||
if((sgProduct.szProgramFolderName = NS_GlobalAlloc(MAX_BUF)) == NULL)
|
||||
|
@ -1874,6 +1841,7 @@ void DeInitSetupGeneral()
|
|||
FreeMemory(&(sgProduct.szPath));
|
||||
FreeMemory(&(sgProduct.szSubPath));
|
||||
FreeMemory(&(sgProduct.szProgramName));
|
||||
FreeMemory(&(sgProduct.szCompanyName));
|
||||
FreeMemory(&(sgProduct.szProductName));
|
||||
FreeMemory(&(sgProduct.szProgramFolderName));
|
||||
FreeMemory(&(sgProduct.szProgramFolderPath));
|
||||
|
@ -3061,11 +3029,11 @@ HRESULT InitComponentDiskSpaceInfo(dsN **dsnComponentDSRequirement)
|
|||
AppendBackSlash(szBuf, sizeof(szBuf));
|
||||
UpdatePathDiskSpaceRequired(szBuf, siCObject->ullInstallSize, dsnComponentDSRequirement);
|
||||
|
||||
if(*szSysPath != '\0')
|
||||
UpdatePathDiskSpaceRequired(szSysPath, siCObject->ullInstallSizeSystem, dsnComponentDSRequirement);
|
||||
|
||||
if(*szTempDir != '\0')
|
||||
UpdatePathDiskSpaceRequired(szTempDir, siCObject->ullInstallSizeArchive, dsnComponentDSRequirement);
|
||||
|
||||
if(*szSysPath != '\0')
|
||||
UpdatePathDiskSpaceRequired(szSysPath, siCObject->ullInstallSizeSystem, dsnComponentDSRequirement);
|
||||
}
|
||||
|
||||
++dwIndex0;
|
||||
|
@ -4371,7 +4339,6 @@ COLORREF DecryptFontColor(LPSTR szColor)
|
|||
|
||||
HRESULT ParseConfigIni(LPSTR lpszCmdLine)
|
||||
{
|
||||
HDC hdc;
|
||||
char szBuf[MAX_BUF];
|
||||
char szMsgInitSetup[MAX_BUF];
|
||||
char szPreviousPath[MAX_BUF];
|
||||
|
@ -4417,14 +4384,8 @@ HRESULT ParseConfigIni(LPSTR lpszCmdLine)
|
|||
SetSetupRunMode(szBuf);
|
||||
ParseCommandLine(lpszCmdLine);
|
||||
|
||||
if((sgProduct.dwMode == NORMAL) || (sgProduct.dwMode == AUTO))
|
||||
{
|
||||
/* show blue background here */
|
||||
ShowWindow(hWndMain, SW_MAXIMIZE);
|
||||
UpdateWindow(hWndMain);
|
||||
}
|
||||
|
||||
/* get product name description */
|
||||
GetPrivateProfileString("General", "Company Name", "", sgProduct.szCompanyName, MAX_BUF, szFileIniConfig);
|
||||
GetPrivateProfileString("General", "Product Name", "", sgProduct.szProductName, MAX_BUF, szFileIniConfig);
|
||||
GetPrivateProfileString("General", "Sub Path", "", sgProduct.szSubPath, MAX_BUF, szFileIniConfig);
|
||||
GetPrivateProfileString("General", "Program Name", "", sgProduct.szProgramName, MAX_BUF, szFileIniConfig);
|
||||
|
@ -4805,10 +4766,6 @@ HRESULT ParseConfigIni(LPSTR lpszCmdLine)
|
|||
siCFXpcomFile.bCleanup = TRUE;
|
||||
}
|
||||
|
||||
hdc = GetDC(hWndMain);
|
||||
|
||||
OutputSetupTitle(hdc);
|
||||
ReleaseDC(hWndMain, hdc);
|
||||
CleanupXpcomFile();
|
||||
ShowMessage(szMsgInitSetup, FALSE);
|
||||
|
||||
|
@ -5349,45 +5306,22 @@ HRESULT DecryptVariable(LPSTR szVariable, DWORD dwVariableSize)
|
|||
AppendBackSlash(szVariable, dwVariableSize);
|
||||
lstrcat(szVariable, sgProduct.szProgramFolderName);
|
||||
}
|
||||
else if(lstrcmpi(szVariable, "Netscape Seamonkey CurrentVersion") == 0)
|
||||
else if(lstrcmpi(szVariable, "Product CurrentVersion") == 0)
|
||||
{
|
||||
char szKey[MAX_BUF];
|
||||
|
||||
lstrcpy(szKey, "Software\\");
|
||||
lstrcat(szKey, sgProduct.szCompanyName);
|
||||
lstrcat(szKey, "\\");
|
||||
lstrcat(szKey, sgProduct.szProductName);
|
||||
|
||||
/* parse for the current Netscape WinReg key */
|
||||
GetWinReg(HKEY_LOCAL_MACHINE, "Software\\Netscape\\Netscape Seamonkey", "CurrentVersion", szBuf, sizeof(szBuf));
|
||||
GetWinReg(HKEY_LOCAL_MACHINE, szKey, "CurrentVersion", szBuf, sizeof(szBuf));
|
||||
|
||||
if(*szBuf == '\0')
|
||||
return(FALSE);
|
||||
|
||||
wsprintf(szVariable, "Software\\Netscape\\Netscape Seamonkey\\%s", szBuf);
|
||||
}
|
||||
else if(lstrcmpi(szVariable, "Netscape 6 CurrentVersion") == 0)
|
||||
{
|
||||
/* parse for the current Netscape WinReg key */
|
||||
GetWinReg(HKEY_LOCAL_MACHINE, "Software\\Netscape\\Netscape 6", "CurrentVersion", szBuf, sizeof(szBuf));
|
||||
|
||||
if(*szBuf == '\0')
|
||||
return(FALSE);
|
||||
|
||||
wsprintf(szVariable, "Software\\Netscape\\Netscape 6\\%s", szBuf);
|
||||
}
|
||||
else if(lstrcmpi(szVariable, "Netscape Netbusiness Messenger CurrentVersion") == 0)
|
||||
{
|
||||
/* parse for the current Netscape WinReg key */
|
||||
GetWinReg(HKEY_LOCAL_MACHINE, "Software\\Netscape\\Netscape Netbusiness Messenger", "CurrentVersion", szBuf, sizeof(szBuf));
|
||||
|
||||
if(*szBuf == '\0')
|
||||
return(FALSE);
|
||||
|
||||
wsprintf(szVariable, "Software\\Netscape\\Netscape Netbusiness Messenger\\%s", szBuf);
|
||||
}
|
||||
else if(lstrcmpi(szVariable, "Mozilla Seamonkey CurrentVersion") == 0)
|
||||
{
|
||||
/* parse for the current Mozilla WinReg key */
|
||||
GetWinReg(HKEY_LOCAL_MACHINE, "Software\\Mozilla\\Mozilla Seamonkey", "CurrentVersion", szBuf, sizeof(szBuf));
|
||||
|
||||
if(*szBuf == '\0')
|
||||
return(FALSE);
|
||||
|
||||
wsprintf(szVariable, "Software\\Mozilla\\Mozilla Seamonkey\\%s", szBuf);
|
||||
wsprintf(szVariable, "Software\\%s\\%s\\%s", sgProduct.szCompanyName, sgProduct.szProductName, szBuf);
|
||||
}
|
||||
else
|
||||
return(FALSE);
|
||||
|
|
|
@ -56,7 +56,7 @@ typedef int PRInt32;
|
|||
#endif
|
||||
|
||||
#define CLASS_NAME_SETUP "Setup"
|
||||
#define CLASS_NAME_SETUP_DLG "SetupDlg"
|
||||
#define CLASS_NAME_SETUP_DLG "MozillaSetupDlg"
|
||||
#define FILE_INI_SETUP "setup.ini"
|
||||
#define FILE_INI_CONFIG "config.ini"
|
||||
#define FILE_IDI_GETCONFIGINI "getconfigini.idi"
|
||||
|
@ -277,6 +277,7 @@ typedef struct setupStruct
|
|||
LPSTR szPath;
|
||||
LPSTR szSubPath;
|
||||
LPSTR szProgramName;
|
||||
LPSTR szCompanyName;
|
||||
LPSTR szProductName;
|
||||
LPSTR szProgramFolderName;
|
||||
LPSTR szProgramFolderPath;
|
||||
|
|
|
@ -368,6 +368,7 @@ ProgressDlgProc(HWND hWndDlg, UINT msg, WPARAM wParam, LPARAM lParam)
|
|||
switch (msg)
|
||||
{
|
||||
case WM_INITDIALOG:
|
||||
DisableSystemMenuItems(hWndDlg, TRUE);
|
||||
CenterWindow(hWndDlg);
|
||||
return FALSE;
|
||||
|
||||
|
|
|
@ -149,6 +149,7 @@
|
|||
#define IDS_STR_DOWNLOAD_SITE 11026
|
||||
#define IDS_STR_SAVE_INSTALLER_FILES 11027
|
||||
#define IDS_MSG_INIT_SETUP 11028
|
||||
#define IDS_STR_MESSAGEBOX_TITLE 11029
|
||||
#define IDC_STATIC -1
|
||||
|
||||
// Next default values for new objects
|
||||
|
@ -156,7 +157,7 @@
|
|||
#ifdef APSTUDIO_INVOKED
|
||||
#ifndef APSTUDIO_READONLY_SYMBOLS
|
||||
#define _APS_NO_MFC 1
|
||||
#define _APS_NEXT_RESOURCE_VALUE 112
|
||||
#define _APS_NEXT_RESOURCE_VALUE 113
|
||||
#define _APS_NEXT_COMMAND_VALUE 40001
|
||||
#define _APS_NEXT_CONTROL_VALUE 1070
|
||||
#define _APS_NEXT_SYMED_VALUE 101
|
||||
|
|
|
@ -53,7 +53,9 @@ END
|
|||
//
|
||||
|
||||
DLG_WELCOME DIALOG DISCARDABLE 51, 56, 315, 205
|
||||
STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
STYLE DS_MODALFRAME | WS_MINIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION |
|
||||
WS_SYSMENU
|
||||
CLASS "MozillaSetupDlg"
|
||||
FONT 8, "MS Sans Serif"
|
||||
BEGIN
|
||||
DEFPUSHBUTTON "&Next >",IDWIZNEXT,188,186,53,14
|
||||
|
@ -68,7 +70,9 @@ BEGIN
|
|||
END
|
||||
|
||||
DLG_SETUP_TYPE DIALOG DISCARDABLE 51, 56, 315, 205
|
||||
STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
STYLE DS_MODALFRAME | WS_MINIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION |
|
||||
WS_SYSMENU
|
||||
CLASS "MozillaSetupDlg"
|
||||
FONT 8, "MS Sans Serif"
|
||||
BEGIN
|
||||
CONTROL "",IDC_RADIO_ST0,"Button",BS_AUTORADIOBUTTON |
|
||||
|
@ -89,7 +93,7 @@ BEGIN
|
|||
DEFPUSHBUTTON "&Next >",IDWIZNEXT,188,186,53,14
|
||||
PUSHBUTTON "&Cancel",IDCANCEL,252,186,53,14
|
||||
LTEXT "",IDC_STATIC_MSG0,101,11,204,17,NOT WS_GROUP
|
||||
CONTROL 108,IDC_STATIC,"Static",SS_BITMAP,11,11,80,160,
|
||||
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
|
||||
|
@ -99,7 +103,9 @@ BEGIN
|
|||
END
|
||||
|
||||
DLG_SELECT_COMPONENTS DIALOG DISCARDABLE 51, 56, 315, 205
|
||||
STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
STYLE DS_MODALFRAME | WS_MINIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION |
|
||||
WS_SYSMENU
|
||||
CLASS "MozillaSetupDlg"
|
||||
FONT 8, "MS Sans Serif"
|
||||
BEGIN
|
||||
DEFPUSHBUTTON "&Next >",IDWIZNEXT,188,186,53,14
|
||||
|
@ -125,7 +131,9 @@ BEGIN
|
|||
END
|
||||
|
||||
DLG_WINDOWS_INTEGRATION DIALOG DISCARDABLE 51, 56, 315, 205
|
||||
STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
STYLE DS_MODALFRAME | WS_MINIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION |
|
||||
WS_SYSMENU
|
||||
CLASS "MozillaSetupDlg"
|
||||
FONT 8, "MS Sans Serif"
|
||||
BEGIN
|
||||
CONTROL "Check0",IDC_CHECK0,"Button",BS_AUTOCHECKBOX | BS_TOP |
|
||||
|
@ -148,7 +156,9 @@ BEGIN
|
|||
END
|
||||
|
||||
DLG_PROGRAM_FOLDER DIALOG DISCARDABLE 51, 56, 315, 205
|
||||
STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
STYLE DS_MODALFRAME | WS_MINIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION |
|
||||
WS_SYSMENU
|
||||
CLASS "MozillaSetupDlg"
|
||||
FONT 8, "MS Sans Serif"
|
||||
BEGIN
|
||||
EDITTEXT IDC_EDIT_PROGRAM_FOLDER,101,64,204,12,ES_AUTOHSCROLL
|
||||
|
@ -167,7 +177,9 @@ BEGIN
|
|||
END
|
||||
|
||||
DLG_LICENSE DIALOG DISCARDABLE 51, 56, 315, 205
|
||||
STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
STYLE DS_MODALFRAME | WS_MINIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION |
|
||||
WS_SYSMENU
|
||||
CLASS "MozillaSetupDlg"
|
||||
FONT 8, "MS Sans Serif"
|
||||
BEGIN
|
||||
DEFPUSHBUTTON "&Accept",IDWIZNEXT,188,186,53,14
|
||||
|
@ -182,7 +194,9 @@ BEGIN
|
|||
END
|
||||
|
||||
DLG_START_INSTALL DIALOG DISCARDABLE 51, 56, 315, 205
|
||||
STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
STYLE DS_MODALFRAME | WS_MINIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION |
|
||||
WS_SYSMENU
|
||||
CLASS "MozillaSetupDlg"
|
||||
FONT 8, "MS Sans Serif"
|
||||
BEGIN
|
||||
EDITTEXT IDC_CURRENT_SETTINGS,101,67,204,106,ES_MULTILINE |
|
||||
|
@ -219,7 +233,9 @@ BEGIN
|
|||
END
|
||||
|
||||
DLG_RESTART DIALOG FIXED IMPURE 133, 69, 226, 110
|
||||
STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION
|
||||
STYLE DS_MODALFRAME | WS_MINIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION |
|
||||
WS_SYSMENU
|
||||
CLASS "MozillaSetupDlg"
|
||||
FONT 8, "MS Sans Serif"
|
||||
BEGIN
|
||||
LTEXT "Setup has finished copying files to your computer. Before you can use the program, you must restart Windows or your computer.\n\n Choose one of the following options and click OK to finish setup.",
|
||||
|
@ -232,14 +248,17 @@ BEGIN
|
|||
END
|
||||
|
||||
DLG_MESSAGE DIALOG DISCARDABLE 0, 0, 236, 34
|
||||
STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE
|
||||
STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION
|
||||
CLASS "MozillaSetupDlg"
|
||||
FONT 8, "MS Sans Serif"
|
||||
BEGIN
|
||||
CTEXT "",IDC_MESSAGE,0,0,236,34,SS_CENTERIMAGE
|
||||
END
|
||||
|
||||
DLG_EXTRACTING DIALOG DISCARDABLE 0, 0, 193, 73
|
||||
STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION
|
||||
STYLE DS_MODALFRAME | WS_MINIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION |
|
||||
WS_SYSMENU
|
||||
CLASS "MozillaSetupDlg"
|
||||
FONT 8, "MS Sans Serif"
|
||||
BEGIN
|
||||
CONTROL "",IDC_GAUGE_FILE,"GaugeFile",0x0,9,52,175,11
|
||||
|
@ -251,14 +270,16 @@ BEGIN
|
|||
END
|
||||
|
||||
DLG_ADVANCED_SETTINGS DIALOG DISCARDABLE 51, 56, 315, 205
|
||||
STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
STYLE DS_MODALFRAME | WS_MINIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION |
|
||||
WS_SYSMENU
|
||||
CLASS "MozillaSetupDlg"
|
||||
FONT 8, "MS Sans Serif"
|
||||
BEGIN
|
||||
EDITTEXT IDC_EDIT_PROXY_SERVER,147,57,152,12,ES_AUTOHSCROLL
|
||||
EDITTEXT IDC_EDIT_PROXY_PORT,147,74,152,12,ES_AUTOHSCROLL
|
||||
DEFPUSHBUTTON "&Ok",IDWIZNEXT,188,186,53,14
|
||||
PUSHBUTTON "&Cancel",IDCANCEL,252,186,53,14
|
||||
CONTROL 108,IDC_STATIC,"Static",SS_BITMAP,11,11,80,160,
|
||||
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
|
||||
|
@ -269,7 +290,9 @@ BEGIN
|
|||
END
|
||||
|
||||
DLG_SELECT_ADDITIONAL_COMPONENTS DIALOG DISCARDABLE 51, 56, 315, 205
|
||||
STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
STYLE DS_MODALFRAME | WS_MINIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION |
|
||||
WS_SYSMENU
|
||||
CLASS "MozillaSetupDlg"
|
||||
FONT 8, "MS Sans Serif"
|
||||
BEGIN
|
||||
PUSHBUTTON "< &Back",IDWIZBACK,134,186,53,14
|
||||
|
@ -295,7 +318,7 @@ BEGIN
|
|||
END
|
||||
|
||||
DLG_UPGRADE DIALOG DISCARDABLE 51, 56, 310, 166
|
||||
STYLE DS_MODALFRAME | WS_MINIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION
|
||||
STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION
|
||||
FONT 8, "MS Sans Serif"
|
||||
BEGIN
|
||||
LTEXT "",IDC_MESSAGE0,17,13,276,31,NOT WS_GROUP
|
||||
|
@ -308,7 +331,9 @@ BEGIN
|
|||
END
|
||||
|
||||
DLG_DOWNLOAD_OPTIONS DIALOG DISCARDABLE 51, 56, 315, 205
|
||||
STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
STYLE DS_MODALFRAME | WS_MINIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION |
|
||||
WS_SYSMENU
|
||||
CLASS "MozillaSetupDlg"
|
||||
FONT 8, "MS Sans Serif"
|
||||
BEGIN
|
||||
LTEXT "",IDC_MESSAGE1,101,90,204,33,NOT WS_GROUP
|
||||
|
@ -444,6 +469,7 @@ BEGIN
|
|||
IDS_STR_DOWNLOAD_SITE "Download Site:"
|
||||
IDS_STR_SAVE_INSTALLER_FILES "Save downloaded and Setup program files to:"
|
||||
IDS_MSG_INIT_SETUP "Initializing Setup, please wait..."
|
||||
IDS_STR_MESSAGEBOX_TITLE "%s Setup"
|
||||
END
|
||||
|
||||
#endif // English (U.S.) resources
|
||||
|
|
|
@ -698,6 +698,8 @@ HRESULT InitUninstallGeneral()
|
|||
return(1);
|
||||
if((ugUninstall.szLogFilename = NS_GlobalAlloc(MAX_BUF)) == NULL)
|
||||
return(1);
|
||||
if((ugUninstall.szCompanyName = NS_GlobalAlloc(MAX_BUF)) == NULL)
|
||||
return(1);
|
||||
if((ugUninstall.szProductName = NS_GlobalAlloc(MAX_BUF)) == NULL)
|
||||
return(1);
|
||||
if((ugUninstall.szWrKey = NS_GlobalAlloc(MAX_BUF)) == NULL)
|
||||
|
@ -725,6 +727,7 @@ void DeInitUninstallGeneral()
|
|||
FreeMemory(&(ugUninstall.szUninstallFilename));
|
||||
FreeMemory(&(ugUninstall.szUserAgent));
|
||||
FreeMemory(&(ugUninstall.szWrKey));
|
||||
FreeMemory(&(ugUninstall.szCompanyName));
|
||||
FreeMemory(&(ugUninstall.szProductName));
|
||||
FreeMemory(&(ugUninstall.szWrMainKey));
|
||||
}
|
||||
|
@ -1073,24 +1076,26 @@ HRESULT GetUninstallLogPath()
|
|||
char szWindowsUninstallKey[MAX_BUF];
|
||||
char szErrorMsg[MAX_BUF];
|
||||
char szEUninstallLogFolder[MAX_BUF];
|
||||
char szRootKey[MAX_BUF];
|
||||
HKEY hkRoot;
|
||||
|
||||
if(*ugUninstall.szUserAgent != '\0')
|
||||
{
|
||||
hkRoot = ugUninstall.hWrMainRoot;
|
||||
lstrcpy(szKey, ugUninstall.szWrMainKey);
|
||||
AppendBackSlash(szKey, sizeof(szKey));
|
||||
lstrcat(szKey, ugUninstall.szUserAgent);
|
||||
AppendBackSlash(szKey, sizeof(szKey));
|
||||
lstrcat(szKey, "Uninstall");
|
||||
|
||||
GetWinReg(ugUninstall.hWrMainRoot, szKey, "Uninstall Log Folder", szLogFolder, sizeof(szLogFolder));
|
||||
GetWinReg(ugUninstall.hWrMainRoot, szKey, "Description", ugUninstall.szUninstallKeyDescription, sizeof(szLogFolder));
|
||||
}
|
||||
else
|
||||
{
|
||||
GetWinReg(ugUninstall.hWrRoot, ugUninstall.szWrKey, "Uninstall Log Folder", szLogFolder, sizeof(szLogFolder));
|
||||
GetWinReg(ugUninstall.hWrRoot, ugUninstall.szWrKey, "Description", ugUninstall.szUninstallKeyDescription, sizeof(szLogFolder));
|
||||
hkRoot = ugUninstall.hWrRoot;
|
||||
strcpy(szKey, ugUninstall.szWrKey);
|
||||
}
|
||||
|
||||
GetWinReg(hkRoot, szKey, "Uninstall Log Folder", szLogFolder, sizeof(szLogFolder));
|
||||
GetWinReg(hkRoot, szKey, "Description", ugUninstall.szUninstallKeyDescription, sizeof(szLogFolder));
|
||||
lstrcpy(szWindowsUninstallKey, "Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\");
|
||||
lstrcat(szWindowsUninstallKey, ugUninstall.szUninstallKeyDescription);
|
||||
GetWinReg(HKEY_LOCAL_MACHINE, szWindowsUninstallKey, "DisplayName", ugUninstall.szDescription, sizeof(szLogFolder));
|
||||
|
@ -1100,7 +1105,18 @@ HRESULT GetUninstallLogPath()
|
|||
if(NS_LoadString(hInst, IDS_ERROR_UNINSTALL_LOG_FOLDER, szEUninstallLogFolder, MAX_BUF) == WIZ_OK)
|
||||
{
|
||||
lstrcpy(szBuf, "\n\n ");
|
||||
lstrcat(szBuf, szLogFolder);
|
||||
|
||||
if(*szLogFolder == '\0')
|
||||
{
|
||||
GetStringRootKey(hkRoot, szRootKey, sizeof(szRootKey));
|
||||
lstrcat(szBuf, szRootKey);
|
||||
lstrcat(szBuf, "\\");
|
||||
lstrcat(szBuf, szKey);
|
||||
lstrcat(szBuf, "\\Uninstall Log Folder");
|
||||
}
|
||||
else
|
||||
lstrcat(szBuf, szLogFolder);
|
||||
|
||||
lstrcat(szBuf, "\n");
|
||||
wsprintf(szErrorMsg, szEUninstallLogFolder, szBuf);
|
||||
PrintError(szErrorMsg, ERROR_CODE_SHOW);
|
||||
|
@ -1134,6 +1150,7 @@ HRESULT ParseUninstallIni(LPSTR lpszCmdLine)
|
|||
ParseCommandLine(lpszCmdLine);
|
||||
|
||||
/* get product name description */
|
||||
GetPrivateProfileString("General", "Company Name", "", ugUninstall.szCompanyName, MAX_BUF, szFileIniUninstall);
|
||||
GetPrivateProfileString("General", "Product Name", "", ugUninstall.szProductName, MAX_BUF, szFileIniUninstall);
|
||||
GetPrivateProfileString("General", "Root Key", "", szBuf, MAX_BUF, szFileIniUninstall);
|
||||
ugUninstall.hWrRoot = ParseRootKey(szBuf);
|
||||
|
@ -1144,6 +1161,9 @@ HRESULT ParseUninstallIni(LPSTR lpszCmdLine)
|
|||
{
|
||||
DecryptString(ugUninstall.szWrKey, szKeyCrypted);
|
||||
}
|
||||
else
|
||||
strcpy(ugUninstall.szWrKey, szKeyCrypted);
|
||||
|
||||
RemoveBackSlash(ugUninstall.szWrKey);
|
||||
|
||||
GetPrivateProfileString("General", "Main Root Key", "", szBuf, MAX_BUF, szFileIniUninstall);
|
||||
|
@ -1155,6 +1175,9 @@ HRESULT ParseUninstallIni(LPSTR lpszCmdLine)
|
|||
{
|
||||
DecryptString(ugUninstall.szWrMainKey, szKeyCrypted);
|
||||
}
|
||||
else
|
||||
strcpy(ugUninstall.szWrMainKey, szKeyCrypted);
|
||||
|
||||
RemoveBackSlash(ugUninstall.szWrMainKey);
|
||||
|
||||
GetPrivateProfileString("General", "Uninstall Filename", "", ugUninstall.szUninstallFilename, MAX_BUF, szFileIniUninstall);
|
||||
|
@ -1480,57 +1503,33 @@ HRESULT DecryptVariable(LPSTR szVariable, DWORD dwVariableSize)
|
|||
{
|
||||
lstrcpy(szVariable, szUninstallDir);
|
||||
}
|
||||
else if(lstrcmpi(szVariable, "Netscape Seamonkey CurrentVersion") == 0)
|
||||
else if(lstrcmpi(szVariable, "Product CurrentVersion") == 0)
|
||||
{
|
||||
char szKey[MAX_BUF];
|
||||
|
||||
lstrcpy(szKey, "Software\\");
|
||||
lstrcat(szKey, ugUninstall.szCompanyName);
|
||||
lstrcat(szKey, "\\");
|
||||
lstrcat(szKey, ugUninstall.szProductName);
|
||||
|
||||
/* parse for the current Netscape WinReg key */
|
||||
GetWinReg(HKEY_LOCAL_MACHINE, "Software\\Netscape\\Netscape Seamonkey", "CurrentVersion", szBuf, sizeof(szBuf));
|
||||
GetWinReg(HKEY_LOCAL_MACHINE, szKey, "CurrentVersion", szBuf, sizeof(szBuf));
|
||||
|
||||
if(*szBuf == '\0')
|
||||
return(FALSE);
|
||||
|
||||
wsprintf(szVariable, "Software\\Netscape\\Netscape Seamonkey\\%s", szBuf);
|
||||
wsprintf(szVariable, "Software\\%s\\%s\\%s", ugUninstall.szCompanyName, ugUninstall.szProductName, szBuf);
|
||||
}
|
||||
else if(lstrcmpi(szVariable, "WinRegKey Netscape 6") == 0)
|
||||
else if(lstrcmpi(szVariable, "Product WinRegKey") == 0)
|
||||
{
|
||||
lstrcpy(szVariable, "Software\\Netscape\\Netscape 6");
|
||||
}
|
||||
else if(lstrcmpi(szVariable, "Netscape 6 CurrentVersion") == 0)
|
||||
{
|
||||
/* parse for the current Netscape WinReg key */
|
||||
GetWinReg(HKEY_LOCAL_MACHINE, "Software\\Netscape\\Netscape 6", "CurrentVersion", szBuf, sizeof(szBuf));
|
||||
char szKey[MAX_BUF];
|
||||
|
||||
if(*szBuf == '\0')
|
||||
return(FALSE);
|
||||
lstrcpy(szKey, "Software\\");
|
||||
lstrcat(szKey, ugUninstall.szCompanyName);
|
||||
lstrcat(szKey, "\\");
|
||||
lstrcat(szKey, ugUninstall.szProductName);
|
||||
|
||||
wsprintf(szVariable, "Software\\Netscape\\Netscape 6\\%s", szBuf);
|
||||
}
|
||||
else if(lstrcmpi(szVariable, "WinRegKey Netscape Netbusiness Messenger") == 0)
|
||||
{
|
||||
lstrcpy(szVariable, "Software\\Netscape\\Netscape Netbusiness Messenger");
|
||||
}
|
||||
else if(lstrcmpi(szVariable, "Netscape Netbusiness Messenger CurrentVersion") == 0)
|
||||
{
|
||||
/* parse for the current Netscape WinReg key */
|
||||
GetWinReg(HKEY_LOCAL_MACHINE, "Software\\Netscape\\Netscape Netbusiness Messenger", "CurrentVersion", szBuf, sizeof(szBuf));
|
||||
|
||||
if(*szBuf == '\0')
|
||||
return(FALSE);
|
||||
|
||||
wsprintf(szVariable, "Software\\Netscape\\Netscape Netbusiness Messenger\\%s", szBuf);
|
||||
}
|
||||
else if(lstrcmpi(szVariable, "WinRegKey Mozilla Seamonkey") == 0)
|
||||
{
|
||||
lstrcpy(szVariable, "Software\\Mozilla\\Mozilla Seamonkey");
|
||||
}
|
||||
else if(lstrcmpi(szVariable, "Mozilla Seamonkey CurrentVersion") == 0)
|
||||
{
|
||||
/* parse for the current Mozilla WinReg key */
|
||||
GetWinReg(HKEY_LOCAL_MACHINE, "Software\\Mozilla\\Mozilla Seamonkey", "CurrentVersion", szBuf, sizeof(szBuf));
|
||||
|
||||
if(*szBuf == '\0')
|
||||
return(FALSE);
|
||||
|
||||
wsprintf(szVariable, "Software\\Mozilla\\Mozilla Seamonkey\\%s", szBuf);
|
||||
wsprintf(szVariable, "Software\\%s\\%s", ugUninstall.szCompanyName, ugUninstall.szProductName);
|
||||
}
|
||||
else
|
||||
return(FALSE);
|
||||
|
|
|
@ -273,3 +273,59 @@ HKEY ParseRootKey(LPSTR szRootKey)
|
|||
|
||||
return(hkRootKey);
|
||||
}
|
||||
|
||||
LPSTR GetStringRootKey(HKEY hkRootKey, LPSTR szString, DWORD dwStringSize)
|
||||
{
|
||||
if(hkRootKey == HKEY_CURRENT_CONFIG)
|
||||
{
|
||||
if(sizeof("HKEY_CURRENT_CONFIG") <= dwStringSize)
|
||||
lstrcpy(szString, "HKEY_CURRENT_CONFIG");
|
||||
else
|
||||
return(NULL);
|
||||
}
|
||||
else if(hkRootKey == HKEY_CURRENT_USER)
|
||||
{
|
||||
if(sizeof("HKEY_CURRENT_USER") <= dwStringSize)
|
||||
lstrcpy(szString, "HKEY_CURRENT_USER");
|
||||
else
|
||||
return(NULL);
|
||||
}
|
||||
else if(hkRootKey == HKEY_LOCAL_MACHINE)
|
||||
{
|
||||
if(sizeof("HKEY_LOCAL_MACHINE") <= dwStringSize)
|
||||
lstrcpy(szString, "HKEY_LOCAL_MACHINE");
|
||||
else
|
||||
return(NULL);
|
||||
}
|
||||
else if(hkRootKey == HKEY_USERS)
|
||||
{
|
||||
if(sizeof("HKEY_USERS") <= dwStringSize)
|
||||
lstrcpy(szString, "HKEY_USERS");
|
||||
else
|
||||
return(NULL);
|
||||
}
|
||||
else if(hkRootKey == HKEY_PERFORMANCE_DATA)
|
||||
{
|
||||
if(sizeof("HKEY_PERFORMANCE_DATA") <= dwStringSize)
|
||||
lstrcpy(szString, "HKEY_PERFORMANCE_DATA");
|
||||
else
|
||||
return(NULL);
|
||||
}
|
||||
else if(hkRootKey == HKEY_DYN_DATA)
|
||||
{
|
||||
if(sizeof("HKEY_DYN_DATA") <= dwStringSize)
|
||||
lstrcpy(szString, "HKEY_DYN_DATA");
|
||||
else
|
||||
return(NULL);
|
||||
}
|
||||
else
|
||||
{
|
||||
if(sizeof("HKEY_CLASSES_ROOT") <= dwStringSize)
|
||||
lstrcpy(szString, "HKEY_CLASSES_ROOT");
|
||||
else
|
||||
return(NULL);
|
||||
}
|
||||
|
||||
return(szString);
|
||||
}
|
||||
|
||||
|
|
|
@ -34,5 +34,6 @@ HRESULT FileDelete(LPSTR szDestination);
|
|||
HRESULT DirectoryRemove(LPSTR szDestination, BOOL bRemoveSubdirs);
|
||||
HRESULT CreateDirectoriesAll(char* szPath);
|
||||
HKEY ParseRootKey(LPSTR szRootKey);
|
||||
LPSTR GetStringRootKey(HKEY hkRootKey, LPSTR szString, DWORD dwStringSize);
|
||||
|
||||
#endif
|
||||
|
|
|
@ -110,6 +110,7 @@ typedef struct uninstallStruct
|
|||
DWORD dwMode;
|
||||
LPSTR szLogPath;
|
||||
LPSTR szLogFilename;
|
||||
LPSTR szCompanyName;
|
||||
LPSTR szProductName;
|
||||
LPSTR szDescription;
|
||||
LPSTR szUninstallKeyDescription;
|
||||
|
|
Загрузка…
Ссылка в новой задаче