File: setup.h

package info (click to toggle)
iceweasel 2.0.0.19-0etch1
  • links: PTS
  • area: main
  • in suites: etch
  • size: 298,784 kB
  • ctags: 317,912
  • sloc: cpp: 1,796,902; ansic: 987,677; xml: 109,036; makefile: 47,777; asm: 35,201; perl: 26,983; sh: 20,879; cs: 6,232; java: 5,513; python: 3,249; pascal: 459; lex: 306; php: 244; csh: 132; objc: 97; yacc: 79; ada: 49; awk: 14; sql: 4; sed: 4
file content (673 lines) | stat: -rw-r--r-- 19,245 bytes parent folder | download | duplicates (8)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
/* -*- Mode: C; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* ***** BEGIN LICENSE BLOCK *****
 * Version: MPL 1.1/GPL 2.0/LGPL 2.1
 *
 * 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/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 the Initial Developer are Copyright (C) 1998
 * the Initial Developer. All Rights Reserved.
 *
 * Contributor(s):
 *   Sean Su <ssu@netscape.com>
 *
 * Alternatively, the contents of this file may be used under the terms of
 * either of the GNU General Public License Version 2 or later (the "GPL"),
 * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
 * in which case the provisions of the GPL or the LGPL are applicable instead
 * of those above. If you wish to allow use of your version of this file only
 * under the terms of either the GPL or the LGPL, and not to allow others to
 * use your version of this file under the terms of the MPL, indicate your
 * decision by deleting the provisions above and replace them with the notice
 * and other provisions required by the GPL or the LGPL. If you do not delete
 * the provisions above, a recipient may use your version of this file under
 * the terms of any one of the MPL, the GPL or the LGPL.
 *
 * ***** END LICENSE BLOCK ***** */

#ifndef _SETUP_H_
#define _SETUP_H_

#ifdef __cplusplus
#define PR_BEGIN_EXTERN_C       extern "C" {
#define PR_END_EXTERN_C         }
#else /* __cplusplus */
#define PR_BEGIN_EXTERN_C
#define PR_END_EXTERN_C
#endif /* __cplusplus */

#define PR_EXTERN(type) type

typedef unsigned int PRUint32;
typedef int PRInt32;

#include <windows.h>
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#include <assert.h>
#include <direct.h>
#include <tchar.h>
#include <commctrl.h>
#include "setuprsc.h"
#include "resource.h"
#include "zipfile.h"

#define DEFAULT_SETUP_WINDOW_NAME       "Setup"
/* Class name for the invisible window to be created */
#define CLASS_NAME_SETUP                "MozillaSetup"
#define CLASS_NAME_SETUP_DLG            "MozillaSetupDlg"
#define FILE_INI_SETUP                  "setup.ini"
#define FILE_INI_CONFIG                 "config.ini"
#define FILE_INI_INSTALL                "install.ini"
#define FILE_IDI_GETCONFIGINI           "getconfigini.idi"
#define FILE_IDI_GETARCHIVES            "getarchives.idi"
#define FILE_IDI_GETREDIRECT            "getredirect.idi"
#define FILE_INI_REDIRECT               "redirect.ini"
#define FILE_WGET_LOG                   "wget.log"
#define WIZ_TEMP_DIR                    "ns_temp"
#define FILE_INSTALL_LOG                "install_wizard.log"
#define FILE_INSTALL_STATUS_LOG         "install_status.log"
#define FILE_ALL_JS                     "all-proxy.js"
#define VR_DEFAULT_PRODUCT_NAME         "Mozilla"

#define FORCE_ADD_TO_UNINSTALL_LOG        TRUE
#define DO_NOT_FORCE_ADD_TO_UNINSTALL_LOG FALSE

/* defines that indicate whether something should
 * be logged to the install_wizardX.log or not
 * for uninstallation purposes.
 */
#define ADD_TO_UNINSTALL_LOG            TRUE
#define DO_NOT_ADD_TO_UNINSTALL_LOG     FALSE

/* defines that indeicate whether an install command
 * should have '*dnu*' prepended.  '*dnu*' is parsed
 * by the uninstaller and signals that the specific
 * install command should _not_ be undone.
 */
