Windows 3.11 Help Documentation File Format
In Microsoft Windows 3.11, help documentation was stored using the
proprietary WinHelp format, identified by the .hlp file
extension. This article explains the technical foundation of the
.hlp format, the viewer application used to render it, how
developers authored these early documentation files, and the key
features that made it an industry standard for software assistance in
the early 1990s.
The WinHelp File Format
(.hlp)
The .hlp format was a compiled binary file system
designed by Microsoft to deliver interactive, indexed, and
cross-referenced documentation. In Windows 3.11, these files were read
and displayed by the built-in system utility winhelp.exe
(Windows Help).
The format functioned essentially as an early form of hypertext, allowing users to jump between related topics, access glossaries, and search through indexes years before the World Wide Web became widespread.
How Windows 3.11 Help Files Were Created
Creating a .hlp file required a multi-stage compilation
process involving Rich Text Format (RTF) and specialized Microsoft
compilers:
- Source Content in RTF: Technical writers and developers authored the help content in standard word processors capable of exporting to RTF.
- Control Footnotes: Special footnote codes were used
inside the RTF document to define topic metadata. For example:
#defined the context string (unique topic ID).$defined the topic title shown in search lists and history.Kdefined keywords for the search index.+specified the browse sequence order.
- Hyperlinks and Popups: Text formatting dictated user interactivity. Underlined text with hidden context strings created jumps to other pages, while dotted-underlined text created popup definition windows.
- Project File (
.hpj): A text-based project configuration file mapped context IDs, defined window properties, specified included bitmaps (.bmpor.shg), and configured macro bindings. - Compilation: The Microsoft Help Compiler (such as
hc31.exefor Windows 3.1) parsed the.hpjand.rtffiles, compressing and packaging them into a single, executable.hlpbinary.
Key Features of the Format
- Full-Text and Keyword Indexing: Users could search for topics using a pre-compiled keyword index or dynamic text searches.
- Macros: WinHelp supported a rich macro language that allowed help files to trigger external programs, display dialog boxes, or automatically open specific system windows.
- Secondary Windows and Popups: It could spawn temporary modal windows for quick definitions without losing the user's place in the main manual.
- Context-Sensitive Help: Software applications could
communicate with
winhelp.exevia Windows API calls, instantly opening the exact help topic relevant to the tool or dialog box the user was currently viewing.
The WinHelp .hlp format remained the primary standard
for Windows software documentation until Microsoft phased it out in
favor of HTML Help (.chm) starting with Windows 98.