TechWhirl (TECHWR-L) is a resource for technical writing and technical communications professionals of all experience levels and in all industries to share their experiences and acquire information.
For two decades, technical communicators have turned to TechWhirl to ask and answer questions about the always-changing world of technical communications, such as tools, skills, career paths, methodologies, and emerging industries. The TechWhirl Archives and magazine, created for, by and about technical writers, offer a wealth of knowledge to everyone with an interest in any aspect of technical communications.
Subject:Full-txt srch in Help: How to do it (I) From:Patrick O'Connell <patricko -at- EICON -dot- COM> Date:Wed, 16 Mar 1994 22:50:00 PST
About 24 hours ago I promised to publicize how it was possible to enable
full-text searching in Windows Help files created for yer garden-variety
16-bit Windows 3.x and for Windows NT, MS's 32-bit beast. Here goes nothing,
and it likely won't be short.
PREAMBLE: ABOUT 16-BIT WINHELP, MS VIEWER AND 32-BIT WINHELP
I've been wracking my brain trying to figure out how to do this for quite a
while. A while ago my friend Jack Deland, who runs Adam Charles Consulting in
Ann Arbor, Michigan (they put the Windows Resource Kit online) told me in an
e-mail conversation that MS Viewer was basically the Windows Help engine
(WINHELP.EXE) extended for multimedia with a bunch of DLLs. I didn't really
believe him until I cracked the manual for MS Viewer 1.0, part of the same
version of a Microsoft Multimedia Development Kit (MMDK) my former boss
received for no obvious reason about 2 years ago.
VERY suspicious! Hmmmm....nearly identical macro language, project files
look a LOT like WinHelp's HPJ's, extensible through DLL declarations and
function calls, basic mechanisms are identical. D-uh...looks like WinHelp
with extensions, all right! (Hey, sarcastic humor's in my nature, OK?)
I hadn't understood until about 48 hours ago just how much WinHelp and
Viewer -- both their engines (executables) and their file formats -- had in
common. I am nearly certain now that there are actually very few differences.
Only Bill Gates' hairdresser knows for sure, and he's probably been sworn to
secrecy on pain of death!
And, as far as I can tell, there is little to distinguish Windows Help
for NT from Windows Help for Win 3.1. Sure, the WinHlp32 engine is 32 bits,
like most everything about NT, BUT you compile the data files (.HLP) with
exactly the same tools. Funny thing, though -- you can perform full-text
searching on Viewer files if you follow the right steps when compiling them,
AND on the NT system help files!
NITTY-GRITTY I: THE MAGIC DLLS
The FTS technology is embedded in both the 16-bit and 32-bit versions of
three DLLs: the names of the 16-bit files are FTENGINE.DLL, FTUI.DLL, and
MVAPI.DLL. For a Viewer file with FTS enabled, you must ship and install
the 16-bit versions of these three DLLs with your .MVB file. I myself have
never compiled a Viewer file that contained anything more than text and
graphics, but this is what the manual says.
You must ALSO ship another file, one with the same file *name* but a
different *extension*: IND. What is it? An index of most every word in
your .MVB file used by the FTS functions contained in the three DLLs.