#define DNU_UNINSTALL                   FALSE
#define DNU_DO_NOT_UNINSTALL            TRUE

#define WINREG_OVERWRITE_KEY            TRUE
#define WINREG_DO_NOT_OVERWRITE_KEY     FALSE
#define WINREG_OVERWRITE_NAME           TRUE
#define WINREG_DO_NOT_OVERWRITE_NAME    FALSE

#define INCLUDE_INVISIBLE_OBJS          TRUE
#define SKIP_INVISIBLE_OBJS             FALSE

#define NO_BANNER_IMAGE                 0x00000000
#define BANNER_IMAGE_DOWNLOAD           0x00000001
#define BANNER_IMAGE_INSTALLING         0x00000002

#define APPPATH_GRE_PATH_SET            0x00000000
#define APPPATH_GRE_PATH_NOT_SET        0x00000001
#define APPPATH_GRE_PATH_ALREADY_SET    0x00000002

#define NEXT_DLG                        1
#define PREV_DLG                        2
#define OTHER_DLG_1                     3

#define MAX_CRC_FAILED_DOWNLOAD_RETRIES 5
#define MAX_FILE_DOWNLOAD_RETRIES       10

#define STATUS_DISABLED                 0
#define STATUS_ENABLED                  1

#define GRE_SETUP_DIR_NAME              "Setup GRE"

/* filename which contains this product setup's exit status */
#define SETUP_EXIT_STATUS_LOG           "%s Setup Exit Status.log"

/* LOCAL GRE defines */
#define GRE_TYPE_NOT_SET                -1
#define GRE_SHARED                      0
#define GRE_LOCAL                       1

/* WS: WinSpawn wait values */
#define WS_DO_NOT_WAIT                  FALSE
#define WS_WAIT                         TRUE

#define MAX_KILL_PROCESS_RETRIES        10

/* CI: Check Instance */
#define CI_FORCE_QUIT_PROCESS           TRUE
#define CI_CLOSE_PROCESS                FALSE

#define BAR_MARGIN                      1
#define BAR_SPACING                     0
#define BAR_WIDTH                       6
#define BAR_LIBXPNET_MARGIN             1
#define BAR_LIBXPNET_SPACING            0
#define BAR_LIBXPNET_WIDTH              1

/* W: When for install status logging */
#define W_START                         0
#define W_END                           1

/* W: When for crc check failed logging */
#define W_STARTUP                       0
#define W_DOWNLOAD                      1

/* UP: Use Protocol */
#define UP_FTP                          0
#define UP_HTTP                         1

/* RA: Restricted Access */
#define RA_IGNORE                       0
#define RA_ONLY_RESTRICTED              1
#define RA_ONLY_NONRESTRICTED           2

/* LIS: Log Install Status */
#define LIS_SUCCESS                     0
#define LIS_FAILURE                     1

/* UG: Upgrade */
#define UG_NONE                         0
#define UG_DELETE                       1
#define UG_IGNORE                       2
#define UG_GOBACK                       3

/* AP: Archive Path */
#define AP_NOT_FOUND                    0
#define AP_TEMP_PATH                    1
#define AP_SETUP_PATH                   2
#define AP_ALTERNATE_PATH               3

/* PP: Parse Path */
#define PP_FILENAME_ONLY                1
#define PP_PATH_ONLY                    2
#define PP_ROOT_ONLY                    3
#define PP_EXTENSION_ONLY               4

/* DA: Delete Archive */
#define DA_ONLY_IF_IN_ARCHIVES_LST      1
#define DA_ONLY_IF_NOT_IN_ARCHIVES_LST  2
#define DA_IGNORE_ARCHIVES_LST          3

/* T: Timing */
#define T_PRE_DOWNLOAD                  1
#define T_POST_DOWNLOAD                 2
#define T_PRE_XPCOM                     3
#define T_POST_XPCOM                    4
#define T_PRE_SMARTUPDATE               5
#define T_POST_SMARTUPDATE              6
#define T_PRE_LAUNCHAPP                 7
#define T_POST_LAUNCHAPP                8
#define T_DEPEND_REBOOT                 9
#define T_PRE_ARCHIVE                   10
#define T_POST_ARCHIVE                  11

