home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Media Share 13
/
mediashare_13.zip
/
mediashare_13
/
ZIPPED
/
PROGS
/
DOSHLP11.ZIP
/
DOSHELP.MS_
/
DOSHELP.bin
Wrap
Text File
|
1992-12-16
|
15KB
|
510 lines
CONST cbSymValMax = 512
CONST MB_OK = 0
CONST MB_ICONHAND = 16
CONST MB_TASKMODAL = 8192
CONST grcUserQuit = 48
CONST STFERR = 1024
CONST STFQUIT = 1025
CONST scmOff = 0
CONST scmOnIgnore = 1
CONST scmOnFatal = 2
CONST grcOkay = 0
CONST grcNotOkay = 1
CONST ynrcNo = 0
CONST ynrcYes = 1
CONST ynrcErr1 = 2
CONST ynrcErr2 = 3
CONST ynrcErr3 = 4
CONST ynrcErr4 = 5
CONST ynrcErr5 = 6
CONST ynrcErr6 = 7
CONST ynrcErr7 = 8
CONST ynrcErr8 = 9
CONST ynrcErr9 = 10
CONST femExists = 0
CONST femRead = 1
CONST femWrite = 2
CONST femReadWrite = 3
CONST cmoVital = 1
CONST cmoCopy = 2
CONST cmoUndo = 4
CONST cmoRoot = 8
CONST cmoDecompress = 16
CONST cmoTimeStamp = 32
CONST cmoReadOnly = 64
CONST cmoBackup = 128
CONST cmoForce = 256
CONST cmoRemove = 512
CONST cmoOverwrite = 1024
CONST cmoAppend = 2048
CONST cmoPrepend = 4096
CONST cmoNone = 0
CONST cmoAll = 65535
CONST SM_CXSCREEN = 0
CONST SM_CYSCREEN = 1
CONST WF_80x87 = 1024
CONST WF_CPU186 = 128
CONST WF_CPU286 = 2
CONST WF_CPU386 = 4
CONST WF_CPU486 = 8
CONST WF_STANDARD = 16
CONST WF_ENHANCED = 32
DECLARE FUNCTION FSetBitmap LIB "msshlstf.dll" (szDll$, Bitmap%) AS INTEGER
DECLARE SUB SetBitmap(szDll$, Bitmap%)
DECLARE SUB SetWindowText LIB "User" (hwnd%, lpString$)
DECLARE FUNCTION CbGetSymbolValue LIB "mscomstf.dll" (szSymbol$, szValue$, Length%) AS INTEGER
DECLARE FUNCTION GetSymbolValue (szSymbol$) AS STRING
DECLARE SUB SetTitle (sz$)
DECLARE SUB ReadInfFile (szFile$)
DECLARE FUNCTION FOpenInf LIB "mscomstf.dll" (szFile$, fCheck%, fCheckSyms%) AS INTEGER
DECLARE FUNCTION HwndFrame LIB "msshlstf.dll" AS INTEGER
DECLARE FUNCTION DoMsgBox LIB "mscomstf.dll" (lpText$,lpCaption$,wType%) As INTEGER
DECLARE FUNCTION UIStartDlg(szDll$, Dlg%, szDlgProc$, HelpDlg%, szHelpProc$) AS STRING
DECLARE FUNCTION FDoDialog LIB "msuilstf.dll" (hwnd%, szDll$, Dlg%, szDlgProc$, HelpDlg%, szHelpProc$) AS INTEGER
DECLARE SUB UIPop (n%)
DECLARE FUNCTION FKillNDialogs LIB "msuilstf.dll" (n%) AS INTEGER
DECLARE FUNCTION FSetSymbolValue LIB "msshlstf.dll" (szSymbol$, szValue$) AS INTEGER
DECLARE SUB SetSymbolValue (szSymbol$, szValue$)
DECLARE FUNCTION FIsDirWritable LIB "msinsstf.dll" (szDir$) AS INTEGER
DECLARE FUNCTION IsDirWritable (szDir$) AS INTEGER
DECLARE SUB UIPopAll
DECLARE FUNCTION FCreateDir LIB "msinsstf.dll" (szDir$, cmo%) AS INTEGER
DECLARE SUB CreateDir (szDir$, cmo%)
DECLARE FUNCTION FOpenLogFile LIB "mscomstf.dll" (szFile$, fAppend%) AS INTEGER
DECLARE SUB OpenLogFile (szFile$, fAppend%)
DECLARE FUNCTION FCloseLogFile LIB "mscomstf.dll" AS INTEGER
DECLARE FUNCTION FWriteToLogFile LIB "mscomstf.dll" (sz$, fRequire%) AS INTEGER
DECLARE SUB CloseLogFile
DECLARE SUB WriteToLogFile (szStr$)
DECLARE SUB AddSectionFilesToCopyList (szSect$, szSrc$, szDest$)
DECLARE SUB CreateIniKeyValue (szFile$, szSect$, szKey$, szValue$, cmo%)
DECLARE SUB CopyFilesInCopyList
DECLARE FUNCTION FAddSectionFilesToCopyList LIB "mscomstf.dll" (szSect$, szSrc$, szDest$) AS INTEGER
DECLARE FUNCTION FCreateIniKeyValue LIB "msinsstf.dll" (szFile$, szSect$, szKey$, szValue$, cmo%) AS INTEGER
DECLARE FUNCTION GrcCopyFilesInCopyList LIB "msinsstf.dll" (hInstance%) AS INTEGER
DECLARE FUNCTION GetWindowsDirectory LIB "kernel" (szBuf$, cbBuf%) AS INTEGER
DECLARE FUNCTION GetWindowsDir AS STRING
DECLARE FUNCTION GetWindowsSysDir AS STRING
DECLARE FUNCTION GetSystemDirectory LIB "kernel" (szBuf$, cbBuf%) AS INTEGER
DECLARE FUNCTION HinstFrame LIB "msshlstf.dll" AS INTEGER
DECLARE FUNCTION CbGetIniKeyString LIB "msdetstf.dll" (szFile$, szSect$, szKey$, szBuf$, cbBuf%) AS INTEGER
DECLARE FUNCTION GetIniKeyString (szFile$, szSect$, szKey$) AS STRING
DECLARE FUNCTION InitFrame (szCmdLine$) AS INTEGER
DECLARE FUNCTION InitSetup (szCmdLine$) AS INTEGER
DECLARE FUNCTION InitializeFrame LIB "msshlstf.dll" (szCmdLine$) AS INTEGER
DECLARE FUNCTION FInitializeInstall LIB "msinsstf.dll" (hinst%, hwndFrame%) AS INTEGER
DECLARE SUB InitInstall
CONST WELCOME = 100
CONST ASKQUIT = 200
CONST DESTPATH = 300
CONST EXITFAILURE = 400
CONST EXITQUIT = 600
CONST EXITSUCCESS = 700
CONST OPTIONS = 800
CONST APPHELP = 900
CONST BADPATH = 6400
CONST LOGO = 1
GLOBAL DEST$
DECLARE SUB Install
DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
GLOBAL hSetup AS INTEGER
GLOBAL fFrameInit AS INTEGER
GLOBAL fInstallInit AS INTEGER
TRAP CleanupTrap From "MSSHLSTF.DLL"
End Trap
hSetup = InitSetup(COMMAND$)
ON ERROR GOTO QUIT
INIT:
CUIDLL$ = "mscuistf.dll"
HELPPROC$ = "FHelpDlgProc"
SetBitmap CUIDLL$, LOGO
SetTitle "Help in a Dos Box Setup"
szInf$ = GetSymbolValue("STF_SRCINFPATH")
IF szInf$ = "" THEN
szInf$ = GetSymbolValue("STF_CWDDIR") + "DOSHELP.INF"
END IF
ReadInfFile szInf$
DEST$ = "C:\DOSHELP"
WELCOME:
sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", APPHELP, HELPPROC$)
IF sz$ = "CONTINUE" THEN
UIPop 1
ELSE
GOSUB ASKQUIT
GOTO WELCOME
END IF
GETPATH:
SetSymbolValue "EditTextIn", DEST$
SetSymbolValue "EditFocus", "END"
GETPATHL1:
sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", APPHELP, HELPPROC$)
DEST$ = GetSymbolValue("EditTextOut")
IF sz$ = "CONTINUE" THEN
IF IsDirWritable(DEST$) = 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 GETPATH
END IF
Install
ON ERROR GOTO JMPRDME
RUN "Write.exe " + MakePath(DEST$, "README.WRI"), NOWAIT
GOTO QUIT
JMPRDME:
ERR=0
QUIT:
ON ERROR GOTO ERRQUIT
IF ERR = 0 THEN
dlg% = EXITSUCCESS
ELSEIF ERR = STFQUIT THEN
dlg% = EXITQUIT
ELSE
dlg% = EXITFAILURE
END IF
QUITL1:
sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
IF sz$ = "REACTIVATE" THEN
GOTO QUITL1
END IF
UIPop 1
END
ERRQUIT:
i% = DoMsgBox("Setup sources were corrupted!", "Setup Message", MB_OK+MB_TASKMODAL+MB_ICONHAND)
END
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
SUB Install STATIC
SrcDir$ = GetSymbolValue("STF_SRCDIR")
CreateDir DEST$, cmoNone
OpenLogFile MakePath(DEST$, "SETUPLOG.TXT"), 0
WriteToLogFile ""
WriteToLogFile "Help in a Dos Box Set Up Log"
WriteToLogFile ""
WriteToLogFile ""
WriteToLogFile " User chose as destination directory: '" + DEST$ + "'"
WriteToLogFile ""
AddSectionFilesToCopyList "Files", SrcDir$, DEST$
CopyFilesInCopyList
WriteToLogFile ""
WriteToLogFile ""
WriteToLogFile "This DOSHELP.INI setting is to set the initial setting of Help in a Dos Box to On"
CreateIniKeyValue MakePath(GetWindowsDir, "DOSHELP.INI"), "Settings", "Switch", "On", cmoOverwrite
WriteToLogFile ""
WriteToLogFile ""
WriteToLogFile "The next two DOSHELP.INI settings are to enable Help in a Dos Box to find its two help files."
WriteToLogFile " Default Help File is the file used when no Help Link specified"
CreateIniKeyValue MakePath(GetWindowsDir, "DOSHELP.INI"), "Settings", "Default Help File", "GLOSSARY.HLP", cmoOverwrite
WriteToLogFile ""
WriteToLogFile " Online Help is Help in a Dos Box's own help file (accessed in Control Panel)"
CreateIniKeyValue MakePath(GetWindowsDir, "DOSHELP.INI"), "Settings", "Online Help", MakePath(DEST$, "DOSHELP.HLP"), cmoOverwrite
WriteToLogFile ""
WriteToLogFile ""
WriteToLogFile "The last DOSHELP.INI setting just gets the ball rolling on the Help Links with the obvious one."
CreateIniKeyValue MakePath(GetWindowsDir, "DOSHELP.INI"), "Help Files", "MS-DOS Prompt", "GLOSSARY.HLP", cmoAppend
WriteToLogFile " (This is somewhat redundant since if this links MS-DOS Prompt with the default help file)"
WriteToLogFile ""
WriteToLogFile ""
WriteToLogFile "This CONTROL.INI setting enables Help in a Dos Box to be loaded as a Control Panel Applet"
CreateIniKeyValue MakePath(GetWindowsDir, "CONTROL.INI"), "MMCPL", "Help in a Dos Box", MakePath(DEST$, "DOSHELP.DLL"), cmoOverwrite
WriteToLogFile " {This line should be removed from CONTROL.INI if removing Help in a Dos Box from your system}"
WriteToLogFile ""
WriteToLogFile ""
LOAD$ = GetIniKeyString(MakePath(GetWindowsDir, "WIN.INI"),"windows", "load")
nPos = INSTR(LOAD$, "LDOSHELP.EXE")
IF nPos <> 0 THEN
nCnt = nPos
WHILE ((nCnt>1)*(MID$(LOAD$, nCnt,1)<>" "))
nCnt=nCnt-1
WEND
IF nCnt<2 THEN
LOAD$=MID$(LOAD$, nPos+13)
ELSE
LOAD$ = MID$(LOAD$,1,nCnt)+MID$(LOAD$, nPos+13)
ENDIF
ENDIF
WriteToLogFile "This WIN.INI setting causes LDOSHELP.EXE to be run when Windows starts."
WriteToLogFile " (If the Help in a Dos Box setting (in DOSHELP.INI) is On, LDOSHELP.EXE initialises the Help in a Dos Box DLL.)"
CreateIniKeyValue MakePath(GetWindowsDir, "WIN.INI"), "windows", "load", MakePath(DEST$, "LDOSHELP.EXE") + " " + LOAD$, cmoOverwrite
WriteToLogFile " {The instruction to load LDOSHELP.EXE should be removed from this line in WIN.INI"
WriteToLogFile " if removing Help in a Dos Box from your system}"
WriteToLogFile ""
WriteToLogFile ""
WriteToLogFile "Set Up Complete"
CloseLogFile
RUN MakePath(DEST$, "LDOSHELP.EXE")
END SUB
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
SUB CreateIniKeyValue (szFile$, szSect$, szKey$, szValue$, cmo%) STATIC
IF FCreateIniKeyValue(szFile$, szSect$, szKey$, szValue$, cmo%) = 0 THEN
ERROR STFERR
END IF
END SUB
FUNCTION GetWindowsSysDir STATIC AS STRING
szBuf$ = string$(256, 32)
cbBuf% = GetSystemDirectory(szBuf$, 256)
IF cbBuf% = 0 THEN
ERROR STFERR
ELSE
IF cbBuf% > 255 THEN
res% = DoMsgBox("Buffer Overflow", "MS-Setup Error", MB_ICONHAND+MB_OK)
ERROR STFERR
END IF
szBuf$ = RTRIM$(szBuf$)
IF MID$(szBuf$, 1, 1) = "\" THEN
szBuf$ = MID$(CURDIR$, 1, 2) + szBuf$
ELSEIF MID$(szBuf$, 2, 1) <> ":" THEN
szBuf$ = MID$(CURDIR$, 1, 3) + szBuf$
END IF
IF MID$(szBuf$, LEN(szBuf$), 1) <> "\" THEN
szBuf$ = szBuf$ + "\"
END IF
GetWindowsSysDir = szBuf$
END IF
szBuf$ = ""
END FUNCTION
FUNCTION GetWindowsDir STATIC AS STRING
szBuf$ = string$(256, 32)
cbBuf% = GetWindowsDirectory(szBuf$, 256)
IF cbBuf% = 0 THEN
GetWindowsDir = ""
ERROR STFERR
ELSE
IF cbBuf% > 255 THEN
res% = DoMsgBox("Buffer Overflow", "MS-Setup Error", MB_ICONHAND+MB_OK)
ERROR STFERR
END IF
szBuf$ = RTRIM$(szBuf$)
IF MID$(szBuf$, 1, 1) = "\" THEN
'szBuf$ = MID$(CURDIR$, 1, 2) + szBuf$
szBuf$ = MID$(GetWindowsSysDir, 1, 2) + szBuf$
ELSEIF MID$(szBuf$, 2, 1) <> ":" THEN
szBuf$ = MID$(GetWindowsSysDir, 1, 3) + szBuf$
END IF
IF MID$(szBuf$, LEN(szBuf$), 1) <> "\" THEN
szBuf$ = szBuf$ + "\"
END IF
GetWindowsDir = szBuf$
END IF
szBuf$ = ""
END FUNCTION
SUB AddSectionFilesToCopyList (szSect$, szSrc$, szDest$) STATIC
IF FAddSectionFilesToCopyList (szSect$, szSrc$, szDest$) = 0 THEN
ERROR STFERR
END IF
END SUB
SUB CopyFilesInCopyList STATIC
grc% = GrcCopyFilesInCopyList (HinstFrame())
IF grc% = grcUserQuit THEN
ERROR STFQUIT
ELSEIF grc% > 0 THEN
ERROR STFERR
END IF
END SUB
SUB CloseLogFile STATIC
IF FCloseLogFile() = 0 THEN
ERROR STFERR
END IF
END SUB
SUB WriteToLogFile (szStr$) STATIC
IF FWriteToLogFile(szStr$, 1) = 0 THEN
ERROR STFERR
END IF
END SUB
SUB OpenLogFile (szFile$, fAppend%) STATIC
IF FOpenLogFile(szFile$, fAppend%) = 0 THEN
ERROR STFERR
END IF
END SUB
SUB CreateDir (szDir$, cmo%) STATIC
IF FCreateDir(szDir$, cmo%) = 0 THEN
ERROR STFERR
END IF
END SUB
SUB UIPop (n%) STATIC
IF FKillNDialogs(n%) = 0 THEN
ERROR STFERR
END IF
END SUB
SUB UIPopAll STATIC
IF FKillNDialogs(65535) = 0 THEN
ERROR STFERR
END IF
END SUB
FUNCTION IsDirWritable (szDir$) STATIC AS INTEGER
IsDirWritable = FIsDirWritable(szDir$)
END FUNCTION
SUB SetSymbolValue(szSymbol$, szValue$) STATIC
IF FSetSymbolValue(szSymbol$, szValue$) = 0 THEN
ERROR STFERR
END IF
END SUB
FUNCTION UIStartDlg(szDll$, Dlg%, szDlgProc$, HelpDlg%, szHelpProc$) STATIC AS STRING
IF FDoDialog(HwndFrame(), szDll$, Dlg%, szDlgProc$, HelpDlg%, szHelpProc$) = 0 THEN
ERROR STFERR
ELSE
UIStartDlg = GetSymbolValue("DLGEVENT")
END IF
END FUNCTION
SUB SetBitmap(szDll$, Bitmap%) STATIC
IF FSetBitmap(szDll$, Bitmap%) = 0 THEN
ERROR STFERR
END IF
END SUB
SUB ReadInfFile (szFile$) STATIC
IF FOpenInf(szFile$, 1, 0) = 0 THEN
ERROR STFERR
END IF
END SUB
SUB SetTitle(sz$) STATIC
SetWindowText HwndFrame(), sz$
END SUB
FUNCTION GetSymbolValue(szSymbol$) STATIC AS STRING
szValue$ = string$(cbSymValMax,32)
Length% = CbGetSymbolValue(szSymbol$, szValue$, cbSymValMax)
GetSymbolValue = szValue$
IF Length% >= cbSymValMax THEN
res% = DoMsgBox("Buffer Overflow", "MS-Setup Error", MB_ICONHAND+MB_OK)
ERROR STFERR
END IF
IF szSymbol$ = "" THEN
ERROR STFERR
END IF
szValue$ = ""
END FUNCTION
FUNCTION GetIniKeyString (szFile$, szSect$, szKey$) STATIC AS STRING
cb% = 512
szBuf$ = STRING$(cb%, 32)
cbRet% = CbGetIniKeyString(szFile$, szSect$, szKey$, szBuf$, cb%)
GetIniKeyString = szBuf$
END FUNCTION
FUNCTION InitSetup(szCmdLine$) STATIC AS INTEGER
fFrameInit = 0
fInstallInit = 0
i% = InitFrame(szCmdLine$)
fFrameInit = 1
InitInstall
fInstallInit = 1
InitSetup = i%
END FUNCTION
FUNCTION InitFrame(szCmdLine$) STATIC AS INTEGER
IF hSetup > 0 THEN
ELSE
i% = InitializeFrame(szCmdLine$)
IF i% = -1 THEN
END '' NOT an error - Usage (/?) or Command line copy operation
ELSEIF i% = 0 THEN
END
ELSE
InitFrame = i%
END IF
END IF
END FUNCTION
SUB InitInstall STATIC
IF hSetup > 0 THEN
ELSEIF FInitializeInstall(HinstFrame(), HwndFrame()) = 0 THEN
END
END IF
END SUB