Windows 3.11 Help File Format Explained

This article examines the compiled help file format used in Microsoft Windows 3.11, identifying the proprietary WinHelp (.hlp) format, explaining how these documentation files were authored and compiled, and highlighting the core features that made them the standard help system for 16-bit Windows environments.

The WinHelp (.hlp) Format

In Microsoft Windows 3.11, compiled Help files used the WinHelp format, carrying the .hlp file extension. When users selected "Help" within an application or opened a .hlp file directly, the operating system launched the native viewer program, WINHELP.EXE, to render the documentation.

The format was binary and proprietary, designed to deliver fast cross-referencing, compressed storage, and responsive keyword searching on hardware with strict memory and CPU limits.

Source Files and Compilation

Creating a Windows 3.11 help file required a specific authoring pipeline:

  1. Rich Text Format (RTF): Documentation content was written in RTF files using word processors like Microsoft Word. Authors used standard formatting for layout and specialized footnotes to encode help metadata:
    • # footnote: Defined the unique context string (identifier) used for linking and context-sensitive help.
    • $ footnote: Defined the topic title displayed in the history and search lists.
    • K footnote: Defined search keywords for the index.
    • + footnote: Defined browse sequences for sequential reading.
  2. Help Project File (.hpj): A plain-text configuration file that defined compilation settings, window dimensions, referenced RTF files, bitmap resources, and mapping macros.
  3. The Help Compiler: Developers ran the 16-bit Microsoft Help Compiler (HC.EXE or HC31.EXE). This tool parsed the .hpj file, compressed the text and embedded graphics, resolved hypertext jump references, built the search index, and outputted the final compiled .hlp binary.

Key Features in Windows 3.11

The WinHelp engine in Windows 3.11 provided several advanced features for its era:

  • Hypertext Jumps: Green, underlined text allowed users to navigate directly from one topic to another.
  • Pop-up Definitions: Green, dotted-underlined text opened small, borderless pop-up windows for quick glossaries and term definitions without changing the main topic view.
  • Context-Sensitive Help: Applications could pass an identifier to WINHELP.EXE to immediately open the exact topic relevant to the dialog box or menu the user was actively viewing.
  • Built-in Search and Bookmarks: The system included an automated search index based on keyword footnotes, a history trail of recently visited topics, and custom bookmark support.

The .hlp format remained the primary help architecture across the 16-bit Windows era and Windows 95, until Microsoft eventually replaced it with HTML Help (.chm) in later operating system releases.