#define MAX_BUF                         2048
#define MAX_BUF_TINY                    256
#define MAX_BUF_SMALL                   512
#define MAX_BUF_MEDIUM                  1024
#define MAX_BUF_LARGE                   MAX_BUF
#define MAX_BUF_XLARGE                  4096
#define MAX_ITOA                        46
#define MAX_INI_SK                      128

#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

/* WIZ: WIZARD defines */
#define WIZ_OK                          0
#define WIZ_ERROR_UNDEFINED             1024
#define WIZ_MEMORY_ALLOC_FAILED         1025
#define WIZ_OUT_OF_MEMORY               WIZ_MEMORY_ALLOC_FAILED
#define WIZ_ARCHIVES_MISSING            1026
#define WIZ_CRC_PASS                    WIZ_OK
#define WIZ_CRC_FAIL                    1028
#define WIZ_SETUP_ALREADY_RUNNING       1029
#define WIZ_TOO_MANY_NETWORK_ERRORS     1030
#define WIZ_ERROR_PARSING_INTERNAL_STR  1031
#define WIZ_ERROR_REGKEY                1032
#define WIZ_ERROR_INIT                  1033
#define WIZ_ERROR_LOADING_RESOURCE_LIB  1034
#define WIZ_ERROR_CREATE_DIRECTORY      1035

/* E: Errors */
#define E_REBOOT                        999

/* FO: File Operation */
#define FO_OK                           0
#define FO_SUCCESS                      0
#define FO_ERROR_FILE_NOT_FOUND         1
#define FO_ERROR_DESTINATION_CONFLICT   2
#define FO_ERROR_CHANGE_DIR             3
#define FO_ERROR_WRITE                  4
#define FO_ERROR_INCR_EXCEEDS_LIMIT     5

/* Mode of Setup to run in */
#define NOT_SET                         -1
#define NORMAL                          0
#define SILENT                          1
#define AUTO                            2

/* ST: Setup Type */
#define ST_RADIO0                       0
#define ST_RADIO1                       1
#define ST_RADIO2                       2
#define ST_RADIO3                       3

/* SM: Setup Type Mode */
#define SM_SINGLE                       0
#define SM_MULTI                        1

/* SIC: Setup Info Component*/
#define SIC_SELECTED                    0x00000001
#define SIC_INVISIBLE                   0x00000002
#define SIC_LAUNCHAPP                   0x00000004
#define SIC_DOWNLOAD_REQUIRED           0x00000008
#define SIC_DOWNLOAD_ONLY               0x00000010
#define SIC_ADDITIONAL                  0x00000020
#define SIC_DISABLED                    0x00000040
#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
#define AC_COMPONENTS                   1
#define AC_ADDITIONAL_COMPONENTS        2
#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_NT50                         0x00000100
#define OS_NT51                         0x00000200

/* DSR: Disk Space Required */
#define DSR_DESTINATION                 0
#define DSR_SYSTEM                      1
#define DSR_TEMP                        2
#define DSR_DOWNLOAD_SIZE               3

/* SS: Site Selector */
#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"
#define SETUP_STATE_REMOVING_PREV_INST   "removing previous installation"


typedef struct dlgSetup
{
  DWORD   dwDlgID;
  WNDPROC fDlgProc;
  LPSTR   szTitle;
} diS;

typedef struct dlgWelcome
{
  BOOL  bShowDialog;
  LPSTR szTitle;
  LPSTR szMessage0;
  LPSTR szMessage1;
  LPSTR szMessage2;
} diW;

typedef struct dlgLicense
{
  BOOL  bShowDialog;
  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;
  DWORD dwCItems;
  DWORD dwCItemsSelected[MAX_BUF]; /* components */
  LPSTR szDescriptionShort;
  LPSTR szDescriptionLong;
} st;

