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:

  1. Source Content in RTF: Technical writers and developers authored the help content in standard word processors capable of exporting to RTF.
  2. 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.
    • K defined keywords for the search index.
    • + specified the browse sequence order.
  3. 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.
  4. Project File (.hpj): A text-based project configuration file mapped context IDs, defined window properties, specified included bitmaps (.bmp or .shg), and configured macro bindings.
  5. Compilation: The Microsoft Help Compiler (such as hc31.exe for Windows 3.1) parsed the .hpj and .rtf files, compressing and packaging them into a single, executable .hlp binary.

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.exe via 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.