OS/2 Install wizard work
This commit is contained in:
mkaply%us.ibm.com 2002-08-21 00:27:58 +00:00
Родитель 2b3c8e49d0
Коммит 6dc6cd4471
41 изменённых файлов: 5852 добавлений и 5140 удалений

Просмотреть файл

@ -48,9 +48,12 @@ LDFLAGS += /PM:PM
libs:: $(PROGRAM)
$(INSTALL) $(PROGRAM) $(DIST)/install
$(INSTALL) $(RESFILE) $(DIST)/install
install:: $(PROGRAM)
$(SYSINSTALL) $(IFLAGS2) $(PROGRAM) $(DESTDIR)$(mozappdir)/install
$(SYSINSTALL) $(IFLAGS2) $(RESFILE) $(DESTDIR)$(mozappdir)/install
clean clobber realclean clobber_all::
$(RM) $(DIST)/install/$(PROGRAM)
$(RM) $(DIST)/install/$(RESFILE)

Просмотреть файл

@ -0,0 +1 @@
Makefile

Просмотреть файл

@ -1,61 +1,80 @@
#
# The contents of this file are subject to the Netscape Public
# The contents of this file are subject to the Mozilla Public
# License Version 1.1 (the "License"); you may not use this file
# except in compliance with the License. You may obtain a copy of
# the License at http://www.mozilla.org/NPL/
#
# the License at http://www.mozilla.org/MPL/
#
# Software distributed under the License is distributed on an "AS
# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
# implied. See the License for the specific language governing
# rights and limitations under the License.
#
# The Original Code is Mozilla Communicator client code,
# released March 31, 1998.
#
# The Initial Developer of the Original Code is Netscape Communications
# Corporation. Portions created by Netscape are
# Copyright (C) 1999 Netscape Communications Corporation. All
#
# The Original Code is mozilla.org code
#
# The Initial Developer of the Original Code is Netscape
# Communications Corporation. Portions created by Netscape are
# Copyright (C) 2001 Netscape Communications Corporation. All
# Rights Reserved.
#
# Contributor(s):
#
# Contributor(s):
# Sean Su <ssu@netscape.com>
DEPTH=../../../..
DEPTH = ../../../..
topsrcdir = @top_srcdir@
srcdir = @srcdir@
VPATH = @srcdir@
MODULE = setup
PROGRAM = $(MODULE).exe
RESFILE = $(MODULE).res
CSRCS = \
dialogs.c \
extra.c \
ifuncns.c \
setup.c \
xpi.c \
logging.c \
$(NULL)
CPPSRCS = \
shortcut.cpp \
xpnetHook.cpp \
nsEscape.cpp \
$(NULL)
LIBS= \
$(DIST)/lib/nsreg_s.lib \
$(DIST)/lib/jar_s.lib \
$(DIST)/lib/zlib_s.lib \
$(DIST)/lib/xpnet_s.lib \
$(NULL)
#LLFLAGS= /NODEFAULTLIB libc.lib libcd.lib
include $(DEPTH)/config/autoconf.mk
PROGRAM = setup$(BIN_SUFFIX)
RESFILE = setup.res
REQUIRES = \
setuprsc \
xpnet \
$(NULL)
EXTRA_DSO_LIBS = \
mozregsa_s \
jar50_s \
mozz_s \
xpnet_s \
$(NULL)
USE_NON_MT_LIBS = 1
CSRCS = \
setup.c \
extra.c \
ifuncns.c \
logging.c \
xpi.c \
dialogs.c
CPPSRCS = \
nsEscape.cpp \
nsINIParser.cpp \
$(NULL)
# xpnetHook.cpp \
# shortcut.cpp \
LIBS = $(EXTRA_DSO_LIBS)
LOCAL_INCLUDES = -I$(srcdir)/../uninstall
NO_DIST_INSTALL = 1
include $(topsrcdir)/config/rules.mk
LDFLAGS += /PM:PM
libs:: $(PROGRAM)
$(MAKE_INSTALL) $(PROGRAM) $(DIST)/install
$(INSTALL) $(PROGRAM) $(DIST)/install
install:: $(PROGRAM)
$(INSTALL) $(PROGRAM) $(DESTDIR)$(mozappdir)/install
clean clobber realclean clobber_all::
$(RM) $(DIST)/install/$(PROGRAM)

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Просмотреть файл

@ -20,109 +20,50 @@
*
* Contributor(s):
* Sean Su <ssu@netscape.com>
* IBM Corp.
*/
#ifndef _DIALOGS_H_
#define _DIALOGS_H_
#define BTN_UNCHECKED 0
#define BTN_CHECKED 1
#define BTN_INDETERMINATE 2
#ifndef OPENFILENAME
/* OPENFILENAME struct flags
*/
#define OFN_READONLY 0x00000001
#define OFN_OVERWRITEPROMPT 0x00000002
#define OFN_HIDEREADONLY 0x00000004
#define OFN_NOCHANGEDIR 0x00000008
#define OFN_SHOWHELP 0x00000010
#define OFN_ENABLEHOOK 0x00000020
#define OFN_ENABLETEMPLATE 0x00000040
#define OFN_ENABLETEMPLATEHANDLE 0x00000080
#define OFN_NOVALIDATE 0x00000100
#define OFN_ALLOWMULTISELECT 0x00000200
#define OFN_EXTENSIONDIFFERENT 0x00000400
#define OFN_PATHMUSTEXIST 0x00000800
#define OFN_FILEMUSTEXIST 0x00001000
#define OFN_CREATEPROMPT 0x00002000
#define OFN_SHAREAWARE 0x00004000
#define OFN_NOREADONLYRETURN 0x00008000
#define OFN_NOTESTFILECREATE 0x00010000
#define OFN_NONETWORKBUTTON 0x00020000
#define OFN_NOLONGNAMES 0x00040000
typedef struct _tagOFN {
ULONG lStructSize;
HWND hwndOwner;
HMODULE hInstance;
PCSZ lpstrFilter;
PSZ lpstrCustomFilter;
ULONG nMaxCustFilter;
ULONG nFilterIndex;
PSZ lpstrFile;
ULONG nMaxFile;
PSZ lpstrFileTitle;
ULONG nMaxFileTitle;
PCSZ lpstrInitialDir;
PCSZ lpstrTitle;
ULONG Flags;
USHORT nFileOffset;
USHORT nFileExtension;
PCSZ lpstrDefExt;
ULONG lCustData;
PFN lpfnHook;
PCSZ lpTemplateName;
} OPENFILENAME, *POPENFILENAME, *LPOPENFILENAME;
//extern "C" BOOL APIENTRY DaxOpenSave(BOOL, LONG *, LPOPENFILENAME, PFNWP);
#endif
MRESULT EXPENTRY DlgProcMain(HWND hWnd, ULONG msg, MPARAM wParam, MPARAM lParam);
MRESULT EXPENTRY DlgProcWelcome(HWND hDlg, ULONG msg, MPARAM wParam, LONG lParam);
MRESULT EXPENTRY DlgProcLicense(HWND hDlg, ULONG msg, MPARAM wParam, LONG lParam);
MRESULT EXPENTRY DlgProcSetupType(HWND hDlg, ULONG msg, MPARAM wParam, LONG lParam);
MRESULT EXPENTRY DlgProcSelectComponents(HWND hDlg, ULONG msg, MPARAM wParam, LONG lParam);
MRESULT EXPENTRY DlgProcSelectAdditionalComponents(HWND hDlg, ULONG msg, MPARAM wParam, LONG lParam);
MRESULT EXPENTRY DlgProcWindowsIntegration(HWND hDlg, ULONG msg, MPARAM wParam, LONG lParam);
MRESULT EXPENTRY DlgProcProgramFolder(HWND hDlg, ULONG msg, MPARAM wParam, LONG lParam);
MRESULT EXPENTRY DlgProcDownloadOptions(HWND hDlg, ULONG msg, MPARAM wParam, LONG lParam);
MRESULT EXPENTRY DlgProcAdvancedSettings(HWND hDlg, ULONG msg, MPARAM wParam, LONG lParam);
MRESULT EXPENTRY DlgProcSiteSelector(HWND hDlg, ULONG msg, MPARAM wParam, LONG lParam);
MRESULT EXPENTRY DlgProcStartInstall(HWND hDlg, ULONG msg, MPARAM wParam, LONG lParam);
MRESULT EXPENTRY DlgProcReboot(HWND hDlg, ULONG msg, MPARAM wParam, LONG lParam);
MRESULT EXPENTRY DlgProcMessage(HWND hDlg, ULONG msg, MPARAM wParam, LONG lParam);
LRESULT CALLBACK DlgProcMain(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam);
MRESULT EXPENTRY DlgProcWelcome(HWND hDlg, ULONG msg, MPARAM mp1, MPARAM mp2);
MRESULT EXPENTRY DlgProcLicense(HWND hDlg, ULONG msg, MPARAM mp1, MPARAM mp2);
MRESULT EXPENTRY DlgProcSetupType(HWND hDlg, ULONG msg, MPARAM mp1, MPARAM mp2);
MRESULT EXPENTRY DlgProcSelectComponents(HWND hDlg, ULONG msg, MPARAM mp1, MPARAM mp2);
MRESULT EXPENTRY DlgProcSelectAdditionalComponents(HWND hDlg, ULONG msg, MPARAM mp1, MPARAM mp2);
LRESULT CALLBACK DlgProcWindowsIntegration(HWND hDlg, UINT msg, WPARAM wParam, LONG lParam);
LRESULT CALLBACK DlgProcProgramFolder(HWND hDlg, UINT msg, WPARAM wParam, LONG lParam);
MRESULT EXPENTRY DlgProcAdditionalOptions(HWND hDlg, ULONG msg, MPARAM mp1, MPARAM mp2);
MRESULT EXPENTRY DlgProcAdvancedSettings(HWND hDlg, ULONG msg, MPARAM mp1, MPARAM mp2);
LRESULT CALLBACK DlgProcQuickLaunch(HWND hDlg, UINT msg, WPARAM wParam, LONG lParam);
LRESULT CALLBACK DlgProcSiteSelector(HWND hDlg, UINT msg, WPARAM wParam, LONG lParam);
MRESULT EXPENTRY DlgProcStartInstall(HWND hDlg, ULONG msg, MPARAM mp1, MPARAM mp2);
MRESULT CALLBACK DlgProcReboot(HWND hDlg, ULONG msg, MPARAM mp1, MPARAM mp2);
MRESULT EXPENTRY DlgProcMessage(HWND hDlg, ULONG msg, MPARAM mp1, MPARAM mp2);
MRESULT EXPENTRY NewListBoxWndProc( HWND, ULONG, MPARAM, MPARAM);
MRESULT EXPENTRY DlgProcUpgrade(HWND hDlg, ULONG msg, MPARAM wParam, LONG lParam);
LRESULT CALLBACK DlgProcUpgrade(HWND hDlg, UINT msg, WPARAM wParam, LONG lParam);
void ToggleCheck(HWND hwndListBox, ULONG dwIndex, ULONG dwACFlag);
void ToggleCheck(HWND hwndListBox, DWORD dwIndex, DWORD dwACFlag);
BOOL AskCancelDlg(HWND hDlg);
void lbAddItem(HWND hList, siC *siCComponent);
HWND InstantiateDialog(HWND hParent, ULONG dwDlgID, PSZ szTitle, PFNWP wpDlgProc);
void DlgSequenceNext(void);
void DlgSequencePrev(void);
HWND InstantiateDialog(HWND hParent, ULONG ulDlgID, PSZ szTitle, PFNWP pfnwpDlgProc);
void DlgSequence(int iDirection);
void PaintGradientShade(HWND hWnd, HDC hdc);
BOOL BrowseForDirectory(HWND hDlg, char *szCurrDir);
BOOL GetTextExtentPoint32(HPS aPS, const char* aString, int aLength, PSIZEL aSizeL);
MRESULT EXPENTRY BrowseHookProc(HWND hwnd, ULONG message, MPARAM wParam, MPARAM lParam);
LRESULT CALLBACK BrowseHookProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam);
void ShowMessage(PSZ szMessage, BOOL bShow);
void DrawCheck(POWNERITEM lpdis, ULONG dwACFlag);
void DrawLBText(LPDRAWITEMSTRUCT lpdis, DWORD dwACFlag);
void DrawCheck(LPDRAWITEMSTRUCT lpdis, DWORD dwACFlag);
void InvalidateLBCheckbox(HWND hwndListBox);
void ProcessWindowsMessages(void);
BOOL CheckWizardStateCustom(ULONG dwDefault);
PSZ GetStartInstallMessage(void);
void AppendStringWOAmpersand(PSZ szInputString, ULONG dwInputStringSize, PSZ szString);
void TruncateString(HWND hWnd, PSZ szInPath, PSZ szOutPath, ULONG dwOutPathBufSize);
void SaveDownloadOptions(HWND hDlg, HWND hwndCBSiteSelector);
PFNWP SubclassWindow( HWND hWnd, PFNWP NewWndProc);
MRESULT EXPENTRY ListBoxBrowseWndProc(HWND hWnd, ULONG uMsg, MPARAM wParam, MPARAM lParam);
LPSTR GetStartInstallMessage(void);
void AppendStringWOTilde(LPSTR szInputString, DWORD dwInputStringSize, LPSTR szString);
void TruncateString(HWND hWnd, LPSTR szInPath, LPSTR szOutPath, DWORD dwOutPathBufSize);
void SaveAdditionalOptions(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);
BOOL ExtTextOut(HPS aPS, int X, int Y, UINT fuOptions, const RECTL* lprc,
const char* aString, unsigned int aLength, const int* pDx);
PSZ myGetSysFont();
void CommitInstall(void);
#endif /* _DIALOGS_H_ */

Просмотреть файл

@ -20,7 +20,6 @@
*
* Contributor(s):
* Sean Su <ssu@netscape.com>
* IBM Corp.
*/
#ifndef _EXTERN_H_
@ -29,41 +28,39 @@
#include "setup.h"
/* external global variables */
extern HOBJECT hInst;
extern HOBJECT hSetupRscInst;
extern HOBJECT hSDInst;
extern HOBJECT hXPIStubInst;
extern HINSTANCE hInst;
extern HINSTANCE hSetupRscInst;
extern HINSTANCE hSDInst;
extern HINSTANCE hXPIStubInst;
extern HBITMAP hbmpBoxChecked;
extern HBITMAP hbmpBoxCheckedDisabled;
extern HBITMAP hbmpBoxUnChecked;
extern LHANDLE hAccelTable;
extern HWND hDlgCurrent;
extern HWND hDlgMessage;
extern HWND hWndMain;
extern PSZ szEGlobalAlloc;
extern PSZ szEStringLoad;
extern PSZ szEDllLoad;
extern PSZ szEStringNull;
extern PSZ szTempSetupPath;
extern LPSTR szEGlobalAlloc;
extern LPSTR szEStringLoad;
extern LPSTR szEDllLoad;
extern LPSTR szEStringNull;
extern LPSTR szTempSetupPath;
extern PSZ szSetupDir;
extern PSZ szTempDir;
extern PSZ szOSTempDir;
extern PSZ szFileIniConfig;
extern PSZ szFileIniInstall;
extern LPSTR szSetupDir;
extern LPSTR szTempDir;
extern LPSTR szOSTempDir;
extern LPSTR szFileIniConfig;
extern LPSTR szFileIniInstall;
extern PSZ szSiteSelectorDescription;
extern LPSTR szSiteSelectorDescription;
extern ULONG dwWizardState;
extern ULONG dwSetupType;
extern ULONG ulWizardState;
extern ULONG ulSetupType;
extern ULONG dwTempSetupType;
extern ULONG gdwUpgradeValue;
extern ULONG gdwSiteSelectorStatus;
extern ULONG ulTempSetupType;
extern ULONG gulUpgradeValue;
extern ULONG gulSiteSelectorStatus;
extern BOOL bSDUserCanceled;
extern BOOL bIdiArchivesExists;
@ -74,17 +71,19 @@ extern BOOL gbPreviousUnfinishedDownload;
extern BOOL gbIgnoreRunAppX;
extern BOOL gbIgnoreProgramFolderX;
extern BOOL gbRestrictedAccess;
extern BOOL gbDownloadTriggered;
extern setupGen sgProduct;
extern diS diSetup;
extern diW diWelcome;
extern diQL diQuickLaunch;
extern diL diLicense;
extern diST diSetupType;
extern diSC diSelectComponents;
extern diSC diSelectAdditionalComponents;
extern diWI diWindowsIntegration;
extern diPF diProgramFolder;
extern diDO diDownloadOptions;
extern diDO diAdditionalOptions;
extern diAS diAdvancedSettings;
extern diSI diStartInstall;
extern diD diDownload;

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Просмотреть файл

