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 of the GNU General Public License Version 2 or later (the "GPL"),
00028  * or 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 WIZ_TEMP_DIR                    "ns_temp"
00081 #define FILE_INSTALL_LOG                "install_wizard.log"
00082 #define FILE_INSTALL_STATUS_LOG         "install_status.log"
00083 #define FILE_ALL_JS                     "all-proxy.js"
00084 #define VR_DEFAULT_PRODUCT_NAME         "Mozilla"
00085 
00086 #define FORCE_ADD_TO_UNINSTALL_LOG        TRUE
00087 #define DO_NOT_FORCE_ADD_TO_UNINSTALL_LOG FALSE
00088 
00089 /* defines that indicate whether something should
00090  * be logged to the install_wizardX.log or not
00091  * for uninstallation purposes.
00092  */
00093 #define ADD_TO_UNINSTALL_LOG            TRUE
00094 #define DO_NOT_ADD_TO_UNINSTALL_LOG     FALSE
00095 
00096 /* defines that indeicate whether an install command
00097  * should have '*dnu*' prepended.  '*dnu*' is parsed
00098  * by the uninstaller and signals that the specific
00099  * install command should _not_ be undone.
00100  */
00101 #define DNU_UNINSTALL                   FALSE
00102 #define DNU_DO_NOT_UNINSTALL            TRUE
00103 
00104 #define WINREG_OVERWRITE_KEY            TRUE
00105 #define WINREG_DO_NOT_OVERWRITE_KEY     FALSE
00106 #define WINREG_OVERWRITE_NAME           TRUE
00107 #define WINREG_DO_NOT_OVERWRITE_NAME    FALSE
00108 
00109 #define INCLUDE_INVISIBLE_OBJS          TRUE
00110 #define SKIP_INVISIBLE_OBJS             FALSE
00111 
00112 #define NO_BANNER_IMAGE                 0x00000000
00113 #define BANNER_IMAGE_DOWNLOAD           0x00000001
00114 #define BANNER_IMAGE_INSTALLING         0x00000002
00115 
00116 #define APPPATH_GRE_PATH_SET            0x00000000
00117 #define APPPATH_GRE_PATH_NOT_SET        0x00000001
00118 #define APPPATH_GRE_PATH_ALREADY_SET    0x00000002
00119 
00120 #define NEXT_DLG                        1
00121 #define PREV_DLG                        2
00122 #define OTHER_DLG_1                     3
00123 
00124 #define MAX_CRC_FAILED_DOWNLOAD_RETRIES 5
00125 #define MAX_FILE_DOWNLOAD_RETRIES       10
00126 
00127 #define STATUS_DISABLED                 0
00128 #define STATUS_ENABLED                  1
00129 
00130 #define GRE_SETUP_DIR_NAME              "Setup GRE"
00131 
00132 /* filename which contains this product setup's exit status */
00133 #define SETUP_EXIT_STATUS_LOG           "%s Setup Exit Status.log"
00134 
00135 /* LOCAL GRE defines */
00136 #define GRE_TYPE_NOT_SET                -1
00137 #define GRE_SHARED                      0
00138 #define GRE_LOCAL                       1
00139 
00140 /* WS: WinSpawn wait values */
00141 #define WS_DO_NOT_WAIT                  FALSE
00142 #define WS_WAIT                         TRUE
00143 
00144 #define MAX_KILL_PROCESS_RETRIES        10
00145 
00146 /* CI: Check Instance */
00147 #define CI_FORCE_QUIT_PROCESS           TRUE
00148 #define CI_CLOSE_PROCESS                FALSE
00149 
00150 #define BAR_MARGIN                      1
00151 #define BAR_SPACING                     0
00152 #define BAR_WIDTH                       6
00153 #define BAR_LIBXPNET_MARGIN             1
00154 #define BAR_LIBXPNET_SPACING            0
00155 #define BAR_LIBXPNET_WIDTH              1
00156 
00157 /* W: When for install status logging */
00158 #define W_START                         0
00159 #define W_END                           1
00160 
00161 /* W: When for crc check failed logging */
00162 #define W_STARTUP                       0
00163 #define W_DOWNLOAD                      1
00164 
00165 /* UP: Use Protocol */
00166 #define UP_FTP                          0
00167 #define UP_HTTP                         1
00168 
00169 /* RA: Restricted Access */
00170 #define RA_IGNORE                       0
00171 #define RA_ONLY_RESTRICTED              1
00172 #define RA_ONLY_NONRESTRICTED           2
00173 
00174 /* LIS: Log Install Status */
00175 #define LIS_SUCCESS                     0
00176 #define LIS_FAILURE                     1
00177 
00178 /* UG: Upgrade */
00179 #define UG_NONE                         0
00180 #define UG_DELETE                       1
00181 #define UG_IGNORE                       2
00182 #define UG_GOBACK                       3
00183 
00184 /* AP: Archive Path */
00185 #define AP_NOT_FOUND                    0
00186 #define AP_TEMP_PATH                    1
00187 #define AP_SETUP_PATH                   2
00188 #define AP_ALTERNATE_PATH               3
00189 
00190 /* PP: Parse Path */
00191 #define PP_FILENAME_ONLY                1
00192 #define PP_PATH_ONLY                    2
00193 #define PP_ROOT_ONLY                    3
00194 #define PP_EXTENSION_ONLY               4
00195 
00196 /* DA: Delete Archive */
00197 #define DA_ONLY_IF_IN_ARCHIVES_LST      1
00198 #define DA_ONLY_IF_NOT_IN_ARCHIVES_LST  2
00199 #define DA_IGNORE_ARCHIVES_LST          3
00200 
00201 /* T: Timing */
00202 #define T_PRE_DOWNLOAD                  1
00203 #define T_POST_DOWNLOAD                 2
00204 #define T_PRE_XPCOM                     3
00205 #define T_POST_XPCOM                    4
00206 #define T_PRE_SMARTUPDATE               5
00207 #define T_POST_SMARTUPDATE              6
00208 #define T_PRE_LAUNCHAPP                 7
00209 #define T_POST_LAUNCHAPP                8
00210 #define T_DEPEND_REBOOT                 9
00211 #define T_PRE_ARCHIVE                   10
00212 #define T_POST_ARCHIVE                  11
00213 
00214 #define MAX_BUF                         2048
00215 #define MAX_BUF_TINY                    256
00216 #define MAX_BUF_SMALL                   512
00217 #define MAX_BUF_MEDIUM                  1024
00218 #define MAX_BUF_LARGE                   MAX_BUF
00219 #define MAX_BUF_XLARGE                  4096
00220 #define MAX_ITOA                        46
00221 #define MAX_INI_SK                      128
00222 
00223 #define ERROR_CODE_HIDE                 0
00224 #define ERROR_CODE_SHOW                 1
00225 #define DLG_NONE                        0
00226 #define DLG_COMMIT_INSTALL              1
00227 #define CX_CHECKBOX                     13
00228 #define CY_CHECKBOX                     13
00229 
00230 /* WIZ: WIZARD defines */
00231 #define WIZ_OK                          0
00232 #define WIZ_ERROR_UNDEFINED             1024
00233 #define WIZ_MEMORY_ALLOC_FAILED         1025
00234 #define WIZ_OUT_OF_MEMORY               WIZ_MEMORY_ALLOC_FAILED
00235 #define WIZ_ARCHIVES_MISSING            1026
00236 #define WIZ_CRC_PASS                    WIZ_OK
00237 #define WIZ_CRC_FAIL                    1028
00238 #define WIZ_SETUP_ALREADY_RUNNING       1029
00239 #define WIZ_TOO_MANY_NETWORK_ERRORS     1030
00240 #define WIZ_ERROR_PARSING_INTERNAL_STR  1031
00241 #define WIZ_ERROR_REGKEY                1032
00242 #define WIZ_ERROR_INIT                  1033
00243 #define WIZ_ERROR_LOADING_RESOURCE_LIB  1034
00244 #define WIZ_ERROR_CREATE_DIRECTORY      1035
00245 
00246 /* E: Errors */
00247 #define E_REBOOT                        999
00248 
00249 /* FO: File Operation */
00250 #define FO_OK                           0
00251 #define FO_SUCCESS                      0
00252 #define FO_ERROR_FILE_NOT_FOUND         1
00253 #define FO_ERROR_DESTINATION_CONFLICT   2
00254 #define FO_ERROR_CHANGE_DIR             3
00255 #define FO_ERROR_WRITE                  4
00256 #define FO_ERROR_INCR_EXCEEDS_LIMIT     5
00257 
00258 /* Mode of Setup to run in */
00259 #define NOT_SET                         -1
00260 #define NORMAL                          0
00261 #define SILENT                          1
00262 #define AUTO                            2
00263 
00264 /* ST: Setup Type */
00265 #define ST_RADIO0                       0
00266 #define ST_RADIO1                       1
00267 #define ST_RADIO2                       2
00268 #define ST_RADIO3                       3
00269 
00270 /* SM: Setup Type Mode */
00271 #define SM_SINGLE                       0
00272 #define SM_MULTI                        1
00273 
00274 /* SIC: Setup Info Component*/
00275 #define SIC_SELECTED                    0x00000001
00276 #define SIC_INVISIBLE                   0x00000002
00277 #define SIC_LAUNCHAPP                   0x00000004
00278 #define SIC_DOWNLOAD_REQUIRED           0x00000008
00279 #define SIC_DOWNLOAD_ONLY               0x00000010
00280 #define SIC_ADDITIONAL                  0x00000020
00281 #define SIC_DISABLED                    0x00000040
00282 #define SIC_FORCE_UPGRADE               0x00000080
00283 #define SIC_IGNORE_DOWNLOAD_ERROR       0x00000100
00284 #define SIC_IGNORE_XPINSTALL_ERROR      0x00000200
00285 #define SIC_UNCOMPRESS                  0x00000400
00286 #define SIC_SUPERSEDE                   0x00000800
00287 
00288 /* AC: Additional Components */
00289 #define AC_NONE                         0
00290 #define AC_COMPONENTS                   1
00291 #define AC_ADDITIONAL_COMPONENTS        2
00292 #define AC_ALL                          3
00293 
00294 /* OS: Operating System */
00295 #define OS_WIN9x                        0x00000001
00296 #define OS_WIN95_DEBUTE                 0x00000002
00297 #define OS_WIN95                        0x00000004
00298 #define OS_WIN98                        0x00000008
00299 #define OS_NT                           0x00000010
00300 #define OS_NT3                          0x00000020
00301 #define OS_NT4                          0x00000040
00302 #define OS_NT5                          0x00000080
00303 #define OS_NT50                         0x00000100
00304 #define OS_NT51                         0x00000200
00305 
00306 /* DSR: Disk Space Required */
00307 #define DSR_DESTINATION                 0
00308 #define DSR_SYSTEM                      1
00309 #define DSR_TEMP                        2
00310 #define DSR_DOWNLOAD_SIZE               3
00311 
00312 /* SS: Site Selector */
00313 #define SS_HIDE                         0
00314 #define SS_SHOW                         1
00315 
00316 /* PUS: Previous Unfinished State */
00317 #define PUS_NONE                         0
00318 #define PUS_DOWNLOAD                     1
00319 #define PUS_UNPACK_XPCOM                 2
00320 #define PUS_INSTALL_XPI                  3
00321 #define SETUP_STATE_DOWNLOAD             "downloading"
00322 #define SETUP_STATE_UNPACK_XPCOM         "unpacking xpcom"
00323 #define SETUP_STATE_INSTALL_XPI          "installing xpi"
00324 #define SETUP_STATE_REMOVING_PREV_INST   "removing previous installation"
00325 
00326 
00327 typedef struct dlgSetup
00328 {
00329   DWORD   dwDlgID;
00330   WNDPROC fDlgProc;
00331   LPSTR   szTitle;
00332 } diS;
00333 
00334 typedef struct dlgWelcome
00335 {
00336   BOOL  bShowDialog;
00337   LPSTR szTitle;
00338   LPSTR szMessage0;
00339   LPSTR szMessage1;
00340   LPSTR szMessage2;
00341 } diW;
00342 
00343 typedef struct dlgLicense
00344 {
00345   BOOL  bShowDialog;
00346   LPSTR szTitle;
00347   LPSTR szLicenseFilename;
00348   LPSTR szMessage0;
00349   LPSTR szMessage1;
00350 } diL;
00351 
00352 typedef struct dlgQuickLaunch
00353 {
00354   BOOL  bShowDialog;
00355   LPSTR szTitle;
00356   LPSTR szMessage0;
00357   LPSTR szMessage1;
00358   LPSTR szMessage2;
00359   BOOL  bTurboMode;
00360   BOOL  bTurboModeEnabled;
00361 } diQL;
00362 
00363 
00364 typedef struct stStruct
00365 {
00366   BOOL  bVisible;
00367   DWORD dwCItems;
00368   DWORD dwCItemsSelected[MAX_BUF]; /* components */
00369   LPSTR szDescriptionShort;
00370   LPSTR szDescriptionLong;
00371 } st;
00372 
00373 typedef struct dlgSetupType
00374 {
00375   BOOL  bShowDialog;
00376   LPSTR szTitle;
00377   LPSTR szMessage0;
00378   LPSTR szReadmeFilename;
00379   LPSTR szReadmeApp;
00380   st    stSetupType0;
00381   st    stSetupType1;
00382   st    stSetupType2;
00383   st    stSetupType3;
00384 } diST;
00385 
00386 typedef struct dlgSelectComponents
00387 {
00388   BOOL  bShowDialog;
00389   DWORD bShowDialogSM;
00390   LPSTR szTitle;
00391   LPSTR szMessage0;
00392 } diSC;
00393 
00394 typedef struct wiCBstruct
00395 {
00396   BOOL  bEnabled;
00397   BOOL  bCheckBoxState;
00398   LPSTR szDescription;
00399   LPSTR szArchive;
00400 } wiCBs;
00401 
00402 typedef struct dlgWindowsIntegration
00403 {
00404   BOOL  bShowDialog;
00405   LPSTR szTitle;
00406   LPSTR szMessage0;
00407   LPSTR szMessage1;
00408   wiCBs wiCB0;
00409   wiCBs wiCB1;
00410   wiCBs wiCB2;
00411   wiCBs wiCB3;
00412 } diWI;
00413 
00414 typedef struct dlgProgramFolder
00415 {
00416   BOOL  bShowDialog;
00417   LPSTR szTitle;
00418   LPSTR szMessage0;
00419 } diPF;
00420 
00421 typedef struct dlgAdditionalOptions
00422 {
00423   BOOL  bShowDialog;
00424   LPSTR szTitle;
00425   LPSTR szMessage0;
00426   LPSTR szMessage1;
00427   BOOL  bSaveInstaller;
00428   BOOL  bRecaptureHomepage;
00429   BOOL  bShowHomepageOption;
00430   DWORD dwUseProtocol;
00431   BOOL  bUseProtocolSettings;
00432   BOOL  bShowProtocols;
00433 } diDO;
00434 
00435 typedef struct dlgAdvancedSettings
00436 {
00437   BOOL  bShowDialog;
00438   LPSTR szTitle;
00439   LPSTR szMessage0;
00440   LPSTR szProxyServer;
00441   LPSTR szProxyPort;
00442   LPSTR szProxyUser;
00443   LPSTR szProxyPasswd;
00444 } diAS;
00445 
00446 typedef struct dlgStartInstall
00447 {
00448   BOOL  bShowDialog;
00449   LPSTR szTitle;
00450   LPSTR szMessageInstall;
00451   LPSTR szMessageDownload;
00452 } diSI;
00453 
00454 typedef struct dlgDownload
00455 {
00456   BOOL  bShowDialog;
00457   LPSTR szTitle;
00458   LPSTR szMessageDownload0;
00459   LPSTR szMessageRetry0;
00460 } diD;
00461 
00462 typedef struct dlgReboot
00463 {
00464   DWORD dwShowDialog;
00465   LPSTR szTitle;
00466 } diR;
00467 
00468 typedef struct setupStruct
00469 {
00470   int       mode;
00471   int       greType;
00472   DWORD     dwCustomType;
00473   DWORD     dwNumberOfComponents;
00474   LPSTR     szPath;
00475   LPSTR     szSubPath;
00476   LPSTR     szProgramName;
00477   LPSTR     szCompanyName;
00478   LPSTR     szProductName;
00479   LPSTR     szProductNameInternal;
00480   LPSTR     szProductNamePrevious;
00481   LPSTR     szUninstallFilename;
00482   LPSTR     szUserAgent;
00483   LPSTR     szProgramFolderName;
00484   LPSTR     szProgramFolderPath;
00485   LPSTR     szAlternateArchiveSearchPath;
00486   LPSTR     szParentProcessFilename;
00487   BOOL      bLockPath;
00488   BOOL      bSharedInst;
00489   BOOL      bInstallFiles;
00490   BOOL      checkCleanupOnUpgrade;
00491   BOOL      doCleanupOnUpgrade;
00492   LPSTR     szAppID;
00493   LPSTR     szAppPath;
00494   LPSTR     szRegPath;
00495   BOOL      greCleanupOrphans;
00496   char      greCleanupOrphansMessage[MAX_BUF];
00497   char      greID[MAX_BUF];
00498   char      grePrivateKey[MAX_BUF];
00499   HWND      lastDialog;
00500 } setupGen;
00501 
00502 typedef struct sinfoSmartDownload
00503 {
00504   LPSTR szXpcomFile;
00505   LPSTR szXpcomDir;
00506   LPSTR szNoAds;
00507   LPSTR szSilent;
00508   LPSTR szExecution;
00509   LPSTR szConfirmInstall;
00510   LPSTR szExtractMsg;
00511   LPSTR szExe;
00512   LPSTR szExeParam;
00513   LPSTR szXpcomFilePath;
00514 } siSD;
00515 
00516 typedef struct sinfoXpcomFile
00517 {
00518   LPSTR       szSource;
00519   LPSTR       szDestination;
00520   LPSTR       szMessage;
00521   BOOL        bCleanup;
00522   BOOL        bStatus;
00523   ULONGLONG   ullInstallSize;
00524 } siCF;
00525 
00526 typedef struct sinfoComponentDep siCD;
00527 struct sinfoComponentDep
00528 {
00529   LPSTR szDescriptionShort;
00530   LPSTR szReferenceName;
00531   siCD  *Next;
00532   siCD  *Prev;
00533 };
00534 
00535 typedef struct sinfoComponent siC;
00536 struct sinfoComponent
00537 {
00538   ULONGLONG       ullInstallSize;
00539   ULONGLONG       ullInstallSizeSystem;
00540   ULONGLONG       ullInstallSizeArchive;
00541   long            lRandomInstallPercentage;
00542   long            lRandomInstallValue;
00543   DWORD           dwAttributes;
00544   LPSTR           szArchiveName;
00545   LPSTR           szArchiveNameUncompressed;
00546   LPSTR           szArchivePath;
00547   LPSTR           szDestinationPath;
00548   LPSTR           szDescriptionShort;
00549   LPSTR           szDescriptionLong;
00550   LPSTR           szParameter;
00551   LPSTR           szReferenceName;
00552   BOOL            bForceUpgrade;
00553   BOOL            bSupersede;
00554   int             iNetRetries;
00555   int             iCRCRetries;
00556   int             iNetTimeOuts;
00557   siCD            *siCDDependencies;
00558   siCD            *siCDDependees;
00559   siC             *Next;
00560   siC             *Prev;
00561 };
00562 
00563 typedef struct ssInfo ssi;
00564 struct ssInfo
00565 {
00566   LPSTR szDescription;
00567   LPSTR szDomain;
00568   LPSTR szIdentifier;
00569   ssi   *Next;
00570   ssi   *Prev;
00571 };
00572 
00573 typedef struct dlgInstall
00574 {
00575        HFONT systemFont;
00576        HFONT definedFont;
00577     char szFontName[MAX_BUF];
00578     char szFontSize[MAX_BUF];
00579     char szCharSet[MAX_BUF];
00580     char szOk_[MAX_BUF];
00581     char szOk[MAX_BUF];
00582     char szCancel_[MAX_BUF];
00583     char szCancel[MAX_BUF];
00584     char szNext_[MAX_BUF];
00585     char szBack_[MAX_BUF];
00586     char szIgnore_[MAX_BUF];
00587     char szProxySettings_[MAX_BUF];
00588     char szProxySettings[MAX_BUF];
00589     char szServer[MAX_BUF];
00590     char szPort[MAX_BUF];
00591     char szUserId[MAX_BUF];
00592     char szPassword[MAX_BUF];
00593     char szSelectDirectory[MAX_BUF];
00594     char szDirectories_[MAX_BUF];
00595     char szDrives_[MAX_BUF];
00596     char szStatus[MAX_BUF];
00597     char szFile[MAX_BUF];
00598     char szUrl[MAX_BUF];
00599     char szTo[MAX_BUF];
00600     char szAccept_[MAX_BUF];
00601     char szDecline_[MAX_BUF];
00602     char szProgramFolder_[MAX_BUF];
00603     char szExistingFolder_[MAX_BUF];
00604     char szSetupMessage[MAX_BUF];
00605     char szRestart[MAX_BUF];
00606     char szYesRestart[MAX_BUF];
00607     char szNoRestart[MAX_BUF];
00608     char szAdditionalComponents_[MAX_BUF];
00609     char szDescription[MAX_BUF];
00610     char szTotalDownloadSize[MAX_BUF];
00611     char szSpaceAvailable[MAX_BUF];
00612     char szComponents_[MAX_BUF];
00613     char szDestinationDirectory[MAX_BUF];
00614     char szBrowse_[MAX_BUF];
00615     char szCurrentSettings[MAX_BUF];
00616     char szInstall_[MAX_BUF];
00617     char szDelete_[MAX_BUF];
00618     char szContinue_[MAX_BUF];
00619     char szSkip_[MAX_BUF];
00620     char szExtracting[MAX_BUF];
00621     char szReadme_[MAX_BUF];
00622     char szPause_[MAX_BUF];
00623     char szResume_[MAX_BUF];
00624     char szChecked[MAX_BUF];
00625     char szUnchecked[MAX_BUF];
00626 } installGui;
00627 
00628 /* structure message stream */
00629 typedef struct sEMsgStream sems;
00630 struct sEMsgStream
00631 {
00632   char   szURL[MAX_BUF];
00633   char   szConfirmationMessage[MAX_BUF];
00634   char   *szMessage;
00635   DWORD  dwMessageBufSize;
00636   BOOL   bEnabled;
00637   BOOL   bSendMessage;
00638   BOOL   bShowConfirmation;
00639 };
00640 
00641 /* structure system info*/
00642 typedef struct sSysInfo sysinfo;
00643 struct sSysInfo
00644 {
00645   DWORD dwOSType;
00646   DWORD dwMajorVersion;
00647   DWORD dwMinorVersion;
00648   DWORD dwBuildNumber;
00649   char  szExtraString[MAX_BUF];
00650   DWORD dwMemoryTotalPhysical;
00651   DWORD dwMemoryAvailablePhysical;
00652   DWORD dwScreenX;
00653   DWORD dwScreenY;
00654   DWORD lastWindowPosCenterX;
00655   DWORD lastWindowPosCenterY;
00656   BOOL  lastWindowMinimized;
00657   BOOL  lastWindowIsTopWindow;
00658   BOOL  bScreenReader;
00659   BOOL  bRefreshIcons;
00660 };
00661 
00662 typedef struct diskSpaceNode dsN;
00663 struct diskSpaceNode
00664 {
00665   ULONGLONG       ullSpaceRequired;
00666   LPSTR           szPath;
00667   LPSTR           szVDSPath;
00668   dsN             *Next;
00669   dsN             *Prev;
00670 };
00671 
00672 #endif /* _SETUP_H */
00673