Back to index

lightning-sunbird  0.9+nobinonly
setup.h
Go to the documentation of this file.
00001 /* -*- Mode: C; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
00002 /* ***** BEGIN LICENSE BLOCK *****
00003  * Version: MPL 1.1/GPL 2.0/LGPL 2.1
00004  *
00005  * The contents of this file are subject to the Mozilla Public License Version
00006  * 1.1 (the "License"); you may not use this file except in compliance with
00007  * the License. You may obtain a copy of the License at
00008  * http://www.mozilla.org/MPL/
00009  *
00010  * Software distributed under the License is distributed on an "AS IS" basis,
00011  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
00012  * for the specific language governing rights and limitations under the
00013  * License.
00014  *
00015  * The Original Code is Mozilla Communicator client code, released
00016  * March 31, 1998.
00017  *
00018  * The Initial Developer of the Original Code is
00019  * Netscape Communications Corporation.
00020  * Portions created by the Initial Developer are Copyright (C) 1998
00021  * the Initial Developer. All Rights Reserved.
00022  *
00023  * Contributor(s):
00024  *   Sean Su <ssu@netscape.com>
00025  *
00026  * Alternatively, the contents of this file may be used under the terms of
00027  * either the GNU General Public License Version 2 or later (the "GPL"), or
00028  * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
00029  * in which case the provisions of the GPL or the LGPL are applicable instead
00030  * of those above. If you wish to allow use of your version of this file only
00031  * under the terms of either the GPL or the LGPL, and not to allow others to
00032  * use your version of this file under the terms of the MPL, indicate your
00033  * decision by deleting the provisions above and replace them with the notice
00034  * and other provisions required by the GPL or the LGPL. If you do not delete
00035  * the provisions above, a recipient may use your version of this file under
00036  * the terms of any one of the MPL, the GPL or the LGPL.
00037  *
00038  * ***** END LICENSE BLOCK ***** */
00039 
00040 #ifndef _SETUP_H_
00041 #define _SETUP_H_
00042 
00043 #ifdef __cplusplus
00044 #define PR_BEGIN_EXTERN_C       extern "C" {
00045 #define PR_END_EXTERN_C         }
00046 #else /* __cplusplus */
00047 #define PR_BEGIN_EXTERN_C
00048 #define PR_END_EXTERN_C
00049 #endif /* __cplusplus */
00050 
00051 #define PR_EXTERN(type) type
00052 
00053 typedef unsigned int PRUint32;
00054 typedef int PRInt32;
00055 
00056 #include <windows.h>
00057 #include <string.h>
00058 #include <stdlib.h>
00059 #include <stdio.h>
00060 #include <assert.h>
00061 #include <direct.h>
00062 #include <tchar.h>
00063 #include <commctrl.h>
00064 #include "setuprsc.h"
00065 #include "resource.h"
00066 #include "zipfile.h"
00067 
00068 #define DEFAULT_SETUP_WINDOW_NAME       "Setup"
00069 /* Class name for the invisible window to be created */
00070 #define CLASS_NAME_SETUP                "MozillaSetup"
00071 #define CLASS_NAME_SETUP_DLG            "MozillaSetupDlg"
00072 #define FILE_INI_SETUP                  "setup.ini"
00073 #define FILE_INI_CONFIG                 "config.ini"
00074 #define FILE_INI_INSTALL                "install.ini"
00075 #define FILE_IDI_GETCONFIGINI           "getconfigini.idi"
00076 #define FILE_IDI_GETARCHIVES            "getarchives.idi"
00077 #define FILE_IDI_GETREDIRECT            "getredirect.idi"
00078 #define FILE_INI_REDIRECT               "redirect.ini"
00079 #define FILE_WGET_LOG                   "wget.log"
00080 #define FILE_INSTALL_LOG                "install_wizard.log"
00081 #define FILE_INSTALL_STATUS_LOG         "install_status.log"
00082 #define FILE_ALL_JS                     "all-proxy.js"
00083 #define VR_DEFAULT_PRODUCT_NAME         "Mozilla"
00084 
00085 #ifdef MOZ_PHOENIX
00086 #define WIZ_TEMP_DIR                    "ff_temp"
00087 #elif defined(MOZ_THUNDERBIRD)
00088 #define WIZ_TEMP_DIR                    "tb_temp"
00089 #else
00090 #define WIZ_TEMP_DIR                    "ns_temp"
00091 #endif
00092 
00093 #define FORCE_ADD_TO_UNINSTALL_LOG        TRUE
00094 #define DO_NOT_FORCE_ADD_TO_UNINSTALL_LOG FALSE
00095 
00096 /* defines that indicate whether something should
00097  * be logged to the install_wizardX.log or not
00098  * for uninstallation purposes.
00099  */
00100 #define ADD_TO_UNINSTALL_LOG            TRUE
00101 #define DO_NOT_ADD_TO_UNINSTALL_LOG     FALSE
00102 
00103 /* defines that indeicate whether an install command
00104  * should have '*dnu*' prepended.  '*dnu*' is parsed
00105  * by the uninstaller and signals that the specific
00106  * install command should _not_ be undone.
00107  */
00108 #define DNU_UNINSTALL                   FALSE
00109 #define DNU_DO_NOT_UNINSTALL            TRUE
00110 
00111 #define WINREG_OVERWRITE_KEY            TRUE
00112 #define WINREG_DO_NOT_OVERWRITE_KEY     FALSE
00113 #define WINREG_OVERWRITE_NAME           TRUE
00114 #define WINREG_DO_NOT_OVERWRITE_NAME    FALSE
00115 
00116 #define INCLUDE_INVISIBLE_OBJS          TRUE
00117 #define SKIP_INVISIBLE_OBJS             FALSE
00118 
00119 #define NO_BANNER_IMAGE                 0x00000000
00120 #define BANNER_IMAGE_DOWNLOAD           0x00000001
00121 #define BANNER_IMAGE_INSTALLING         0x00000002
00122 
00123 #define APPPATH_GRE_PATH_SET            0x00000000
00124 #define APPPATH_GRE_PATH_NOT_SET        0x00000001
00125 #define APPPATH_GRE_PATH_ALREADY_SET    0x00000002
00126 
00127 #define NEXT_DLG                        1
00128 #define PREV_DLG                        2
00129 #define OTHER_DLG_1                     3
00130 
00131 #define MAX_CRC_FAILED_DOWNLOAD_RETRIES 5
00132 #define MAX_FILE_DOWNLOAD_RETRIES       10
00133 
00134 #define STATUS_DISABLED                 0
00135 #define STATUS_ENABLED                  1
00136 
00137 #define GRE_SETUP_DIR_NAME              "Setup GRE"
00138 
00139 /* filename which contains this product setup's exit status */
00140 #define SETUP_EXIT_STATUS_LOG           "%s Setup Exit Status.log"
00141 
00142 /* LOCAL GRE defines */
00143 #define GRE_TYPE_NOT_SET                -1
00144 #define GRE_SHARED                      0
00145 #define GRE_LOCAL                       1
00146 
00147 /* WS: WinSpawn wait values */
00148 #define WS_DO_NOT_WAIT                  FALSE
00149 #define WS_WAIT                         TRUE
00150 
00151 #define MAX_KILL_PROCESS_RETRIES        10
00152 
00153 /* CI: Check Instance */
00154 #define CI_FORCE_QUIT_PROCESS           TRUE
00155 #define CI_CLOSE_PROCESS                FALSE
00156 
00157 #define BAR_MARGIN                      1
00158 #define BAR_SPACING                     0
00159 #define BAR_WIDTH                       6
00160 #define BAR_LIBXPNET_MARGIN             1
00161 #define BAR_LIBXPNET_SPACING            0
00162 #define BAR_LIBXPNET_WIDTH              1
00163 
00164 /* W: When for install status logging */
00165 #define W_START                         0
00166 #define W_END                           1
00167 
00168 /* W: When for crc check failed logging */
00169 #define W_STARTUP                       0
00170 #define W_DOWNLOAD                      1
00171 
00172 /* UP: Use Protocol */
00173 #define UP_FTP                          0
00174 #define UP_HTTP                         1
00175 
00176 /* RA: Restricted Access */
00177 #define RA_IGNORE                       0
00178 #define RA_ONLY_RESTRICTED              1
00179 #define RA_ONLY_NONRESTRICTED           2
00180 
00181 /* LIS: Log Install Status */
00182 #define LIS_SUCCESS                     0
00183 #define LIS_FAILURE                     1
00184 
00185 /* UG: Upgrade */
00186 #define UG_NONE                         0
00187 #define UG_DELETE                       1
00188 #define UG_IGNORE                       2
00189 #define UG_GOBACK                       3
00190 
00191 /* AP: Archive Path */
00192 #define AP_NOT_FOUND                    0
00193 #define AP_TEMP_PATH                    1
00194 #define AP_SETUP_PATH                   2
00195 #define AP_ALTERNATE_PATH               3
00196 
00197 /* PP: Parse Path */
00198 #define PP_FILENAME_ONLY                1
00199 #define PP_PATH_ONLY                    2
00200 #define PP_ROOT_ONLY                    3
00201 #define PP_EXTENSION_ONLY               4
00202 
00203 /* DA: Delete Archive */
00204 #define DA_ONLY_IF_IN_ARCHIVES_LST      1
00205 #define DA_ONLY_IF_NOT_IN_ARCHIVES_LST  2
00206 #define DA_IGNORE_ARCHIVES_LST          3
00207 
00208 /* T: Timing */
00209 #define T_PRE_DOWNLOAD                  1
00210 #define T_POST_DOWNLOAD                 2
00211 #define T_PRE_XPCOM                     3
00212 #define T_POST_XPCOM                    4
00213 #define T_PRE_SMARTUPDATE               5
00214 #define T_POST_SMARTUPDATE              6
00215 #define T_PRE_LAUNCHAPP                 7
00216 #define T_POST_LAUNCHAPP                8
00217 #define T_DEPEND_REBOOT                 9
00218 #define T_PRE_ARCHIVE                   10
00219 #define T_POST_ARCHIVE                  11
00220 
00221 #define MAX_BUF                         2048
00222 #define MAX_BUF_TINY                    256
00223 #define MAX_BUF_SMALL                   512
00224 #define MAX_BUF_MEDIUM                  1024
00225 #define MAX_BUF_LARGE                   MAX_BUF
00226 #define MAX_BUF_XLARGE                  4096
00227 #define MAX_ITOA                        46
00228 #define MAX_INI_SK                      128
00229 
00230 #define ERROR_CODE_HIDE                 0
00231 #define ERROR_CODE_SHOW                 1
00232 #define DLG_NONE                        0
00233 #define DLG_COMMIT_INSTALL              1
00234 #define CX_CHECKBOX                     13
00235 #define CY_CHECKBOX                     13
00236 
00237 /* WIZ: WIZARD defines */
00238 #define WIZ_OK                          0
00239 #define WIZ_ERROR_UNDEFINED             1024
00240 #define WIZ_MEMORY_ALLOC_FAILED         1025
00241 #define WIZ_OUT_OF_MEMORY               WIZ_MEMORY_ALLOC_FAILED
00242 #define WIZ_ARCHIVES_MISSING            1026
00243 #define WIZ_CRC_PASS                    WIZ_OK
00244 #define WIZ_CRC_FAIL                    1028
00245 #define WIZ_SETUP_ALREADY_RUNNING       1029
00246 #define WIZ_TOO_MANY_NETWORK_ERRORS     1030
00247 #define WIZ_ERROR_PARSING_INTERNAL_STR  1031
00248 #define WIZ_ERROR_REGKEY                1032
00249 #define WIZ_ERROR_INIT                  1033
00250 #define WIZ_ERROR_LOADING_RESOURCE_LIB  1034
00251 #define WIZ_ERROR_CREATE_DIRECTORY      1035
00252 
00253 /* E: Errors */
00254 #define E_REBOOT                        999
00255 
00256 /* FO: File Operation */
00257 #define FO_OK                           0
00258 #define FO_SUCCESS                      0
00259 #define FO_ERROR_FILE_NOT_FOUND         1
00260 #define FO_ERROR_DESTINATION_CONFLICT   2
00261 #define FO_ERROR_CHANGE_DIR             3
00262 #define FO_ERROR_WRITE                  4
00263 #define FO_ERROR_INCR_EXCEEDS_LIMIT     5
00264 
00265 /* Mode of Setup to run in */
00266 #define NOT_SET                         -1
00267 #define NORMAL                          0
00268 #define SILENT                          1
00269 #define AUTO                            2
00270 
00271 /* ST: Setup Type */
00272 #define ST_RADIO0                       0
00273 #define ST_RADIO1                       1
00274 #define ST_RADIO2                       2
00275 #define ST_RADIO3                       3
00276 
00277 /* SM: Setup Type Mode */
00278 #define SM_SINGLE                       0
00279 #define SM_MULTI                        1
00280 
00281 /* SIC: Setup Info Component*/
00282 #define SIC_SELECTED                    0x00000001
00283 #define SIC_INVISIBLE                   0x00000002
00284 #define SIC_LAUNCHAPP                   0x00000004
00285 #define SIC_DOWNLOAD_REQUIRED           0x00000008
00286 #define SIC_DOWNLOAD_ONLY               0x00000010
00287 #define SIC_ADDITIONAL                  0x00000020
00288 #define SIC_DISABLED                    0x00000040
00289 #define SIC_FORCE_UPGRADE               0x00000080
00290 #define SIC_IGNORE_DOWNLOAD_ERROR       0x00000100
00291 #define SIC_IGNORE_XPINSTALL_ERROR      0x00000200
00292 #define SIC_UNCOMPRESS                  0x00000400
00293 #define SIC_SUPERSEDE                   0x00000800
00294 #define SIC_MAIN_COMPONENT              0x00001000
00295 
00296 /* AC: Additional Components */
00297 #define AC_NONE                         0
00298 #define AC_COMPONENTS                   1
00299 #define AC_ADDITIONAL_COMPONENTS        2
00300 #define AC_ALL                          3
00301 
00302 /* OS: Operating System */
00303 #define OS_WIN9x                        0x00000001
00304 #define OS_WIN95_DEBUTE                 0x00000002
00305 #define OS_WIN95                        0x00000004
00306 #define OS_WIN98                        0x00000008
00307 #define OS_NT                           0x00000010
00308 #define OS_NT3                          0x00000020
00309 #define OS_NT4                          0x00000040
00310 #define OS_NT5                          0x00000080
00311 #define OS_NT50                         0x00000100
00312 #define OS_NT51                         0x00000200
00313 
00314 /* DSR: Disk Space Required */
00315 #define DSR_DESTINATION                 0
00316 #define DSR_SYSTEM                      1
00317 #define DSR_TEMP                        2
00318 #define DSR_DOWNLOAD_SIZE               3
00319 
00320 /* SS: Site Selector */
00321 #define SS_HIDE                         0
00322 #define SS_SHOW                         1
00323 
00324 /* PUS: Previous Unfinished State */
00325 #define PUS_NONE                         0
00326 #define PUS_DOWNLOAD                     1
00327 #define PUS_UNPACK_XPCOM                 2
00328 #define PUS_INSTALL_XPI                  3
00329 #define SETUP_STATE_DOWNLOAD             "downloading"
00330 #define SETUP_STATE_UNPACK_XPCOM         "unpacking xpcom"
00331 #define SETUP_STATE_INSTALL_XPI          "installing xpi"
00332 #define SETUP_STATE_REMOVING_PREV_INST   "removing previous installation"
00333 
00334 
00335 typedef struct dlgSetup
00336 {
00337   DWORD   dwDlgID;
00338   WNDPROC fDlgProc;
00339   LPSTR   szTitle;
00340 } diS;
00341 
00342 typedef struct dlgWelcome
00343 {
00344   BOOL  bShowDialog;
00345   LPSTR szTitle;
00346   LPSTR szMessageWelcome;
00347   LPSTR szMessage0;
00348   LPSTR szMessage1;
00349   LPSTR szMessage2;
00350   LPSTR szMessage3;
00351 } diW;
00352 
00353 typedef struct dlgLicense
00354 {
00355   BOOL  bShowDialog;
00356   LPSTR szTitle;
00357   LPSTR szSubTitle;
00358   LPSTR szLicenseFilename;
00359   LPSTR szMessage0;
00360   LPSTR szRadioAccept;
00361   LPSTR szRadioDecline;
00362 } diL;
00363 
00364 typedef struct dlgQuickLaunch
00365 {
00366   BOOL  bShowDialog;
00367   LPSTR szTitle;
00368   LPSTR szMessage0;
00369   LPSTR szMessage1;
00370   LPSTR szMessage2;
00371   BOOL  bTurboMode;
00372   BOOL  bTurboModeEnabled;
00373 } diQL;
00374 
00375 
00376 typedef struct stStruct
00377 {
00378   BOOL  bVisible;
00379   DWORD dwCItems;
00380   DWORD dwCItemsSelected[MAX_BUF]; /* components */
00381   LPSTR szDescriptionShort;
00382   LPSTR szDescriptionLong;
00383 } st;
00384 
00385 typedef struct dlgSetupType
00386 {
00387   BOOL  bShowDialog;
00388   LPSTR szTitle;
00389   LPSTR szSubTitle;
00390   LPSTR szMessage0;
00391   st    stSetupType0;
00392   st    stSetupType1;
00393 } diST;
00394 
00395 typedef struct dlgSelectComponents
00396 {
00397   BOOL  bShowDialog;
00398   DWORD bShowDialogSM;
00399   LPSTR szTitle;
00400   LPSTR szSubTitle;
00401   LPSTR szMessage0;
00402 } diSC;
00403 
00404 typedef struct dlgSelectInstallPath
00405 {
00406   BOOL bShowDialog;
00407   LPSTR szTitle;
00408   LPSTR szSubTitle;
00409   LPSTR szMessage0;
00410 } diSIP;
00411 
00412 typedef struct dlgUpgrade
00413 {
00414   BOOL bShowDialog;
00415   BOOL bShowInEasyInstall;
00416   LPSTR szTitle;
00417   LPSTR szSubTitle;
00418   LPSTR szMessageCleanup;
00419   LPSTR szCheckboxSafeInstall;
00420   LPSTR szSafeInstallInfo;
00421   LPSTR szUnsafeInstallInfo;
00422   LPSTR szNoSafeUpgradeWindir;
00423 } diU;
00424 
00425 typedef struct wiCBstruct
00426 {
00427   BOOL  bEnabled;
00428   BOOL  bCheckBoxState;
00429   LPSTR szDescription;
00430   LPSTR szArchive;
00431 } wiCBs;
00432 
00433 typedef struct dlgWindowsIntegration
00434 {
00435   BOOL  bShowDialog;
00436   LPSTR szTitle;
00437   LPSTR szSubTitle;
00438   LPSTR szMessage0;
00439   LPSTR szRegistryKey;
00440   wiCBs wiCB0;
00441   wiCBs wiCB1;
00442   wiCBs wiCB2;
00443 } diWI;
00444 
00445 typedef struct dlgProgramFolder
00446 {
00447   BOOL  bShowDialog;
00448   LPSTR szTitle;
00449   LPSTR szMessage0;
00450 } diPF;
00451 
00452 typedef struct dlgAdditionalOptions
00453 {
00454   BOOL  bShowDialog;
00455   LPSTR szTitle;
00456   LPSTR szMessage0;
00457   LPSTR szMessage1;
00458   BOOL  bSaveInstaller;
00459   DWORD dwUseProtocol;
00460   BOOL  bUseProtocolSettings;
00461   BOOL  bShowProtocols;
00462 } diDO;
00463 
00464 typedef struct dlgAdvancedSettings
00465 {
00466   BOOL  bShowDialog;
00467   LPSTR szTitle;
00468   LPSTR szMessage0;
00469   LPSTR szProxyServer;
00470   LPSTR szProxyPort;
00471   LPSTR szProxyUser;
00472   LPSTR szProxyPasswd;
00473 } diAS;
00474 
00475 typedef struct dlgStartInstall
00476 {
00477   BOOL  bShowDialog;
00478   LPSTR szTitle;
00479   LPSTR szSubTitle;
00480   LPSTR szMessageInstall;
00481   LPSTR szMessageDownload;
00482   LPSTR szMessage0;
00483 } diSI;
00484 
00485 typedef struct dlgDownloading
00486 {
00487   BOOL  bShowDialog;
00488   LPSTR szTitle;
00489   LPSTR szSubTitle;
00490   LPSTR szBlurb;
00491   LPSTR szFileNameKey;
00492   LPSTR szTimeRemainingKey;
00493 } diDL;
00494 
00495 typedef struct dlgInstalling
00496 {
00497   BOOL bShowDialog;
00498   LPSTR szTitle;
00499   LPSTR szSubTitle;
00500   LPSTR szBlurb;
00501   LPSTR szStatusFile;
00502   LPSTR szStatusComponent;
00503 } diI;
00504 
00505 typedef struct dlgInstallSuccessful
00506 {
00507   BOOL bShowDialog;
00508   LPSTR szTitle;
00509   LPSTR szMessageHeader;
00510   LPSTR szMessage0;
00511   LPSTR szMessage1;
00512   LPSTR szRegistryKey;
00513   LPSTR szLaunchApp;
00514   BOOL bLaunchAppChecked;
00515 } diIS;
00516 
00517 typedef struct dlgDownload
00518 {
00519   BOOL  bShowDialog;
00520   LPSTR szTitle;
00521   LPSTR szMessageDownload0;
00522   LPSTR szMessageRetry0;
00523 } diD;
00524 
00525 typedef struct dlgReboot
00526 {
00527   DWORD dwShowDialog;
00528   LPSTR szTitle;
00529 } diR;
00530 
00531 typedef struct setupStruct
00532 {
00533   int       mode;
00534   int       greType;
00535   DWORD     dwCustomType;
00536   DWORD     dwNumberOfComponents;
00537   LPSTR     szPath;
00538   LPSTR     szSubPath;
00539   LPSTR     szProgramName;
00540   LPSTR     szCompanyName;
00541   LPSTR     szProductName;
00542   LPSTR     szProductNameInternal;
00543   LPSTR     szProductNamePrevious;
00544   LPSTR     szUserAgent;
00545   LPSTR     szProgramFolderName;
00546   LPSTR     szProgramFolderPath;
00547   LPSTR     szAlternateArchiveSearchPath;
00548   LPSTR     szParentProcessFilename;
00549   BOOL      bLockPath;
00550   BOOL      bSharedInst;
00551   BOOL      bInstallFiles;
00552   BOOL      checkCleanupOnUpgrade;
00553   BOOL      doCleanupOnUpgrade;
00554   LPSTR     szAppID;
00555   LPSTR     szAppPath;
00556   LPSTR     szRegPath;
00557   BOOL      greCleanupOrphans;
00558   char      greCleanupOrphansMessage[MAX_BUF];
00559   char      greID[MAX_BUF];
00560   char      grePrivateKey[MAX_BUF];
00561 } setupGen;
00562 
00563 typedef struct sinfoSmartDownload
00564 {
00565   LPSTR szXpcomFile;
00566   LPSTR szXpcomDir;
00567   LPSTR szNoAds;
00568   LPSTR szSilent;
00569   LPSTR szExecution;
00570   LPSTR szConfirmInstall;
00571   LPSTR szExtractMsg;
00572   LPSTR szExe;
00573   LPSTR szExeParam;
00574   LPSTR szXpcomFilePath;
00575 } siSD;
00576 
00577 typedef struct sinfoXpcomFile
00578 {
00579   LPSTR       szSource;
00580   LPSTR       szDestination;
00581   LPSTR       szMessage;
00582   BOOL        bCleanup;
00583   BOOL        bStatus;
00584   ULONGLONG   ullInstallSize;
00585 } siCF;
00586 
00587 typedef struct sinfoComponentDep siCD;
00588 struct sinfoComponentDep
00589 {
00590   LPSTR szDescriptionShort;
00591   LPSTR szReferenceName;
00592   siCD  *Next;
00593   siCD  *Prev;
00594 };
00595 
00596 typedef struct sinfoComponent siC;
00597 struct sinfoComponent
00598 {
00599   ULONGLONG       ullInstallSize;
00600   ULONGLONG       ullInstallSizeSystem;
00601   ULONGLONG       ullInstallSizeArchive;
00602   long            lRandomInstallPercentage;
00603   long            lRandomInstallValue;
00604   DWORD           dwAttributes;
00605   LPSTR           szArchiveName;
00606   LPSTR           szArchiveNameUncompressed;
00607   LPSTR           szArchivePath;
00608   LPSTR           szDestinationPath;
00609   LPSTR           szDescriptionShort;
00610   LPSTR           szDescriptionLong;
00611   LPSTR           szParameter;
00612   LPSTR           szReferenceName;
00613   BOOL            bForceUpgrade;
00614   BOOL            bSupersede;
00615   int             iNetRetries;
00616   int             iCRCRetries;
00617   int             iNetTimeOuts;
00618   int             iFileCount;
00619   siCD            *siCDDependencies;
00620   siCD            *siCDDependees;
00621   siC             *Next;
00622   siC             *Prev;
00623 };
00624 
00625 typedef struct ssInfo ssi;
00626 struct ssInfo
00627 {
00628   LPSTR szDescription;
00629   LPSTR szDomain;
00630   LPSTR szIdentifier;
00631   ssi   *Next;
00632   ssi   *Prev;
00633 };
00634 
00635 typedef struct dlgInstall
00636 {
00637        HFONT systemFont;
00638        HFONT definedFont;
00639   HFONT welcomeTitleFont;
00640   char szFontName[MAX_BUF];
00641   char szFontSize[MAX_BUF];
00642   char szCharSet[MAX_BUF];
00643   char szOk_[MAX_BUF];
00644   char szOk[MAX_BUF];
00645   char szCancel_[MAX_BUF];
00646   char szCancel[MAX_BUF];
00647   char szNext_[MAX_BUF];
00648   char szBack_[MAX_BUF];
00649   char szIgnore_[MAX_BUF];
00650   char szProxyMessage[MAX_BUF];
00651   char szProxyButton[MAX_BUF];
00652   char szProxySettings_[MAX_BUF];
00653   char szProxySettings[MAX_BUF];
00654   char szServer[MAX_BUF];
00655   char szPort[MAX_BUF];
00656   char szUserId[MAX_BUF];
00657   char szPassword[MAX_BUF];
00658   char szSelectDirectory[MAX_BUF];
00659   char szDirectories_[MAX_BUF];
00660   char szDrives_[MAX_BUF];
00661   char szStatus[MAX_BUF];
00662   char szFile[MAX_BUF];
00663   char szUrl[MAX_BUF];
00664   char szTo[MAX_BUF];
00665   char szAccept_[MAX_BUF];
00666   char szDecline_[MAX_BUF];
00667   char szProgramFolder_[MAX_BUF];
00668   char szExistingFolder_[MAX_BUF];
00669   char szSetupMessage[MAX_BUF];
00670   char szRestart[MAX_BUF];
00671   char szYesRestart[MAX_BUF];
00672   char szNoRestart[MAX_BUF];
00673   char szAdditionalComponents_[MAX_BUF];
00674   char szDescription[MAX_BUF];
00675   char szTotalDownloadSize[MAX_BUF];
00676   char szSpaceAvailable[MAX_BUF];
00677   char szComponents_[MAX_BUF];
00678   char szBrowseInfo[MAX_BUF];
00679   char szDestinationDirectory[MAX_BUF];
00680   char szBrowse_[MAX_BUF];
00681   char szDownloadSize[MAX_BUF];
00682   char szCurrentSettings[MAX_BUF];
00683   char szInstallFolder[MAX_BUF];
00684   char szPrimCompNoOthers[MAX_BUF];
00685   char szPrimCompOthers[MAX_BUF];
00686   char szAddtlCompWrapper[MAX_BUF];
00687   char szInstall_[MAX_BUF];
00688   char szDelete_[MAX_BUF];
00689   char szContinue_[MAX_BUF];
00690   char szSkip_[MAX_BUF];
00691   char szExtracting[MAX_BUF];
00692   char szReadme_[MAX_BUF];
00693   char szPause_[MAX_BUF];
00694   char szResume_[MAX_BUF];
00695   char szChecked[MAX_BUF];
00696   char szUnchecked[MAX_BUF];
00697 } installGui;
00698 
00699 /* structure message stream */
00700 typedef struct sEMsgStream sems;
00701 struct sEMsgStream
00702 {
00703   char   szURL[MAX_BUF];
00704   char   szConfirmationMessage[MAX_BUF];
00705   char   *szMessage;
00706   DWORD  dwMessageBufSize;
00707   BOOL   bEnabled;
00708   BOOL   bSendMessage;
00709   BOOL   bShowConfirmation;
00710 };
00711 
00712 /* structure system info*/
00713 typedef struct sSysInfo sysinfo;
00714 struct sSysInfo
00715 {
00716   DWORD dwOSType;
00717   DWORD dwMajorVersion;
00718   DWORD dwMinorVersion;
00719   DWORD dwBuildNumber;
00720   char  szExtraString[MAX_BUF];
00721   DWORD dwMemoryTotalPhysical;
00722   DWORD dwMemoryAvailablePhysical;
00723   DWORD dwScreenX;
00724   DWORD dwScreenY;
00725   DWORD lastWindowPosCenterX;
00726   DWORD lastWindowPosCenterY;
00727   BOOL  bScreenReader;
00728   BOOL  bRefreshIcons;
00729 };
00730 
00731 typedef struct diskSpaceNode dsN;
00732 struct diskSpaceNode
00733 {
00734   ULONGLONG       ullSpaceRequired;
00735   LPSTR           szPath;
00736   LPSTR           szVDSPath;
00737   dsN             *Next;
00738   dsN             *Prev;
00739 };
00740 
00741 #endif /* _SETUP_H */
00742