@ -20,41 +20,39 @@
*
* Contributor(s):
* Sean Su <ssu@netscape.com>
* IBM Corp.
*/
#ifndef _EXTRA_H_
#define _EXTRA_H_
typedef __int64 ULARGE_INTEGER;
BOOL InitDialogClass(HOBJECT hInstance, HOBJECT hSetupRscInst);
BOOL InitApplication(HOBJECT hInstance, HOBJECT hSetupRscInst);
BOOL InitInstance(HOBJECT hInstance, ULONG dwCmdShow);
void PrintError(PSZ szMsg, ULONG dwErrorCodeSH);
BOOL InitDialogClass(HMODULE hInstance, HMODULE hSetupRscInst);
BOOL InitApplication(HMODULE hInstance, HMODULE hSetupRscInst);
BOOL InitInstance(HMODULE hInstance);
void PrintError(PSZ szMsg, ULONG ulErrorCodeSH);
void FreeMemory(void **vPointer);
void *NS_GlobalReAlloc(HPOINTER hgMemory,
ULONG dwMemoryBufSize,
ULONG dwNewSize);
void *NS_GlobalAlloc(ULONG dwMaxBuf);
APIRET Initialize(HOBJECT hInstance);
APIRET NS_LoadStringAlloc(LHANDLE hInstance, ULONG dwID, PSZ *szStringBuf, ULONG dwStringBuf);
APIRET NS_LoadString(LHANDLE hInstance, ULONG dwID, PSZ szStringBuf, ULONG dwStringBuf);
APIRET WinSpawn(PSZ szClientName, PSZ szParameters, PSZ szCurrentDir, int iShowCmd, BOOL bWait);
APIRET ParseConfigIni(PSZ lpszCmdLine);
APIRET ParseInstallIni();
APIRET DecryptString(PSZ szOutputStr, PSZ szInputStr);
APIRET DecryptVariable(PSZ szVariable, ULONG dwVariableSize);
APIRET InitSetupGeneral(void);
APIRET InitDlgWelcome(diW *diDialog);
APIRET InitDlgLicense(diL *diDialog);
APIRET InitDlgSetupType(diST *diDialog);
APIRET InitDlgSelectComponents(diSC *diDialog, ULONG dwSM);
APIRET InitDlgWindowsIntegration(diWI *diDialog);
APIRET InitDlgProgramFolder(diPF *diDialog);
APIRET InitDlgStartInstall(diSI *diDialog);
APIRET InitDlgSiteSelector(diAS *diDialog);
APIRET InitSDObject(void);
void *NS_GlobalReAlloc(void **hgMemory,
DWORD dwMemoryBufSize,
DWORD dwNewSize);
void *NS_GlobalAlloc(DWORD dwMaxBuf);
HRESULT Initialize(HMODULE hInstance, PSZ szAppName);
HRESULT NS_LoadStringAlloc(HMODULE hInstance, ULONG ulID, PSZ *szStringBuf, ULONG ulStringBuf);
HRESULT NS_LoadString(HMODULE hInstance, ULONG ulID, PSZ szStringBuf, ULONG ulStringBuf);
HRESULT WinSpawn(LPSTR szClientName, LPSTR szParameters, LPSTR szCurrentDir, int iShowCmd, BOOL bWait);
HRESULT ParseConfigIni(int argc, char *argv[]);
HRESULT ParseInstallIni();
HRESULT DecryptString(LPSTR szOutputStr, LPSTR szInputStr);
HRESULT DecryptVariable(LPSTR szVariable, DWORD dwVariableSize);
HRESULT InitSetupGeneral(void);
HRESULT InitDlgWelcome(diW *diDialog);
HRESULT InitDlgLicense(diL *diDialog);
HRESULT InitDlgQuickLaunch(diQL *diDialog);
HRESULT InitDlgSetupType(diST *diDialog);
HRESULT InitDlgSelectComponents(diSC *diDialog, DWORD dwSM);
HRESULT InitDlgWindowsIntegration(diWI *diDialog);
HRESULT InitDlgProgramFolder(diPF *diDialog);
HRESULT InitDlgStartInstall(diSI *diDialog);
HRESULT InitDlgSiteSelector(diAS *diDialog);
HRESULT InitSDObject(void);
void DeInitSDObject(void);
siC *CreateSiCNode(void);
void SiCNodeInsert(siC **siCHead, siC *siCTemp);
@ -62,32 +60,33 @@ void SiCNodeDelete(siC *siCTemp);
siCD *CreateSiCDepNode(void);
void SiCDepNodeDelete(siCD *siCDepTemp);
void SiCDepNodeInsert(siCD **siCDepHead, siCD *siCDepTemp);
APIRET SiCNodeGetAttributes(ULONG dwIndex, BOOL bIncludeInvisible, ULONG dwACFlag);
void SiCNodeSetAttributes(ULONG dwIndex, ULONG dwAttributes, BOOL bSet, BOOL bIncludeInvisible, ULONG dwACFlag);
void SiCNodeSetItemsSelected(ULONG dwSetupType);
char *SiCNodeGetReferenceName(ULONG dwIndex, BOOL bIncludeInvisible, ULONG dwACFlag);
char *SiCNodeGetDescriptionShort(ULONG dwIndex, BOOL bIncludeInvisible, ULONG dwACFlag);
char *SiCNodeGetDescriptionLong(ULONG dwIndex, BOOL bIncludeInvisible, ULONG dwACFlag);
char *SiCNodeGetReferenceName(ULONG dwIndex, BOOL bIncludeInvisible, ULONG dwACFlag);
siC *SiCNodeGetObject(ULONG dwIndex, BOOL bIncludeInvisibleObjs, ULONG dwACFlag);
ULONGLONG SiCNodeGetInstallSize(ULONG dwIndex, BOOL bIncludeInvisible, ULONG dwACFlag);
ULONGLONG SiCNodeGetInstallSizeSystem(ULONG dwIndex, BOOL bIncludeInvisible, ULONG dwACFlag);
ULONGLONG SiCNodeGetInstallSizeArchive(ULONG dwIndex, BOOL bIncludeInvisible, ULONG dwACFlag);
HRESULT SiCNodeGetAttributes(DWORD dwIndex, BOOL bIncludeInvisible, DWORD dwACFlag);
void SiCNodeSetAttributes(DWORD dwIndex, DWORD dwAttributes, BOOL bSet, BOOL bIncludeInvisible, DWORD dwACFlag, HWND hwndListBox);
void SiCNodeSetItemsSelected(DWORD dwSetupType);
char *SiCNodeGetReferenceName(DWORD dwIndex, BOOL bIncludeInvisible, DWORD dwACFlag);
char *SiCNodeGetDescriptionShort(DWORD dwIndex, BOOL bIncludeInvisible, DWORD dwACFlag);
char *SiCNodeGetDescriptionLong(DWORD dwIndex, BOOL bIncludeInvisible, DWORD dwACFlag);
char *SiCNodeGetReferenceName(DWORD dwIndex, BOOL bIncludeInvisible, DWORD dwACFlag);
siC *SiCNodeGetObject(DWORD dwIndex, BOOL bIncludeInvisibleObjs, DWORD dwACFlag);
ULONGLONG SiCNodeGetInstallSize(DWORD dwIndex, BOOL bIncludeInvisible, DWORD dwACFlag);
ULONGLONG SiCNodeGetInstallSizeSystem(DWORD dwIndex, BOOL bIncludeInvisible, DWORD dwACFlag);
ULONGLONG SiCNodeGetInstallSizeArchive(DWORD dwIndex, BOOL bIncludeInvisible, DWORD dwACFlag);
siC *SiCNodeFind(siC *siComponents, char *szInReferenceName);
void InitSiComponents(char *szFileIni);
APIRET ParseComponentAttributes(char *szBuf);
HRESULT ParseComponentAttributes(char *szBuf, DWORD dwAttributes, BOOL bOverride);
void InitSiteSelector(char *szFileIni);
void DeInitSiCDependencies(siCD *siCDDependencies);
BOOL ResolveDependencies(ULONG dwIndex);
BOOL ResolveComponentDependency(siCD *siCDInDependency);
void ResolveDependees(PSZ szToggledDescriptionShort);
BOOL ResolveDependencies(DWORD dwIndex, HWND hwndListBox);
BOOL ResolveComponentDependency(siCD *siCDInDependency, HWND hwndListBox);
void ResolveDependees(LPSTR szToggledDescriptionShort, HWND hwndListBox);
BOOL ResolveComponentDependee(siCD *siCDInDependee);
void STSetVisibility(st *stSetupType);
APIRET InitSXpcomFile(void);
HRESULT InitSXpcomFile(void);
void DeInitSXpcomFile(void);
void DeInitialize(void);
void DeInitDlgWelcome(diW *diDialog);
void DeInitDlgLicense(diL *diDialog);
void DeInitDlgQuickLaunch(diQL *diDialog);
void DeInitDlgSetupType(diST *diDialog);
void DeInitDlgSelectComponents(diSC *diDialog);
void DeInitDlgWindowsIntegration(diWI *diDialog);
@ -97,30 +96,30 @@ void DeInitDlgSiteSelector(diAS *diDialog);
void DetermineOSVersionEx(void);
void DeInitSiComponents(siC **siComponents);
void DeInitSetupGeneral(void);
APIRET ParseSetupIni(void);
APIRET GetConfigIni(void);
APIRET GetInstallIni(void);
HRESULT ParseSetupIni(void);
HRESULT GetConfigIni(void);
HRESULT GetInstallIni(void);
void CleanTempFiles(void);
void OutputSetupTitle(HDC hDC);
long RetrieveArchives(void);
long RetrieveRedirectFile(void);
void ParsePath(PSZ szInput, PSZ szOutput, ULONG dwOutputSize, BOOL bUseSlash, ULONG dwType);
void ParsePath(LPSTR szInput, LPSTR szOutput, DWORD dwOutputSize, BOOL bUseSlash, DWORD dwType);
void RemoveBackSlash(PSZ szInput);
void AppendBackSlash(PSZ szInput, ULONG dwInputSize);
void RemoveSlash(PSZ szInput);
void AppendSlash(PSZ szInput, ULONG dwInputSize);
void AppendBackSlash(PSZ szInput, ULONG ulInputSize);
void RemoveSlash(LPSTR szInput);
void AppendSlash(LPSTR szInput, DWORD dwInputSize);
BOOL DeleteIdiGetConfigIni(void);
BOOL DeleteIdiGetArchives(void);
BOOL DeleteIdiGetRedirect(void);
BOOL DeleteIdiFileIniConfig(void);
BOOL DeleteIdiFileIniInstall(void);
void DeleteArchives(ULONG dwDeleteCheck);
void DeleteArchives(DWORD dwDeleteCheck);
BOOL DeleteIniRedirect(void);
APIRET LaunchApps(void);
APIRET FileExists(PSZ szFile);
HRESULT LaunchApps(void);
HRESULT FileExists(PSZ szFile);
int ExtractDirEntries(char* directory,void* vZip);
int LocateJar(siC *siCObject, PSZ szPath, int dwPathSize, BOOL bIncludeTempDir);
APIRET AddArchiveToIdiFile(siC *siCObject,
int LocateJar(siC *siCObject, LPSTR szPath, int dwPathSize, BOOL bIncludeTempDir);
HRESULT AddArchiveToIdiFile(siC *siCObject,
char *szSFile,
char *szFileIdiGetArchives);
int SiCNodeGetIndexDS(char *szInDescriptionShort);
@ -128,74 +127,74 @@ int SiCNodeGetIndexRN(char *szInReferenceName);
void ViewSiComponentsDependency(char *szBuffer, char *szIndentation, siC *siCNode);
void ViewSiComponentsDependee(char *szBuffer, char *szIndentation, siC *siCNode);
void ViewSiComponents(void);
BOOL IsWin95Debute(void);
ULONGLONG GetDiskSpaceRequired(ULONG dwType);
ULONGLONG GetDiskSpaceAvailable(PSZ szPath);
APIRET VerifyDiskSpace(void);
APIRET ErrorMsgDiskSpace(ULONGLONG ullDSAvailable, ULONGLONG ullDSRequired, PSZ szPath, BOOL bCrutialMsg);
ULONGLONG GetDiskSpaceRequired(DWORD dwType);
ULONGLONG GetDiskSpaceAvailable(LPSTR szPath);
HRESULT VerifyDiskSpace(void);
HRESULT ErrorMsgDiskSpace(ULONGLONG ullDSAvailable, ULONGLONG ullDSRequired, LPSTR szPath, BOOL bCrutialMsg);
void SetCustomType(void);
void GetAlternateArchiveSearchPath(PSZ lpszCmdLine);
void GetAlternateArchiveSearchPath(LPSTR lpszCmdLine);
BOOL NeedReboot(void);
BOOL LocatePreviousPath(PSZ szMainSectionName, PSZ szPath, ULONG dwPathSize);
BOOL LocatePathNscpReg(PSZ szSection, PSZ szPath, ULONG dwPathSize);
BOOL LocatePathWinReg(PSZ szSection, PSZ szPath, ULONG dwPathSize);
BOOL LocatePath(PSZ szSection, PSZ szPath, ULONG dwPathSize);
BOOL LocatePreviousPath(LPSTR szMainSectionName, LPSTR szPath, DWORD dwPathSize);
BOOL LocatePathNscpReg(LPSTR szSection, LPSTR szPath, DWORD dwPathSize);
BOOL LocatePathWinReg(LPSTR szSection, LPSTR szPath, DWORD dwPathSize);
BOOL LocatePath(LPSTR szSection, LPSTR szPath, DWORD dwPathSize);
int VR_GetPath(char *component_path, unsigned long sizebuf, char *buf);
dsN *CreateDSNode();
void DsNodeInsert(dsN **dsNHead, dsN *dsNTemp);
void DsNodeDelete(dsN **dsNTemp);
void DeInitDSNode(dsN **dsnComponentDSRequirement);
void UpdatePathDiskSpaceRequired(PSZ szPath, ULONGLONG ullInstallSize, dsN **dsnComponentDSRequirement);
APIRET InitComponentDiskSpaceInfo(dsN **dsnComponentDSRequirement);
APIRET CheckInstances();
void UpdatePathDiskSpaceRequired(LPSTR szPath, ULONGLONG ullInstallSize, dsN **dsnComponentDSRequirement);
HRESULT InitComponentDiskSpaceInfo(dsN **dsnComponentDSRequirement);
HRESULT CheckInstances();
long RandomSelect(void);
BOOL CheckLegacy(HWND hDlg);
COLOR DecryptFontColor(PSZ szColor);
COLORREF DecryptFontColor(LPSTR szColor);
ssi *CreateSsiSiteSelectorNode();
void SsiSiteSelectorNodeInsert(ssi **ssiHead, ssi *ssiTemp);
void SsiSiteSelectorNodeDelete(ssi *ssiTemp);
ssi* SsiGetNode(PSZ szDescription);
ssi* SsiGetNode(LPSTR szDescription);
void UpdateSiteSelector(void);
ULONG GetAdditionalComponentsCount(void);
ULONG GetTotalArchivesToDownload();
void RemoveQuotes(PSZ lpszSrc, PSZ lpszDest, int iDestSize);
PSZ GetFirstNonSpace(PSZ lpszString);
int GetArgC(PSZ lpszCommandLine);
PSZ GetArgV(PSZ lpszCommandLine,
DWORD GetAdditionalComponentsCount(void);
DWORD GetTotalArchivesToDownload();
void RemoveQuotes(LPSTR lpszSrc, LPSTR lpszDest, int iDestSize);
LPSTR GetFirstNonSpace(LPSTR lpszString);
int GetArgC(LPSTR lpszCommandLine);
LPSTR GetArgV(LPSTR lpszCommandLine,
int iIndex,
PSZ lpszDest,
LPSTR lpszDest,
int iDestSize);
ULONG ParseCommandLine(PSZ lpszCmdLine);
void SetSetupRunMode(PSZ szMode);
void Delay(ULONG dwSeconds);
ULONG ParseCommandLine(int argc, char *argv[]);
void SetSetupRunMode(LPSTR szMode);
void Delay(ULONG ulSeconds);
void UnsetSetupState(void);
void SetSetupState(char *szState);
siCD *InitWinInitNodes(char *szInFile);
void UpdateWininit(PSZ szUninstallFilename);
char *GetSaveInstallerPath(char *szBuf, ULONG dwBufSize);
void UpdateWininit(LPSTR szUninstallFilename);
char *GetSaveInstallerPath(char *szBuf, DWORD dwBufSize);
void SaveInstallerFiles(void);
void ResetComponentAttributes(char *szFileIni);
BOOL IsInList(ULONG dwCurrentItem,
ULONG dwItems,
ULONG *dwItemsSelected);
BOOL IsInList(DWORD dwCurrentItem,
DWORD dwItems,
DWORD *dwItemsSelected);
int LocateExistingPath(char *szPath,
char *szExistingPath,
ULONG dwExistingPathSize);
BOOL ContainsReparseTag(char *szPath,
char *szReparsePath,
ULONG dwReparsePathSize);
DWORD dwExistingPathSize);
BOOL DeleteInstallLogFile(char *szFile);
int CRCCheckDownloadedArchives(char *szCorruptedArchiveList,
ULONG dwCorruptedArchivelistSize,
DWORD dwCorruptedArchivelistSize,
char *szFileIdiGetArchives);
int CRCCheckArchivesStartup(char *szCorruptedArchiveList,
ULONG dwCorruptedArchiveListSize,
DWORD dwCorruptedArchiveListSize,
BOOL bIncludeTempPath);
BOOL ResolveForceUpgrade(siC *siCObject);
void SwapFTPAndHTTP(char *szInUrl, ULONG dwInUrlSize);
void ClearWinRegUninstallFileDeletion(void);
BOOL ResolveSupersede(siC *siCObject);
void RestoreInvisibleFlag(siC *siCNode);
void RestoreAdditionalFlag(siC *siCNode);
void SwapFTPAndHTTP(char *szInUrl, DWORD dwInUrlSize);
int AppendToGlobalMessageStream(char *szInfo);
char *GetOSTypeString(char *szOSType, ULONG dwOSTypeBufSize);
char *GetOSTypeString(char *szOSType, ULONG ulOSTypeBufSize);
int UpdateIdiFile(char *szPartialUrl,
ULONG dwPartialUrlBufSize,
DWORD dwPartialUrlBufSize,
siC *siCObject,
char *szSection,
char *szKey,
@ -204,8 +203,12 @@ void SetDownloadFile(void);
void UnsetSetupCurrentDownloadFile(void);
void SetSetupCurrentDownloadFile(char *szCurrentFilename);
char *GetSetupCurrentDownloadFile(char *szCurrentDownloadFile,
ULONG dwCurrentDownloadFileBufSize);
DWORD dwCurrentDownloadFileBufSize);
BOOL DeleteWGetLog(void);
DWORD ParseOSType(char *szOSType);
BOOL ShowAdditionalOptionsDialog(void);
DWORD GetPreviousUnfinishedState(void);
void RefreshIcons();
#endif /* _EXTRA_H_ */

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Просмотреть файл

@ -20,73 +20,82 @@
*
* Contributor(s):
* Sean Su <ssu@netscape.com>
* IBM Corp.
*/
#ifndef _IFUNCNS_H_
#define _IFUNCNS_H_
APIRET TimingCheck(ULONG dwTiming, PSZ szSection, PSZ szFile);
APIRET FileUncompress(PSZ szFrom, PSZ szTo);
APIRET ProcessXpcomFile(void);
APIRET CleanupXpcomFile(void);
APIRET ProcessUncompressFile(ULONG dwTiming, char *szSectionPrefix);
APIRET FileMove(PSZ szFrom, PSZ szTo);
APIRET ProcessMoveFile(ULONG dwTiming, char *szSectionPrefix);
APIRET FileCopy(PSZ szFrom, PSZ szTo, BOOL bFailIfExists, BOOL bDnu);
APIRET ProcessCopyFile(ULONG dwTiming, char *szSectionPrefix);
APIRET ProcessCreateDirectory(ULONG dwTiming, char *szSectionPrefix);
APIRET FileDelete(PSZ szDestination);
APIRET ProcessDeleteFile(ULONG dwTiming, char *szSectionPrefix);
APIRET DirectoryRemove(PSZ szDestination, BOOL bRemoveSubdirs);
APIRET ProcessRemoveDirectory(ULONG dwTiming, char *szSectionPrefix);
APIRET ProcessRunApp(ULONG dwTiming, char *szSectionPrefix);
APIRET ProcessWinReg(ULONG dwTiming, char *szSectionPrefix);
APIRET CreateALink(PSZ lpszPathObj,
PSZ lpszPathLink,
PSZ lpszDesc,
PSZ lpszWorkingPath,
PSZ lpszArgs,
PSZ lpszIconFullPath,
HRESULT TimingCheck(DWORD dwTiming, LPSTR szSection, LPSTR szFile);
HRESULT FileUncompress(LPSTR szFrom, LPSTR szTo);
HRESULT ProcessXpcomFile(void);
HRESULT CleanupXpcomFile(void);
HRESULT ProcessUncompressFile(DWORD dwTiming, char *szSectionPrefix);
HRESULT FileMove(LPSTR szFrom, LPSTR szTo);
HRESULT ProcessMoveFile(DWORD dwTiming, char *szSectionPrefix);
HRESULT FileCopy(LPSTR szFrom, LPSTR szTo, BOOL bFailIfExists, BOOL bDnu);
HRESULT ProcessCopyFile(DWORD dwTiming, char *szSectionPrefix);
HRESULT ProcessCreateDirectory(DWORD dwTiming, char *szSectionPrefix);
HRESULT ProcessCreateCustomFiles(DWORD dwTiming);
HRESULT FileDelete(LPSTR szDestination);
HRESULT ProcessDeleteFile(DWORD dwTiming, char *szSectionPrefix);
HRESULT DirectoryRemove(LPSTR szDestination, BOOL bRemoveSubdirs);
HRESULT ProcessRemoveDirectory(DWORD dwTiming, char *szSectionPrefix);
HRESULT ProcessRunApp(DWORD dwTiming, char *szSectionPrefix);
HRESULT ProcessWinReg(DWORD dwTiming, char *szSectionPrefix);
HRESULT CreateALink(LPSTR lpszPathObj,
LPSTR lpszPathLink,
LPSTR lpszDesc,
LPSTR lpszWorkingPath,
LPSTR lpszArgs,
LPSTR lpszIconFullPath,
int iIcon);
APIRET ProcessProgramFolder(ULONG dwTiming, char *szSectionPrefix);
APIRET ProcessProgramFolderShowCmd(void);
APIRET CreateDirectoriesAll(char* szPath, BOOL bLogForUninstall);
void ProcessFileOps(ULONG dwTiming, char *szSectionPrefix);
void DeleteWinRegValue(HINI hkRootKey, PSZ szKey, PSZ szName);
void DeleteWinRegKey(HINI hkRootKey, PSZ szKey, BOOL bAbsoluteDelete);
ULONG GetWinReg(HINI hkRootKey, PSZ szKey, PSZ szName, PSZ szReturnValue, ULONG dwSize);
void SetWinReg(HINI hkRootKey,
PSZ szKey,
HRESULT ProcessProgramFolder(DWORD dwTiming, char *szSectionPrefix);
HRESULT ProcessProgramFolderShowCmd(void);
HRESULT CreateDirectoriesAll(char* szPath, BOOL bLogForUninstall);
void ProcessFileOps(DWORD dwTiming, char *szSectionPrefix);
void DeleteWinRegValue(HKEY hkRootKey, LPSTR szKey, LPSTR szName);
void DeleteWinRegKey(HKEY hkRootKey, LPSTR szKey, BOOL bAbsoluteDelete);
DWORD GetWinReg(HKEY hkRootKey, LPSTR szKey, LPSTR szName, LPSTR szReturnValue, DWORD dwSize);
void SetWinReg(HKEY hkRootKey,
LPSTR szKey,
BOOL bOverwriteKey,
PSZ szName,
LPSTR szName,
BOOL bOverwriteName,
ULONG dwType,
PBYTE lpbData,
ULONG dwSize,
DWORD dwType,
LPBYTE lpbData,
DWORD dwSize,
BOOL bLogForUninstall,
BOOL bDnu);
HINI ParseRootKey(PSZ szRootKey);
char *ParseRootKeyString(HINI hkKey,
PSZ szRootKey,
ULONG dwRootKeyBufSize);
BOOL ParseRegType(PSZ szType, ULONG *dwType);
BOOL WinRegKeyExists(HINI hkRootKey, PSZ szKey);
BOOL WinRegNameExists(HINI hkRootKey, PSZ szKey, PSZ szName);
APIRET FileCopySequential(PSZ szSourcePath, PSZ szDestPath, PSZ szFilename);
APIRET ProcessCopyFileSequential(ULONG dwTiming, char *szSectionPrefix);
HKEY ParseRootKey(LPSTR szRootKey);
char *ParseRootKeyString(HKEY hkKey,
LPSTR szRootKey,
DWORD dwRootKeyBufSize);
BOOL ParseRegType(LPSTR szType, DWORD *dwType);
BOOL WinRegKeyExists(HKEY hkRootKey, LPSTR szKey);
BOOL WinRegNameExists(HKEY hkRootKey, LPSTR szKey, LPSTR szName);
HRESULT FileCopySequential(LPSTR szSourcePath, LPSTR szDestPath, LPSTR szFilename);
HRESULT ProcessCopyFileSequential(DWORD dwTiming, char *szSectionPrefix);
void UpdateInstallLog(PSZ szKey, PSZ szString, BOOL bDnu);
void UpdateInstallStatusLog(PSZ szString);
int RegisterDll32(char *File);
APIRET FileSelfRegister(PSZ szFilename, PSZ szDestination);
APIRET ProcessSelfRegisterFile(ULONG dwTiming, char *szSectionPrefix);
void UpdateJSProxyInfo(void);
int VerifyArchive(PSZ szArchive);
APIRET ProcessSetVersionRegistry(ULONG dwTiming, char *szSectionPrefix);
char *BuildNumberedString(ULONG dwIndex, char *szInputStringPrefix, char *szInputString, char *szOutBuf, ULONG dwOutBufSize);
void GetUserAgentShort(char *szUserAgent, char *szOutUAShort, ULONG dwOutUAShortSize);
int VerifyArchive(LPSTR szArchive);
HRESULT ProcessSetVersionRegistry(DWORD dwTiming, char *szSectionPrefix);
char *BuildNumberedString(DWORD dwIndex, char *szInputStringPrefix, char *szInputString, char *szOutBuf, DWORD dwOutBufSize);
void GetUserAgentShort(char *szUserAgent, char *szOutUAShort, DWORD dwOutUAShortSize);
void CleanupPreviousVersionRegKeys(void);
ULONG ParseRestrictedAccessKey(PSZ szKey);
DWORD ParseRestrictedAccessKey(LPSTR szKey);
void AppendWinReg(HKEY hkRootKey,
LPSTR szKey,
LPSTR szName,
DWORD dwType,
LPBYTE lpbData,
BYTE delimiter,
DWORD dwSize,
BOOL bLogForUninstall,
BOOL bDnu);
HRESULT CleanupArgsRegistry();
void ProcessFileOpsForSelectedComponents(DWORD dwTiming);
void ProcessFileOpsForAll(DWORD dwTiming);
#endif /* _IFUNCNS_H_ */

Просмотреть файл

@ -18,7 +18,6 @@
*
* Contributor(s):
* Sean Su <ssu@netscape.com>
* IBM Corp.
*/
#include "extern.h"
@ -31,12 +30,12 @@
int AppendToGlobalMessageStream(char *szInfo)
{
ULONG dwInfoLen = lstrlen(szInfo);
ULONG dwMessageLen;
DWORD dwInfoLen = strlen(szInfo);
DWORD dwMessageLen;
if(gErrorMessageStream.bEnabled && gErrorMessageStream.szMessage)
{
dwMessageLen = lstrlen(gErrorMessageStream.szMessage);
dwMessageLen = strlen(gErrorMessageStream.szMessage);
if((dwInfoLen + dwMessageLen) >= gErrorMessageStream.dwMessageBufSize)
{
if(NS_GlobalReAlloc(&gErrorMessageStream.szMessage,
@ -49,7 +48,7 @@ int AppendToGlobalMessageStream(char *szInfo)
MAX_BUF_TINY;
}
lstrcat(gErrorMessageStream.szMessage, szInfo);
strcat(gErrorMessageStream.szMessage, szInfo);
}
return(WIZ_OK);
@ -58,28 +57,16 @@ int AppendToGlobalMessageStream(char *szInfo)
void LogISTime(int iType)
{
char szBuf[MAX_BUF];
char szTime[MAX_BUF_TINY];
char szDate[MAX_BUF_TINY];
SYSTEMTIME stLocalTime;
time_t rawtime;
struct tm* timeinfo;
GetLocalTime(&stLocalTime);
GetTimeFormat(LOCALE_NEUTRAL,
LOCALE_NOUSEROVERRIDE,
&stLocalTime,
NULL,
szTime,
sizeof(szTime));
GetDateFormat(LOCALE_NEUTRAL,
LOCALE_NOUSEROVERRIDE,
&stLocalTime,
NULL,
szDate,
sizeof(szDate));
time ( &rawtime );
timeinfo = localtime ( &rawtime );
if(iType == W_START)
sprintf(szBuf, "Start Log: %s - %s\n", szDate, szTime);
sprintf(szBuf, "Start Log: %s\n", asctime (timeinfo));
else
sprintf(szBuf, "End Log: %s - %s\n", szDate, szTime);
sprintf(szBuf, "End Log: %s\n", asctime (timeinfo));
UpdateInstallStatusLog(szBuf);
}
@ -91,7 +78,7 @@ void LogISProductInfo(void)
sprintf(szBuf, "\n Product Info:\n");
UpdateInstallStatusLog(szBuf);
switch(sgProduct.dwMode)
switch(sgProduct.ulMode)
{
case SILENT:
sprintf(szBuf, " Install mode: Silent\n");
@ -105,9 +92,10 @@ void LogISProductInfo(void)
}
UpdateInstallStatusLog(szBuf);
sprintf(szBuf, " Company name: %s\n Product name: %s\n Uninstall Filename: %s\n UserAgent: %s\n Alternate search path: %s\n",
sprintf(szBuf, " Company name: %s\n Product name (external): %s\n Product name (internal): %s\n Uninstall Filename: %s\n UserAgent: %s\n Alternate search path: %s\n",
sgProduct.szCompanyName,
sgProduct.szProductName,
sgProduct.szProductNameInternal,
sgProduct.szUninstallFilename,
sgProduct.szUserAgent,
sgProduct.szAlternateArchiveSearchPath);
@ -129,7 +117,7 @@ void LogISSetupType(void)
{
char szBuf[MAX_BUF_TINY];
switch(dwSetupType)
switch(ulSetupType)
{
case ST_RADIO3:
sprintf(szBuf, "\n Setup Type: %s\n",
@ -253,20 +241,60 @@ void LogISComponentsToDownload(void)
}
}
void LogISDownloadProtocol(DWORD dwProtocolType)
{
char szBuf[MAX_BUF];
char szProtocolType[MAX_BUF];
switch(dwProtocolType)
{
case UP_HTTP:
strcpy(szProtocolType, "HTTP");
break;
default:
strcpy(szProtocolType, "FTP");
break;
}
sprintf(szBuf, "\n Download protocol: %s\n", szProtocolType);
UpdateInstallStatusLog(szBuf);
}
void LogISDownloadStatus(char *szStatus, char *szFailedFile)
{
char szBuf[MAX_BUF];
siC *siCObject = NULL;
DWORD dwIndex;
if(szFailedFile)
sprintf(szBuf,
"\n Download status:\n %s\n file: %s\n",
"\n Download status: %s\n file: %s\n\n",
szStatus,
szFailedFile);
else
sprintf(szBuf,
"\n Download status:\n %s\n",
"\n Download status: %s\n",
szStatus);
UpdateInstallStatusLog(szBuf);
dwIndex = 0;
siCObject = SiCNodeGetObject(dwIndex, TRUE, AC_ALL);
while(siCObject)
{
if(siCObject->dwAttributes & SIC_SELECTED)
{
sprintf(szBuf, " %s: NetRetries:%d, CRCRetries:%d, NetTimeOuts:%d\n",
siCObject->szDescriptionShort,
siCObject->iNetRetries,
siCObject->iCRCRetries,
siCObject->iNetTimeOuts);
UpdateInstallStatusLog(szBuf);
}
++dwIndex;
siCObject = SiCNodeGetObject(dwIndex, TRUE, AC_ALL);
}
}
void LogISComponentsFailedCRC(char *szList, int iWhen)
@ -317,12 +345,12 @@ void LogISXPInstallComponent(char *szComponentName)
UpdateInstallStatusLog(szBuf);
}
void LogISXPInstallComponentResult(ULONG dwErrorNumber)
void LogISXPInstallComponentResult(DWORD dwErrorNumber)
{
char szBuf[MAX_BUF];
char szErrorString[MAX_BUF];
GetErrorString(dwErrorNumber, szErrorString, sizeof(szErrorString));
// GetErrorString(dwErrorNumber, szErrorString, sizeof(szErrorString));
sprintf(szBuf, ": %d %s\n", dwErrorNumber, szErrorString);
UpdateInstallStatusLog(szBuf);
}
@ -343,7 +371,15 @@ void LogISLaunchAppsComponent(char *szComponentName)
{
char szBuf[MAX_BUF];
sprintf(szBuf, " %s\n", szComponentName);
sprintf(szBuf, " launching %s\n", szComponentName);
UpdateInstallStatusLog(szBuf);
}
void LogISLaunchAppsComponentUncompress(char *szComponentName, DWORD dwErr)
{
char szBuf[MAX_BUF];
sprintf(szBuf, " uncompressing %s: %d\n", szComponentName, dwErr);
UpdateInstallStatusLog(szBuf);
}
@ -361,7 +397,7 @@ void LogISProcessXpcomFile(int iStatus, int iResult)
void LogISDiskSpace(dsN *dsnComponentDSRequirement)
{
ULONGLONG ullDSAvailable;
ULONG ulDSAvailable;
dsN *dsnTemp = NULL;
char szBuf[MAX_BUF];
char szDSRequired[MAX_BUF_TINY];
@ -377,9 +413,9 @@ void LogISDiskSpace(dsN *dsnComponentDSRequirement)
if(!dsnTemp)
break;
ullDSAvailable = GetDiskSpaceAvailable(dsnTemp->szVDSPath);
_ui64toa(ullDSAvailable, szDSAvailable, 10);
_ui64toa(dsnTemp->ullSpaceRequired, szDSRequired, 10);
ulDSAvailable = GetDiskSpaceAvailable(dsnTemp->szVDSPath);
itoa(ulDSAvailable, szDSAvailable, 10);
itoa(dsnTemp->ulSpaceRequired, szDSRequired, 10);
sprintf(szBuf,
" Path: %s\n Required: %sKB\n Available: %sKB\n",
dsnTemp->szVDSPath,
@ -392,6 +428,18 @@ void LogISDiskSpace(dsN *dsnComponentDSRequirement)
}
}
void LogISTurboMode(BOOL bTurboMode)
{
char szBuf[MAX_BUF];
if(bTurboMode)
sprintf(szBuf, "\n Turbo Mode: true\n");
else
sprintf(szBuf, "\n Turbo Mode: false\n");
UpdateInstallStatusLog(szBuf);
}
void LogMSProductInfo(void)
{
char szBuf[MAX_BUF];
@ -403,22 +451,42 @@ void LogMSProductInfo(void)
sgProduct.szProductName,
sgProduct.szUserAgent,
szOSType,
gSystemInfo.dwMajorVersion,
gSystemInfo.dwMinorVersion,
gSystemInfo.dwBuildNumber,
gSystemInfo.ulMajorVersion,
gSystemInfo.ulMinorVersion,
gSystemInfo.ulBuildNumber,
gSystemInfo.szExtraString);
else
sprintf(szBuf, "UserAgent=%s/%s (%s,%d.%d.%d)",
sgProduct.szProductName,
sgProduct.szUserAgent,
szOSType,
gSystemInfo.dwMajorVersion,
gSystemInfo.dwMinorVersion,
gSystemInfo.dwBuildNumber);
gSystemInfo.ulMajorVersion,
gSystemInfo.ulMinorVersion,
gSystemInfo.ulBuildNumber);
AppendToGlobalMessageStream(szBuf);
}
void LogMSDownloadProtocol(DWORD dwProtocolType)
{
char szMessageStream[MAX_BUF_TINY];
char szProtocolType[MAX_BUF];
switch(dwProtocolType)
{
case UP_HTTP:
strcpy(szProtocolType, "HTTP");
break;
default:
strcpy(szProtocolType, "FTP");
break;
}
sprintf(szMessageStream, "&DownloadProtocol=%s", szProtocolType);
AppendToGlobalMessageStream(szMessageStream);
}
void LogMSDownloadStatus(int iDownloadStatus)
{
char szMessageStream[MAX_BUF_TINY];
@ -431,7 +499,7 @@ void LogMSDownloadStatus(int iDownloadStatus)
void LogMSDownloadFileStatus(void)
{
siC *siCObject = NULL;
ULONG dwIndex;
DWORD dwIndex;
char szMessageStream[MAX_BUF];
memset(szMessageStream, 0, sizeof(szMessageStream));
@ -439,17 +507,20 @@ void LogMSDownloadFileStatus(void)
siCObject = SiCNodeGetObject(dwIndex, TRUE, AC_ALL);
while(siCObject)
{
if(siCObject->iNetRetries || siCObject->iCRCRetries)
if(siCObject->iNetRetries ||
siCObject->iCRCRetries ||
siCObject->iNetTimeOuts)
{
char szFileInfo[MAX_BUF_SMALL];
sprintf(szFileInfo,
"&%s=%d,%d",
"&%s=%d,%d,%d",
siCObject->szArchiveName,
siCObject->iNetRetries,
siCObject->iCRCRetries);
siCObject->iCRCRetries,
siCObject->iNetTimeOuts);
lstrcat(szMessageStream, szFileInfo);
strcat(szMessageStream, szFileInfo);
}
++dwIndex;
siCObject = SiCNodeGetObject(dwIndex, TRUE, AC_ALL);
@ -482,3 +553,11 @@ void LogMSXPInstallStatus(char *szFile, int iErr)
gErrorMessageStream.bSendMessage = TRUE;
}
void LogMSTurboMode(BOOL bTurboMode)
{
char szMessageStream[MAX_BUF];
sprintf(szMessageStream, "&TM=%d", bTurboMode);
AppendToGlobalMessageStream(szMessageStream);
}

Просмотреть файл

@ -18,7 +18,6 @@
*
* Contributor(s):
* Sean Su <ssu@netscape.com>
* IBM Corp.
*/
#ifndef _LOGGING_H_
@ -33,17 +32,23 @@ void LogISComponentsSelected(void);
void LogISComponentsToDownload(void);
void LogISComponentsFailedCRC(char *szList, int iWhen);
void LogISDownloadStatus(char *szStatus, char *szFailedFile);
void LogISDownloadProtocol(DWORD dwProtocolType);
void LogISXPInstall(int iWhen);
void LogISXPInstallComponent(char *szComponentName);
void LogISXPInstallComponentResult(ULONG dwErrorNumber);
void LogISXPInstallComponentResult(DWORD dwErrorNumber);
void LogISLaunchApps(int iWhen);
void LogISLaunchAppsComponent(char *szComponentName);
void LogISLaunchAppsComponentUncompress(char *szComponentName,
DWORD dwErr);
void LogISProcessXpcomFile(int iStatus, int iResult);
void LogISDiskSpace(dsN *dsnComponentDSRequirement);
void LogISTurboMode(BOOL bTurboMode);
void LogMSProductInfo(void);
void LogMSDownloadFileStatus(void);
void LogMSDownloadStatus(int iDownloadStatus);
void LogMSDownloadProtocol(DWORD dwProtocolType);
void LogMSXPInstallStatus(char *szFile, int iErr);
void LogMSTurboMode(BOOL bTurboMode);
#endif /* _LOGGING_H_ */

Просмотреть файл

@ -91,7 +91,7 @@ NS_COM char* nsEscape(const char * str, nsEscapeMask mask)
{
if(!str)
return NULL;
return nsEscapeCount(str, lstrlen(str), mask, NULL);
return nsEscapeCount(str, strlen(str), mask, NULL);
}
//----------------------------------------------------------------------------------------

Просмотреть файл

@ -0,0 +1,333 @@
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/*
* The contents of this file are subject to the Netscape Public
* License Version 1.1 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy of
* the License at http://www.mozilla.org/NPL/
*
* Software distributed under the License is distributed on an "AS
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
* implied. See the License for the specific language governing
* rights and limitations under the License.
*
* The Original Code is Mozilla Communicator client code,
* released March 31, 1998.
*
* The Initial Developer of the Original Code is Netscape Communications
* Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All
* Rights Reserved.
*
* Contributor(s):
* Samir Gehani <sgehani@netscape.com>
*/
#include "nsINIParser.h"
#ifdef __cplusplus
extern "C" {
#endif
unsigned long GetPrivateProfileString(const char* szAppName,
const char* szKeyName,
const char* szDefault,
char* szReturnedString,
int nSize,
const char* szFileName)
{
nsINIParser parser((char*)szFileName);
if (parser.GetString((char*)szAppName, (char*)szKeyName, szReturnedString, &nSize) != nsINIParser::OK) {
if (szDefault) {
strcpy(szReturnedString, szDefault);
}
}
return strlen(szReturnedString);
}
#ifdef __cplusplus
}
#endif
nsINIParser::nsINIParser(char *aFilename)
{
FILE *fd = NULL;
long eofpos = 0;
int rd = 0;
mFileBuf = NULL;
mFileBufSize = 0;
mError = OK;
DUMP("nsINIParser");
/* param check */
if (!aFilename)
{
mError = E_PARAM;
return;
}
/* open the file */
fd = fopen(aFilename, "r");
if (!fd)
goto bail;
/* get file size */
if (fseek(fd, 0, SEEK_END) != 0)
goto bail;
eofpos = ftell(fd);
if (eofpos == 0)
goto bail;
/* malloc an internal buf the size of the file */
mFileBuf = (char *) malloc(eofpos * sizeof(char));
if (!mFileBuf)
{
mError = E_MEM;
return;
}
mFileBufSize = eofpos;
/* read the file in one swoop */
if (fseek(fd, 0, SEEK_SET) != 0)
goto bail;
rd = fread((void *)mFileBuf, 1, eofpos, fd);
if (!rd)
goto bail;
/* close file */
fclose(fd);
return;
bail:
mError = E_READ;
return;
}
nsINIParser::~nsINIParser()
{
DUMP("~nsINIParser");
}
int
nsINIParser::GetString( char *aSection, char *aKey,
char *aValBuf, int *aIOValBufSize )
{
char *secPtr = NULL;
mError = OK;
DUMP("GetString");
/* param check */
if ( !aSection || !aKey || !aValBuf ||
!aIOValBufSize || (*aIOValBufSize <= 0) )
return E_PARAM;
/* find the section if it exists */
mError = FindSection(aSection, &secPtr);
if (mError != OK)
return mError;
/* find the key if it exists in the valid section we found */
mError = FindKey(secPtr, aKey, aValBuf, aIOValBufSize);
return mError;
}
int
nsINIParser::GetStringAlloc( char *aSection, char *aKey,
char **aOutBuf, int *aOutBufSize )
{
char buf[MAX_VAL_SIZE];
int bufsize = MAX_VAL_SIZE;
mError = OK;
DUMP("GetStringAlloc");
mError = GetString(aSection, aKey, buf, &bufsize);
if (mError != OK)
return mError;
*aOutBuf = (char *) malloc(bufsize + 1);
strncpy(*aOutBuf, buf, bufsize);
*(*aOutBuf + bufsize) = 0;
*aOutBufSize = bufsize + 1;
return mError;
}
int
nsINIParser::GetError()
{
DUMP("GetError");
return mError;
}
char *
nsINIParser::ResolveName(char *aINIRoot)
{
char *resolved = NULL;
char *locale = NULL;
struct stat st_exists;
/* param check */
if (!aINIRoot)
return NULL;
locale = setlocale(LC_CTYPE, NULL);
if (!locale)
return NULL;
/* resolved string: "<root>.ini.<locale>\0" */
resolved = (char *) malloc(strlen(aINIRoot) + 5 + strlen(locale) + 1);
if (!resolved)
return NULL;
/* locale specific ini file name */
sprintf(resolved, "%s.ini.%s", aINIRoot, locale);
if (0 == stat(resolved, &st_exists))
return resolved;
/* fallback to general ini file name */
sprintf(resolved, "%s.ini", aINIRoot);
if (0 == stat(resolved, &st_exists))
return resolved;
/* neither existed so error returned */
return NULL;
}
int
nsINIParser::FindSection(char *aSection, char **aOutSecPtr)
{
char *currChar = mFileBuf;
char *nextSec = NULL;
char *secClose = NULL;
char *nextNL = NULL;
mError = E_NO_SEC;
DUMP("FindSection");
// param check
if (!aSection || !aOutSecPtr)
{
mError = E_PARAM;
return mError;
}
while (currChar < (mFileBuf + mFileBufSize))
{
// look for first '['
nextSec = NULL;
nextSec = strchr(currChar, '[');
if (!nextSec)
break;
currChar = nextSec + 1;
// extract section name till first ']'
secClose = NULL; nextNL = NULL;
secClose = strchr(currChar, ']');
nextNL = strchr(currChar, NL);
if ((!nextNL) || (nextNL < secClose))
{
currChar = nextNL;
continue;
}
// if section name matches we succeeded
if (strnicmp(aSection, currChar, strlen(aSection)) == 0)
{
*aOutSecPtr = secClose + 1;
mError = OK;
break;
}
}
return mError;
}
int
nsINIParser::FindKey(char *aSecPtr, char *aKey, char *aVal, int *aIOValSize)
{
char *nextNL = NULL;
char *secEnd = NULL;
char *currLine = aSecPtr;
char *nextEq = NULL;
mError = E_NO_KEY;
DUMP("FindKey");
// param check
if (!aSecPtr || !aKey || !aVal || !aIOValSize || (*aIOValSize <= 0))
{
mError = E_PARAM;
return mError;
}
// determine the section end
secEnd = aSecPtr;
find_end:
if (secEnd)
secEnd = strchr(secEnd, '['); // search for next sec start
if (!secEnd)
{
secEnd = strchr(aSecPtr, '\0'); // else search for file end
if (!secEnd)
{
mError = E_SEC_CORRUPT; // else this data is corrupt
return mError;
}
}
// handle start section token ('[') in values for i18n
if (*secEnd == '[' && !(secEnd == aSecPtr || *(secEnd-1) == NL))
{
secEnd++;
goto find_end;
}
while (currLine < secEnd)
{
nextNL = NULL;
nextNL = strchr(currLine, NL);
if (!nextNL)
nextNL = mFileBuf + mFileBufSize;
// ignore commented lines (starting with ;)
if (currLine == strchr(currLine, ';'))
{
currLine = nextNL + 1;
continue;
}
// extract key before '='
nextEq = NULL;
nextEq = strchr(currLine, '=');
if (!nextEq || nextEq > nextNL)
{
currLine = nextNL + 1;
continue;
}
// if key matches we succeeded
if (strnicmp(currLine, aKey, strlen(aKey)) == 0)
{
// extract the value and return
if (*aIOValSize < nextNL - nextEq)
{
mError = E_SMALL_BUF;
*aVal = '\0';
*aIOValSize = 0;
return mError;
}
*aIOValSize = nextNL - (nextEq + 1);
strncpy(aVal, (nextEq + 1), *aIOValSize);
*(aVal + *aIOValSize) = 0; // null terminate
mError = OK;
return mError;
}
else
{
currLine = nextNL + 1;
}
}
return mError;
}

Просмотреть файл

@ -0,0 +1,148 @@
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/*
* The contents of this file are subject to the Netscape Public
* License Version 1.1 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy of
* the License at http://www.mozilla.org/NPL/
*
* Software distributed under the License is distributed on an "AS
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
* implied. See the License for the specific language governing
* rights and limitations under the License.
*
* The Original Code is Mozilla Communicator client code,
* released March 31, 1998.
*
* The Initial Developer of the Original Code is Netscape Communications
* Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All
* Rights Reserved.
*
* Contributor(s):
* Samir Gehani <sgehani@netscape.com>
*/
#ifndef _NS_INIPARSER_H_
#define _NS_INIPARSER_H_
#include <stdio.h>
#include <malloc.h>
#include <string.h>
#include <sys/stat.h>
#include <locale.h>
class nsINIParser
{
public:
/**
* nsINIParser
*
* Construct a new INI parser for the file specified.
*
* @param aFilename path to INI file
*/
nsINIParser(char *aFilename);
~nsINIParser();
/**
* GetString
*
* Gets the value of the specified key in the specified section
* of the INI file represented by this instance. The value is stored
* in the supplied buffer. The buffer size is provided as input and
* the actual bytes used by the value is set in the in/out size param.
*
* @param aSection section name
* @param aKey key name
* @param aValBuf user supplied buffer
* @param aIOValBufSize buf size on input; actual buf used on output
*
* @return mError operation success code
*/
int GetString( char *aSection, char *aKey,
char *aValBuf, int *aIOValBufSize );
/**
* GetStringAlloc
*
* Same as GetString() except the buffer is allocated to the exact
* size of the value. Useful when the buffer is allocated everytime
* rather than reusing the same buffer when calling this function
* multiple times.
*
* @param aSection section name
* @param aKey key name
* @param aOutBuf buffer to be allocated
* @param aOutBufSize size of newly allocated buffer
*
* @return mError operation success code
*/
int GetStringAlloc( char *aSection, char *aKey,
char **aOutBuf, int *aOutBufSize );
/**
* GetError
*
* Exposes the last error on this instance. Useful for checking
* the state of the object after construction since the INI file
* is parsed once at object-allocation time.
*
* @return mError last error on ops on this object
*/
int GetError();
/**
* ResolveName
*
* Given a "root" name we append the runtime locale of the
* current system to the <root>.ini. If such a file exists we
* return this as the name else simply return <root>.ini.
*
* NOTE: Returned string is allocated and caller is responsible
* ---- for its deallocation.
*
* @param aINIRoot the "root" of the INI file name
* @return resolved the resolved INI file name
* (NULL if neither exist)
*/
static char *ResolveName(char *aINIRoot);
/*--------------------------------------------------------------------*
* Errors
*--------------------------------------------------------------------*/
enum
{
OK = 0,
E_READ = -701,
E_MEM = -702,
E_PARAM = -703,
E_NO_SEC = -704,
E_NO_KEY = -705,
E_SEC_CORRUPT = -706,
E_SMALL_BUF = -707
};
private:
int FindSection(char *aSection, char **aOutSecPtr);
int FindKey(char *aSecPtr, char *aKey, char *aVal, int *aIOValSize);
char *mFileBuf;
int mFileBufSize;
int mError;
};
#define NL '\n'
#define MAX_VAL_SIZE 512
#if defined(DUMP)
#undef DUMP
#endif
#if defined(DEBUG_sgehani) || defined(DEBUG_druidd) || defined(DEBUG_root)
#define DUMP(_msg) printf("%s %d: %s \n", __FILE__, __LINE__, _msg);
#else
#define DUMP(_msg)
#endif
#endif /*_NS_INIPARSER_H_ */

Просмотреть файл

@ -20,7 +20,6 @@
*
* Contributor(s):
* Sean Su <ssu@netscape.com>
* IBM Corp.
*/
#define IDS_ERROR_DLL_LOAD 1

Просмотреть файл

@ -20,7 +20,6 @@
*
* Contributor(s):
* Sean Su <ssu@netscape.com>
* IBM Corp.
*/
#include "setup.h"
@ -29,43 +28,41 @@
#include "ifuncns.h"
/* global variables */
HOBJECT hInst;
HOBJECT hSetupRscInst;
HOBJECT hSDInst;
HOBJECT hXPIStubInst;
HINSTANCE hInst;
HINSTANCE hSetupRscInst;
HINSTANCE hSDInst;
HINSTANCE hXPIStubInst;
HBITMAP hbmpBoxChecked;
HBITMAP hbmpBoxCheckedDisabled;
HBITMAP hbmpBoxUnChecked;
LHANDLE hAccelTable;
HWND hDlgCurrent;
HWND hDlgMessage;
HWND hWndMain;
PSZ szEGlobalAlloc;
PSZ szEStringLoad;
PSZ szEDllLoad;
PSZ szEStringNull;
PSZ szTempSetupPath;
LPSTR szEGlobalAlloc;
LPSTR szEStringLoad;
LPSTR szEDllLoad;
LPSTR szEStringNull;
LPSTR szTempSetupPath;
PSZ szSetupDir;
PSZ szTempDir;
PSZ szOSTempDir;
PSZ szFileIniConfig;
PSZ szFileIniInstall;
LPSTR szSetupDir;
LPSTR szTempDir;
LPSTR szOSTempDir;
LPSTR szFileIniConfig;
LPSTR szFileIniInstall;
PSZ szSiteSelectorDescription;
LPSTR szSiteSelectorDescription;
ULONG dwWizardState;
ULONG dwSetupType;
ULONG dwScreenX;
ULONG dwScreenY;
DWORD ulWizardState;
ULONG ulSetupType;
LONG lScreenX;
LONG lScreenY;
ULONG dwTempSetupType;
ULONG gdwUpgradeValue;
ULONG gdwSiteSelectorStatus;
DWORD ulTempSetupType;
DWORD gulUpgradeValue;
DWORD gulSiteSelectorStatus;
BOOL bSDUserCanceled;
BOOL bIdiArchivesExists;
@ -73,20 +70,23 @@ BOOL bCreateDestinationDir;
BOOL bReboot;
BOOL gbILUseTemp;
BOOL gbPreviousUnfinishedDownload;
BOOL gbPreviousUnfinishedInstallXpi;
BOOL gbIgnoreRunAppX;
BOOL gbIgnoreProgramFolderX;
BOOL gbRestrictedAccess;
BOOL gbDownloadTriggered;
setupGen sgProduct;
diS diSetup;
diW diWelcome;
diL diLicense;
diQL diQuickLaunch;
diST diSetupType;
diSC diSelectComponents;
diSC diSelectAdditionalComponents;
diWI diWindowsIntegration;
diPF diProgramFolder;
diDO diDownloadOptions;
diDO diAdditionalOptions;
diAS diAdvancedSettings;
diSI diStartInstall;
diD diDownload;
@ -105,96 +105,116 @@ dsN *gdsnComponentDSRequirement = NULL;
char *SetupFileList[] = {"setuprsc.dll",
"config.ini",
"setup.ini",
"installer.ini",
"install.ini",
"license.txt",
""};
int APIENTRY WinMain(HOBJECT hInstance, HOBJECT hPrevInstance, PSZ lpszCmdLine, int nCmdShow)
int main(int argc, char *argv[], char *envp[])
{
/***********************************************************************/
/* LHANDLE hInstance; handle for this instance */
/* LHANDLE hPrevInstance; handle for possible previous instances */
/* PSZ lpszCmdLine; long pointer to exec command line */
/* int nCmdShow; Show code for main window display */
/***********************************************************************/
QMSG msg;
HAB hab;
HMQ hmq;
QMSG qmsg;
char szBuf[MAX_BUF];
int iRv = WIZ_OK;
HWND hwndFW;
HINI hiniInstall;
int rc = 0;
HENUM henum;
if(!hPrevInstance)
{
/* Allow only one instance of setup to run.
* Detect a previous instance of setup, bring it to the
* foreground, and quit current instance */
if((hwndFW = FindWindow(CLASS_NAME_SETUP_DLG, NULL)) != NULL)
{
ShowWindow(hwndFW, SW_RESTORE);
SetForegroundWindow(hwndFW);
iRv = WIZ_SETUP_ALREADY_RUNNING;
PostQuitMessage(1);
}
else if(Initialize(hInstance))
PostQuitMessage(1);
else if(!InitApplication(hInstance, hSetupRscInst))
{
char szEFailed[MAX_BUF];
hiniInstall = PrfOpenProfile((HAB)0, szFileIniInstall);
if(PrfQueryProfileString(hiniInstall, "Messages", "ERROR_FAILED", "", szEFailed, sizeof(szEFailed)))
{
sprintf(szBuf, szEFailed, "InitApplication().");
PrintError(szBuf, ERROR_CODE_SHOW);
}
PrfCloseProfile(hiniInstall);
PostQuitMessage(1);
}
else if(!InitInstance(hInstance, nCmdShow))
{
char szEFailed[MAX_BUF];
hiniInstall = PrfOpenProfile((HAB)0, szFileIniInstall);
if(PrfQueryProfileString(hiniInstall, "Messages", "ERROR_FAILED", "", szEFailed, sizeof(szEFailed)))
{
sprintf(szBuf, szEFailed, "InitInstance().");
PrintError(szBuf, ERROR_CODE_SHOW);
}
PrfCloseProfile(hiniInstall);
PostQuitMessage(1);
}
else if(GetInstallIni())
{
PostQuitMessage(1);
}
else if(ParseInstallIni())
{
PostQuitMessage(1);
}
else if(GetConfigIni())
{
PostQuitMessage(1);
}
else if(ParseConfigIni(lpszCmdLine))
{
PostQuitMessage(1);
}
else
{
DlgSequenceNext();
}
}
hab = WinInitialize( 0 );
hmq = WinCreateMsgQueue( hab, 0 );
while(WinGetMsg((HAB)0, &msg, NULL, 0, 0))
/* Allow only one instance of setup to run.
* Detect a previous instance of setup, bring it to the
* foreground, and quit current instance */
/* Iterate over top level windows searching for one of the required class
* and a matching title.
*/
#ifdef OLDCODE /* @MAK - for ease of debugging */
henum = WinBeginEnumWindows(HWND_DESKTOP);
while ((hwndFW = WinGetNextWindow(henum)) != NULLHANDLE)
{
if((!IsDialogMessage(hDlgCurrent, &msg)) && (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg)))
{
WinDispatchMsg((HAB)0, &msg);
}
char pszT[256];
HWND hwndClient = NULLHANDLE;
/* If the window is a frame window, use the client for the class
* comparison.
*/
if (((ULONG)WinSendMsg(hwndFW, WM_QUERYFRAMEINFO, NULL, NULL)) & FI_FRAME)
hwndClient = WinWindowFromID(hwndFW, FID_CLIENT);
/* See if the class matches.
*/
WinQueryClassName(hwndClient ? hwndClient : hwndFW, sizeof(pszT), pszT);
if (strcmp(pszT, CLASS_NAME_SETUP_DLG) == 0)
break;
}
WinEndEnumWindows(henum);
#endif
if(hwndFW)
{
WinSetWindowPos(hwndFW, 0, 0, 0, 0, 0, SWP_RESTORE);
WinSetActiveWindow(HWND_DESKTOP, hwndFW);
iRv = WIZ_SETUP_ALREADY_RUNNING;
rc = 1;
}
else if(Initialize(0, argv[0]))
WinPostQueueMsg(0, WM_QUIT, 1, 0);
else if(!InitApplication(0, hSetupRscInst))
{
char szEFailed[MAX_BUF];
if(GetPrivateProfileString("Messages", "ERROR_FAILED", "", szEFailed, sizeof(szEFailed), szFileIniInstall))
{
sprintf(szBuf, szEFailed, "InitApplication().");
PrintError(szBuf, ERROR_CODE_SHOW);
}
WinPostQueueMsg(0, WM_QUIT, 1, 0);
}
else if(!InitInstance(0))
{
char szEFailed[MAX_BUF];
if(GetPrivateProfileString("Messages", "ERROR_FAILED", "", szEFailed, sizeof(szEFailed), szFileIniInstall))
{
sprintf(szBuf, szEFailed, "InitInstance().");
PrintError(szBuf, ERROR_CODE_SHOW);
}
WinPostQueueMsg(0, WM_QUIT, 1, 0);
}
else if(GetInstallIni())
{
rc = 1;
}
else if(ParseInstallIni())
{
WinPostQueueMsg(0, WM_QUIT, 1, 0);
}
else if(GetConfigIni())
{
WinPostQueueMsg(0, WM_QUIT, 1, 0);
}
else if(ParseConfigIni(argc, argv))
{
WinPostQueueMsg(0, WM_QUIT, 1, 0);
}
else
{
DlgSequence(NEXT_DLG);
}
//#ifdef OLDCODE
while ( WinGetMsg( hab, &qmsg, NULLHANDLE, 0, 0 ) )
WinDispatchMsg( hab, &qmsg );
#ifdef OLDCODE
if(iRv != WIZ_SETUP_ALREADY_RUNNING)
/* Do clean up before exiting from the application */
DeInitialize();
#endif
return(msg.wParam);
} /* End of WinMain */
WinDestroyMsgQueue( hmq );
WinTerminate( hab );
}

Просмотреть файл

@ -20,14 +20,8 @@
*
* Contributor(s):
* Sean Su <ssu@netscape.com>
* IBM Corp.
*/
#define INCL_WIN
#define INCL_PM
typedef __int64 ULONGLONG;
#ifndef _SETUP_H_
#define _SETUP_H_
@ -44,7 +38,7 @@ typedef __int64 ULONGLONG;
typedef unsigned int PRUint32;
typedef int PRInt32;
#include <os2.h>
#include "winforos2.h"
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
@ -72,6 +66,10 @@ typedef int PRInt32;
#define FILE_ALL_JS "all-proxy.js"
#define VR_DEFAULT_PRODUCT_NAME "Mozilla"
#define NEXT_DLG 1
#define PREV_DLG 2
#define OTHER_DLG_1 3
#define MAX_CRC_FAILED_DOWNLOAD_RETRIES 3
#define MAX_FILE_DOWNLOAD_RETRIES 3
@ -151,6 +149,7 @@ typedef int PRInt32;
#define ERROR_CODE_HIDE 0
#define ERROR_CODE_SHOW 1
#define DLG_NONE 0
#define DLG_COMMIT_INSTALL 1
#define CX_CHECKBOX 13
#define CY_CHECKBOX 13
@ -174,6 +173,7 @@ typedef int PRInt32;
#define FO_ERROR_FILE_NOT_FOUND 1
#define FO_ERROR_DESTINATION_CONFLICT 2
#define FO_ERROR_CHANGE_DIR 3
#define FO_ERROR_WRITE 4
/* Mode of Setup to run in */
#define NORMAL 0
@ -201,6 +201,8 @@ typedef int PRInt32;
#define SIC_FORCE_UPGRADE 0x00000080
#define SIC_IGNORE_DOWNLOAD_ERROR 0x00000100
#define SIC_IGNORE_XPINSTALL_ERROR 0x00000200
#define SIC_UNCOMPRESS 0x00000400
#define SIC_SUPERSEDE 0x00000800
/* AC: Additional Components */
#define AC_NONE 0
@ -209,14 +211,10 @@ typedef int PRInt32;
#define AC_ALL 3
/* OS: Operating System */
#define OS_WIN9x 0x00000001
#define OS_WIN95_DEBUTE 0x00000002
#define OS_WIN95 0x00000004
#define OS_WIN98 0x00000008
#define OS_NT 0x00000010
#define OS_NT3 0x00000020
#define OS_NT4 0x00000040
#define OS_NT5 0x00000080
#define OS_WARP3 0x00000001
#define OS_WARP4 0x00000002
#define OS_CP1 0x00000004
#define OS_CP2 0x00000008
/* DSR: Disk Space Required */
#define DSR_DESTINATION 0
@ -228,47 +226,69 @@ typedef int PRInt32;
#define SS_HIDE 0
#define SS_SHOW 1
/* PUS: Previous Unfinished State */
#define PUS_NONE 0
#define PUS_DOWNLOAD 1
#define PUS_UNPACK_XPCOM 2
#define PUS_INSTALL_XPI 3
#define SETUP_STATE_DOWNLOAD "downloading"
#define SETUP_STATE_UNPACK_XPCOM "unpacking xpcom"
#define SETUP_STATE_INSTALL_XPI "installing xpi"
typedef struct dlgSetup
{
ULONG dwDlgID;
HWND fDlgProc;
PSZ szTitle;
DWORD dwDlgID;
WNDPROC fDlgProc;
LPSTR szTitle;
} diS;
typedef struct dlgWelcome
{
BOOL bShowDialog;
PSZ szTitle;
PSZ szMessage0;
PSZ szMessage1;
PSZ szMessage2;
LPSTR szTitle;
LPSTR szMessage0;
LPSTR szMessage1;
LPSTR szMessage2;
} diW;
typedef struct dlgLicense
{
BOOL bShowDialog;
PSZ szTitle;
PSZ szLicenseFilename;
PSZ szMessage0;
PSZ szMessage1;
LPSTR szTitle;
LPSTR szLicenseFilename;
LPSTR szMessage0;
LPSTR szMessage1;
} diL;
typedef struct dlgQuickLaunch
{
BOOL bShowDialog;
LPSTR szTitle;
LPSTR szMessage0;
LPSTR szMessage1;
LPSTR szMessage2;
BOOL bTurboMode;
BOOL bTurboModeEnabled;
} diQL;
typedef struct stStruct
{
BOOL bVisible;
ULONG dwCItems;
ULONG dwCItemsSelected[MAX_BUF]; /* components */
PSZ szDescriptionShort;
PSZ szDescriptionLong;
DWORD dwCItems;
DWORD dwCItemsSelected[MAX_BUF]; /* components */
LPSTR szDescriptionShort;
LPSTR szDescriptionLong;
} st;
typedef struct dlgSetupType
{
BOOL bShowDialog;
PSZ szTitle;
PSZ szMessage0;
PSZ szReadmeFilename;
PSZ szReadmeApp;
LPSTR szTitle;
LPSTR szMessage0;
LPSTR szReadmeFilename;
LPSTR szReadmeApp;
st stSetupType0;
st stSetupType1;
st stSetupType2;
@ -278,25 +298,25 @@ typedef struct dlgSetupType
typedef struct dlgSelectComponents
{
BOOL bShowDialog;
ULONG bShowDialogSM;
PSZ szTitle;
PSZ szMessage0;
DWORD bShowDialogSM;
LPSTR szTitle;
LPSTR szMessage0;
} diSC;
typedef struct wiCBstruct
{
BOOL bEnabled;
BOOL bCheckBoxState;
PSZ szDescription;
PSZ szArchive;
LPSTR szDescription;
LPSTR szArchive;
} wiCBs;
typedef struct dlgWindowsIntegration
{
BOOL bShowDialog;
PSZ szTitle;
PSZ szMessage0;
PSZ szMessage1;
LPSTR szTitle;
LPSTR szMessage0;
LPSTR szMessage1;
wiCBs wiCB0;
wiCBs wiCB1;
wiCBs wiCB2;
@ -306,18 +326,20 @@ typedef struct dlgWindowsIntegration
typedef struct dlgProgramFolder
{
BOOL bShowDialog;
PSZ szTitle;
PSZ szMessage0;
LPSTR szTitle;
LPSTR szMessage0;
} diPF;
typedef struct dlgDownloadOptions
typedef struct dlgAdditionalOptions
{
BOOL bShowDialog;
PSZ szTitle;
PSZ szMessage0;
PSZ szMessage1;
LPSTR szTitle;
LPSTR szMessage0;
LPSTR szMessage1;
BOOL bSaveInstaller;
ULONG dwUseProtocol;
BOOL bRecaptureHomepage;
BOOL bShowHomepageOption;
DWORD dwUseProtocol;
BOOL bUseProtocolSettings;
BOOL bShowProtocols;
} diDO;
@ -325,83 +347,85 @@ typedef struct dlgDownloadOptions
typedef struct dlgAdvancedSettings
{
BOOL bShowDialog;
PSZ szTitle;
PSZ szMessage0;
PSZ szProxyServer;
PSZ szProxyPort;
PSZ szProxyUser;
PSZ szProxyPasswd;
LPSTR szTitle;
LPSTR szMessage0;
LPSTR szProxyServer;
LPSTR szProxyPort;
LPSTR szProxyUser;
LPSTR szProxyPasswd;
} diAS;
typedef struct dlgStartInstall
{
BOOL bShowDialog;
PSZ szTitle;
PSZ szMessageInstall;
PSZ szMessageDownload;
LPSTR szTitle;
LPSTR szMessageInstall;
LPSTR szMessageDownload;
} diSI;
typedef struct dlgDownload
{
BOOL bShowDialog;
PSZ szTitle;
PSZ szMessageDownload0;
PSZ szMessageRetry0;
LPSTR szTitle;
LPSTR szMessageDownload0;
LPSTR szMessageRetry0;
} diD;
typedef struct dlgReboot
{
ULONG dwShowDialog;
PSZ szTitle;
DWORD dwShowDialog;
LPSTR szTitle;
} diR;
typedef struct setupStruct
{
ULONG dwMode;
ULONG dwCustomType;
ULONG dwNumberOfComponents;
PSZ szPath;
PSZ szSubPath;
PSZ szProgramName;
PSZ szCompanyName;
PSZ szProductName;
PSZ szUninstallFilename;
PSZ szUserAgent;
PSZ szProgramFolderName;
PSZ szProgramFolderPath;
PSZ szAlternateArchiveSearchPath;
PSZ szParentProcessFilename;
ULONG ulMode;
ULONG ulCustomType;
ULONG ulNumberOfComponents;
LPSTR szPath;
LPSTR szSubPath;
LPSTR szProgramName;
LPSTR szCompanyName;
LPSTR szProductName;
LPSTR szProductNameInternal;
LPSTR szProductNamePrevious;
LPSTR szUninstallFilename;
LPSTR szUserAgent;
LPSTR szProgramFolderName;
LPSTR szProgramFolderPath;
LPSTR szAlternateArchiveSearchPath;
LPSTR szParentProcessFilename;
BOOL bLockPath;
} setupGen;
typedef struct sinfoSmartDownload
{
PSZ szXpcomFile;
PSZ szXpcomDir;
PSZ szNoAds;
PSZ szSilent;
PSZ szExecution;
PSZ szConfirmInstall;
PSZ szExtractMsg;
PSZ szExe;
PSZ szExeParam;
PSZ szXpcomFilePath;
LPSTR szXpcomFile;
LPSTR szXpcomDir;
LPSTR szNoAds;
LPSTR szSilent;
LPSTR szExecution;
LPSTR szConfirmInstall;
LPSTR szExtractMsg;
LPSTR szExe;
LPSTR szExeParam;
LPSTR szXpcomFilePath;
} siSD;
typedef struct sinfoXpcomFile
{
PSZ szSource;
PSZ szDestination;
PSZ szMessage;
LPSTR szSource;
LPSTR szDestination;
LPSTR szMessage;
BOOL bCleanup;
ULONGLONG ullInstallSize;
ULONG ulInstallSize;
} siCF;
typedef struct sinfoComponentDep siCD;
struct sinfoComponentDep
{
PSZ szDescriptionShort;
PSZ szReferenceName;
LPSTR szDescriptionShort;
LPSTR szReferenceName;
siCD *Next;
siCD *Prev;
};
@ -409,22 +433,25 @@ struct sinfoComponentDep
typedef struct sinfoComponent siC;
struct sinfoComponent
{
ULONGLONG ullInstallSize;
ULONGLONG ullInstallSizeSystem;
ULONGLONG ullInstallSizeArchive;
ULONG ulInstallSize;
ULONG ulInstallSizeSystem;
ULONG ulInstallSizeArchive;
long lRandomInstallPercentage;
long lRandomInstallValue;
ULONG dwAttributes;
PSZ szArchiveName;
PSZ szArchivePath;
PSZ szDestinationPath;
PSZ szDescriptionShort;
PSZ szDescriptionLong;
PSZ szParameter;
PSZ szReferenceName;
DWORD dwAttributes;
LPSTR szArchiveName;
LPSTR szArchiveNameUncompressed;
LPSTR szArchivePath;
LPSTR szDestinationPath;
LPSTR szDescriptionShort;
LPSTR szDescriptionLong;
LPSTR szParameter;
LPSTR szReferenceName;
BOOL bForceUpgrade;
BOOL bSupersede;
int iNetRetries;
int iCRCRetries;
int iNetTimeOuts;
siCD *siCDDependencies;
siCD *siCDDependees;
siC *Next;
@ -434,15 +461,20 @@ struct sinfoComponent
typedef struct ssInfo ssi;
struct ssInfo
{
PSZ szDescription;
PSZ szDomain;
PSZ szIdentifier;
LPSTR szDescription;
LPSTR szDomain;
LPSTR szIdentifier;
ssi *Next;
ssi *Prev;
};
typedef struct dlgInstall
{
char szSystemFont[MAX_BUF];
char szDefinedFont[MAX_BUF];
char szFontName[MAX_BUF];
char szFontSize[MAX_BUF];
char szCharSet[MAX_BUF];
char szOk_[MAX_BUF];
char szOk[MAX_BUF];
char szCancel_[MAX_BUF];
@ -463,7 +495,7 @@ typedef struct dlgInstall
char szUrl[MAX_BUF];
char szTo[MAX_BUF];
char szAccept_[MAX_BUF];
char szNo_[MAX_BUF];
char szDecline_[MAX_BUF];
char szProgramFolder_[MAX_BUF];
char szExistingFolder_[MAX_BUF];
char szSetupMessage[MAX_BUF];
@ -483,6 +515,8 @@ typedef struct dlgInstall
char szReadme_[MAX_BUF];
char szPause_[MAX_BUF];
char szResume_[MAX_BUF];
char szChecked[MAX_BUF];
char szUnchecked[MAX_BUF];
} installGui;
/* structure message stream */
@ -492,7 +526,7 @@ struct sEMsgStream
char szURL[MAX_BUF];
char szConfirmationMessage[MAX_BUF];
char *szMessage;
ULONG dwMessageBufSize;
DWORD dwMessageBufSize;
BOOL bEnabled;
BOOL bSendMessage;
BOOL bShowConfirmation;
@ -502,23 +536,25 @@ struct sEMsgStream
typedef struct sSysInfo sysinfo;
struct sSysInfo
{
ULONG dwOSType;
ULONG dwMajorVersion;
ULONG dwMinorVersion;
ULONG dwBuildNumber;
ULONG ulOSType;
ULONG ulMajorVersion;
ULONG ulMinorVersion;
ULONG ulBuildNumber;
char szExtraString[MAX_BUF];
ULONG dwMemoryTotalPhysical;
ULONG dwMemoryAvailablePhysical;
ULONG dwScreenX;
ULONG dwScreenY;
ULONG ulMemoryTotalPhysical;
ULONG ulMemoryAvailablePhysical;
LONG lScreenX;
LONG lScreenY;
BOOL bScreenReader;
BOOL bRefreshIcons;
};
typedef struct diskSpaceNode dsN;
struct diskSpaceNode
{
ULONGLONG ullSpaceRequired;
PSZ szPath;
PSZ szVDSPath;
ULONG ulSpaceRequired;
LPSTR szPath;
LPSTR szVDSPath;
dsN *Next;
dsN *Prev;
};

Двоичные данные
xpinstall/wizard/os2/setup/setup.ico Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 1.1 KiB

Просмотреть файл

@ -20,7 +20,6 @@
*
* Contributor(s):
* Sean Su <ssu@netscape.com>
* IBM Corp.
*/
#include "resource.h"
@ -32,7 +31,7 @@
// Icon with lowest ID value placed first to ensure application icon
// remains consistent on all systems.
ICON 1 DISCARDABLE "setup.ico"
ICON 1 "setup.ico"
/////////////////////////////////////////////////////////////////////////////
//

Просмотреть файл

@ -20,7 +20,6 @@
*
* Contributor(s):
* Sean Su <ssu@netscape.com>
* IBM Corp.
*/
/* This is a hack for vc5.0. It needs to be set *before* any shell
@ -37,16 +36,16 @@ DEFINE_OLEGUID(IID_IPersistFile, 0x0000010BL, 0, 0);
#include <shlguid.h>
#include "shortcut.h"
APIRET CreateALink(PSZ lpszPathObj, PSZ lpszPathLink, PSZ lpszDesc, PSZ lpszWorkingPath, PSZ lpszArgs, PSZ lpszIconFullPath, int iIcon)
HRESULT CreateALink(LPSTR lpszPathObj, LPSTR lpszPathLink, LPSTR lpszDesc, LPSTR lpszWorkingPath, LPSTR lpszArgs, LPSTR lpszIconFullPath, int iIcon)
{
APIRET hres;
HRESULT hres;
IShellLink *psl;
char lpszFullPath[MAX_BUF];
lstrcpy(lpszFullPath, lpszPathLink);
lstrcat(lpszFullPath, "\\");
lstrcat(lpszFullPath, lpszDesc);
lstrcat(lpszFullPath, ".lnk");
strcpy(lpszFullPath, lpszPathLink);
strcat(lpszFullPath, "\\");
strcat(lpszFullPath, lpszDesc);
strcat(lpszFullPath, ".lnk");
CreateDirectory(lpszPathLink, NULL);
CoInitialize(NULL);
@ -60,7 +59,12 @@ APIRET CreateALink(PSZ lpszPathObj, PSZ lpszPathLink, PSZ lpszDesc, PSZ lpszWork
// Set the path to the shortcut target, and add the
// description.
psl->SetPath(lpszPathObj);
psl->SetDescription(lpszDesc);
// Do not set the description at this time. We need to fix this
// parameter so it can be passed in independent of the shortcut name
// itself. Comment this code out for now until a real fix can be done.
// psl->SetDescription(lpszDesc);
if(lpszWorkingPath)
psl->SetWorkingDirectory(lpszWorkingPath);
if(lpszArgs)
@ -72,7 +76,7 @@ APIRET CreateALink(PSZ lpszPathObj, PSZ lpszPathLink, PSZ lpszDesc, PSZ lpszWork
hres = psl->QueryInterface(IID_IPersistFile, (LPVOID FAR *)&ppf);
if(SUCCEEDED(hres))
{
LONG wsz[MAX_BUF];
WORD wsz[MAX_BUF];
// Ensure that the string is ANSI.
MultiByteToWideChar(CP_ACP, 0, lpszFullPath, -1, (wchar_t *)wsz, MAX_BUF);

Просмотреть файл

@ -20,7 +20,6 @@
*
* Contributor(s):
* Sean Su <ssu@netscape.com>
* IBM Corp.
*/
#ifndef _SHORTCUT_H_
@ -35,7 +34,7 @@ extern "C"
{
#endif
APIRET CreateALink(PSZ lpszPathObj, PSZ lpszPathLink, PSZ lpszDesc, PSZ lpszWorkingPath, PSZ lpszArgs, PSZ lpszIconFullPath, int iIcon);
HRESULT CreateALink(LPSTR lpszPathObj, LPSTR lpszPathLink, LPSTR lpszDesc, LPSTR lpszWorkingPath, LPSTR lpszArgs, LPSTR lpszIconFullPath, int iIcon);
#ifdef __cplusplus
}

Просмотреть файл

@ -0,0 +1,46 @@
#define INCL_PM
#define INCL_GPI
#define INCL_DOS
#define INCL_DOSERRORS
#include <os2.h>
#include <sys/stat.h>
typedef ULONG DWORD;
typedef unsigned long long ULONGLONG;
typedef PSZ LPSTR;
typedef PFNWP WNDPROC;
typedef long HRESULT;
typedef long HFONT;
typedef HMODULE HINSTANCE;
typedef MPARAM WPARAM;
typedef MPARAM LPARAM;
typedef void* HGLOBAL;
typedef HMODULE HANDLE;
typedef long COLORREF;
typedef MRESULT LRESULT;
#define CALLBACK APIENTRY
typedef POWNERITEM LPDRAWITEMSTRUCT;
typedef long HKEY;
typedef UCHAR *LPBYTE;
typedef QMSG MSG;
typedef CHAR TCHAR;
#define WM_INITDIALOG WM_INITDLG
#define IDYES DID_OK
#define MF_GRAYED 1
#define MF_BYCOMMAND 1
#define SWP_NOSIZE 1
#define IDCANCEL DID_CANCEL
#define LB_SETCURSEL 1
#define WM_SETFONT 1
#define MAX_PATH CCHMAXPATH
#define KEY_CREATE_FOLDER 1
#ifdef __cplusplus
extern "C" {
#endif
ULONG GetPrivateProfileString(PCSZ, PCSZ, PCSZ, PSZ, ULONG, PCSZ);
#ifdef __cplusplus
}
#endif

Просмотреть файл

@ -18,7 +18,6 @@
*
* Contributor(s):
* Sean Su <ssu@netscape.com>
* IBM Corp.
*/
#ifndef _WIZVERREG_H_

Просмотреть файл

@ -20,7 +20,6 @@
*
* Contributor(s):
* Sean Su <ssu@netscape.com>
* IBM Corp.
*/
#ifndef _XPERR_H_

Просмотреть файл

@ -20,7 +20,6 @@
*
* Contributor(s):
* Sean Su <ssu@netscape.com>
* IBM Corp.
*/
#include "extern.h"
@ -35,9 +34,9 @@
#define BDIR_RIGHT 1
#define BDIR_LEFT 2
typedef APIRET (_cdecl *XpiInit)(const char *, const char *aLogName, pfnXPIProgress);
typedef APIRET (_cdecl *XpiInstall)(const char *, const char *, long);
typedef void (_cdecl *XpiExit)(void);
typedef HRESULT (_Optlink *XpiInit)(const char *, const char *aLogName, pfnXPIProgress);
typedef HRESULT (_Optlink *XpiInstall)(const char *, const char *, long);
typedef void (_Optlink *XpiExit)(void);
static XpiInit pfnXpiInit;
static XpiInstall pfnXpiInstall;
@ -46,9 +45,9 @@ static XpiExit pfnXpiExit;
static long lFileCounter;
static long lBarberCounter;
static BOOL bBarberBar;
static ULONG dwBarberDirection;
static ULONG dwCurrentArchive;
static ULONG dwTotalArchives;
static DWORD dwBarberDirection;
static DWORD dwCurrentArchive;
static DWORD dwTotalArchives;
char szStrProcessingFile[MAX_BUF];
char szStrCopyingFile[MAX_BUF];
char szStrInstalling[MAX_BUF];
@ -66,56 +65,55 @@ struct ExtractFilesDlgInfo
int nArchiveBars; // current number of bars to display
} dlgInfo;
APIRET InitializeXPIStub()
HRESULT InitializeXPIStub()
{
char szBuf[MAX_BUF];
char szXPIStubFile[MAX_BUF];
char szEGetProcAddress[MAX_BUF];
HINI hiniInstall;
hXPIStubInst = NULL;
hiniInstall = PrfOpenProfile((HAB)0, szFileIniInstall);
if(!PrfQueryProfileString(hiniInstall, "Messages", "ERROR_GETPROCADDRESS", "", szEGetProcAddress, sizeof(szEGetProcAddress)))
{
PrfCloseProfile(hiniInstall);
if(!GetPrivateProfileString("Messages", "ERROR_GETPROCADDRESS", "", szEGetProcAddress, sizeof(szEGetProcAddress), szFileIniInstall))
return(1);
}
PrfCloseProfile(hiniInstall);
/* change current directory to where xpistub.dll */
lstrcpy(szBuf, siCFXpcomFile.szDestination);
/* change current directory to where xpistub.dll */
strcpy(szBuf, siCFXpcomFile.szDestination);
AppendBackSlash(szBuf, sizeof(szBuf));
lstrcat(szBuf, "bin");
strcat(szBuf, "bin");
chdir(szBuf);
/* Add it to LIBPATH just in case */
DosSetExtLIBPATH(szBuf, BEGIN_LIBPATH);
/* build full path to xpistub.dll */
lstrcpy(szXPIStubFile, szBuf);
strcpy(szXPIStubFile, szBuf);
AppendBackSlash(szXPIStubFile, sizeof(szXPIStubFile));
lstrcat(szXPIStubFile, "xpistub.dll");
strcat(szXPIStubFile, "xpistub.dll");
if(FileExists(szXPIStubFile) == FALSE)
return(2);
/* load xpistub.dll */
if(DosLoadModule(NULL, 0, szXPIStubFile, hXPIStubInst) != NO_ERROR)
if(DosLoadModule(NULL, 0, szXPIStubFile, &hXPIStubInst) != NO_ERROR)
{
sprintf(szBuf, szEDllLoad, szXPIStubFile);
PrintError(szBuf, ERROR_CODE_SHOW);
return(1);
}
if(DosQueryProcAddr(hXPIstubInst, 0, "XPI_Init", pfnXpiInit) != NO_ERROR)
if(DosQueryProcAddr(hXPIStubInst, 0, "XPI_Init", &pfnXpiInit) != NO_ERROR)
{
sprintf(szBuf, szEGetProcAddress, "XPI_Init");
PrintError(szBuf, ERROR_CODE_SHOW);
return(1);
}
if(DosQueryProcAddr(hXPIstubInst, 0, "XPI_Install", pfnXpiInstall) != NO_ERROR)
if(DosQueryProcAddr(hXPIStubInst, 0, "XPI_Install", &pfnXpiInstall) != NO_ERROR)
{
sprintf(szBuf, szEGetProcAddress, "XPI_Install");
PrintError(szBuf, ERROR_CODE_SHOW);
return(1);
}
if(DosQueryProcAddr(hXPIstubInst, 0, "XPI_Exit", pfnXpiExit) != NO_ERROR)
if(DosQueryProcAddr(hXPIStubInst, 0, "XPI_Exit", &pfnXpiExit) != NO_ERROR)
{
sprintf(szBuf, szEGetProcAddress, "XPI_Exit");
PrintError(szBuf, ERROR_CODE_SHOW);
@ -125,7 +123,7 @@ APIRET InitializeXPIStub()
return(0);
}
APIRET DeInitializeXPIStub()
HRESULT DeInitializeXPIStub()
{
pfnXpiInit = NULL;
pfnXpiInstall = NULL;
@ -140,7 +138,7 @@ APIRET DeInitializeXPIStub()
void GetTotalArchivesToInstall(void)
{
ULONG dwIndex0;
DWORD dwIndex0;
siC *siCObject = NULL;
dwIndex0 = 0;
@ -156,7 +154,7 @@ void GetTotalArchivesToInstall(void)
}
}
char *GetErrorString(ULONG dwError, char *szErrorString, ULONG dwErrorStringSize)
char *GetErrorString(DWORD dwError, char *szErrorString, DWORD dwErrorStringSize)
{
int i = 0;
char szErrorNumber[MAX_BUF];
@ -170,10 +168,10 @@ char *GetErrorString(ULONG dwError, char *szErrorString, ULONG dwErrorStringSize
if(*XpErrorList[i] == '\0')
break;
if(lstrcmpi(szErrorNumber, XpErrorList[i]) == 0)
if(strcmpi(szErrorNumber, XpErrorList[i]) == 0)
{
if(*XpErrorList[i + 1] != '\0')
lstrcpy(szErrorString, XpErrorList[i + 1]);
strcpy(szErrorString, XpErrorList[i + 1]);
break;
}
@ -184,61 +182,64 @@ char *GetErrorString(ULONG dwError, char *szErrorString, ULONG dwErrorStringSize
return(szErrorString);
}
APIRET SmartUpdateJars()
#ifdef OLDCODE
/* function that clears the file progress bar of the xpinstall progress
* dialog.
*/
void InvalidateBarberBarArea()
{
ULONG dwIndex0;
HWND hWndGauge;
RECT rect;
/* get the file progress bar gauge */
hWndGauge = GetDlgItem(dlgInfo.hWndDlg, IDC_GAUGE_FILE);
/* get the dimensions of the gauge */
GetClientRect(hWndGauge, &rect);
/* invalidate the rect area of the gauge */
InvalidateRect(hWndGauge, &rect, FALSE);
/* update the dialog */
UpdateWindow(dlgInfo.hWndDlg);
}
#endif
HRESULT SmartUpdateJars()
{
DWORD dwIndex0;
siC *siCObject = NULL;
APIRET hrResult;
HRESULT hrResult;
char szBuf[MAX_BUF];
char szEXpiInstall[MAX_BUF];
char szArchive[MAX_BUF];
char szMsgSmartUpdateStart[MAX_BUF];
char szDlgExtractingTitle[MAX_BUF];
HINI hiniInstall;
hiniInstall = PrfOpenProfile((HAB)0, szFileIniInstall);
if(!PrfQueryProfileString(hiniInstall, "Messages", "MSG_SMARTUPDATE_START", "", szMsgSmartUpdateStart, sizeof(szMsgSmartUpdateStart)))
{
PrfCloseProfile(hiniInstall);
if(!GetPrivateProfileString("Messages", "MSG_SMARTUPDATE_START", "", szMsgSmartUpdateStart, sizeof(szMsgSmartUpdateStart), szFileIniInstall))
return(1);
}
if(!PrfQueryProfileString(hiniInstall, "Messages", "DLG_EXTRACTING_TITLE", "", szDlgExtractingTitle, sizeof(szDlgExtractingTitle)))
{
PrfCloseProfile(hiniInstall);
if(!GetPrivateProfileString("Messages", "DLG_EXTRACTING_TITLE", "", szDlgExtractingTitle, sizeof(szDlgExtractingTitle), szFileIniInstall))
return(1);
}
if(!PrfQueryProfileString(hiniInstall, "Messages", "STR_PROCESSINGFILE", "", szStrProcessingFile, sizeof(szStrProcessingFile)))
{
PrfCloseProfile(hiniInstall);
if(!GetPrivateProfileString("Messages", "STR_PROCESSINGFILE", "", szStrProcessingFile, sizeof(szStrProcessingFile), szFileIniInstall))
exit(1);
}
if(!PrfQueryProfileString(hiniInstall, "Messages", "STR_INSTALLING", "", szStrInstalling, sizeof(szStrInstalling)))
{
PrfCloseProfile(hiniInstall);
if(!GetPrivateProfileString("Messages", "STR_INSTALLING", "", szStrInstalling, sizeof(szStrInstalling), szFileIniInstall))
exit(1);
}
if(!PrfQueryProfileString(hiniInstall, "Messages", "STR_COPYINGFILE", "", szStrCopyingFile, sizeof(szStrCopyingFile)))
{
PrfCloseProfile(hiniInstall);
if(!GetPrivateProfileString("Messages", "STR_COPYINGFILE", "", szStrCopyingFile, sizeof(szStrCopyingFile), szFileIniInstall))
exit(1);
}
ShowMessage(szMsgSmartUpdateStart, TRUE);
if(InitializeXPIStub() == WIZ_OK)
{
LogISXPInstall(W_START);
lstrcpy(szBuf, sgProduct.szPath);
strcpy(szBuf, sgProduct.szPath);
if(*sgProduct.szSubPath != '\0')
{
AppendBackSlash(szBuf, sizeof(szBuf));
lstrcat(szBuf, sgProduct.szSubPath);
strcat(szBuf, sgProduct.szSubPath);
}
hrResult = pfnXpiInit(szBuf, FILE_INSTALL_LOG, cbXPIProgress);
ShowMessage(szMsgSmartUpdateStart, FALSE);
InitProgressDlg();
// InitProgressDlg();
GetTotalArchivesToInstall();
WinSetWindowText(dlgInfo.hWndDlg, szDlgExtractingTitle);
// WinSetWindowText(dlgInfo.hWndDlg, szDlgExtractingTitle);
dwIndex0 = 0;
dwCurrentArchive = 0;
@ -260,31 +261,30 @@ APIRET SmartUpdateJars()
lBarberCounter = 0;
dwBarberDirection = BDIR_RIGHT;
dlgInfo.nFileBars = 0;
UpdateGaugeFileProgressBar(0);
// UpdateGaugeFileProgressBar(0);
lstrcpy(szArchive, sgProduct.szAlternateArchiveSearchPath);
strcpy(szArchive, sgProduct.szAlternateArchiveSearchPath);
AppendBackSlash(szArchive, sizeof(szArchive));
lstrcat(szArchive, siCObject->szArchiveName);
strcat(szArchive, siCObject->szArchiveName);
if((*sgProduct.szAlternateArchiveSearchPath == '\0') || (!FileExists(szArchive)))
{
lstrcpy(szArchive, szSetupDir);
strcpy(szArchive, szSetupDir);
AppendBackSlash(szArchive, sizeof(szArchive));
lstrcat(szArchive, siCObject->szArchiveName);
strcat(szArchive, siCObject->szArchiveName);
if(!FileExists(szArchive))
{
lstrcpy(szArchive, szTempDir);
strcpy(szArchive, szTempDir);
AppendBackSlash(szArchive, sizeof(szArchive));
lstrcat(szArchive, siCObject->szArchiveName);
strcat(szArchive, siCObject->szArchiveName);
if(!FileExists(szArchive))
{
char szEFileNotFound[MAX_BUF];
if(PrfQueryProfileString(hiniInstall, "Messages", "ERROR_FILE_NOT_FOUND", "", szEFileNotFound, sizeof(szEFileNotFound)))
if(GetPrivateProfileString("Messages", "ERROR_FILE_NOT_FOUND", "", szEFileNotFound, sizeof(szEFileNotFound), szFileIniInstall))
{
sprintf(szBuf, szEFileNotFound, szArchive);
PrintError(szBuf, ERROR_CODE_HIDE);
}
PrfCloseProfile(hiniInstall);
return(1);
}
}
@ -293,11 +293,11 @@ APIRET SmartUpdateJars()
if(dwCurrentArchive == 0)
{
++dwCurrentArchive;
UpdateGaugeArchiveProgressBar((unsigned)(((double)(dwCurrentArchive)/(double)dwTotalArchives)*(double)100));
// UpdateGaugeArchiveProgressBar((unsigned)(((double)(dwCurrentArchive)/(double)dwTotalArchives)*(double)100));
}
sprintf(szBuf, szStrInstalling, siCObject->szDescriptionShort);
WinSetDlgItemText(dlgInfo.hWndDlg, IDC_STATUS0, szBuf);
// SetDlgItemText(dlgInfo.hWndDlg, IDC_STATUS0, szBuf);
LogISXPInstallComponent(siCObject->szDescriptionShort);
hrResult = pfnXpiInstall(szArchive, "", 0xFFFF);
@ -308,7 +308,7 @@ APIRET SmartUpdateJars()
{
LogMSXPInstallStatus(siCObject->szArchiveName, hrResult);
LogISXPInstallComponentResult(hrResult);
if(PrfQueryProfileString(hiniInstall, "Messages", "ERROR_XPI_INSTALL", "", szEXpiInstall, sizeof(szEXpiInstall)))
if(GetPrivateProfileString("Messages", "ERROR_XPI_INSTALL", "", szEXpiInstall, sizeof(szEXpiInstall), szFileIniInstall))
{
char szErrorString[MAX_BUF];
@ -322,8 +322,8 @@ APIRET SmartUpdateJars()
}
++dwCurrentArchive;
UpdateGaugeArchiveProgressBar((unsigned)(((double)(dwCurrentArchive)/(double)dwTotalArchives)*(double)100));
ProcessWindowsMessages();
// UpdateGaugeArchiveProgressBar((unsigned)(((double)(dwCurrentArchive)/(double)dwTotalArchives)*(double)100));
// ProcessWindowsMessages();
LogISXPInstallComponentResult(hrResult);
if((hrResult != WIZ_OK) &&
@ -345,7 +345,7 @@ APIRET SmartUpdateJars()
LogMSXPInstallStatus(NULL, hrResult);
pfnXpiExit();
DeInitProgressDlg();
// DeInitProgressDlg();
}
else
{
@ -354,7 +354,7 @@ APIRET SmartUpdateJars()
DeInitializeXPIStub();
LogISXPInstall(W_END);
PrfCloseProfile(hiniInstall);
return(hrResult);
}
@ -368,16 +368,16 @@ void cbXPIProgress(const char* msg, PRInt32 val, PRInt32 max)
char szStrProcessingFileBuf[MAX_BUF];
char szStrCopyingFileBuf[MAX_BUF];
if(sgProduct.dwMode != SILENT)
if(sgProduct.ulMode != SILENT)
{
ParsePath((char *)msg, szFilename, sizeof(szFilename), FALSE, PP_FILENAME_ONLY);
if(max == 0)
{
sprintf(szStrProcessingFileBuf, szStrProcessingFile, szFilename);
WinSetDlgItemText(dlgInfo.hWndDlg, IDC_STATUS3, szStrProcessingFileBuf);
// SetDlgItemText(dlgInfo.hWndDlg, IDC_STATUS3, szStrProcessingFileBuf);
bBarberBar = TRUE;
UpdateGaugeFileBarber();
// UpdateGaugeFileBarber();
}
else
{
@ -385,13 +385,14 @@ void cbXPIProgress(const char* msg, PRInt32 val, PRInt32 max)
{
dlgInfo.nFileBars = 0;
++dwCurrentArchive;
UpdateGaugeArchiveProgressBar((unsigned)(((double)(dwCurrentArchive)/(double)dwTotalArchives)*(double)100));
// UpdateGaugeArchiveProgressBar((unsigned)(((double)(dwCurrentArchive)/(double)dwTotalArchives)*(double)100));
// InvalidateBarberBarArea();
bBarberBar = FALSE;
}
sprintf(szStrCopyingFileBuf, szStrCopyingFile, szFilename);
WinSetDlgItemText(dlgInfo.hWndDlg, IDC_STATUS3, szStrCopyingFileBuf);
UpdateGaugeFileProgressBar((unsigned)(((double)(val+1)/(double)max)*(double)100));
// SetDlgItemText(dlgInfo.hWndDlg, IDC_STATUS3, szStrCopyingFileBuf);
// UpdateGaugeFileProgressBar((unsigned)(((double)(val+1)/(double)max)*(double)100));
}
}
@ -404,6 +405,7 @@ void cbXPIFinal(const char *URL, PRInt32 finalStatus)
#ifdef OLDCODE
/////////////////////////////////////////////////////////////////////////////
// Progress bar
@ -412,34 +414,29 @@ void cbXPIFinal(const char *URL, PRInt32 finalStatus)
static void
CenterWindow(HWND hWndDlg)
{
RECTL rect;
RECT rect;
int iLeft, iTop;
WinQueryWindowRect(hWndDlg, &rect);
iLeft = (WinQuerySysValue(SV_CXSCREEN) - (rect.xRight - rect.xLeft)) / 2;
iTop = (WinQuerySysValue(SV_CYSCREEN) - (rect.yBottom - rect.yTop)) / 2;
GetWindowRect(hWndDlg, &rect);
iLeft = (GetSystemMetrics(SM_CXSCREEN) - (rect.right - rect.left)) / 2;
iTop = (GetSystemMetrics(SM_CYSCREEN) - (rect.bottom - rect.top)) / 2;
WinSetWindowPos(hWndDlg, NULL, iLeft, iTop, -1, -1, SWP_NOSIZE | SWP_NOZORDER | SWP_NOACTIVATE);
SetWindowPos(hWndDlg, NULL, iLeft, iTop, -1, -1, SWP_NOSIZE | SWP_NOZORDER | SWP_NOACTIVATE);
}
// Window proc for dialog
MRESULT EXPENTRY
ProgressDlgProc(HWND hWndDlg, UINT msg, WPARAM wParam, WPARAM lParam)
LRESULT CALLBACK
ProgressDlgProc(HWND hWndDlg, UINT msg, WPARAM wParam, LPARAM lParam)
{
PSZ pszFontNameSize;
ULONG ulFontNameSizeLength;
switch (msg)
{
case WM_INITDIALOG:
DisableSystemMenuItems(hWndDlg, TRUE);
CenterWindow(hWndDlg);
pszFontNameSize = myGetSysFont();
ulFontNameSizeLength = sizeof(pszFontNameSize) + 1;
WinSetPresParam(WinWindowFromID(hDlg, IDC_STATUS0), PP_FONTNAMESIZE, ulFontNameSizeLength, pszFontNameSize);
WinSetPresParam(WinWindowFromID(hDlg, IDC_GAUGE_ARCHIVE), PP_FONTNAMESIZE, ulFontNameSizeLength, pszFontNameSize);
WinSetPresParam(WinWindowFromID(hDlg, IDC_STATUS3), PP_FONTNAMESIZE, ulFontNameSizeLength, pszFontNameSize);
WinSetPresParam(WinWindowFromID(hDlg, IDC_GAUGE_FILE), PP_FONTNAMESIZE, ulFontNameSizeLength, pszFontNameSize);
SendDlgItemMessage (hWndDlg, IDC_STATUS0, WM_SETFONT, (WPARAM)sgInstallGui.definedFont, 0L);
SendDlgItemMessage (hWndDlg, IDC_GAUGE_ARCHIVE, WM_SETFONT, (WPARAM)sgInstallGui.definedFont, 0L);
SendDlgItemMessage (hWndDlg, IDC_STATUS3, WM_SETFONT, (WPARAM)sgInstallGui.definedFont, 0L);
SendDlgItemMessage (hWndDlg, IDC_GAUGE_FILE, WM_SETFONT, (WPARAM)sgInstallGui.definedFont, 0L);
return FALSE;
case WM_COMMAND:
@ -456,14 +453,17 @@ UpdateGaugeFileBarber()
{
int nBars;
HWND hWndGauge;
RECTL rect;
RECT rect;
if(sgProduct.dwMode != SILENT)
{
hWndGauge = WinWindowFromID(dlgInfo.hWndDlg, IDC_GAUGE_FILE);
hWndGauge = GetDlgItem(dlgInfo.hWndDlg, IDC_GAUGE_FILE);
if(dwBarberDirection == BDIR_RIGHT)
{
if(lBarberCounter < 151)
// 121 is the (number of bars) + (number bars in barber bar).
// this number determines how far to the right to draw the barber bat
// so as to make it look like it disappears off the progress meter area.
if(lBarberCounter < 121)
++lBarberCounter;
else
dwBarberDirection = BDIR_LEFT;
@ -483,13 +483,13 @@ UpdateGaugeFileBarber()
dlgInfo.nFileBars = nBars;
// Only invalidate the part that needs updating
WinQueryWindowRect(hWndGauge, &rect);
WinInvalidateRect(hWndGauge, &rect, FALSE);
GetClientRect(hWndGauge, &rect);
InvalidateRect(hWndGauge, &rect, FALSE);
// Update the whole extracting dialog. We do this because we don't
// have a message loop to process WM_PAINT messages in case the
// extracting dialog was exposed
WinUpdateWindow(dlgInfo.hWndDlg);
UpdateWindow(dlgInfo.hWndDlg);
}
}
@ -508,20 +508,20 @@ UpdateGaugeFileProgressBar(unsigned value)
// Only paint if we need to display more bars
if((nBars > dlgInfo.nFileBars) || (dlgInfo.nFileBars == 0))
{
HWND hWndGauge = WinWindowFromID(dlgInfo.hWndDlg, IDC_GAUGE_FILE);
RECTL rect;
HWND hWndGauge = GetDlgItem(dlgInfo.hWndDlg, IDC_GAUGE_FILE);
RECT rect;
// Update the gauge state before painting
dlgInfo.nFileBars = nBars;
// Only invalidate the part that needs updating
WinQueryWindowRect(hWndGauge, &rect);
WinInvalidateRect(hWndGauge, &rect, FALSE);
GetClientRect(hWndGauge, &rect);
InvalidateRect(hWndGauge, &rect, FALSE);
// Update the whole extracting dialog. We do this because we don't
// have a message loop to process WM_PAINT messages in case the
// extracting dialog was exposed
WinUpdateWindow(dlgInfo.hWndDlg);
UpdateWindow(dlgInfo.hWndDlg);
}
}
}
@ -541,20 +541,20 @@ UpdateGaugeArchiveProgressBar(unsigned value)
// Only paint if we need to display more bars
if (nBars > dlgInfo.nArchiveBars)
{
HWND hWndGauge = WinWindowFromID(dlgInfo.hWndDlg, IDC_GAUGE_ARCHIVE);
RECTL rect;
HWND hWndGauge = GetDlgItem(dlgInfo.hWndDlg, IDC_GAUGE_ARCHIVE);
RECT rect;
// Update the gauge state before painting
dlgInfo.nArchiveBars = nBars;
// Only invalidate the part that needs updating
WinQueryWindowRect(hWndGauge, &rect);
WinInvalidateRect(hWndGauge, &rect, FALSE);
GetClientRect(hWndGauge, &rect);
InvalidateRect(hWndGauge, &rect, FALSE);
// Update the whole extracting dialog. We do this because we don't
// have a message loop to process WM_PAINT messages in case the
// extracting dialog was exposed
WinUpdateWindow(dlgInfo.hWndDlg);
UpdateWindow(dlgInfo.hWndDlg);
}
}
}
@ -564,15 +564,14 @@ static void
DrawGaugeBorder(HWND hWnd)
{
HDC hDC = GetWindowDC(hWnd);
HPS hPS = WinGetPS(hWnd);
RECTL rect;
RECT rect;
int cx, cy;
HPEN hShadowPen = CreatePen(PS_SOLID, 1, GetSysColor(COLOR_BTNSHADOW));
HGDIOBJ hOldPen;
WinQueryWindowRect(hWnd, &rect);
cx = rect.xRight - rect.xLeft;
cy = rect.yBottom - rect.yTop;
GetWindowRect(hWnd, &rect);
cx = rect.right - rect.left;
cy = rect.bottom - rect.top;
// Draw a dark gray line segment
hOldPen = SelectObject(hDC, (HGDIOBJ)hShadowPen);
@ -589,7 +588,6 @@ DrawGaugeBorder(HWND hWnd)
SelectObject(hDC, hOldPen);
DeleteObject(hShadowPen);
ReleaseDC(hWnd, hDC);
WinReleasePS(hPS);
}
// Draws the blue progress bar
@ -597,36 +595,40 @@ static void
DrawProgressBar(HWND hWnd, int nBars)
{
int i;
RECTL rect;
PAINTSTRUCT ps;
HDC hDC;
RECT rect;
HBRUSH hBrush;
HPS hPS;
hPS = WinBeginPaint(hWnd, NULLHANDLE, &rect);
WinQueryWindowRect(hWnd, &rect);
hDC = BeginPaint(hWnd, &ps);
GetClientRect(hWnd, &rect);
if(nBars <= 0)
{
/* clear the bars */
WinFillRect(hPS, &rect, SYSCLR_MENU);
hBrush = CreateSolidBrush(GetSysColor(COLOR_MENU));
FillRect(hDC, &rect, hBrush);
}
else
{
// Draw the bars
rect.xLeft = rect.yTop = BAR_MARGIN;
rect.yBottom -= BAR_MARGIN;
rect.xRight = rect.xLeft + BAR_WIDTH;
hBrush = CreateSolidBrush(RGB(0, 0, 128));
rect.left = rect.top = BAR_MARGIN;
rect.bottom -= BAR_MARGIN;
rect.right = rect.left + BAR_WIDTH;
for(i = 0; i < nBars; i++)
{
RECTL dest;
RECT dest;
if(WinIntersectRect((HAB)0, &dest, &ps.rcPaint, &rect))
WinFillRect(hPS, &rect, CLR_DARKBLUE);
if(IntersectRect(&dest, &ps.rcPaint, &rect))
FillRect(hDC, &rect, hBrush);
WinOffsetRect((HAB)0, &rect, BAR_WIDTH + BAR_SPACING, 0);
OffsetRect(&rect, BAR_WIDTH + BAR_SPACING, 0);
}
}
WinEndPaint(hPS);
DeleteObject(hBrush);
EndPaint(hWnd, &ps);
}
// Draws the blue progress bar
@ -636,80 +638,89 @@ DrawBarberBar(HWND hWnd, int nBars)
int i;
PAINTSTRUCT ps;
HDC hDC;
HPS hPS;
RECTL rect;
RECT rect;
HBRUSH hBrush = NULL;
HBRUSH hBrushClear = NULL;
hPS = WinBeginPaint(hWnd, NULLHANDLE, &rect);
WinQueryWindowRect(hWnd, &rect);
hDC = BeginPaint(hWnd, &ps);
GetClientRect(hWnd, &rect);
if(nBars <= 0)
{
/* clear the bars */
WinFillRect(hPS, &rect, SYSCLR_MENU);
hBrushClear = CreateSolidBrush(GetSysColor(COLOR_MENU));
FillRect(hDC, &rect, hBrushClear);
}
else
{
// Draw the bars
rect.xLeft = rect.yTop = BAR_MARGIN;
rect.yBottom -= BAR_MARGIN;
rect.xRight = rect.xLeft + BAR_WIDTH;
hBrushClear = CreateSolidBrush(GetSysColor(COLOR_MENU));
hBrush = CreateSolidBrush(RGB(0, 0, 128));
rect.left = rect.top = BAR_MARGIN;
rect.bottom -= BAR_MARGIN;
rect.right = rect.left + BAR_WIDTH;
for(i = 0; i < (nBars + 1); i++)
{
RECTL dest;
RECT dest;
if(WinIntersectRect((HAB)0, &dest, &ps.rcPaint, &rect))
if(IntersectRect(&dest, &ps.rcPaint, &rect))
{
if((i >= (nBars - 15)) && (i < nBars))
WinFillRect(hPS, &rect, CLR_DARKBLUE);
FillRect(hDC, &rect, hBrush);
else
WinFillRect(hPS, &rect, SYSCLR_MENU);
FillRect(hDC, &rect, hBrushClear);
}
WinOffsetRect((HAB)0, &rect, BAR_WIDTH + BAR_SPACING, 0);
OffsetRect(&rect, BAR_WIDTH + BAR_SPACING, 0);
}
}
WinEndPaint(hPS);
if(hBrushClear)
DeleteObject(hBrushClear);
if(hBrush)
DeleteObject(hBrush);
EndPaint(hWnd, &ps);
}
// Adjusts the width of the gauge based on the maximum number of bars
static void
SizeToFitGauge(HWND hWnd, int nMaxBars)
{
RECTL rect;
RECT rect;
int cx;
// Get the window size in pixels
WinQueryWindowRect(hWnd, &rect);
GetWindowRect(hWnd, &rect);
// Size the width to fit
cx = 2 * WinQuerySysValue(SV_CXBORDER) + 2 * BAR_MARGIN +
cx = 2 * GetSystemMetrics(SM_CXBORDER) + 2 * BAR_MARGIN +
nMaxBars * BAR_WIDTH + (nMaxBars - 1) * BAR_SPACING;
WinSetWindowPos(hWnd, NULL, -1, -1, cx, rect.yBottom - rect.yTop,
SetWindowPos(hWnd, NULL, -1, -1, cx, rect.bottom - rect.top,
SWP_NOMOVE | SWP_NOZORDER | SWP_NOACTIVATE);
}
// Window proc for file gauge
MRESULT EXPENTRY
GaugeFileWndProc(HWND hWnd, UINT msg, WPARAM wParam, WPARAM lParam)
LRESULT CALLBACK
GaugeFileWndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
ULONG dwStyle;
RECTL rect;
DWORD dwStyle;
RECT rect;
switch(msg)
{
case WM_NCCREATE:
dwStyle = WinQueryWindowULong(hWnd, GWL_STYLE);
WinSetWindowULong(hWnd, GWL_STYLE, dwStyle | WS_BORDER);
dwStyle = GetWindowLong(hWnd, GWL_STYLE);
SetWindowLong(hWnd, GWL_STYLE, dwStyle | WS_BORDER);
return(TRUE);
case WM_CREATE:
// Figure out the maximum number of bars that can be displayed
WinQueryWindowRect(hWnd, &rect);
GetClientRect(hWnd, &rect);
dlgInfo.nFileBars = 0;
dlgInfo.nMaxFileBars = (rect.xRight - rect.xLeft - 2 * BAR_MARGIN + BAR_SPACING) / (BAR_WIDTH + BAR_SPACING);
dlgInfo.nMaxFileBars = (rect.right - rect.left - 2 * BAR_MARGIN + BAR_SPACING) / (BAR_WIDTH + BAR_SPACING);
// Size the gauge to exactly fit the maximum number of bars
SizeToFitGauge(hWnd, dlgInfo.nMaxFileBars);
@ -732,24 +743,24 @@ GaugeFileWndProc(HWND hWnd, UINT msg, WPARAM wParam, WPARAM lParam)
}
// Window proc for file gauge
MRESULT EXPENTRY
GaugeArchiveWndProc(HWND hWnd, UINT msg, WPARAM wParam, WPARAM lParam)
LRESULT CALLBACK
GaugeArchiveWndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
ULONG dwStyle;
RECTL rect;
DWORD dwStyle;
RECT rect;
switch(msg)
{
case WM_NCCREATE:
dwStyle = WinQueryWindowULong(hWnd, GWL_STYLE);
WinSetWindowULong(hWnd, GWL_STYLE, dwStyle | WS_BORDER);
dwStyle = GetWindowLong(hWnd, GWL_STYLE);
SetWindowLong(hWnd, GWL_STYLE, dwStyle | WS_BORDER);
return(TRUE);
case WM_CREATE:
// Figure out the maximum number of bars that can be displayed
WinQueryWindowRect(hWnd, &rect);
GetClientRect(hWnd, &rect);
dlgInfo.nArchiveBars = 0;
dlgInfo.nMaxArchiveBars = (rect.xRight - rect.xLeft - 2 * BAR_MARGIN + BAR_SPACING) / (BAR_WIDTH + BAR_SPACING);
dlgInfo.nMaxArchiveBars = (rect.right - rect.left - 2 * BAR_MARGIN + BAR_SPACING) / (BAR_WIDTH + BAR_SPACING);
// Size the gauge to exactly fit the maximum number of bars
SizeToFitGauge(hWnd, dlgInfo.nMaxArchiveBars);
@ -786,8 +797,8 @@ void InitProgressDlg()
RegisterClass(&wc);
// Display the dialog box
dlgInfo.hWndDlg = WinCreateDlg(hWndMain, NULLHANDLE, MAKEINTRESOURCE(DLG_EXTRACTING), (PFNWP)ProgressDlgProc, MAKEINTRESOURCE(DLG_EXTRACTING), NULL);
WinUpdateWindow(dlgInfo.hWndDlg);
dlgInfo.hWndDlg = CreateDialog(hSetupRscInst, MAKEINTRESOURCE(DLG_EXTRACTING), hWndMain, (WNDPROC)ProgressDlgProc);
UpdateWindow(dlgInfo.hWndDlg);
}
}
@ -795,8 +806,9 @@ void DeInitProgressDlg()
{
if(sgProduct.dwMode != SILENT)
{
WinDestroyWindow(dlgInfo.hWndDlg);
DestroyWindow(dlgInfo.hWndDlg);
UnregisterClass("GaugeFile", hInst);
UnregisterClass("GaugeArchive", hInst);
}
}
#endif

Просмотреть файл

@ -20,22 +20,21 @@
*
* Contributor(s):
* Sean Su <ssu@netscape.com>
* IBM Corp.
*/
#ifndef _XPI_H_
#define _XPI_H_
APIRET InitializeXPIStub(void);
APIRET DeInitializeXPIStub(void);
APIRET SmartUpdateJars(void);
HRESULT InitializeXPIStub(void);
HRESULT DeInitializeXPIStub(void);
HRESULT SmartUpdateJars(void);
void cbXPIStart(const char *, const char *UIName);
void cbXPIProgress(const char* msg, PRInt32 val, PRInt32 max);
void cbXPIFinal(const char *, PRInt32 finalStatus);
void InitProgressDlg(void);
void DeInitProgressDlg(void);
void GetTotalArchivesToInstall(void);
char *GetErrorString(ULONG dwError, char *szErrorString, ULONG dwErrorStringSize);
char *GetErrorString(DWORD dwError, char *szErrorString, DWORD dwErrorStringSize);
#endif /* _XPI_H_ */

Просмотреть файл

@ -20,7 +20,6 @@
*
* Contributor(s):
* Daniel Veditz <dveditz@netscape.com>
* IBM Corp.
*/

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Просмотреть файл

@ -18,7 +18,6 @@
*
* Contributor(s):
* Sean Su <ssu@netscape.com>
* IBM Corp.
*/
#ifndef _XPNETHOOK_H_
@ -37,10 +36,9 @@ int DownloadFiles(char *szInputIniFile,
char *szProxyUser,
char *szProxyPasswd,
BOOL bShowRetryMsg,
int *iNetRetries,
BOOL bIgnoreNetworkError,
char *szFailedFile,
ULONG dwFailedFileSize);
DWORD dwFailedFileSize);
#endif /* _XPNETHOOK_H_ */

Просмотреть файл

@ -20,7 +20,6 @@
*
* Contributor(s):
* Daniel Veditz <dveditz@netscape.com>
* IBM Corp.
*/
#ifndef _zipfile_h

Просмотреть файл

@ -1,50 +1,60 @@
#!gmake
#
# The contents of this file are subject to the Netscape Public
# The contents of this file are subject to the Mozilla Public
# License Version 1.1 (the "License"); you may not use this file
# except in compliance with the License. You may obtain a copy of
# the License at http://www.mozilla.org/NPL/
#
# the License at http://www.mozilla.org/MPL/
#
# Software distributed under the License is distributed on an "AS
# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
# implied. See the License for the specific language governing
# rights and limitations under the License.
#
# The Original Code is Mozilla Communicator client code,
# released March 31, 1998.
#
# The Initial Developer of the Original Code is Netscape Communications
# Corporation. Portions created by Netscape are
# Copyright (C) 1998 Netscape Communications Corporation. All
#
# The Original Code is mozilla.org code
#
# The Initial Developer of the Original Code is Netscape
# Communications Corporation. Portions created by Netscape are
# Copyright (C) 2001 Netscape Communications Corporation. All
# Rights Reserved.
#
# Contributor(s):
#
# Contributor(s):
# Sean Su <ssu@netscape.com>
# Daniel Veditz <dveditz@netscape.com>
DEPTH=../../../..
topsrcdir = @top_srcdir@
DEPTH = ../../../..
topsrcdir = @top_srcdir@
srcdir = @srcdir@
VPATH = @srcdir@
MODULE = setuprsc
RESFILE = $(MODULE).res
LIBRARY_NAME = setuprsc
EXPORTS = setuprsc.h
FORCE_SHARED_LIB = 1
CPPSRCS= \
setuprsc.cpp \
$(NULL)
include $(DEPTH)/config/autoconf.mk
MODULE = setuprsc
LIBRARY_NAME = setuprsc
RESFILE = setuprsc.res
USE_NON_MT_LIBS = 1
NO_DIST_INSTALL = 1
EXPORTS = setuprsc.h
CPPSRCS = setuprsc.cpp
GARBAGE += $(DIST)/install/$(SHARED_LIBRARY)
GARBAGE_DIRS += $(DIST)/include/$(MODULE)
FORCE_SHARED_LIB=1
include $(topsrcdir)/config/rules.mk
libs::
$(INSTALL) -m 555 $(SHARED_LIBRARY) $(DIST)/install
# Hack to get around the default rules insisting that .lib should exist
$(IMPORT_LIBRARY):
touch $@
install::
$(SYSINSTALL) -m 555 $(SHARED_LIBRARY) $(DIST)/install
export:: $(EXPORTS)
$(INSTALL) $< $(DIST)/include/$(MODULE)
libs:: $(SHARED_LIBRARY)
$(INSTALL) $< $(DIST)/install
install:: $(SHARED_LIBRARY)
$(INSTALL) $< $(DESTDIR)$(mozappdir)/install

Двоичные данные
xpinstall/wizard/os2/setuprsc/bitmap1.bmp Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 32 KiB

Двоичные данные
xpinstall/wizard/os2/setuprsc/box_ch_d.ico Normal file

Двоичный файл не отображается.

Двоичные данные
xpinstall/wizard/os2/setuprsc/box_chec.ico Normal file

Двоичный файл не отображается.

Двоичные данные
xpinstall/wizard/os2/setuprsc/box_unch.ico Normal file

Двоичный файл не отображается.

Двоичные данные
xpinstall/wizard/os2/setuprsc/downloadLogo.bmp Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 76 KiB

Двоичные данные
xpinstall/wizard/os2/setuprsc/setup.ico Normal file

Двоичный файл не отображается.

Просмотреть файл

@ -18,13 +18,6 @@
* Rights Reserved.
*
* Contributor(s):
* Sean Su <ssu@netscape.com>
* IBM Corp.
*/
#include <os2.h>
int APIENTRY LibMain(HOBJECT hInstance, LONG wDataSeg, LONG cbHeapSize, PSZ lpCmdLine)
{
return(1);
}
static const char *id = "Mozilla for OS/2 XPInstall Reource DLL";

Просмотреть файл

@ -7,6 +7,7 @@
#define IDB_BITMAP_WELCOME 108
#define DLG_MESSAGE 110
#define IDB_BITMAP_DOWNLOAD_LOGO 114
#define IDB_QUICK_LAUNCH 115
#define DLG_BROWSE_DIR 503
#define IDC_STATUS 1001
#define IDC_STATUS1 1001
@ -84,6 +85,8 @@
#define IDC_USE_HTTP 1073
#define IDC_USE_FTP 1074
#define IDC_DESTINATION 1074
#define IDC_CHECK_TURBO_MODE 1075
#define IDC_CHECK_RECAPTURE_HOMEPAGE 1076
#define DLG_WELCOME 2001
#define DLG_LICENSE 2002
#define DLG_SETUP_TYPE 2003
@ -94,13 +97,15 @@
#define DLG_PROGRAM_FOLDER 2007
#define DLG_START_INSTALL 2008
#define DLG_EXTRACTING 2009
#define DLG_QUICK_LAUNCH 2010
#define DLG_RESTART 10206
#define DLG_SITE_SELECTOR 10207
#define DLG_ADVANCED_SETTINGS 10207
#define DLG_SELECT_ADDITIONAL_COMPONENTS 10208
#define DLG_UPGRADE 10209
#define DLG_DOWNLOAD_OPTIONS 10210
#define DLG_ADDITIONAL_OPTIONS 10210
#define DLG_DOWNLOADING 10211
#define DLG_START_INSTALL1 10212
#define IDB_BOX_CHECKED 10304
#define IDB_BOX_UNCHECKED 10306
#define IDB_BOX_CHECKED_DISABLED 10307

Просмотреть файл

@ -1,3 +1,4 @@
#include <os2.h>
#include "setuprsc.h"
/////////////////////////////////////////////////////////////////////////////
@ -7,350 +8,331 @@
DLGTEMPLATE DLG_WELCOME DISCARDABLE
BEGIN
DIALOG "", DLG_WELCOME, 48, 38, 296, 168,
DIALOG "", DLG_WELCOME, 64, -69, 394, 205,
WS_VISIBLE | FS_DLGBORDER | FS_SCREENALIGN,
FCF_TITLEBAR | FCF_SYSMENU | FCF_MINBUTTON | FCF_NOMOVEWITHOWNER
FCF_TITLEBAR | FCF_SYSMENU | FCF_NOMOVEWITHOWNER
BEGIN
WINDOW "", FID_CLIENT, 0, 0, 0, 0, "MozillaSetupDlg", WS_VISIBLE
BEGIN
DEFPUSHBUTTON "", IDWIZNEXT, 176, 4, 50, 12,
PUSHBUTTON "", DID_CANCEL, 236, 4, 50, 12,
LTEXT "", IDC_STATIC0, 95, 129, 190, 30, NOT WS_GROUP | SS_TEXT | DT_WORDBREAK | DT_MNEMONIC
LTEXT "", IDC_STATIC1, 96, 94, 189, 30, NOT WS_GROUP | SS_TEXT | DT_WORDBREAK | DT_MNEMONIC
LTEXT "", IDC_STATIC2, 96, 59, 189, 30, NOT WS_GROUP | SS_TEXT | DT_WORDBREAK | DT_MNEMONIC
CONTROL 108, IDC_STATIC, 14, 32, 104, 162, WC_STATIC, SS_BITMAP | WS_EX_CLIENTEDGE | SS_TEXT | DT_WORDBREAK | DT_MNEMONIC | WS_VISIBLE
CONTROL "", IDC_STATIC, 11, 21, 277, 1, WC_STATIC, SS_ETCHEDHORZ | WS_EX_STATICEDGE | SS_TEXT | DT_WORDBREAK | DT_MNEMONIC | WS_VISIBLE
END
DEFPUSHBUTTON "", IDWIZNEXT, 235, 5, 67, 14
PUSHBUTTON "", DID_CANCEL, 315, 5, 67, 14
LTEXT "", IDC_STATIC0, 127, 157, 253, 37, NOT WS_GROUP | SS_TEXT | DT_WORDBREAK | DT_MNEMONIC
LTEXT "", IDC_STATIC1, 128, 115, 252, 37, NOT WS_GROUP | SS_TEXT | DT_WORDBREAK | DT_MNEMONIC
LTEXT "", IDC_STATIC2, 128, 72, 252, 37, NOT WS_GROUP | SS_TEXT | DT_WORDBREAK | DT_MNEMONIC
CONTROL 108, IDC_STATIC, 14, 32, 104, 162, WC_STATIC, SS_BITMAP | WS_VISIBLE
CONTROL "", IDC_STATIC, 14, 25, 369, 1, WC_STATIC, SS_TEXT | DT_WORDBREAK | DT_MNEMONIC | WS_VISIBLE
END
END
DLGTEMPLATE DLG_SETUP_TYPE DISCARDABLE
DLGTEMPLATE DLG_SETUP_TYPE DISCARDABLE
BEGIN
DIALOG "", DLG_SETUP_TYPE, 48, 38, 296, 168,
DIALOG "", DLG_SETUP_TYPE, 64, -69, 394, 205,
WS_VISIBLE | FS_DLGBORDER | FS_SCREENALIGN,
FCF_TITLEBAR | FCF_SYSMENU | FCF_MINBUTTON | FCF_NOMOVEWITHOWNER
FCF_TITLEBAR | FCF_SYSMENU | FCF_NOMOVEWITHOWNER
BEGIN
WINDOW "", FID_CLIENT, 0, 0, 0, 0, "MozillaSetupDlg", WS_VISIBLE
BEGIN
CONTROL "", IDC_RADIO_ST0, 96, 135, 62, 10, WC_BUTTON, BS_AUTORADIOBUTTON |
CONTROL "", IDC_RADIO_ST0, 128, 164, 82, 12, WC_BUTTON, BS_AUTORADIOBUTTON |
WS_TABSTOP | BS_PUSHBUTTON | WS_VISIBLE
CONTROL "", IDC_RADIO_ST1, 96, 112, 62, 10, WC_BUTTON, BS_AUTORADIOBUTTON | BS_PUSHBUTTON | WS_VISIBLE
CONTROL "", IDC_RADIO_ST2, 96, 90, 60, 10, WC_BUTTON, BS_AUTORADIOBUTTON | BS_PUSHBUTTON | WS_VISIBLE
CONTROL "", IDC_RADIO_ST3, 96, 67, 60, 10, WC_BUTTON, BS_AUTORADIOBUTTON | BS_PUSHBUTTON | WS_VISIBLE
LTEXT "",IDC_STATIC_ST0_DESCRIPTION, 164, 123, 119, 20, SS_TEXT | DT_WORDBREAK | DT_MNEMONIC
LTEXT "",IDC_STATIC_ST1_DESCRIPTION, 164, 100, 119, 20, SS_TEXT | DT_WORDBREAK | DT_MNEMONIC
LTEXT "",IDC_STATIC_ST2_DESCRIPTION, 164, 78, 119, 20, SS_TEXT | DT_WORDBREAK | DT_MNEMONIC
LTEXT "",IDC_STATIC_ST3_DESCRIPTION, 164, 54, 119, 21, SS_TEXT | DT_WORDBREAK | DT_MNEMONIC
GROUPBOX "", IDC_DESTINATION, 95, 25, 191, 22, DT_MNEMONIC
CONTROL "", IDC_EDIT_DESTINATION, 101, 30, 134, 7, WC_STATIC, DT_LEFT | WS_GROUP | SS_TEXT | DT_MNEMONIC | WS_VISIBLE
PUSHBUTTON "", IDC_BUTTON_BROWSE, 239, 29, 44, 12,
PUSHBUTTON "", IDC_README, 11, 4, 78, 12,
PUSHBUTTON "", IDWIZBACK, 126, 4, 50, 12,
DEFPUSHBUTTON "", IDWIZNEXT, 176, 4, 50, 12,
PUSHBUTTON "", DID_CANCEL, 236, 4, 50, 12,
LTEXT "", IDC_STATIC_MSG0, 95, 145, 191, 14, NOT WS_GROUP | SS_TEXT | DT_WORDBREAK | DT_MNEMONIC
CONTROL 108, IDC_STATIC, 14, 32, 104, 162, WC_STATIC, SS_BITMAP | WS_EX_CLIENTEDGE | SS_TEXT | DT_WORDBREAK | DT_MNEMONIC | WS_VISIBLE
CONTROL "", IDC_STATIC, 11, 21, 277, 1, WC_STATIC, SS_ETCHEDHORZ | WS_EX_STATICEDGE | SS_TEXT | DT_WORDBREAK | DT_MNEMONIC | WS_VISIBLE
END
CONTROL "", IDC_RADIO_ST1, 128, 136, 82, 12, WC_BUTTON, BS_AUTORADIOBUTTON | BS_PUSHBUTTON | WS_VISIBLE
CONTROL "", IDC_RADIO_ST2, 128, 109, 80, 12, WC_BUTTON, BS_AUTORADIOBUTTON | BS_PUSHBUTTON | WS_VISIBLE
CONTROL "", IDC_RADIO_ST3, 128, 81, 80, 12, WC_BUTTON, BS_AUTORADIOBUTTON | BS_PUSHBUTTON | WS_VISIBLE
LTEXT "",IDC_STATIC_ST0_DESCRIPTION,219,150,158, 24, SS_TEXT | DT_WORDBREAK | DT_MNEMONIC
LTEXT "",IDC_STATIC_ST1_DESCRIPTION,219,122,158, 24, SS_TEXT | DT_WORDBREAK | DT_MNEMONIC
LTEXT "",IDC_STATIC_ST2_DESCRIPTION,219,95, 158, 24, SS_TEXT | DT_WORDBREAK | DT_MNEMONIC
LTEXT "",IDC_STATIC_ST3_DESCRIPTION,219,66, 158, 25, SS_TEXT | DT_WORDBREAK | DT_MNEMONIC
GROUPBOX "", IDC_DESTINATION, 127, 31, 255, 27, DT_MNEMONIC
CONTROL "", IDC_EDIT_DESTINATION, 134, 36, 179, 9, WC_STATIC, DT_LEFT | WS_GROUP | SS_TEXT | DT_MNEMONIC | WS_VISIBLE
PUSHBUTTON "", IDC_BUTTON_BROWSE, 319, 35, 58, 14
PUSHBUTTON "", IDC_README, 14, 5, 104, 14
PUSHBUTTON "", IDWIZBACK, 168, 5, 67, 14
DEFPUSHBUTTON "", IDWIZNEXT, 235, 5, 67, 14
PUSHBUTTON "", DID_CANCEL, 315, 5, 67, 14
LTEXT "", IDC_STATIC_MSG0, 127, 177, 255, 17, NOT WS_GROUP | SS_TEXT | DT_WORDBREAK | DT_MNEMONIC
CONTROL 108, IDC_STATIC, 14, 32, 104, 162, WC_STATIC, SS_BITMAP | WS_VISIBLE
CONTROL "", IDC_STATIC, 14, 25, 369, 1, WC_STATIC, SS_TEXT | DT_WORDBREAK | DT_MNEMONIC | WS_VISIBLE
END
END
DLGTEMPLATE DLG_SELECT_COMPONENTS DISCARDABLE
BEGIN
DIALOG "", DLG_SELECT_COMPONENTS, 48, 38, 296, 168,
DIALOG "", DLG_SELECT_COMPONENTS, 64, -69, 394, 205,
WS_VISIBLE | FS_DLGBORDER | FS_SCREENALIGN,
FCF_TITLEBAR | FCF_SYSMENU | FCF_MINBUTTON | FCF_NOMOVEWITHOWNER
FCF_TITLEBAR | FCF_SYSMENU | FCF_NOMOVEWITHOWNER
BEGIN
WINDOW "", FID_CLIENT, 0, 0, 0, 0, "MozillaSetupDlg", WS_VISIBLE
BEGIN
DEFPUSHBUTTON "", IDWIZNEXT, 176, 4, 50, 12,
PUSHBUTTON "", DID_CANCEL, 236, 4, 50, 12,
LISTBOX IDC_LIST_COMPONENTS, 127, 96, 255, 67, LS_OWNERDRAW | LS_NOADJUSTPOS | WS_GROUP | WS_TABSTOP
PUSHBUTTON "", IDWIZBACK, 126, 4, 50, 12,
LTEXT "", IDC_MESSAGE0, 95, 145, 191, 16, NOT WS_GROUP | SS_TEXT | DT_WORDBREAK | DT_MNEMONIC
LTEXT "", IDC_STATIC1, 95, 136, 97, 7, SS_TEXT | DT_WORDBREAK | DT_MNEMONIC
GROUPBOX "", IDC_STATIC2, 95, 56, 191, 18, DT_MNEMONIC
LTEXT "", IDC_STATIC_DESCRIPTION, 100, 60, 183, 7, SS_TEXT | DT_WORDBREAK
GROUPBOX "", IDC_STATIC, 95, 26, 191, 27, DT_MNEMONIC
LTEXT "", IDC_DOWNLOAD_SIZE, 99, 30, 86, 7, NOT WS_GROUP | SS_TEXT | DT_WORDBREAK | DT_MNEMONIC
LTEXT "", IDC_SPACE_AVAILABLE, 194, 30, 89, 7, NOT WS_GROUP | SS_TEXT | DT_WORDBREAK | DT_MNEMONIC
CONTROL 108, IDC_STATIC, 14, 32, 104, 162, WC_STATIC, SS_BITMAP | WS_EX_CLIENTEDGE | SS_TEXT | DT_WORDBREAK | DT_MNEMONIC | WS_VISIBLE
CONTROL "", IDC_STATIC, 11, 21, 277, 1, WC_STATIC, SS_ETCHEDHORZ | WS_EX_STATICEDGE | SS_TEXT | DT_WORDBREAK | DT_MNEMONIC | WS_VISIBLE
LTEXT "", IDC_STATIC, 189, 136, 97, 7, 0 | WS_EX_RIGHT | SS_TEXT | DT_WORDBREAK | DT_MNEMONIC
LTEXT "", IDC_STATIC3, 99, 39, 86, 7, SS_TEXT | DT_WORDBREAK | DT_MNEMONIC
LTEXT "", IDC_STATIC4, 194, 39, 89, 7, SS_TEXT | DT_WORDBREAK | DT_MNEMONIC
END
LTEXT "", IDC_STATIC1, 127, 165, 129, 8, SS_TEXT | DT_WORDBREAK | DT_MNEMONIC
// LISTBOX IDC_LIST_COMPONENTS, 127, 96, 255, 67, LS_OWNERDRAW | LS_NOADJUSTPOS | WS_GROUP | WS_TABSTOP
LISTBOX IDC_LIST_COMPONENTS, 127, 96, 255, 67, LS_NOADJUSTPOS | WS_GROUP | WS_TABSTOP
PUSHBUTTON "", IDWIZBACK, 168, 5, 67, 14
DEFPUSHBUTTON "", IDWIZNEXT, 235, 5, 67, 14
PUSHBUTTON "", DID_CANCEL, 315, 5, 67, 14
LTEXT "", IDC_MESSAGE0, 127, 176, 255, 19, NOT WS_GROUP | SS_TEXT | DT_WORDBREAK | DT_MNEMONIC
GROUPBOX "", IDC_STATIC2, 127, 68, 255, 22, DT_MNEMONIC
LTEXT "", IDC_STATIC_DESCRIPTION, 133, 73, 244, 8, SS_TEXT | DT_WORDBREAK
GROUPBOX "", IDC_STATIC, 127, 32, 255, 33, DT_MNEMONIC
LTEXT "", IDC_DOWNLOAD_SIZE, 132, 37, 115, 8, NOT WS_GROUP | SS_TEXT | DT_WORDBREAK | DT_MNEMONIC
LTEXT "", IDC_SPACE_AVAILABLE, 258, 37, 118, 8, NOT WS_GROUP | SS_TEXT | DT_WORDBREAK | DT_MNEMONIC
CONTROL 108, IDC_STATIC, 14, 32, 104, 162, WC_STATIC, SS_BITMAP | WS_VISIBLE
CONTROL "", IDC_STATIC, 14, 25, 369, 1, WC_STATIC, SS_TEXT | DT_WORDBREAK | DT_MNEMONIC | WS_VISIBLE
LTEXT "", IDC_STATIC, 252, 165, 129, 8, SS_TEXT | DT_WORDBREAK | DT_MNEMONIC
LTEXT "", IDC_STATIC3, 132, 48, 115, 9, SS_TEXT | DT_WORDBREAK | DT_MNEMONIC
LTEXT "", IDC_STATIC4, 258, 48, 118, 9, SS_TEXT | DT_WORDBREAK | DT_MNEMONIC
END
END
DLGTEMPLATE DLG_WINDOWS_INTEGRATION DISCARDABLE
BEGIN
DIALOG "", DLG_WINDOWS_INTEGRATION, 48, 38, 296, 168,
DIALOG "", DLG_WINDOWS_INTEGRATION, 64, -69, 394, 205,
WS_VISIBLE | FS_DLGBORDER | FS_SCREENALIGN,
FCF_TITLEBAR | FCF_SYSMENU | FCF_MINBUTTON | FCF_NOMOVEWITHOWNER
FCF_TITLEBAR | FCF_SYSMENU | FCF_NOMOVEWITHOWNER
BEGIN
WINDOW "", FID_CLIENT, 0, 0, 0, 0, "MozillaSetupDlg", WS_VISIBLE
BEGIN
CONTROL "", IDC_CHECK0, 95, 128, 193, 14, WC_BUTTON, BS_AUTOCHECKBOX | BS_TOP |
BS_MULTILINE | WS_TABSTOP | BS_PUSHBUTTON | WS_VISIBLE
CONTROL "", IDC_CHECK1, 95, 111, 193, 14, WC_BUTTON, BS_AUTOCHECKBOX | BS_TOP |
BS_MULTILINE | WS_TABSTOP | BS_PUSHBUTTON | WS_VISIBLE
CONTROL "", IDC_CHECK2, 95, 94, 193, 14, WC_BUTTON, BS_AUTOCHECKBOX | BS_TOP |
BS_MULTILINE | WS_TABSTOP | BS_PUSHBUTTON | WS_VISIBLE
CONTROL "", IDC_CHECK3, 95, 77, 193, 14, WC_BUTTON, BS_AUTOCHECKBOX | BS_TOP |
BS_MULTILINE | WS_TABSTOP | BS_PUSHBUTTON | WS_VISIBLE
LTEXT "", IDC_MESSAGE1, 95, 28, 193, 44, NOT WS_GROUP | SS_TEXT | DT_WORDBREAK | DT_MNEMONIC
PUSHBUTTON "", IDWIZBACK, 126, 4, 50, 12,
DEFPUSHBUTTON "", IDWIZNEXT, 176, 4, 50, 12,
PUSHBUTTON "", DID_CANCEL, 236, 4, 50, 12,
LTEXT "", IDC_MESSAGE0, 95, 145, 191, 14, NOT WS_GROUP | SS_TEXT | DT_WORDBREAK | DT_MNEMONIC
CONTROL 108, IDC_PICT0, 14, 32, 104, 162, WC_STATIC, SS_BITMAP | WS_EX_CLIENTEDGE | SS_TEXT | DT_WORDBREAK | DT_MNEMONIC | WS_VISIBLE
CONTROL "", IDC_STATIC0, 11, 21, 277, 1, WC_STATIC, SS_ETCHEDHORZ | WS_EX_STATICEDGE | SS_TEXT | DT_WORDBREAK | DT_MNEMONIC | WS_VISIBLE
END
CONTROL "", IDC_CHECK0, 127, 156, 257, 17, WC_BUTTON, BS_AUTOCHECKBOX |
WS_TABSTOP | BS_PUSHBUTTON | WS_VISIBLE
CONTROL "", IDC_CHECK1, 127, 135, 257, 17, WC_BUTTON, BS_AUTOCHECKBOX |
WS_TABSTOP | BS_PUSHBUTTON | WS_VISIBLE
CONTROL "", IDC_CHECK2, 127, 115, 257, 17, WC_BUTTON, BS_AUTOCHECKBOX |
WS_TABSTOP | BS_PUSHBUTTON | WS_VISIBLE
CONTROL "", IDC_CHECK3, 127, 94, 257, 17, WC_BUTTON, BS_AUTOCHECKBOX |
WS_TABSTOP | BS_PUSHBUTTON | WS_VISIBLE
LTEXT "", IDC_MESSAGE1, 127, 34, 257, 54, NOT WS_GROUP | SS_TEXT | DT_WORDBREAK | DT_MNEMONIC
PUSHBUTTON "", IDWIZBACK, 168, 5, 67, 14
DEFPUSHBUTTON "", IDWIZNEXT, 235, 5, 67, 14
PUSHBUTTON "", DID_CANCEL, 315, 5, 67, 14
LTEXT "", IDC_MESSAGE0, 127, 177, 255, 17, NOT WS_GROUP | SS_TEXT | DT_WORDBREAK | DT_MNEMONIC
CONTROL 108, IDC_PICT0, 14, 32, 104, 162, WC_STATIC, SS_BITMAP | WS_VISIBLE
CONTROL "", IDC_STATIC0, 14, 25, 369, 1, WC_STATIC, SS_TEXT | DT_WORDBREAK | DT_MNEMONIC | WS_VISIBLE
END
END
DLGTEMPLATE DLG_PROGRAM_FOLDER DISCARDABLE
BEGIN
DIALOG "", DLG_PROGRAM_FOLDER, 48, 38, 296, 168,
DIALOG "", DLG_PROGRAM_FOLDER, 64, -69, 394, 205,
WS_VISIBLE | FS_DLGBORDER | FS_SCREENALIGN,
FCF_TITLEBAR | FCF_SYSMENU | FCF_MINBUTTON | FCF_NOMOVEWITHOWNER
FCF_TITLEBAR | FCF_SYSMENU | FCF_NOMOVEWITHOWNER
BEGIN
WINDOW "", FID_CLIENT, 0, 0, 0, 0, "MozillaSetupDlg", WS_VISIBLE
BEGIN
ENTRYFIELD "",IDC_EDIT_PROGRAM_FOLDER, 97, 107, 188, 7, ES_AUTOSCROLL | ES_MARGIN
LTEXT "", IDC_STATIC1, 127, 143, 132, 8, SS_TEXT | DT_WORDBREAK | DT_MNEMONIC
ENTRYFIELD "",IDC_EDIT_PROGRAM_FOLDER, 129, 130, 251, 9, ES_AUTOSCROLL | ES_MARGIN
LTEXT "", IDC_STATIC2, 127, 113, 204, 8, SS_TEXT | DT_WORDBREAK | DT_MNEMONIC
LISTBOX IDC_LIST, 127, 32, 255, 79, LS_NOADJUSTPOS | WS_TABSTOP
PUSHBUTTON "", IDWIZBACK, 126, 4, 50, 12,
DEFPUSHBUTTON "", IDWIZNEXT, 176, 4, 50, 12,
PUSHBUTTON "", DID_CANCEL, 236, 4, 50, 12,
LTEXT "", IDC_MESSAGE0, 95, 132, 191, 27, NOT WS_GROUP | SS_TEXT | DT_WORDBREAK | DT_MNEMONIC
LTEXT "", IDC_STATIC1, 95, 117, 99, 7, SS_TEXT | DT_WORDBREAK | DT_MNEMONIC
LTEXT "", IDC_STATIC2, 95, 93, 153, 7, SS_TEXT | DT_WORDBREAK | DT_MNEMONIC
CONTROL 108, IDC_STATIC, 14, 32, 104, 162, WC_STATIC, SS_BITMAP | WS_EX_CLIENTEDGE | SS_TEXT | DT_WORDBREAK | DT_MNEMONIC | WS_VISIBLE
CONTROL "", IDC_STATIC, 11, 21, 277, 1, WC_STATIC, SS_ETCHEDHORZ | WS_EX_STATICEDGE | SS_TEXT | DT_WORDBREAK | DT_MNEMONIC | WS_VISIBLE
END
PUSHBUTTON "", IDWIZBACK, 168, 5, 67, 14
DEFPUSHBUTTON "", IDWIZNEXT, 235, 5, 67, 14
PUSHBUTTON "", DID_CANCEL, 315, 5, 67, 14
LTEXT "", IDC_MESSAGE0, 127, 161, 255, 33, NOT WS_GROUP | SS_TEXT | DT_WORDBREAK | DT_MNEMONIC
CONTROL 108, IDC_STATIC, 14, 32, 104, 162, WC_STATIC, SS_BITMAP | WS_VISIBLE
CONTROL "", IDC_STATIC, 14, 25, 369, 1, WC_STATIC, SS_TEXT | DT_WORDBREAK | DT_MNEMONIC | WS_VISIBLE
END
END
DLGTEMPLATE DLG_LICENSE DISCARDABLE
BEGIN
DIALOG "", DLG_LICENSE, 48, 38, 296, 168,
DIALOG "", DLG_LICENSE, 64, -69, 394, 205,
WS_VISIBLE | FS_DLGBORDER | FS_SCREENALIGN,
FCF_TITLEBAR | FCF_SYSMENU | FCF_MINBUTTON | FCF_NOMOVEWITHOWNER
FCF_TITLEBAR | FCF_SYSMENU | FCF_NOMOVEWITHOWNER
BEGIN
WINDOW "", FID_CLIENT, 0, 0, 0, 0, "MozillaSetupDlg", WS_VISIBLE
BEGIN
DEFPUSHBUTTON "", IDWIZNEXT, 176, 4, 50, 12,
PUSHBUTTON "", DID_CANCEL, 236, 4, 50, 12,
MLE "", IDC_EDIT_LICENSE, 11, 47, 277, 98, WS_GROUP | MLS_WORDWRAP | MLS_READONLY | MLS_VSCROLL
PUSHBUTTON "", IDWIZBACK, 126, 4, 50, 12,
LTEXT "", IDC_MESSAGE0, 11, 148, 277, 14, NOT WS_GROUP | SS_TEXT | DT_WORDBREAK | DT_MNEMONIC
LTEXT "", IDC_MESSAGE1, 11, 28, 277, 16, NOT WS_GROUP | SS_TEXT | DT_WORDBREAK | DT_MNEMONIC
CONTROL "", -1, 11, 21, 277, 1, WC_STATIC, SS_ETCHEDHORZ | WS_EX_STATICEDGE | SS_TEXT | DT_WORDBREAK | DT_MNEMONIC | WS_VISIBLE
END
DEFPUSHBUTTON "", IDWIZNEXT, 235, 5, 67, 14
PUSHBUTTON "", IDWIZBACK, 168, 5, 67, 14
PUSHBUTTON "", DID_CANCEL, 315, 5, 67, 14
MLE "", IDC_EDIT_LICENSE, 14, 57, 369, 119, WS_GROUP | MLS_WORDWRAP | MLS_READONLY | MLS_VSCROLL
LTEXT "", IDC_MESSAGE0, 14, 180, 369, 17, NOT WS_GROUP | SS_TEXT | DT_WORDBREAK | DT_MNEMONIC
LTEXT "", IDC_MESSAGE1, 14, 34, 369, 19, NOT WS_GROUP | SS_TEXT | DT_WORDBREAK | DT_MNEMONIC
CONTROL "", -1, 14, 25, 369, 1, WC_STATIC, SS_TEXT | DT_WORDBREAK | DT_MNEMONIC | WS_VISIBLE
END
END
DLGTEMPLATE DLG_START_INSTALL DISCARDABLE
DLGTEMPLATE DLG_QUICK_LAUNCH DISCARDABLE
BEGIN
DIALOG "", DLG_START_INSTALL, 48, 38, 296, 168,
DIALOG "", DLG_QUICK_LAUNCH, 64, -69, 394, 205,
WS_VISIBLE | FS_DLGBORDER | FS_SCREENALIGN,
FCF_TITLEBAR | FCF_SYSMENU | FCF_MINBUTTON | FCF_NOMOVEWITHOWNER
FCF_TITLEBAR | FCF_SYSMENU | FCF_NOMOVEWITHOWNER
BEGIN
WINDOW "", FID_CLIENT, 0, 0, 0, 0, "MozillaSetupDlg", WS_VISIBLE
BEGIN
MLE "", IDC_CURRENT_SETTINGS, 95, 26, 191, 87, MLS_WORDWRAP | MLS_READONLY | MLS_VSCROLL | MLS_HSCROLL
PUSHBUTTON "", IDWIZBACK, 126, 4, 50, 12,
DEFPUSHBUTTON "", IDWIZNEXT, 176, 4, 50, 12,
PUSHBUTTON "", DID_CANCEL, 236, 4, 50, 12,
LTEXT "", IDC_MESSAGE0, 95, 117, 191, 43, NOT WS_GROUP | SS_TEXT | DT_WORDBREAK | DT_MNEMONIC
CONTROL 108, IDC_STATIC, 14, 32, 104, 162, WC_STATIC, SS_BITMAP | WS_EX_CLIENTEDGE | SS_TEXT | DT_WORDBREAK | DT_MNEMONIC | WS_VISIBLE
CONTROL "", IDC_STATIC, 11, 21, 277, 1, WC_STATIC, SS_ETCHEDHORZ | WS_EX_STATICEDGE | SS_TEXT | DT_WORDBREAK | DT_MNEMONIC | WS_VISIBLE
END
CONTROL "", IDC_CHECK_TURBO_MODE, 127, 39, 255, 9, WC_BUTTON, BS_AUTOCHECKBOX |
WS_TABSTOP | BS_PUSHBUTTON | WS_VISIBLE
PUSHBUTTON "", IDWIZBACK, 168, 5, 67, 14
DEFPUSHBUTTON "", IDWIZNEXT, 235, 5, 67, 14
PUSHBUTTON "", DID_CANCEL, 315, 5, 67, 14
LTEXT "", IDC_MESSAGE0, 127, 173, 255, 18, NOT WS_GROUP | SS_TEXT | DT_WORDBREAK | DT_MNEMONIC
LTEXT "", IDC_MESSAGE1, 127, 135, 255, 20, NOT WS_GROUP | SS_TEXT | DT_WORDBREAK | DT_MNEMONIC
LTEXT "", IDC_MESSAGE2, 127, 60, 255, 18, NOT WS_GROUP | SS_TEXT | DT_WORDBREAK | DT_MNEMONIC
CONTROL 108, IDC_STATIC, 14, 32, 104, 162, WC_STATIC, SS_BITMAP | WS_VISIBLE
CONTROL "", IDC_STATIC, 14, 25, 369, 1, WC_STATIC, SS_TEXT | DT_WORDBREAK | DT_MNEMONIC | WS_VISIBLE
CONTROL 115, IDC_STATIC, 128, 109, 25, 20, WC_STATIC, SS_BITMAP | WS_VISIBLE
END
END
DLGTEMPLATE DLG_BROWSE_DIR DISCARDABLE
BEGIN
DIALOG "", DLG_BROWSE_DIR, 138, 116, 179, 117,
DIALOG "", DLG_BROWSE_DIR, 184, 26, 238, 143,
FS_DLGBORDER | FS_SCREENALIGN,
FCF_TITLEBAR | FCF_SYSMENU | FCF_NOMOVEWITHOWNER
BEGIN
ENTRYFIELD "", IDC_EDIT_DESTINATION, 8, 94, 167, 10, WS_EX_CLIENTEDGE | ES_AUTOSCROLL
LTEXT "", 1092, 10, 128, 115, 9, SS_TEXT | DT_WORDBREAK | DT_MNEMONIC
ENTRYFIELD "", IDC_EDIT_DESTINATION, 10, 115, 222, 12, ES_AUTOSCROLL
LISTBOX 1121, 10, 38, 150, 68, LS_OWNERDRAW | WS_TABSTOP
COMBOBOX "", 1137, 8, -35, 114, 56, CBS_DROPDOWNLIST | WS_TABSTOP
DEFPUSHBUTTON "", 1, 127, 71, 47, 12, WS_GROUP
PUSHBUTTON "", DID_CANCEL, 127, 54, 47, 12, WS_GROUP
LTEXT "", 1092, 8, 105, 86, 7, SS_TEXT | DT_WORDBREAK | DT_MNEMONIC
LTEXT "", 1091, 8, 21, 86, 7, SS_TEXT | DT_WORDBREAK | DT_MNEMONIC
LTEXT "", 1091, 10, 26, 115, 9, SS_TEXT | DT_WORDBREAK | DT_MNEMONIC
COMBOBOX "", 1137, 10, -43, 152, 68, CBS_DROPDOWNLIST | WS_TABSTOP
DEFPUSHBUTTON "", 1, 169, 86, 63, 14, WS_GROUP
PUSHBUTTON "", DID_CANCEL, 169, 66, 63, 14, WS_GROUP
END
END
DLGTEMPLATE DLG_RESTART FIXED IMPURE
BEGIN
DIALOG "", DLG_RESTART, 125, 104, 239, 91,
DIALOG "", DLG_RESTART, 167, 12, 319, 111,
WS_VISIBLE | FS_DLGBORDER | FS_SCREENALIGN,
FCF_TITLEBAR | FCF_SYSMENU | FCF_MINBUTTON | FCF_NOMOVEWITHOWNER
FCF_TITLEBAR | FCF_SYSMENU | FCF_NOMOVEWITHOWNER
BEGIN
WINDOW "", FID_CLIENT, 0, 0, 0, 0, "MozillaSetupDlg", WS_VISIBLE
BEGIN
LTEXT "", 202, 10, 53, 221, 30, SS_TEXT | DT_WORDBREAK
CONTROL "", IDC_RADIO_YES, 25, 39, 206, 10, WC_BUTTON, BS_AUTORADIOBUTTON | BS_PUSHBUTTON | WS_VISIBLE
CONTROL "", IDC_RADIO_NO, 25, 25, 209, 10, WC_BUTTON, BS_AUTORADIOBUTTON | BS_PUSHBUTTON | WS_VISIBLE
DEFPUSHBUTTON "", DID_OK, 178, 7, 47, 12, WS_GROUP
END
LTEXT "", 202, 13, 65, 295, 36, SS_TEXT | DT_WORDBREAK
CONTROL "", IDC_RADIO_YES, 33, 47, 275, 12, WC_BUTTON, BS_AUTORADIOBUTTON | BS_PUSHBUTTON | WS_VISIBLE
CONTROL "", IDC_RADIO_NO, 33, 31, 279, 12, WC_BUTTON, BS_AUTORADIOBUTTON | BS_PUSHBUTTON | WS_VISIBLE
DEFPUSHBUTTON "", DID_OK, 237, 9, 63, 14, WS_GROUP
END
END
DLGTEMPLATE DLG_MESSAGE DISCARDABLE
BEGIN
DIALOG "", DLG_MESSAGE, 0, 224, 221, 28,
DIALOG "", DLG_MESSAGE, 0, 158, 295, 34,
WS_VISIBLE | FS_DLGBORDER | FS_SCREENALIGN,
FCF_TITLEBAR | FCF_NOMOVEWITHOWNER
BEGIN
WINDOW "", FID_CLIENT, 0, 0, 0, 0, "MozillaSetupDlg", WS_VISIBLE
BEGIN
CTEXT "", IDC_MESSAGE, 0, 0, 221, 28, SS_CENTERIMAGE | SS_TEXT | DT_WORDBREAK | DT_MNEMONIC
END
CTEXT "", IDC_MESSAGE, 0, 0, 295, 34, SS_TEXT | DT_WORDBREAK | DT_MNEMONIC
END
END
DLGTEMPLATE DLG_EXTRACTING DISCARDABLE
BEGIN
DIALOG "", DLG_EXTRACTING, 0, 126, 293, 127,
DIALOG "", DLG_EXTRACTING, 0, 38, 390, 154,
WS_VISIBLE | FS_DLGBORDER | FS_SCREENALIGN,
FCF_TITLEBAR | FCF_SYSMENU | FCF_MINBUTTON | FCF_NOMOVEWITHOWNER
FCF_TITLEBAR | FCF_SYSMENU | FCF_NOMOVEWITHOWNER
BEGIN
WINDOW "", FID_CLIENT, 0, 0, 0, 0, "MozillaSetupDlg", WS_VISIBLE
BEGIN
CONTROL "", IDC_GAUGE_FILE, 11, 27, 269, 9, "GaugeFile", 0x0 | WS_VISIBLE
CONTROL "", IDC_STATUS0, 11, 67, 269, 7, WC_STATIC, DT_LEFT | WS_GROUP | SS_TEXT | WS_VISIBLE
CONTROL "", IDC_STATUS3, 11, 39, 269, 7, WC_STATIC, DT_LEFT | WS_GROUP | SS_TEXT | WS_VISIBLE
CONTROL "", IDC_GAUGE_ARCHIVE, 11, 54, 269, 9, "GaugeArchive", 0x0 | WS_VISIBLE
CONTROL "", IDC_STATUS0, 15, 82, 358, 8, WC_STATIC, DT_LEFT | WS_GROUP | SS_TEXT | WS_VISIBLE
CONTROL "", IDC_GAUGE_ARCHIVE, 15, 66, 358, 11, "GaugeArchive", WS_VISIBLE
CONTROL "", IDC_STATUS3, 15, 48, 358, 8, WC_STATIC, DT_LEFT | WS_GROUP | SS_TEXT | WS_VISIBLE
CONTROL "", IDC_GAUGE_FILE, 15, 33, 358, 11, "GaugeFile", WS_VISIBLE
CONTROL 114, IDC_STATIC, 0, 120, 390, 34, WC_STATIC, SS_BITMAP | SS_TEXT | DT_WORDBREAK | DT_MNEMONIC | WS_VISIBLE
END
END
END
DLGTEMPLATE DLG_ADVANCED_SETTINGS DISCARDABLE
BEGIN
DIALOG "", DLG_ADVANCED_SETTINGS, 48, 38, 296, 168,
DIALOG "", DLG_ADVANCED_SETTINGS, 64, -69, 394, 205,
WS_VISIBLE | FS_DLGBORDER | FS_SCREENALIGN,
FCF_TITLEBAR | FCF_SYSMENU | FCF_MINBUTTON | FCF_NOMOVEWITHOWNER
FCF_TITLEBAR | FCF_SYSMENU | FCF_NOMOVEWITHOWNER
BEGIN
WINDOW "", FID_CLIENT, 0, 0, 0, 0, "MozillaSetupDlg", WS_VISIBLE
BEGIN
ENTRYFIELD "", IDC_EDIT_PROXY_SERVER, 157, 113, 123, 7, ES_AUTOSCROLL | ES_MARGIN
ENTRYFIELD "", IDC_EDIT_PROXY_PORT, 157, 99, 123, 7, ES_AUTOSCROLL | ES_MARGIN
ENTRYFIELD "", IDC_EDIT_PROXY_USER, 157, 76, 123, 7, ES_AUTOSCROLL | ES_MARGIN
ENTRYFIELD "", IDC_EDIT_PROXY_PASSWD, 157, 62, 123, 7, ES_AUTOSCROLL | ES_UNREADABLE | ES_MARGIN
CONTROL "", IDC_USE_FTP, 95, 39, 193, 7, WC_BUTTON, BS_AUTORADIOBUTTON | WS_TABSTOP | BS_PUSHBUTTON | WS_VISIBLE
CONTROL "", IDC_USE_HTTP, 95, 29, 193, 7, WC_BUTTON, BS_AUTORADIOBUTTON | BS_PUSHBUTTON | WS_VISIBLE
DEFPUSHBUTTON "", IDWIZNEXT, 176, 4, 50, 12,
PUSHBUTTON "", DID_CANCEL, 236, 4, 50, 12,
CONTROL 108, IDC_STATIC, 14, 32, 104, 162, WC_STATIC, SS_BITMAP | WS_EX_CLIENTEDGE | SS_TEXT | DT_WORDBREAK | DT_MNEMONIC | WS_VISIBLE
CONTROL "", IDC_STATIC, 11, 21, 277, 1, WC_STATIC, SS_ETCHEDHORZ | WS_EX_STATICEDGE | SS_TEXT | DT_WORDBREAK | DT_MNEMONIC | WS_VISIBLE
RTEXT "", IDC_STATIC1, 101, 113, 49, 7, SS_TEXT | DT_WORDBREAK | DT_MNEMONIC
RTEXT "", IDC_STATIC2, 101, 99, 49, 7, SS_TEXT | DT_WORDBREAK | DT_MNEMONIC
GROUPBOX "", IDC_STATIC, 95, 55, 194, 77, DT_MNEMONIC
LTEXT "", IDC_MESSAGE0, 95, 136, 191, 24, NOT WS_GROUP | SS_TEXT | DT_WORDBREAK | DT_MNEMONIC
RTEXT "", IDC_STATIC3, 101, 77, 49, 7, SS_TEXT | DT_WORDBREAK | DT_MNEMONIC
RTEXT "", IDC_STATIC4, 101, 62, 49, 7, SS_TEXT | DT_WORDBREAK | DT_MNEMONIC
END
ENTRYFIELD "", IDC_EDIT_PROXY_SERVER, 209, 137, 164, 9, ES_AUTOSCROLL | ES_MARGIN
ENTRYFIELD "", IDC_EDIT_PROXY_PORT, 209, 120, 164, 9, ES_AUTOSCROLL | ES_MARGIN
ENTRYFIELD "", IDC_EDIT_PROXY_USER, 209, 93, 164, 9, ES_AUTOSCROLL | ES_MARGIN
ENTRYFIELD "", IDC_EDIT_PROXY_PASSWD, 209, 76, 164, 9, ES_AUTOSCROLL | ES_UNREADABLE | ES_MARGIN
AUTORADIOBUTTON "", IDC_USE_FTP, 127, 48, 257, 9, WS_TABSTOP | WS_GROUP | WS_VISIBLE
AUTORADIOBUTTON "", IDC_USE_HTTP, 127, 35, 257, 9, WS_VISIBLE
DEFPUSHBUTTON "", IDWIZNEXT, 235, 5, 67, 14
PUSHBUTTON "", DID_CANCEL, 315, 5, 67, 14
CONTROL 108, IDC_STATIC, 14, 32, 104, 162, WC_STATIC, SS_BITMAP | WS_VISIBLE
CONTROL "", IDC_STATIC, 14, 25, 369, 1, WC_STATIC, SS_TEXT | DT_WORDBREAK | DT_MNEMONIC | WS_VISIBLE
RTEXT "", IDC_STATIC1, 135, 137, 65, 9, SS_TEXT | DT_WORDBREAK | DT_MNEMONIC
RTEXT "", IDC_STATIC2, 135, 121, 65, 9, SS_TEXT | DT_WORDBREAK | DT_MNEMONIC
GROUPBOX "", IDC_STATIC, 127, 67, 258, 94, DT_MNEMONIC
LTEXT "", IDC_MESSAGE0, 127, 165, 255, 29, NOT WS_GROUP | SS_TEXT | DT_WORDBREAK | DT_MNEMONIC
RTEXT "", IDC_STATIC3, 135, 94, 65, 9, SS_TEXT | DT_WORDBREAK | DT_MNEMONIC
RTEXT "", IDC_STATIC4, 135, 76, 65, 9, SS_TEXT | DT_WORDBREAK | DT_MNEMONIC
END
END
DLGTEMPLATE DLG_SELECT_ADDITIONAL_COMPONENTS DISCARDABLE
BEGIN
DIALOG "", DLG_SELECT_ADDITIONAL_COMPONENTS, 48, 38, 296, 168,
DIALOG "", DLG_SELECT_ADDITIONAL_COMPONENTS, 64, -69, 394, 205,
WS_VISIBLE | FS_DLGBORDER | FS_SCREENALIGN,
FCF_TITLEBAR | FCF_SYSMENU | FCF_MINBUTTON | FCF_NOMOVEWITHOWNER
FCF_TITLEBAR | FCF_SYSMENU | FCF_NOMOVEWITHOWNER
BEGIN
WINDOW "", FID_CLIENT, 0, 0, 0, 0, "MozillaSetupDlg", WS_VISIBLE
BEGIN
PUSHBUTTON "", IDWIZBACK, 126, 4, 50, 12,
DEFPUSHBUTTON "", IDWIZNEXT, 176, 4, 50, 12,
PUSHBUTTON "", DID_CANCEL, 236, 4, 50, 12,
LTEXT "", IDC_MESSAGE0, 95, 145, 191, 16, NOT WS_GROUP | SS_TEXT | DT_WORDBREAK | DT_MNEMONIC
LTEXT "", IDC_STATIC1, 95, 136, 118, 7, SS_TEXT | DT_WORDBREAK | DT_MNEMONIC
GROUPBOX "", IDC_STATIC2, 95, 56, 191, 18, DT_MNEMONIC
LTEXT "", IDC_STATIC_DESCRIPTION, 100, 60, 183, 7, SS_TEXT | DT_WORDBREAK
GROUPBOX "", IDC_STATIC, 95, 26, 191, 27, DT_MNEMONIC
LTEXT "", IDC_DOWNLOAD_SIZE, 99, 30, 86, 7, NOT WS_GROUP | SS_TEXT | DT_WORDBREAK | DT_MNEMONIC
LTEXT "", IDC_SPACE_AVAILABLE, 194, 30, 89, 7, NOT WS_GROUP | SS_TEXT | DT_WORDBREAK | DT_MNEMONIC
CONTROL 108, IDC_STATIC, 14, 32, 104, 162, WC_STATIC, SS_BITMAP | WS_EX_CLIENTEDGE | SS_TEXT | DT_WORDBREAK | DT_MNEMONIC | WS_VISIBLE
CONTROL "", IDC_STATIC, 11, 21, 277, 1, WC_STATIC, SS_ETCHEDHORZ | WS_EX_STATICEDGE | SS_TEXT | DT_WORDBREAK | DT_MNEMONIC | WS_VISIBLE
LISTBOX IDC_LIST_COMPONENTS, 127, 96, 255, 67, LS_OWNERDRAW | LS_NOADJUSTPOS | WS_GROUP | WS_TABSTOP
LTEXT "", IDC_STATIC, 227, 136, 59, 7, 0 | WS_EX_RIGHT | SS_TEXT | DT_WORDBREAK | DT_MNEMONIC
LTEXT "", IDC_STATIC3, 99, 39, 86, 7, SS_TEXT | DT_WORDBREAK | DT_MNEMONIC
LTEXT "", IDC_STATIC4, 194, 39, 89, 7, SS_TEXT | DT_WORDBREAK | DT_MNEMONIC
END
LTEXT "", IDC_STATIC1, 127, 165, 157, 8, SS_TEXT | DT_WORDBREAK | DT_MNEMONIC
// LISTBOX IDC_LIST_COMPONENTS, 127, 96, 255, 67, LS_OWNERDRAW | LS_NOADJUSTPOS | WS_GROUP | WS_TABSTOP
LISTBOX IDC_LIST_COMPONENTS, 127, 96, 255, 67, LS_NOADJUSTPOS | WS_GROUP | WS_TABSTOP
PUSHBUTTON "", IDWIZBACK, 168, 5, 67, 14
DEFPUSHBUTTON "", IDWIZNEXT, 235, 5, 67, 14
PUSHBUTTON "", DID_CANCEL, 315, 5, 67, 14
LTEXT "", IDC_MESSAGE0, 127, 176, 255, 19, NOT WS_GROUP | SS_TEXT | DT_WORDBREAK | DT_MNEMONIC
GROUPBOX "", IDC_STATIC2, 127, 68, 255, 22, DT_MNEMONIC
LTEXT "", IDC_STATIC_DESCRIPTION, 133, 73, 244, 8, SS_TEXT | DT_WORDBREAK
GROUPBOX "", IDC_STATIC, 127, 32, 255, 33, DT_MNEMONIC
LTEXT "", IDC_DOWNLOAD_SIZE, 132, 37, 115, 8, NOT WS_GROUP | SS_TEXT | DT_WORDBREAK | DT_MNEMONIC
LTEXT "", IDC_SPACE_AVAILABLE, 258, 37, 118, 8, NOT WS_GROUP | SS_TEXT | DT_WORDBREAK | DT_MNEMONIC
CONTROL 108, IDC_STATIC, 14, 32, 104, 162, WC_STATIC, SS_BITMAP | WS_VISIBLE
CONTROL "", IDC_STATIC, 14, 25, 369, 1, WC_STATIC, SS_TEXT | DT_WORDBREAK | DT_MNEMONIC | WS_VISIBLE
LTEXT "", IDC_STATIC, 302, 165, 79, 8, SS_TEXT | DT_WORDBREAK | DT_MNEMONIC
LTEXT "", IDC_STATIC3, 132, 48, 115, 9, SS_TEXT | DT_WORDBREAK | DT_MNEMONIC
LTEXT "", IDC_STATIC4, 258, 48, 118, 9, SS_TEXT | DT_WORDBREAK | DT_MNEMONIC
END
END
DLGTEMPLATE DLG_UPGRADE DISCARDABLE
BEGIN
DIALOG "", DLG_UPGRADE, 48, 70, 291, 136,
DIALOG "", DLG_UPGRADE, 64, -30, 388, 166,
WS_VISIBLE | FS_DLGBORDER | FS_SCREENALIGN,
FCF_TITLEBAR | FCF_NOMOVEWITHOWNER
BEGIN
LTEXT "", IDC_MESSAGE0, 17, 100, 259, 25, NOT WS_GROUP | SS_TEXT | DT_WORDBREAK | DT_MNEMONIC
LTEXT "", IDC_MESSAGE1, 17, 80, 259, 17, NOT WS_GROUP | SS_TEXT | DT_WORDBREAK | DT_MNEMONIC
LTEXT "", IDC_MESSAGE2, 17, 59, 259, 17, NOT WS_GROUP | SS_TEXT | DT_WORDBREAK | DT_MNEMONIC
GROUPBOX "", IDC_STATIC, 15, 32, 259, 21, DT_MNEMONIC
LTEXT "", IDC_DELETE_PATH, 21, 35, 248, 11, SS_CENTERIMAGE | SS_TEXT | DT_WORDBREAK | DT_MNEMONIC
PUSHBUTTON "", ID_DELETE, 89, 11, 50, 12,
DEFPUSHBUTTON "", IDWIZBACK, 152, 11, 50, 12,
LTEXT "", IDC_MESSAGE0, 22, 122, 345, 31, NOT WS_GROUP | SS_TEXT | DT_WORDBREAK | DT_MNEMONIC
LTEXT "", IDC_MESSAGE1, 22, 97, 345, 21, NOT WS_GROUP | SS_TEXT | DT_WORDBREAK | DT_MNEMONIC
LTEXT "", IDC_MESSAGE2, 22, 72, 345, 21, NOT WS_GROUP | SS_TEXT | DT_WORDBREAK | DT_MNEMONIC
GROUPBOX "", IDC_STATIC, 20, 39, 345, 25, DT_MNEMONIC
LTEXT "", IDC_DELETE_PATH, 28, 42, 330, 13, SS_TEXT | DT_WORDBREAK | DT_MNEMONIC
PUSHBUTTON "", ID_DELETE, 119, 13, 67, 14
DEFPUSHBUTTON "", IDWIZBACK, 203, 13, 67, 14
END
END
DLGTEMPLATE DLG_DOWNLOAD_OPTIONS DISCARDABLE
DLGTEMPLATE DLG_ADDITIONAL_OPTIONS DISCARDABLE
BEGIN
DIALOG "", DLG_DOWNLOAD_OPTIONS, 48, 38, 296, 168,
DIALOG "", DLG_ADDITIONAL_OPTIONS, 64, -69, 394, 205,
WS_VISIBLE | FS_DLGBORDER | FS_SCREENALIGN,
FCF_TITLEBAR | FCF_SYSMENU | FCF_MINBUTTON | FCF_NOMOVEWITHOWNER
FCF_TITLEBAR | FCF_SYSMENU | FCF_NOMOVEWITHOWNER
BEGIN
WINDOW "", FID_CLIENT, 0, 0, 0, 0, "MozillaSetupDlg", WS_VISIBLE
BEGIN
CONTROL "",IDC_CHECK_SAVE_INSTALLER_FILES, 95, 122, 191, 7,WC_BUTTON, BS_AUTOCHECKBOX | WS_TABSTOP | BS_PUSHBUTTON | WS_VISIBLE
ENTRYFIELD "",IDC_EDIT_LOCAL_INSTALLER_PATH, 97, 109, 188, 7, ES_AUTOSCROLL | ES_READONLY | ES_MARGIN
LTEXT "", IDC_MESSAGE0, 95, 78, 191, 21, NOT WS_GROUP | SS_TEXT | DT_WORDBREAK | DT_MNEMONIC
COMBOBOX "", IDC_LIST_SITE_SELECTOR, 95, -26, 191, 102, CBS_DROPDOWNLIST | WS_TABSTOP
PUSHBUTTON "",IDC_BUTTON_PROXY_SETTINGS, 208, 26, 79, 12,
PUSHBUTTON "", IDWIZBACK, 126, 4, 50, 12,
DEFPUSHBUTTON "", IDWIZNEXT, 176, 4, 50, 12,
PUSHBUTTON "", DID_CANCEL, 236, 4, 50, 12,
LTEXT "", IDC_MESSAGE1, 95, 132, 191, 27, NOT WS_GROUP | SS_TEXT | DT_WORDBREAK | DT_MNEMONIC
CONTROL 108, -1, 14, 32, 104, 162, WC_STATIC, SS_BITMAP | WS_EX_CLIENTEDGE | SS_TEXT | DT_WORDBREAK | DT_MNEMONIC | WS_VISIBLE
CONTROL "", -1, 11, 21, 277, 1, WC_STATIC, SS_ETCHEDHORZ | WS_EX_STATICEDGE | SS_TEXT | DT_WORDBREAK | DT_MNEMONIC | WS_VISIBLE
END
CONTROL "",IDC_CHECK_SAVE_INSTALLER_FILES,125,84,255,9, WC_BUTTON, BS_AUTOCHECKBOX | WS_TABSTOP | BS_PUSHBUTTON | WS_VISIBLE
ENTRYFIELD "",IDC_EDIT_LOCAL_INSTALLER_PATH,127,70,251, 9, ES_AUTOSCROLL | ES_READONLY | ES_MARGIN
LTEXT "", IDC_MESSAGE0, 125, 152, 255, 33, NOT WS_GROUP | SS_TEXT | DT_WORDBREAK | DT_MNEMONIC
PUSHBUTTON "",IDC_BUTTON_PROXY_SETTINGS,277, 32, 105, 14
PUSHBUTTON "", IDWIZBACK, 168, 5, 67, 14
DEFPUSHBUTTON "", IDWIZNEXT, 235, 5, 67, 14
PUSHBUTTON "", DID_CANCEL, 315, 5, 67, 14
LTEXT "", IDC_MESSAGE1, 125, 96, 255, 33, NOT WS_GROUP | SS_TEXT | DT_WORDBREAK | DT_MNEMONIC
CONTROL 108, -1, 14, 32, 104, 162, WC_STATIC, SS_BITMAP | WS_VISIBLE
CONTROL "", -1, 14, 25, 369, 1, WC_STATIC, SS_TEXT | DT_WORDBREAK | DT_MNEMONIC | WS_VISIBLE
CONTROL "",IDC_CHECK_RECAPTURE_HOMEPAGE,125,141,253, 8, WC_BUTTON, BS_AUTOCHECKBOX |
WS_TABSTOP | BS_PUSHBUTTON | WS_VISIBLE
END
END
DLGTEMPLATE DLG_DOWNLOADING DISCARDABLE
BEGIN
DIALOG "", DLG_DOWNLOADING, 0, 126, 293, 127,
DIALOG "", DLG_DOWNLOADING, 0, 38, 390, 154,
WS_VISIBLE | FS_DLGBORDER | FS_SCREENALIGN,
FCF_TITLEBAR | FCF_SYSMENU | FCF_MINBUTTON | FCF_NOMOVEWITHOWNER
FCF_TITLEBAR | FCF_SYSMENU | FCF_NOMOVEWITHOWNER
BEGIN
WINDOW "", FID_CLIENT, 0, 0, 0, 0, "MozillaSetupDlg", WS_VISIBLE
BEGIN
DEFPUSHBUTTON "", IDPAUSE, 128, 5, 47, 12, WS_GROUP
PUSHBUTTON "", IDRESUME, 176, 5, 47, 12, WS_GROUP
PUSHBUTTON "", DID_CANCEL, 236, 5, 47, 12, WS_GROUP
LTEXT "", IDC_MESSAGE0, 9, 76, 275, 19, SS_TEXT | DT_WORDBREAK | DT_MNEMONIC
LTEXT "", IDC_STATIC3, 9, 53, 35, 7, SS_TEXT | DT_WORDBREAK
CONTROL "", IDC_STATUS_URL, 47, 53, 238, 7, WC_STATIC, DT_LEFT | WS_GROUP | SS_TEXT | WS_VISIBLE
LTEXT "", IDC_STATIC1, 9, 37, 35, 7, SS_TEXT | DT_WORDBREAK
CONTROL "", IDC_STATUS_STATUS, 47, 37, 238, 7, WC_STATIC, DT_LEFT | WS_GROUP | SS_TEXT | WS_VISIBLE
LTEXT "", IDC_STATIC2, 9, 61, 35, 7, SS_TEXT | DT_WORDBREAK
CONTROL "", IDC_STATUS_FILE, 47, 61, 238, 7, WC_STATIC, DT_LEFT | WS_GROUP | SS_TEXT | WS_VISIBLE
CONTROL "", IDC_GAUGE_FILE, 9, 24, 254, 9, "GaugeFile", 0x0 | WS_VISIBLE
LTEXT "", IDC_PERCENTAGE, 266, 25, 19, 7, SS_TEXT | DT_WORDBREAK
DEFPUSHBUTTON "", IDPAUSE, 170, 6, 63, 14, WS_GROUP
PUSHBUTTON "", IDRESUME, 234, 6, 63, 14, WS_GROUP
PUSHBUTTON "", DID_CANCEL, 315, 6, 63, 14, WS_GROUP
LTEXT "", IDC_MESSAGE0, 12, 92, 367, 23, SS_TEXT | DT_WORDBREAK | DT_MNEMONIC
LTEXT "", IDC_STATIC3, 12, 65, 47, 8, SS_TEXT | DT_WORDBREAK
CONTROL "", IDC_STATUS_URL, 62, 65, 317, 8, WC_STATIC, DT_LEFT | WS_GROUP | SS_TEXT | WS_VISIBLE
LTEXT "", IDC_STATIC1, 12, 45, 47, 8, SS_TEXT | DT_WORDBREAK
CONTROL "", IDC_STATUS_STATUS, 62, 45, 317, 8, WC_STATIC, DT_LEFT | WS_GROUP | SS_TEXT | WS_VISIBLE
LTEXT "", IDC_STATIC2, 12, 74, 47, 8, SS_TEXT | DT_WORDBREAK
CONTROL "", IDC_STATUS_FILE, 62, 74, 317, 8, WC_STATIC, DT_LEFT | WS_GROUP | SS_TEXT | WS_VISIBLE
CONTROL "", IDC_GAUGE_FILE, 12, 29, 339, 11, "GaugeFile", WS_VISIBLE
LTEXT "", IDC_PERCENTAGE, 354, 31, 25, 8, SS_TEXT | DT_WORDBREAK
CONTROL 114, IDC_STATIC, 0, 120, 390, 34, WC_STATIC, SS_BITMAP | SS_TEXT | DT_WORDBREAK | DT_MNEMONIC | WS_VISIBLE
LTEXT "", IDC_STATIC4, 9, 45, 35, 7, SS_TEXT | DT_WORDBREAK
CONTROL "", IDC_STATUS_TO, 47, 45, 238, 7, WC_STATIC, DT_LEFT | WS_GROUP | SS_TEXT | WS_VISIBLE
END
LTEXT "", IDC_STATIC4, 12, 55, 47, 8, SS_TEXT | DT_WORDBREAK
CONTROL "", IDC_STATUS_TO, 62, 55, 317, 8, WC_STATIC, DT_LEFT | WS_GROUP | SS_TEXT | WS_VISIBLE
END
END
DLGTEMPLATE DLG_START_INSTALL DISCARDABLE
BEGIN
DIALOG "", DLG_START_INSTALL, 64, -69, 394, 205,
WS_VISIBLE | FS_DLGBORDER | FS_SCREENALIGN,
FCF_TITLEBAR | FCF_SYSMENU | FCF_NOMOVEWITHOWNER
BEGIN
MLE "", IDC_CURRENT_SETTINGS, 127, 36, 255, 102, MLS_WORDWRAP | MLS_READONLY | MLS_VSCROLL | MLS_HSCROLL
PUSHBUTTON "", IDWIZBACK, 168, 5, 67, 14
DEFPUSHBUTTON "", IDWIZNEXT, 235, 5, 67, 14
PUSHBUTTON "", DID_CANCEL, 315, 5, 67, 14
LTEXT "", IDC_MESSAGE0, 127, 142, 255, 52, NOT WS_GROUP | SS_TEXT | DT_WORDBREAK | DT_MNEMONIC
CONTROL 108, IDC_STATIC, 14, 32, 104, 162, WC_STATIC, SS_BITMAP | WS_VISIBLE
CONTROL "", IDC_STATIC, 14, 25, 369, 1, WC_STATIC, SS_TEXT | DT_WORDBREAK | DT_MNEMONIC | WS_VISIBLE
END
END
@ -369,10 +351,10 @@ ICON IDI_SETUP DISCARDABLE "setup.ico"
// Bitmap
//
BITMAP IDB_BOX_UNCHECKED FIXED IMPURE "box_unch.bmp"
BITMAP IDB_BOX_CHECKED FIXED IMPURE "box_chec.bmp"
ICON IDB_BOX_UNCHECKED FIXED IMPURE "box_unch.ico"
ICON IDB_BOX_CHECKED FIXED IMPURE "box_chec.ico"
BITMAP IDB_BITMAP_WELCOME DISCARDABLE "bitmap1.bmp"
BITMAP IDB_BOX_CHECKED_DISABLED FIXED IMPURE "box_ch_d.bmp"
ICON IDB_BOX_CHECKED_DISABLED FIXED IMPURE "box_ch_d.ico"
BITMAP IDB_BITMAP_DOWNLOAD_LOGO DISCARDABLE "downloadLogo.bmp"
/////////////////////////////////////////////////////////////////////////////
@ -384,6 +366,8 @@ STRINGTABLE DISCARDABLE
BEGIN
IDS_ERROR_FILE_NOT_FOUND "File not found: %s"
IDS_MSG_RETRIEVE_INSTALLINI
"Please wait while Setup is attempting to retrieve Installer.ini, required by Setup, from the Web..."
"Please wait while Setup is attempting to retrieve install.ini, required by Setup, from the Web..."
END
/////////////////////////////////////////////////////////////////////////////