typedef struct dlgSetupType
{
  BOOL  bShowDialog;
  LPSTR szTitle;
  LPSTR szMessage0;
  LPSTR szReadmeFilename;
  LPSTR szReadmeApp;
  st    stSetupType0;
  st    stSetupType1;
  st    stSetupType2;
  st    stSetupType3;
} diST;

typedef struct dlgSelectComponents
{
  BOOL  bShowDialog;
  DWORD bShowDialogSM;
  LPSTR szTitle;
  LPSTR szMessage0;
} diSC;

typedef struct wiCBstruct
{
  BOOL  bEnabled;
  BOOL  bCheckBoxState;
  LPSTR szDescription;
  LPSTR szArchive;
} wiCBs;

typedef struct dlgWindowsIntegration
{
  BOOL  bShowDialog;
  LPSTR szTitle;
  LPSTR szMessage0;
  LPSTR szMessage1;
  wiCBs wiCB0;
  wiCBs wiCB1;
  wiCBs wiCB2;
  wiCBs wiCB3;
} diWI;

typedef struct dlgProgramFolder
{
  BOOL  bShowDialog;
  LPSTR szTitle;
  LPSTR szMessage0;
} diPF;

typedef struct dlgAdditionalOptions
{
  BOOL  bShowDialog;
  LPSTR szTitle;
  LPSTR szMessage0;
  LPSTR szMessage1;
  BOOL  bSaveInstaller;
  BOOL  bRecaptureHomepage;
  BOOL  bShowHomepageOption;
  DWORD dwUseProtocol;
  BOOL  bUseProtocolSettings;
  BOOL  bShowProtocols;
} diDO;

typedef struct dlgAdvancedSettings
{
  BOOL  bShowDialog;
  LPSTR szTitle;
  LPSTR szMessage0;
  LPSTR szProxyServer;
  LPSTR szProxyPort;
  LPSTR szProxyUser;
  LPSTR szProxyPasswd;
} diAS;

typedef struct dlgStartInstall
{
  BOOL  bShowDialog;
  LPSTR szTitle;
  LPSTR szMessageInstall;
  LPSTR szMessageDownload;
} diSI;

typedef struct dlgDownload
{
  BOOL  bShowDialog;
  LPSTR szTitle;
  LPSTR szMessageDownload0;
  LPSTR szMessageRetry0;
} diD;

typedef struct dlgReboot
{
  DWORD dwShowDialog;
  LPSTR szTitle;
} diR;

typedef struct setupStruct
{
  int       mode;
  int       greType;
  DWORD     dwCustomType;
  DWORD     dwNumberOfComponents;
  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;
  BOOL      bSharedInst;
  BOOL      bInstallFiles;
  BOOL      checkCleanupOnUpgrade;
  BOOL      doCleanupOnUpgrade;
  LPSTR     szAppID;
  LPSTR     szAppPath;
  LPSTR     szRegPath;
  BOOL      greCleanupOrphans;
  char      greCleanupOrphansMessage[MAX_BUF];
  char      greID[MAX_BUF];
  char      grePrivateKey[MAX_BUF];
  HWND      lastDialog;
} setupGen;

typedef struct sinfoSmartDownload
{
  LPSTR szXpcomFile;
  LPSTR szXpcomDir;
  LPSTR szNoAds;
  LPSTR szSilent;
  LPSTR szExecution;
  LPSTR szConfirmInstall;
  LPSTR szExtractMsg;
  LPSTR szExe;
  LPSTR szExeParam;
  LPSTR szXpcomFilePath;
} siSD;

typedef struct sinfoXpcomFile
{
  LPSTR       szSource;
  LPSTR       szDestination;
  LPSTR       szMessage;
  BOOL        bCleanup;
  BOOL        bStatus;
  ULONGLONG   ullInstallSize;
} siCF;

typedef struct sinfoComponentDep siCD;
struct sinfoComponentDep
{
  LPSTR szDescriptionShort;
  LPSTR szReferenceName;
  siCD  *Next;
  siCD  *Prev;
};

