source410: literal 4.10 source reconstruction + BC++ 4.52 fleet toolchain archived
- BORLAND/: Borland C++ 4.52 (chosen over 4.5 by byte-match: CODE/RP/CW32.LIB
is identical to 4.52's install lib). BCC32/TLINK32/TLIB/MAKE run natively on
Win11; CODE/BT/OPT.MAK is the shipped BTL4OPT.EXE's exact flag recipe
(extender = Borland PowerPack DPMI32, not Phar Lap TNT).
- restoration/source410/: the literal 1995-form reconstruction of the missing
BT game source (never mixed into CODE/). Round 1-3 state:
* 6 of 10 surviving original TUs COMPILE CLEAN under the period toolchain
(BTMSSN, BTCNSL, BTSCNRL, BTTEAM, BTL4MODE, BTL4ARND) - first builds
since 1996.
* BT_L4/BTL4APP.CPP pilot reconstruction: 12/12 functions, Fail() lands on
its binary-recorded line 400 exactly.
* BT/BTCNSL.HPP: console wire IDs recovered from the binary's ctors
(Killed=9, Damaged=10, ScoreUpdate=13, DeathWithoutHonor=15 [T1];
TeamScore=12 flagged [T4]).
* MUNGA/: 8 engine-header backfills back-dated from the BT412 WinTesla tree
(VDATA numbering decomp-verified; AUDREND's OpenAL-era virtual removed -
the period compiler is the drift detector).
* Tooling: backdate.py (WinTesla->1995 header transform), compile410.sh
(per-TU verification sweep under authentic OPT.MAK flags).
* README: corrected roadmap - MECH.HPP is the capstone grown with the mech
TU reconstructions; BTREG.CPP green = the header-family milestone.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,168 @@
|
||||
[Source Media Descriptions]
|
||||
"1", "Borland Disk28", "ole2.dl_", ""
|
||||
"2", "Borland Disk29", "sortkey.nl_", ""
|
||||
"3", "Borland Disk29", "ole32.dl_", ""
|
||||
|
||||
[Default File Settings]
|
||||
"STF_BACKUP" = ""
|
||||
"STF_COPY" = "YES"
|
||||
"STF_DECOMPRESS" = "YES"
|
||||
"STF_OVERWRITE" = "ALWAYS"
|
||||
"STF_READONLY" = "YES"
|
||||
"STF_ROOT" = ""
|
||||
"STF_SETTIME" = "YES"
|
||||
"STF_TIME" = "0"
|
||||
"STF_VITAL" = "YES"
|
||||
|
||||
[WindowsSystemWin32s]
|
||||
2, win32s.exe,,,, 1994-09-01,,,, !READONLY,,,,, SHARED, 352, SYSTEM,,,,
|
||||
2, p_037.nls,,,, 1994-08-29,,,, !READONLY,,,,, SHARED, 2082, SYSTEM,,,,
|
||||
2, p_1026.nls,,,, 1994-08-29,,,, !READONLY,,,,, SHARED, 2082, SYSTEM,,,,
|
||||
2, p_500.nls,,,, 1994-08-29,,,, !READONLY,,,,, SHARED, 2082, SYSTEM,,,,
|
||||
2, p_875.nls,,,, 1994-07-31,,,, !READONLY,,,,, SHARED, 2338, SYSTEM,,,,
|
||||
2, l_intl.nls,,,, 1994-07-31,,,, !READONLY,,,,, SHARED, 7142, SYSTEM,,,,
|
||||
2, p_10000.nls,,,, 1994-08-29,,,, !READONLY,,,,, SHARED, 3874, SYSTEM,,,,
|
||||
2, p_10006.nls,,,, 1994-08-29,,,, !READONLY,,,,, SHARED, 3106, SYSTEM,,,,
|
||||
2, p_10007.nls,,,, 1994-07-31,,,, !READONLY,,,,, SHARED, 3106, SYSTEM,,,,
|
||||
2, p_10029.nls,,,, 1994-07-31,,,, !READONLY,,,,, SHARED, 3362, SYSTEM,,,,
|
||||
2, p_10079.nls,,,, 1994-08-29,,,, !READONLY,,,,, SHARED, 3618, SYSTEM,,,,
|
||||
2, p_10081.nls,,,, 1994-08-29,,,, !READONLY,,,,, SHARED, 4130, SYSTEM,,,,
|
||||
2, p_737.nls,,,, 1994-07-31,,,, !READONLY,,,,, SHARED, 4130, SYSTEM,,,,
|
||||
2, version.dll,,,, 1994-09-01,,,, !READONLY,,,,, SHARED, 3584, SYSTEM,,,,
|
||||
2, p_1250.nls,,,, 1994-07-31,,,, !READONLY,,,,, SHARED, 5410, SYSTEM,,,,
|
||||
2, p_1251.nls,,,, 1994-07-31,,,, !READONLY,,,,, SHARED, 3874, SYSTEM,,,,
|
||||
2, p_1252.nls,,,, 1994-07-31,,,, !READONLY,,,,, SHARED, 5410, SYSTEM,,,,
|
||||
2, p_1253.nls,,,, 1994-08-29,,,, !READONLY,,,,, SHARED, 4130, SYSTEM,,,,
|
||||
2, p_1254.nls,,,, 1994-07-31,,,, !READONLY,,,,, SHARED, 5410, SYSTEM,,,,
|
||||
2, p_855.nls,,,, 1994-07-31,,,, !READONLY,,,,, SHARED, 4386, SYSTEM,,,,
|
||||
2, p_857.nls,,,, 1994-08-29,,,, !READONLY,,,,, SHARED, 5922, SYSTEM,,,,
|
||||
2, p_866.nls,,,, 1994-07-31,,,, !READONLY,,,,, SHARED, 4386, SYSTEM,,,,
|
||||
2, p_869.nls,,,, 1994-07-31,,,, !READONLY,,,,, SHARED, 4386, SYSTEM,,,,
|
||||
2, sorttbls.nls,,,, 1994-08-29,,,, !READONLY,,,,, SHARED, 3196, SYSTEM,,,,
|
||||
2, comdlg32.dll,,,, 1994-09-01,,,, !READONLY,,,,, SHARED, 4096, SYSTEM,,,,
|
||||
2, lz32.dll,,,, 1994-09-01,,,, !READONLY,,,,, SHARED, 4096, SYSTEM,,,,
|
||||
2, shell32.dll,,,, 1994-09-01,,,, !READONLY,,,,, SHARED, 4096, SYSTEM,,,,
|
||||
2, p_437.nls,,,, 1994-08-29,,,, !READONLY,,,,, SHARED, 5922, SYSTEM,,,,
|
||||
2, p_850.nls,,,, 1994-08-29,,,, !READONLY,,,,, SHARED, 5922, SYSTEM,,,,
|
||||
2, p_852.nls,,,, 1994-07-31,,,, !READONLY,,,,, SHARED, 5922, SYSTEM,,,,
|
||||
2, p_860.nls,,,, 1994-08-29,,,, !READONLY,,,,, SHARED, 5922, SYSTEM,,,,
|
||||
2, p_861.nls,,,, 1994-08-29,,,, !READONLY,,,,, SHARED, 5922, SYSTEM,,,,
|
||||
2, p_863.nls,,,, 1994-08-29,,,, !READONLY,,,,, SHARED, 5922, SYSTEM,,,,
|
||||
2, p_865.nls,,,, 1994-08-29,,,, !READONLY,,,,, SHARED, 5922, SYSTEM,,,,
|
||||
2, mpr.dll,,,, 1994-09-01,,,, !READONLY,,,,, SHARED, 5632, SYSTEM,,,,
|
||||
2, winspool.drv,,,, 1994-09-01,,,, !READONLY,,,,, SHARED, 6656, SYSTEM,,,,
|
||||
2, ctype.nls,,,, 1994-08-29,,,, !READONLY,,,,, SHARED, 6768, SYSTEM,,,,
|
||||
2, netapi32.dll,,,, 1994-09-01,,,, !READONLY,,,,, SHARED, 8192, SYSTEM,,,,
|
||||
2, olesvr32.dll,,,, 1994-09-01,,,, !READONLY,,,,, SHARED, 8704, SYSTEM,,,,
|
||||
2, wsock32.dll,,,, 1994-07-24,,,, !READONLY,,,,, SHARED, 8704, SYSTEM,,,,
|
||||
2, sck16thk.dll,,,, 1994-09-01,,,, !READONLY,,,,, SHARED, 9216, SYSTEM,,, 1.0.0.0,
|
||||
2, olecli32.dll,,,, 1994-09-01,,,, !READONLY,,,,, SHARED, 17920, SYSTEM,,,,
|
||||
2, unicode.nls,,,, 1994-08-29,,,, !READONLY,,,,, SHARED, 33764, SYSTEM,,,,
|
||||
2, locale.nls,,,, 1994-08-29,,,, !READONLY,,,,, SHARED, 54686, SYSTEM,,,,
|
||||
2, w32s.386,,,, 1994-09-01,,,, !READONLY,,,,, SHARED, 40491, SYSTEM,,,,
|
||||
2, winmm.dll,,,, 1994-09-01,,,, !READONLY,,,,, SHARED, 60416, SYSTEM,,,,
|
||||
2, ntmsg.dll,,,, 1994-09-01,,,, !READONLY,,,,, SHARED, 106496, SYSTEM,,,,
|
||||
2, p_936.nls,,,, 1994-08-29,,,, !READONLY,,,,, SHARED, 94754, SYSTEM,,,,
|
||||
2, w32skrnl.dll,,,, 1994-09-01,,,, !READONLY,,,,, SHARED, 82432, SYSTEM,,,,
|
||||
2, p_949.nls,,,, 1994-08-29,,,, !READONLY,,,,, SHARED, 104994, SYSTEM,,,,
|
||||
2, p_10001.nls,,,, 1994-07-31,,,, !READONLY,,,,, SHARED, 87586, SYSTEM,,,,
|
||||
2, p_932.nls,,,, 1994-07-31,,,, !READONLY,,,,, SHARED, 87586, SYSTEM,,,,
|
||||
2, crtdll.dll,,,, 1994-08-29,,,, !READONLY,,,,, SHARED, 156720, SYSTEM,,,,
|
||||
2, p_950.nls,,,, 1994-08-29,,,, !READONLY,,,,, SHARED, 130594, SYSTEM,,,,
|
||||
2, w32scomb.dll,,,, 1994-09-01,,,, !READONLY,,,,, SHARED, 203264, SYSTEM,,,,
|
||||
2, sortkey.nls,,,, 1994-08-29,,,, !READONLY,,,,, SHARED, 262148, SYSTEM,,,,
|
||||
|
||||
[OleWindowsSystem]
|
||||
"ole2prox" = 1, ole2prox.dll,, ole2prox.w31,, 1994-08-31,,, OLDER, !READONLY,,,,, SHARED, 51712, SYSTEM,,, 2.2.120.122,
|
||||
"ole2conv" = 1, ole2conv.dll,, ole2conv.w31,, 1993-11-16,,, OLDER, !READONLY,,,,, SHARED, 57328, SYSTEM,,, 2.1.0.1,
|
||||
"compobj" = 1, compobj.dll,, compobj.w31,, 1994-08-31,,, OLDER, !READONLY,,,,, SHARED, 108544, SYSTEM,,, 2.2.120.122,
|
||||
"ole2nls" = 1, ole2nls.dll,, ole2nls.w31,, 1994-08-27,,, OLDER, !READONLY,,,,, SHARED, 150976, SYSTEM,,, 2.2.3002.1,
|
||||
"ole2disp" = 1, ole2disp.dll,, ole2disp.w31,, 1994-08-31,,, OLDER, !READONLY,,,,, SHARED, 164832, SYSTEM,,, 2.2.3002.1,
|
||||
"storage" = 1, storage.dll,, storage.w31,, 1994-08-23,,, OLDER, !READONLY,,,,, SHARED, 157696, SYSTEM,,, 2.2.120.120,
|
||||
"typelib" = 1, typelib.dll,, typelib.w31,, 1994-09-02,,, OLDER, !READONLY,,,,, SHARED, 177216, SYSTEM,,, 2.2.3002.0,
|
||||
"ole2" = 1, ole2.dll,, ole2.w31,, 1994-08-31,,, OLDER, !READONLY,,,,, SHARED, 302592, SYSTEM,,, 2.2.120.122,
|
||||
|
||||
[OleWindowsSystemWin32s]
|
||||
3, stdole32.tlb,,,, 1994-09-02,,,, !READONLY,,,,, SHARED, 4243,,,,,
|
||||
"ole2thk" = 1, ole2thk.dll,,,, 1994-08-31,,,, !READONLY,,,,, SHARED, 33280, SYSTEM,,, 2.2.120.122,
|
||||
3, oleaut32.dll,,,, 1994-09-06,,,, !READONLY,,,,, SHARED, 249408,,,,,
|
||||
3, ole32.dll,,,, 1994-08-31,,,, !READONLY,,,,, SHARED, 359424, SYSTEM,,,,
|
||||
|
||||
[WindowsSystem]
|
||||
2, w32sys.dll,,,, 1994-09-01,,,, !READONLY,,,,, SHARED, 12048, SYSTEM,,, 1.20.123.0,
|
||||
2, winmm16.dll,,,, 1994-05-12,,,, !READONLY,,,,, SHARED, 29184, SYSTEM,,,,
|
||||
2, olecli.dll,, olecli.w31,, 1994-04-25,,, OLDER, !READONLY,,,,, SHARED, 82944, SYSTEM,,, 1.32.0.0,
|
||||
"win32s16" = 2, win32s16.dll,,,, 1994-09-01,,,, !READONLY,,,,, SHARED, 160256, SYSTEM,,, 1.20.123.0,
|
||||
|
||||
[Win32appFreecell]
|
||||
1, freecell.hlp,,,, 1993-06-17,,,, !READONLY,,,,, SHARED, 18751,,,,, !VITAL
|
||||
1, freecell.exe,,,, 1993-07-24,,,, !READONLY,,,,, SHARED, 49188,,,,, !VITAL
|
||||
1, cards.dll,,,, 1993-07-24,,,, !READONLY,,,,, SHARED, 158180,,,,, !VITAL
|
||||
|
||||
[Ole2RegWindowsSystem]
|
||||
1, ole2.reg,,,, 1994-08-10,,,, !READONLY,,,,, SHARED, 27026, SYSTEM,,,,
|
||||
|
||||
[StdoleWindowsSystem]
|
||||
1, stdole.tlb,, stdole.w31,, 1994-09-01,,,, !READONLY,,,,, SHARED, 4304, SYSTEM,,,,
|
||||
|
||||
[Files]
|
||||
1, setup.lst,,,, 1994-01-31, !DECOMPRESS,,, !READONLY,,,,, SHARED, 611,,,,,
|
||||
1, msuilstf.dll,,,, 1992-07-25, !DECOMPRESS,,, !READONLY,,,,, SHARED, 6144,,,,,
|
||||
1, _mssetup.exe,,,, 1992-07-25, !DECOMPRESS,,, !READONLY,,,,, SHARED, 9813,,,,,
|
||||
1, iniupd.dll,,,, 1994-09-06, !DECOMPRESS,,, !READONLY,,,,, SHARED, 12800,,,,,
|
||||
1, msshlstf.dll,,,, 1992-07-25, !DECOMPRESS,,, !READONLY,,,,, SHARED, 14928,,,,,
|
||||
1, 32sinst.mst,,,, 1994-09-06, !DECOMPRESS,,, !READONLY,,,,, SHARED, 21971,,,,,
|
||||
1, msdetect.inc,,,, 1992-07-25, !DECOMPRESS,,, !READONLY,,,,, SHARED, 22097,,,,,
|
||||
1, msdetstf.dll,,,, 1992-07-25, !DECOMPRESS,,, !READONLY,,,,, SHARED, 24544,,,,,
|
||||
1, mscuistf.dll,,,, 1994-09-06, !DECOMPRESS,,, !READONLY,,,,, SHARED, 24960,,,,,
|
||||
1, setup.exe,,,, 1992-07-25, !DECOMPRESS,,, !READONLY,,,,, SHARED, 24624,,,,,
|
||||
1, setupapi.inc,,,, 1992-07-25, !DECOMPRESS,,, !READONLY,,,,, SHARED, 55620,,,,,
|
||||
1, msinsstf.dll,,,, 1992-07-25, !DECOMPRESS,,, !READONLY,,,,, SHARED, 65440,,,,,
|
||||
1, mscomstf.dll,,,, 1992-07-25, !DECOMPRESS,,, !READONLY,,,,, SHARED, 74528,,,,,
|
||||
1, _mstest.exe,,,, 1992-07-25, !DECOMPRESS,,, !READONLY,,,,, SHARED, 89504,,,,,
|
||||
|
||||
[Win32sSystemObsoleteFiles]
|
||||
1, kernel32.dll,,, !COPY,,,,,, REMOVE,,,,, 0,,,,,
|
||||
1, user32.dll,,, !COPY,,,,,, REMOVE,,,,, 0,,,,,
|
||||
1, gdi32.dll,,, !COPY,,,,,, REMOVE,,,,, 0,,,,,
|
||||
1, advapi32.dll,,, !COPY,,,,,, REMOVE,,,,, 0,,,,,
|
||||
1, ntdll.dll,,, !COPY,,,,,, REMOVE,,,,, 0,,,,,
|
||||
1, ctype1.nls,,, !COPY,,,,,, REMOVE,,,,, 0,,,,,
|
||||
1, ctype2.nls,,, !COPY,,,,,, REMOVE,,,,, 0,,,,,
|
||||
1, ctype3.nls,,, !COPY,,,,,, REMOVE,,,,, 0,,,,,
|
||||
1, c_037.nls,,, !COPY,,,,,, REMOVE,,,,, 0,,,,,
|
||||
1, c_10000.nls,,, !COPY,,,,,, REMOVE,,,,, 0,,,,,
|
||||
1, c_10001.nls,,, !COPY,,,,,, REMOVE,,,,, 0,,,,,
|
||||
1, c_10006.nls,,, !COPY,,,,,, REMOVE,,,,, 0,,,,,
|
||||
1, c_10007.nls,,, !COPY,,,,,, REMOVE,,,,, 0,,,,,
|
||||
1, c_10029.nls,,, !COPY,,,,,, REMOVE,,,,, 0,,,,,
|
||||
1, c_10081.nls,,, !COPY,,,,,, REMOVE,,,,, 0,,,,,
|
||||
1, c_1026.nls,,, !COPY,,,,,, REMOVE,,,,, 0,,,,,
|
||||
1, c_1250.nls,,, !COPY,,,,,, REMOVE,,,,, 0,,,,,
|
||||
1, c_1251.nls,,, !COPY,,,,,, REMOVE,,,,, 0,,,,,
|
||||
1, c_1252.nls,,, !COPY,,,,,, REMOVE,,,,, 0,,,,,
|
||||
1, c_1253.nls,,, !COPY,,,,,, REMOVE,,,,, 0,,,,,
|
||||
1, c_1254.nls,,, !COPY,,,,,, REMOVE,,,,, 0,,,,,
|
||||
1, c_437.nls,,, !COPY,,,,,, REMOVE,,,,, 0,,,,,
|
||||
1, c_500.nls,,, !COPY,,,,,, REMOVE,,,,, 0,,,,,
|
||||
1, c_737.nls,,, !COPY,,,,,, REMOVE,,,,, 0,,,,,
|
||||
1, c_850.nls,,, !COPY,,,,,, REMOVE,,,,, 0,,,,,
|
||||
1, c_852.nls,,, !COPY,,,,,, REMOVE,,,,, 0,,,,,
|
||||
1, c_855.nls,,, !COPY,,,,,, REMOVE,,,,, 0,,,,,
|
||||
1, c_857.nls,,, !COPY,,,,,, REMOVE,,,,, 0,,,,,
|
||||
1, c_860.nls,,, !COPY,,,,,, REMOVE,,,,, 0,,,,,
|
||||
1, c_861.nls,,, !COPY,,,,,, REMOVE,,,,, 0,,,,,
|
||||
1, c_863.nls,,, !COPY,,,,,, REMOVE,,,,, 0,,,,,
|
||||
1, c_865.nls,,, !COPY,,,,,, REMOVE,,,,, 0,,,,,
|
||||
1, c_866.nls,,, !COPY,,,,,, REMOVE,,,,, 0,,,,,
|
||||
1, c_869.nls,,, !COPY,,,,,, REMOVE,,,,, 0,,,,,
|
||||
1, c_875.nls,,, !COPY,,,,,, REMOVE,,,,, 0,,,,,
|
||||
1, c_932.nls,,, !COPY,,,,,, REMOVE,,,,, 0,,,,,
|
||||
1, c_936.nls,,, !COPY,,,,,, REMOVE,,,,, 0,,,,,
|
||||
1, c_949.nls,,, !COPY,,,,,, REMOVE,,,,, 0,,,,,
|
||||
1, c_950.nls,,, !COPY,,,,,, REMOVE,,,,, 0,,,,,
|
||||
1, compob32.dll,,, !COPY,,,,,, REMOVE,,,,, 0,,,,,
|
||||
1, ole2pr32.dll,,, !COPY,,,,,, REMOVE,,,,, 0,,,,,
|
||||
1, ole2w32.dll,,, !COPY,,,,,, REMOVE,,,,, 0,,,,,
|
||||
1, storag32.dll,,, !COPY,,,,,, REMOVE,,,,, 0,,,,,
|
||||
1, w32sem87.dll,,, !COPY,,,,,, REMOVE,,,,, 0,,,,,
|
||||
@@ -0,0 +1,646 @@
|
||||
'**************************************************************************
|
||||
'* MS Test script for Win32s setup program
|
||||
'**************************************************************************
|
||||
|
||||
'' $DEFINE DEBUG ''Define for script development/debugging
|
||||
|
||||
'$INCLUDE 'setupapi.inc'
|
||||
'$INCLUDE 'msdetect.inc'
|
||||
|
||||
''Dialog ID's
|
||||
CONST WELCOME = 100
|
||||
CONST ASKQUIT = 200
|
||||
CONST DESTPATH = 300
|
||||
CONST EXITFAILURE = 400
|
||||
CONST EXITQUIT = 600
|
||||
CONST EXITSUCCESS = 700
|
||||
CONST OPTIONS = 800
|
||||
CONST BADPATH = 6400
|
||||
|
||||
CONST HELPWELCOME = 1000
|
||||
CONST VERPATH = 1100
|
||||
CONST EXITFAILNOTWIN31 = 1200
|
||||
CONST EXITFAILNOTENH = 1300
|
||||
CONST EXITFAILNOTPAGING = 1325
|
||||
CONST EXITFAILNOTINTEL = 1350
|
||||
CONST EXITFAILRUNAPP = 1360
|
||||
CONST FREECELLINST = 1400
|
||||
CONST FREECELLINSTNOWIN32S = 1450
|
||||
CONST FREECELLPATH = 1500
|
||||
CONST HELPFREECELL = 1600
|
||||
|
||||
|
||||
''Bitmap ID
|
||||
CONST LOGO = 1
|
||||
|
||||
GLOBAL DESTSYS$ ''Windows\System directory.
|
||||
GLOBAL DEST32S$ ''Windows\System\Win32s directory
|
||||
GLOBAL DESTFREE$ ''Freecell directory
|
||||
GLOBAL OLE_PROTECT% ''Indicates whether ole2 dlls were protected from being
|
||||
'' copied.
|
||||
|
||||
DECLARE SUB Install(OLEONLY%, OLE2_32%, OLE2_16%, OLE2AUTO_16%, OLE16RUNAPP%)
|
||||
DECLARE SUB UpdateSystemIni
|
||||
DECLARE FUNCTION RebootSystem(OLEONLY%) AS INTEGER
|
||||
DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
|
||||
DECLARE FUNCTION MakeSystemIni LIB "INIUPD.DLL" (arg1$, arg2$) AS INTEGER
|
||||
DECLARE FUNCTION RestartWindows LIB "INIUPD.DLL" AS INTEGER
|
||||
DECLARE FUNCTION OnWindowsNT LIB "INIUPD.DLL" AS INTEGER
|
||||
DECLARE FUNCTION PagingEnabled LIB "INIUPD.DLL" AS INTEGER
|
||||
DECLARE FUNCTION ShareEnabled LIB "INIUPD.DLL" AS INTEGER
|
||||
DECLARE FUNCTION IsWin32sLoaded LIB "INIUPD.DLL" (arg1$) AS INTEGER
|
||||
DECLARE FUNCTION IsRunningApp LIB "INIUPD.DLL" AS INTEGER
|
||||
DECLARE FUNCTION SetCuiFlags LIB "MSCUISTF.DLL" (arg1%, arg2%) AS INTEGER
|
||||
DECLARE FUNCTION ExitWindowsExec LIB "USER.EXE" (arg1$, arg2$) AS INTEGER
|
||||
DECLARE FUNCTION GetModuleHandle LIB "KRNL386.EXE" (arg1$) AS INTEGER
|
||||
DECLARE FUNCTION LoadLibrary LIB "KRNL386.EXE" (arg1$) AS INTEGER
|
||||
DECLARE SUB FreeLibrary LIB "KRNL386.EXE" (arg1%)
|
||||
DECLARE FUNCTION SetErrorMode LIB "KRNL386.EXE" (arg1%) AS INTEGER
|
||||
|
||||
INIT:
|
||||
CUIDLL$ = "mscuistf.dll" '' Custom user interface dll
|
||||
HELPPROC$ = "FHelpDlgProc" '' Help dialog procedure
|
||||
szOldVer$ ="1.00.000 " '' Reserve space in string for version
|
||||
WIN32ENABLED% = 0
|
||||
OLEONLY% = 0
|
||||
OLE2_16% = 0
|
||||
OLE2AUTO_16% = 0
|
||||
OLE16RUNAPP% = 0
|
||||
OLE_PROTECT% = 0
|
||||
|
||||
ON ERROR GOTO ERRNORMAL
|
||||
|
||||
SrcDir$ = GetSymbolValue("STF_SRCDIR")
|
||||
|
||||
szInf$ = GetSymbolValue("STF_SRCINFPATH")
|
||||
IF szInf$ = "" THEN
|
||||
szInf$ = GetSymbolValue("STF_CWDDIR") + "32sinst.inf"
|
||||
END IF
|
||||
ReadInfFile szInf$
|
||||
|
||||
SetBitmap CUIDLL$, LOGO
|
||||
SetTitle "Microsoft Win32s version " + MID$(GetSectionKeyVersion("WindowsSystem", "win32s16"), 1, 4) + " Setup Program"
|
||||
|
||||
DESTSYS$ = GetWindowsSysDir()
|
||||
DEST32S$ = DESTSYS + "WIN32S\"
|
||||
|
||||
'$IFDEF DEBUG
|
||||
i% = SetSizeCheckMode(scmOnIgnore) '' could use scmOff; def = scmOnFatal
|
||||
WinDrive$ = MID$(GetWindowsDir, 1, 1)
|
||||
IF IsDriveValid(WinDrive$) = 0 THEN
|
||||
i% = DoMsgBox("Windows drive ('"+WinDrive$+"') is not a valid drive.", "DEBUG", MB_TASKMODAL+MB_ICONHAND+MB_OK)
|
||||
GOTO QUIT
|
||||
END IF
|
||||
'$ENDIF ''DEBUG
|
||||
|
||||
CHECK:
|
||||
'' Can not run on versions less than 3.10.
|
||||
IF GetWindowsMajorVersion < 3 THEN
|
||||
ExitCode% = EXITFAILNOTWIN31
|
||||
GOTO QUIT
|
||||
END IF
|
||||
IF GetWindowsMajorVersion = 3 AND GetWindowsMinorVersion < 10 THEN
|
||||
ExitCode% = EXITFAILNOTWIN31
|
||||
GOTO QUIT
|
||||
END IF
|
||||
'' Check that we are not runnig on Chicago, including pre-released
|
||||
'' Chicago versions.
|
||||
IF GetWindowsMajorVersion * 100 + GetWindowsMinorVersion > 350 THEN
|
||||
ExitCode% = EXITSUCCESS
|
||||
WIN32ENABLED% = 1
|
||||
GOTO FREECELL
|
||||
END IF
|
||||
IF GetWindowsMode < 2 THEN
|
||||
IF OnWindowsNT() THEN
|
||||
ExitCode% = EXITFAILNOTINTEL '' Running on Windows NT (on RISC)
|
||||
ELSE
|
||||
ExitCode% = EXITFAILNOTENH '' Standard Mode Windows
|
||||
END IF
|
||||
GOTO QUIT
|
||||
END IF
|
||||
IF OnWindowsNT() THEN
|
||||
ExitCode% = EXITSUCCESS
|
||||
WIN32ENABLED% = 1
|
||||
GOTO FREECELL
|
||||
END IF
|
||||
ExitCode% = EXITSUCCESS
|
||||
|
||||
if IsRunningApp() <> 0 THEN
|
||||
ExitCode% = EXITFAILRUNAPP
|
||||
GOTO QUIT
|
||||
END IF
|
||||
|
||||
'' Get version of Win32s to be installed from version info in INF file
|
||||
szNewVer$ = GetSectionKeyVersion("WindowsSystem", "win32s16")
|
||||
|
||||
'' See if OLE is included.
|
||||
|
||||
OLEINCLUDED% = DoesFileExist( GetSymbolValue("STF_SRCDIR") + "OLE2THK.DL_", femExists )
|
||||
|
||||
IF OLEINCLUDED% = 1 THEN
|
||||
'' See whether one of the OLE 16 bit components is loaded.
|
||||
IF GetModulehandle("compobj") <> 0 THEN
|
||||
OLE16RUNAPP% = 1
|
||||
GOTO GetOleVersion
|
||||
END IF
|
||||
IF GetModuleHandle("ole2") <> 0 THEN
|
||||
OLE16RUNAPP% = 1
|
||||
GOTO GetOleVersion
|
||||
END IF
|
||||
IF GetModuleHandle("ole2prox") <> 0 THEN
|
||||
OLE16RUNAPP% = 1
|
||||
GOTO GetOleVersion
|
||||
END IF
|
||||
IF GetModuleHandle("ole2conv") <> 0 THEN
|
||||
OLE16RUNAPP% = 1
|
||||
GOTO GetOleVersion
|
||||
END IF
|
||||
IF GetModuleHandle("storage") <> 0 THEN
|
||||
OLE16RUNAPP% = 1
|
||||
GOTO GetOleVersion
|
||||
END IF
|
||||
IF GetModuleHandle("ole2nls") <> 0 THEN
|
||||
OLE16RUNAPP% = 1
|
||||
GOTO GetOleVersion
|
||||
END IF
|
||||
IF GetModuleHandle("ole2disp") <> 0 THEN
|
||||
OLE16RUNAPP% = 1
|
||||
GOTO GetOleVersion
|
||||
END IF
|
||||
IF GetModuleHandle("typelib") <> 0 THEN
|
||||
OLE16RUNAPP% = 1
|
||||
GOTO GetOleVersion
|
||||
END IF
|
||||
|
||||
GetOleVersion:
|
||||
szOleNewVer$ = GetSectionKeyVersion("OleWindowsSystemWin32s", "ole2thk")
|
||||
|
||||
'' Get version of currently installed OLE32 from version info of
|
||||
'' ole2thk file
|
||||
szOleOldVer$ = GetVersionOfFile( DESTSYS$ + "WIN32S\OLE2THK.DLL" )
|
||||
|
||||
szOle16OldVer$ = GetVersionOfFile( DESTSYS$ + "COMPOBJ.DLL" )
|
||||
szOle16NewVer$ = GetSectionKeyVersion("OleWindowsSystem", "compobj")
|
||||
IF (szOle16NewVer$ > szOle16OldVer$) THEN
|
||||
OLE2_16% = 1
|
||||
END IF
|
||||
|
||||
szOle16OldVer$ = GetVersionOfFile( DESTSYS$ + "OLE2.DLL" )
|
||||
szOle16NewVer$ = GetSectionKeyVersion("OleWindowsSystem", "ole2")
|
||||
IF (szOle16NewVer$ > szOle16OldVer$) THEN
|
||||
OLE2_16% = 1
|
||||
END IF
|
||||
|
||||
szOle16OldVer$ = GetVersionOfFile( DESTSYS$ + "OLE2PROX.DLL" )
|
||||
szOle16NewVer$ = GetSectionKeyVersion("OleWindowsSystem", "ole2prox")
|
||||
IF (szOle16NewVer$ > szOle16OldVer$) THEN
|
||||
OLE2_16% = 1
|
||||
END IF
|
||||
|
||||
szOle16OldVer$ = GetVersionOfFile( DESTSYS$ + "STORAGE.DLL" )
|
||||
szOle16NewVer$ = GetSectionKeyVersion("OleWindowsSystem", "storage")
|
||||
IF (szOle16NewVer$ > szOle16OldVer$) THEN
|
||||
OLE2_16% = 1
|
||||
END IF
|
||||
|
||||
szOle16OldVer$ = GetVersionOfFile( DESTSYS$ + "OLE2CONV.DLL" )
|
||||
szOle16NewVer$ = GetSectionKeyVersion("OleWindowsSystem", "ole2conv")
|
||||
IF (szOle16NewVer$ > szOle16OldVer$) THEN
|
||||
OLE2_16% = 1
|
||||
END IF
|
||||
|
||||
szOle16OldVer$ = GetVersionOfFile( DESTSYS$ + "OLE2NLS.DLL" )
|
||||
szOle16NewVer$ = GetSectionKeyVersion("OleWindowsSystem", "ole2nls")
|
||||
IF (szOle16NewVer$ > szOle16OldVer$) THEN
|
||||
OLE2AUTO_16% = 1
|
||||
END IF
|
||||
|
||||
szOle16OldVer$ = GetVersionOfFile( DESTSYS$ + "OLE2DISP.DLL" )
|
||||
szOle16NewVer$ = GetSectionKeyVersion("OleWindowsSystem", "ole2disp")
|
||||
IF (szOle16NewVer$ > szOle16OldVer$) THEN
|
||||
OLE2AUTO_16% = 1
|
||||
END IF
|
||||
|
||||
szOle16OldVer$ = GetVersionOfFile( DESTSYS$ + "TYPELIB.DLL" )
|
||||
szOle16NewVer$ = GetSectionKeyVersion("OleWindowsSystem", "typelib")
|
||||
IF (szOle16NewVer$ > szOle16OldVer$) THEN
|
||||
OLE2AUTO_16% = 1
|
||||
END IF
|
||||
|
||||
END IF
|
||||
|
||||
OLE2_32% = 1
|
||||
|
||||
'' Check if Win32s is partially installed
|
||||
sz$ = GetIniKeyString (DESTSYS$ + "WIN32S.INI", "Win32s", "Setup")
|
||||
'' If WIN32S.INI specifies Win32s Setup=0, then force complete Win32s file overwrite
|
||||
IF sz$ = "0" THEN
|
||||
GOTO WELCOME
|
||||
END IF
|
||||
'' If WIN32S.INI is missing, try and reinstall Win32s files/recreate WIN32S.INI
|
||||
IF sz$ <> "1" THEN
|
||||
GOTO WELCOME
|
||||
END IF
|
||||
|
||||
'' If Win32s is already installed, get running version number
|
||||
i% = DoesFileExist( DESTSYS$ + "W32SYS.DLL", femExists )
|
||||
IF i% = 1 THEN
|
||||
i% = IsWin32sLoaded( szOldVer$ )
|
||||
ENDIF
|
||||
|
||||
IF i% = 0 THEN
|
||||
GOTO WELCOME
|
||||
END IF
|
||||
|
||||
IF szNewVer$ > szOldVer$ THEN
|
||||
GOTO WELCOME
|
||||
END IF
|
||||
|
||||
OLE2_32% = 0
|
||||
|
||||
IF szNewVer$ = szOldVer$ AND OLEINCLUDED% = 1 THEN
|
||||
'' Compare OLE32 version and versions of each of OLE16 libraries.
|
||||
sz$ = GetIniKeyString (DESTSYS$ + "WIN32S.INI", "OLE", "Setup")
|
||||
'' If WIN32S.INI specifies OLE2 Setup=0, then force OLE2 file overwrite
|
||||
IF ((sz$ <> "1") OR (szOleNewVer$ > szOleOldVer$)) THEN
|
||||
OLEONLY% = 1
|
||||
OLE2_32% = 1
|
||||
GOTO WELCOME
|
||||
END IF
|
||||
|
||||
IF OLE2_16% OR OLE2AUTO_16 THEN
|
||||
OLEONLY% = 1
|
||||
GOTO WELCOME
|
||||
END IF
|
||||
|
||||
END IF
|
||||
WIN32ENABLED% = 1
|
||||
GOTO FREECELL
|
||||
|
||||
WELCOME:
|
||||
i% = SetCuiFlags(OLEONLY%, OLE16RUNAPP%)
|
||||
sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", HELPWELCOME, HELPPROC$)
|
||||
IF sz$ = "CONTINUE" THEN
|
||||
UIPop 1
|
||||
ELSE
|
||||
GOSUB ASKQUIT
|
||||
GOTO WELCOME
|
||||
END IF
|
||||
|
||||
|
||||
GETWIN32SPATH:
|
||||
IF PagingEnabled() = 0 THEN
|
||||
i% = DoMsgBox("Use the Control Panel 386 Enhanced icon and configure Windows using the Virtual Memory option.", "Win32s requires Virtual Memory", MB_TASKMODAL+MB_ICONHAND+MB_OK)
|
||||
ExitCode% = EXITFAILURE '' Enhanced mode but not paging
|
||||
GOTO QUIT
|
||||
END IF
|
||||
|
||||
IF ShareEnabled() = 0 THEN
|
||||
i% = DoMsgBox( "File-sharing must be enabled. Run SHARE.EXE before starting Windows or add SHARE.EXE to your AUTOEXEC.BAT file.", "Win32s Setup: SHARE.EXE is not loaded", MB_TASKMODAL+MB_ICONEXCLAMATION+MB_OK)
|
||||
END IF
|
||||
|
||||
SetSymbolValue "EditTextIn", DESTSYS$
|
||||
SetSymbolValue "EditFocus", "END"
|
||||
|
||||
GETPATHL1:
|
||||
sz$ = UIStartDlg(CUIDLL$, VERPATH, "FDispDlgProc", HELPWELCOME, HELPPROC$)
|
||||
|
||||
IF sz$ = "CONTINUE" THEN
|
||||
IF IsDirWritable(DESTSYS$) = 0 THEN
|
||||
GOSUB BADPATH
|
||||
GOTO GETPATHL1
|
||||
END IF
|
||||
UIPop 1
|
||||
ELSEIF sz$ = "REACTIVATE" THEN
|
||||
GOTO GETPATHL1
|
||||
ELSEIF sz$ = "BACK" THEN
|
||||
UIPop 1
|
||||
GOTO WELCOME
|
||||
ELSE
|
||||
GOSUB ASKQUIT
|
||||
GOTO GETPATHL1
|
||||
END IF
|
||||
|
||||
COPYFILES:
|
||||
IF OLEONLY% = 0 THEN
|
||||
CreateIniKeyValue DESTSYS$ + "WIN32S.INI", "Win32s", "Setup", "0", cmoOverwrite
|
||||
END IF
|
||||
IF OLE2_32% = 1 THEN
|
||||
CreateIniKeyValue DESTSYS$ + "WIN32S.INI", "OLE", "Setup", "0", cmoOverwrite
|
||||
END IF
|
||||
|
||||
'' Indicate Win32s install failure until all files known to be copied.
|
||||
ExitCode% = EXITFAILURE
|
||||
ERR = 0
|
||||
CreateDir DEST32S$, cmoNone
|
||||
Install OLEONLY%, OLE2_32%, OLE2_16%, OLE2AUTO_16%, OLE16RUNAPP%
|
||||
UpdateSystemIni
|
||||
'' Terminate if unhandled fatal error
|
||||
IF ERR <> 0 THEN
|
||||
GOTO QUIT
|
||||
END IF
|
||||
|
||||
IF OLEONLY% = 0 THEN
|
||||
CreateIniKeyValue DESTSYS$ + "WIN32S.INI", "Win32s", "Setup", "1", cmoOverwrite
|
||||
CreateIniKeyValue DESTSYS$ + "WIN32S.INI", "Win32s", "Version", szNewVer$, cmoOverwrite
|
||||
CreateIniKeyValue DESTSYS$ + "WIN32S.INI", "Nls", "AnsiCP", "1252", cmoOverwrite
|
||||
END IF
|
||||
IF OLE2_32% = 1 THEN
|
||||
CreateIniKeyValue DESTSYS$ + "WIN32S.INI", "OLE", "Setup", "1", cmoOverwrite
|
||||
CreateIniKeyValue DESTSYS$ + "WIN32S.INI", "OLE", "Version", szOleNewVer, cmoOverwrite
|
||||
END IF
|
||||
|
||||
i% = DoMsgBox("Win32s files successfully installed.", "Microsoft Win32s Setup", MB_OK+MB_TASKMODAL)
|
||||
'' Indicate Win32s correctly copied and installed.
|
||||
ExitCode% = EXITSUCCESS
|
||||
|
||||
FREECELL:
|
||||
IF OLEONLY% = 1 THEN
|
||||
GOTO QUIT
|
||||
ENDIF
|
||||
IF WIN32ENABLED% = 1 THEN
|
||||
sz$ = UIStartDlg(CUIDLL$, FREECELLINSTNOWIN32S, "FInfoDlgProc",0, "")
|
||||
ELSE
|
||||
sz$ = UIStartDlg(CUIDLL$, FREECELLINST, "FInfoDlgProc",0, "")
|
||||
END IF
|
||||
UIPop 1
|
||||
IF sz$ <> "CONTINUE" THEN
|
||||
GOTO QUIT
|
||||
END IF
|
||||
|
||||
GETFREEPATH:
|
||||
DESTFREE$ = MID$(DESTSYS$,1,3) + "WIN32APP\FREECELL\"
|
||||
SetSymbolValue "EditTextIn", DESTFREE$
|
||||
SetSymbolValue "EditFocus", "END"
|
||||
|
||||
GETFREEPATHL1:
|
||||
sz$ = UIStartDlg(CUIDLL$, FREECELLPATH, "FEditDlgProc", HELPFREECELL, HELPPROC$)
|
||||
|
||||
IF sz$ = "CONTINUE" THEN
|
||||
DESTFREE$ = GetSymbolValue("EditTextOut")
|
||||
|
||||
IF MID$(DESTFREE$, LEN(DESTFREE$), 1) <> "\" THEN
|
||||
DESTFREE$ = DESTFREE$ + "\"
|
||||
END IF
|
||||
''Validate new path.
|
||||
IF IsDirWritable(DESTFREE$) = 0 THEN
|
||||
GOSUB BADPATH
|
||||
GOTO GETFREEPATHL1
|
||||
END IF
|
||||
UIPop 1
|
||||
|
||||
GOTO COPYFREECELL
|
||||
ELSEIF sz$ = "REACTIVATE" THEN
|
||||
GOTO GETFREEPATHL1
|
||||
ELSEIF sz$ = "EXIT" THEN
|
||||
UIPop 1
|
||||
GOTO QUIT
|
||||
END IF
|
||||
|
||||
COPYFREECELL:
|
||||
ClearCopyList
|
||||
CreateDir DESTFREE$, cmoNone
|
||||
|
||||
SrcDir$ = GetSymbolValue("STF_SRCDIR")
|
||||
|
||||
ERR = 0
|
||||
AddSectionFilesToCopyList "Win32appFreecell", SrcDir$, DESTFREE$
|
||||
CopyFilesInCopyList
|
||||
'' If error copying FreeCell, not a fatal error. Win32s is already installed.
|
||||
IF ERR <> 0 THEN
|
||||
ERR = 0
|
||||
GOTO QUIT
|
||||
END IF
|
||||
ERR = 0
|
||||
|
||||
IF DoesFileExist( DESTSYS$ + "WIN32S.INI", femExists ) THEN
|
||||
CreateIniKeyValue DESTSYS$ + "WIN32S.INI", "Freecell", "Setup", "1", cmoOverwrite
|
||||
CreateIniKeyValue DESTSYS$ + "WIN32S.INI", "Freecell", "Version", szNewVer$, cmoOverwrite
|
||||
END IF
|
||||
|
||||
ERR = 0
|
||||
CreateProgmanGroup "Win32 Applications", "", cmoNone
|
||||
ShowProgmanGroup "Win32 Applications", 1, cmoNone
|
||||
CreateProgmanItem "Win32 Applications", "Freecell", DESTFREE$ + "FREECELL.EXE", "", cmoOverwrite
|
||||
'' Only put up success dialog if icon added to group
|
||||
IF ERR = 0 THEN
|
||||
i% = DoMsgBox("Freecell was successfully installed.", "Freecell Setup", MB_OK+MB_TASKMODAL)
|
||||
END IF
|
||||
ERR = 0
|
||||
|
||||
QUIT:
|
||||
'' Install error handler for final message box routines
|
||||
ON ERROR GOTO ERRQUIT
|
||||
IF ERR = 0 THEN
|
||||
dlg% = ExitCode%
|
||||
ELSEIF ERR = STFQUIT THEN
|
||||
IF (OLE_PROTECT% = 1) THEN
|
||||
'' Free all previously loaded libraries
|
||||
FreeLibrary GetModuleHandle("compobj")
|
||||
FreeLibrary GetModuleHandle("ole2")
|
||||
FreeLibrary GetModuleHandle("ole2prox")
|
||||
FreeLibrary GetModuleHandle("ole2conv")
|
||||
FreeLibrary GetModuleHandle("storage")
|
||||
FreeLibrary GetModuleHandle("ole2nls")
|
||||
FreeLibrary GetModuleHandle("ole2disp")
|
||||
FreeLibrary GetModuleHandle("typelib")
|
||||
END IF
|
||||
dlg% = EXITQUIT
|
||||
ExitCode% = EXITQUIT
|
||||
ELSE
|
||||
dlg% = EXITFAILURE
|
||||
ExitCode% = EXITQUIT
|
||||
END IF
|
||||
|
||||
QUITL1:
|
||||
IF WIN32ENABLED% = 1 THEN
|
||||
UIPop 1
|
||||
END
|
||||
END IF
|
||||
|
||||
sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
|
||||
IF sz$ = "REACTIVATE" THEN
|
||||
GOTO QUITL1
|
||||
END IF
|
||||
UIPop 1
|
||||
|
||||
IF ExitCode% = EXITSUCCESS THEN
|
||||
IF RebootSystem(OLEONLY%) = 0 THEN
|
||||
CreateIniKeyValue DESTSYS$ + "WIN32S.INI", "Win32s", "Setup", "0", cmoOverwrite
|
||||
IF OLE2_32% = 1 THEN
|
||||
CreateIniKeyValue DESTSYS$ + "WIN32S.INI", "OLE", "Setup", "0", cmoOverwrite
|
||||
END IF
|
||||
i% = DoMsgBox("Win32s is not properly configured and Win32s Setup must be run again.", "Unable to Restart Windows", MB_ICONEXCLAMATION+MB_OK+MB_TASKMODAL)
|
||||
END IF
|
||||
ENDIF
|
||||
|
||||
END
|
||||
|
||||
'' Fatal error handler for error message routine
|
||||
ERRQUIT:
|
||||
i% = DoMsgBox("Setup sources were corrupted!", "Setup Message", MB_OK+MB_TASKMODAL+MB_ICONHAND)
|
||||
END
|
||||
|
||||
'' Bypass run-time errors. Let final dialog box display fatal error message.
|
||||
ERRNORMAL:
|
||||
'' Check if user cancelled setup
|
||||
IF ERR = STFQUIT THEN
|
||||
GOTO QUIT
|
||||
END IF
|
||||
RESUME NEXT
|
||||
|
||||
|
||||
BADPATH:
|
||||
sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "")
|
||||
IF sz$ = "REACTIVATE" THEN
|
||||
GOTO BADPATH
|
||||
END IF
|
||||
UIPop 1
|
||||
RETURN
|
||||
|
||||
ASKQUIT:
|
||||
sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
|
||||
|
||||
IF sz$ = "EXIT" THEN
|
||||
UIPopAll
|
||||
ERROR STFQUIT
|
||||
ELSEIF sz$ = "REACTIVATE" THEN
|
||||
GOTO ASKQUIT
|
||||
ELSE
|
||||
UIPop 1
|
||||
END IF
|
||||
RETURN
|
||||
|
||||
|
||||
|
||||
'**
|
||||
'** Purpose:
|
||||
'** Builds the copy list and performs all installation operations.
|
||||
'** Arguments:
|
||||
'** none.
|
||||
'** Returns:
|
||||
'** none.
|
||||
'*************************************************************************
|
||||
SUB Install(OLEONLY%, OLE2_32%, OLE2_16%, OLE2AUTO_16%, OLE16RUNAPP%) STATIC
|
||||
|
||||
SrcDir$ = GetSymbolValue("STF_SRCDIR")
|
||||
|
||||
'' Use file layout sections that specify OLDER file version/time check
|
||||
IF OLEONLY% = 0 THEN
|
||||
AddSectionFilesToCopyList "WindowsSystem", SrcDir$, DESTSYS$
|
||||
AddSectionFilesToCopyList "WindowsSystemWin32s", SrcDir$, DESTSYS$ + "WIN32S\"
|
||||
'' Add obsolete files to be removed
|
||||
AddSectionFilesToCopyList "Win32sSystemObsoleteFiles", SrcDir$, DESTSYS$ + "WIN32S\"
|
||||
END IF
|
||||
|
||||
OLE_PROTECT% = 0
|
||||
OLEINCLUDED% = DoesFileExist( GetSymbolValue("STF_SRCDIR") + "OLE2THK.DL_", femExists )
|
||||
if OLEINCLUDED% = 1 THEN
|
||||
IF (OLE2_16% = 1) OR (OLE2AUTO_16% = 1) THEN
|
||||
IF OLE16RUNAPP% = 1 THEN
|
||||
'' Force all OLE2 DLLS to be copied during reboot.
|
||||
i% = SetErrorMode(-32768)
|
||||
i% = LoadLibrary(DESTSYS$ + "compobj.dll")
|
||||
i% = LoadLibrary(DESTSYS$ + "ole2.dll")
|
||||
i% = LoadLibrary(DESTSYS$ + "ole2prox.dll")
|
||||
i% = LoadLibrary(DESTSYS$ + "ole2conv.dll")
|
||||
i% = LoadLibrary(DESTSYS$ + "storage.dll")
|
||||
i% = LoadLibrary(DESTSYS$ + "ole2nls.dll")
|
||||
i% = LoadLibrary(DESTSYS$ + "ole2disp.dll")
|
||||
i% = LoadLibrary(DESTSYS$ + "typelib.dll")
|
||||
OLE_PROTECT% = 1
|
||||
END IF
|
||||
AddSectionFilesToCopyList "OleWindowsSystem", SrcDir$, DESTSYS$
|
||||
END IF
|
||||
IF OLE2_32% = 1 THEN
|
||||
AddSectionFilesToCopyList "OleWindowsSystemWin32s", SrcDir$, DESTSYS$ + "WIN32S\"
|
||||
END IF
|
||||
IF (OLE2_16% = 1) OR (OLE2_32% = 1) OR (OLE2AUTO_16% = 1) THEN
|
||||
AddSectionFilesToCopyList "Ole2RegWindowsSystem", SrcDir$, DESTSYS$
|
||||
END IF
|
||||
IF (OLE2AUTO_16% = 1) THEN
|
||||
AddSectionFilesToCopyList "StdoleWindowsSystem", SrcDir$, DESTSYS$
|
||||
END IF
|
||||
END IF
|
||||
|
||||
SetRestartDir GetWindowsDir()
|
||||
|
||||
CopyFilesInCopyList
|
||||
|
||||
IF (OLE_PROTECT% = 1) THEN
|
||||
'' Free all previously loaded libraries
|
||||
FreeLibrary GetModuleHandle("compobj")
|
||||
FreeLibrary GetModuleHandle("ole2")
|
||||
FreeLibrary GetModuleHandle("ole2prox")
|
||||
FreeLibrary GetModuleHandle("ole2conv")
|
||||
FreeLibrary GetModuleHandle("storage")
|
||||
FreeLibrary GetModuleHandle("ole2nls")
|
||||
FreeLibrary GetModuleHandle("ole2disp")
|
||||
FreeLibrary GetModuleHandle("typelib")
|
||||
OLE_PROTECT% = 0
|
||||
END IF
|
||||
IF OLEINCLUDED% AND (OLE2_16% OR OLE2_32% OR OLE2AUTO_16%) THEN
|
||||
RUN "regedit /s " + DESTSYS$ + "ole2.reg"
|
||||
END IF
|
||||
|
||||
END SUB
|
||||
|
||||
SUB UpdateSystemIni STATIC
|
||||
|
||||
VxDPath$ = DEST32S$ + "W32S.386"
|
||||
SystemIniPath$ = GetWindowsDir()
|
||||
|
||||
t% = MakeSystemIni(SystemIniPath$, VxdPath$)
|
||||
|
||||
END SUB
|
||||
|
||||
FUNCTION RebootSystem(OLEONLY%) STATIC AS INTEGER
|
||||
|
||||
' Check if any files were locked during install. If the RestartList
|
||||
' is not empty, ExitExecRestart() will restart Windows, cleanup setup
|
||||
' files, and copy over locked files before Windows restarts.
|
||||
i% = RestartListEmpty()
|
||||
IF i% = 0 THEN
|
||||
' ExitExecRestart() only returns if applications refuse to be shutdown.
|
||||
' Win32s is installed but will not operate until Windows is restarted
|
||||
' and the Win32s VxD is loaded.
|
||||
i% = ExitExecRestart()
|
||||
RebootSystem = 0
|
||||
ELSE
|
||||
' If the RestartList list is empty, it is necessary to restart windows
|
||||
' directly. The MSSETUP program creates _MSRSTRT.EXE and _MSSETUP.BAT
|
||||
' in the restart directory. This program should be exec'd to handle
|
||||
' proper MSSETUP cleanup (temp files) and restart Windows.
|
||||
IF (OLEONLY% = 1) THEN
|
||||
RebootSystem = 1
|
||||
ELSE
|
||||
i% = ExitWindowsExec( GetWindowsDir() + "_MSRSTRT.EXE", "_MSSETUP.BAT" )
|
||||
RebootSystem = 0
|
||||
END IF
|
||||
ENDIF
|
||||
|
||||
END FUNCTION
|
||||
|
||||
|
||||
'**
|
||||
'** Purpose:
|
||||
'** Appends a file name to the end of a directory path,
|
||||
'** inserting a backslash character as needed.
|
||||
'** Arguments:
|
||||
'** szDir$ - full directory path (with optional ending "\")
|
||||
'** szFile$ - filename to append to directory
|
||||
'** Returns:
|
||||
'** Resulting fully qualified path name.
|
||||
'*************************************************************************
|
||||
FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
|
||||
IF szDir$ = "" THEN
|
||||
MakePath = szFile$
|
||||
ELSEIF szFile$ = "" THEN
|
||||
MakePath = szDir$
|
||||
ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
|
||||
MakePath = szDir$ + szFile$
|
||||
ELSE
|
||||
MakePath = szDir$ + "\" + szFile$
|
||||
END IF
|
||||
END FUNCTION
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1 @@
|
||||
DISK1
|
||||
@@ -0,0 +1 @@
|
||||
DISK10
|
||||
@@ -0,0 +1 @@
|
||||
DISK11
|
||||
@@ -0,0 +1 @@
|
||||
DISK12
|
||||
@@ -0,0 +1 @@
|
||||
DISK13
|
||||
@@ -0,0 +1 @@
|
||||
DISK14
|
||||
@@ -0,0 +1 @@
|
||||
DISK15
|
||||
@@ -0,0 +1 @@
|
||||
DISK16
|
||||
@@ -0,0 +1 @@
|
||||
DISK17
|
||||
@@ -0,0 +1 @@
|
||||
DISK18
|
||||
@@ -0,0 +1 @@
|
||||
DISK19
|
||||
@@ -0,0 +1 @@
|
||||
DISK2
|
||||
@@ -0,0 +1 @@
|
||||
DISK20
|
||||
@@ -0,0 +1 @@
|
||||
DISK21
|
||||
@@ -0,0 +1 @@
|
||||
DISK22
|
||||
@@ -0,0 +1 @@
|
||||
DISK23
|
||||
@@ -0,0 +1 @@
|
||||
DISK24
|
||||
@@ -0,0 +1 @@
|
||||
DISK25
|
||||
@@ -0,0 +1 @@
|
||||
DISK26
|
||||
@@ -0,0 +1 @@
|
||||
DISK27
|
||||
@@ -0,0 +1 @@
|
||||
DISK28
|
||||
@@ -0,0 +1 @@
|
||||
DISK29
|
||||
@@ -0,0 +1 @@
|
||||
DISK3
|
||||
@@ -0,0 +1 @@
|
||||
DISK4
|
||||
@@ -0,0 +1 @@
|
||||
DISK5
|
||||
@@ -0,0 +1 @@
|
||||
DISK6
|
||||
@@ -0,0 +1 @@
|
||||
DISK7
|
||||
@@ -0,0 +1 @@
|
||||
DISK8
|
||||
@@ -0,0 +1 @@
|
||||
DISK9
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user