Microsoft WinHelp

From Wikipedia, the free encyclopedia

Microsoft WinHelp is a proprietary format for online help files that can be displayed by the Microsoft Help browser winhelp.exe or winhlp32.exe. The file format is based on Rich Text Format (RTF). Although less advanced than the later Microsoft Compressed HTML Help format and standard HTML, it remained a popular Help platform from Windows 3.0 platform through Windows XP. Winhlp32.exe was removed in Windows Vista.

Contents

[edit] History

[edit] File format

A WinHelp file has a ".hlp" suffix. It can be accompanied by an optional table of contents (.cnt) file if the help developer created one. When Windows opens a WinHelp file, it creates a .gid file in the same directory, containing information about the .hlp file such as the window size and location. If the user clicks the "Find" tab and enables keyword indexing, Windows creates an index file with a .fts (full text search) extension.

A WinHelp file can also be decompiled, providing copies of its source documents (HPJ, CNT, RTF, BMP, SHG), using a number of software tools. An HPJ file is the project file that is created and edited in the Help Workshop (or a third party help authoring tool). The HPJ contains information about what RTF files to compile into the help, the MAP IDs and Aliases that provide links from a calling application to the help file, and help file appearance (window size, default buttons, color schemes, etc). The CNT file provides the Table of Contents for the help file. An SHG file is a "SHED" graphics file that essentially creates an image map of help calls for a graphic file (e.g., a BMP).

[edit] Source files and compilation

The source files required to compile a .hlp file consist of one or more documents with the extension .rtf and a help project file with the extension .hpj, along with any image files (.bmp, .wmf, or .shg) that are used within the Help file. An optional Table of Contents file with the extension .cnt can also be created for use with the .hlp file.

Within the .rtf files, topics are separated by page breaks. Each topic will have a series of footnotes which contain information for the help compiler: # footnotes contain the topic ID (used to create links to that topic); $ footnotes contain the topic name as it will be displayed in the table of contents, index, and other locations; K footnotes contain keywords for the index; A footnotes contain See Also keywords; * footnotes contain build tags; + footnotes contain browse sequence information; and ! footnotes contain topic entry macros. Only the # footnote is required; all others are optional.

The text within each topic can contain any type of formatting, including bold text, italics, colors, etc. Jumps between topics in the same Help file usually appear in the source document as double-underlined text (often in green) followed by a topic ID in hidden text. Popup links appear in the source document as text with a single underline (also often green) followed by a topic ID in hidden text. (In the .hlp file, the jumps will show up as green text with a single underline, and popups will show up as green text with a dotted underline.)

Images can be added using codes such as {bmc image.bmp}. Supported image formats include .bmp, .wmf, and .shg (used for image maps, which can contain jumps or popups that are triggered by clicking on specific parts of the image).

After the source files have been created, the help file can be compiled using a WinHelp compiler such as HCW.exe or by using a commercial software program such as RoboHelp.

[edit] Graphics support

A limitation of WinHelp is picture support: to support formats other than BMP and WMF, the author must learn how to use Winhelp's support for plug in modules. One such module supports display of large DIB bitmaps. In fact, all the multimedia capability possible in early versions of Encarta are possible in WinHelp because the engines were at the time essentially identical.

[edit] End of support

At the 2006 WritersUA conference, Microsoft announced its intentions to phase out WinHelp as a supported platform. Ted Dworkin (Director of Windows Support Experience) stated, "WinHelp does not meet the code standards established for Vista. These standards include security, reliability, and performance. WinHelp is architected in such a way that we would have to rewrite it from the ground up to meet the Vista code standards. And that approach doesn't make sense given that we have two other Help systems in Vista."

Microsoft also released an article stating that WinHelp will no longer ship as a component of Windows, starting with Windows Vista[1].

In other languages