typedef struct sinfoComponent siC;
struct sinfoComponent
{
  ULONGLONG       ullInstallSize;
  ULONGLONG       ullInstallSizeSystem;
  ULONGLONG       ullInstallSizeArchive;
  long            lRandomInstallPercentage;
  long            lRandomInstallValue;
  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;
  siC             *Prev;
};

typedef struct ssInfo ssi;
struct ssInfo
{
  LPSTR szDescription;
  LPSTR szDomain;
  LPSTR szIdentifier;
  ssi   *Next;
  ssi   *Prev;
};

typedef struct dlgInstall
{
	HFONT systemFont;
	HFONT definedFont;
    char szFontName[MAX_BUF];
    char szFontSize[MAX_BUF];
    char szCharSet[MAX_BUF];
    char szOk_[MAX_BUF];
    char szOk[MAX_BUF];
    char szCancel_[MAX_BUF];
    char szCancel[MAX_BUF];
    char szNext_[MAX_BUF];
    char szBack_[MAX_BUF];
    char szIgnore_[MAX_BUF];
    char szProxySettings_[MAX_BUF];
    char szProxySettings[MAX_BUF];
    char szServer[MAX_BUF];
    char szPort[MAX_BUF];
    char szUserId[MAX_BUF];
    char szPassword[MAX_BUF];
    char szSelectDirectory[MAX_BUF];
    char szDirectories_[MAX_BUF];
    char szDrives_[MAX_BUF];
    char szStatus[MAX_BUF];
    char szFile[MAX_BUF];
    char szUrl[MAX_BUF];
    char szTo[MAX_BUF];
    char szAccept_[MAX_BUF];
    char szDecline_[MAX_BUF];
    char szProgramFolder_[MAX_BUF];
    char szExistingFolder_[MAX_BUF];
    char szSetupMessage[MAX_BUF];
    char szRestart[MAX_BUF];
    char szYesRestart[MAX_BUF];
    char szNoRestart[MAX_BUF];
    char szAdditionalComponents_[MAX_BUF];
    char szDescription[MAX_BUF];
    char szTotalDownloadSize[MAX_BUF];
    char szSpaceAvailable[MAX_BUF];
    char szComponents_[MAX_BUF];
    char szDestinationDirectory[MAX_BUF];
    char szBrowse_[MAX_BUF];
    char szCurrentSettings[MAX_BUF];
    char szInstall_[MAX_BUF];
    char szDelete_[MAX_BUF];
    char szContinue_[MAX_BUF];
    char szSkip_[MAX_BUF];
    char szExtracting[MAX_BUF];
    char szReadme_[MAX_BUF];
    char szPause_[MAX_BUF];
    char szResume_[MAX_BUF];
    char szChecked[MAX_BUF];
    char szUnchecked[MAX_BUF];
} installGui;

/* structure message stream */
typedef struct sEMsgStream sems;
struct sEMsgStream
{
  char   szURL[MAX_BUF];
  char   szConfirmationMessage[MAX_BUF];
  char   *szMessage;
  DWORD  dwMessageBufSize;
  BOOL   bEnabled;
  BOOL   bSendMessage;
  BOOL   bShowConfirmation;
};

/* structure system info*/
typedef struct sSysInfo sysinfo;
struct sSysInfo
{
  DWORD dwOSType;
  DWORD dwMajorVersion;
  DWORD dwMinorVersion;
  DWORD dwBuildNumber;
  char  szExtraString[MAX_BUF];
  DWORD dwMemoryTotalPhysical;
  DWORD dwMemoryAvailablePhysical;
  DWORD dwScreenX;
  DWORD dwScreenY;
  DWORD lastWindowPosCenterX;
  DWORD lastWindowPosCenterY;
  BOOL  lastWindowMinimized;
  BOOL  lastWindowIsTopWindow;
  BOOL  bScreenReader;
  BOOL  bRefreshIcons;
};

typedef struct diskSpaceNode dsN;
struct diskSpaceNode
{
  ULONGLONG       ullSpaceRequired;
  LPSTR           szPath;
  LPSTR           szVDSPath;
  dsN             *Next;
  dsN             *Prev;
};

#endif /* _SETUP_H */