Microsoft Compiled HTML Help

Last updated
Microsoft Compiled HTML Help
Filename extension
.chm
Internet media type
application/vnd.ms-htmlhelp [1]
Developed by Microsoft
Initial release1997
Latest release
1.4 [2]
Extended to .lit
Microsoft Compiled HTML Help
Developer(s) Microsoft
Operating system Microsoft Windows
Predecessor Microsoft WinHelp
Successor Microsoft Help 2
Type Help system

Microsoft Compiled HTML Help is a Microsoft proprietary online help format, consisting of a collection of HTML pages, an index and other navigation tools. The files are compressed and deployed in a binary format with the extension .CHM, for Compiled HTML. The format is often used for software documentation.

Contents

It was introduced as the successor to Microsoft WinHelp with the release of Windows 95 OSR 2.5 [3] and consequently, Windows 98. Within the Windows NT family, the CHM file support is introduced in Windows NT 4.0 [4] [5] [6] and is still supported in Windows 11. [7] Although the format was designed by Microsoft, it has been successfully reverse-engineered and is now supported in many document viewer applications.

History

MonthYearDescription
February1996 Microsoft announces plans to stop development of WinHelp and start development on HTML Help.
August1997HTML Help 1.0 (HH 1.0) is released with Internet Explorer 4.
February1998HTML Help 1.1a ships with Windows 98.
January2000HTML Help 1.3 ships with Windows 2000.
JulyHTML Help 1.32 releases with Internet Explorer 5.5 and Windows Me.
October2001HTML Help 1.33 releases with Internet Explorer 6 and Windows XP.
MarchAt the WritersUA (formerly WinWriters) conference, Microsoft announces plans for a new help platform, Help 2, which is also HTML based.
January2003Microsoft decides not to release Microsoft Help 2 as a general Help platform.

Microsoft has announced that they do not intend to add any new features to HTML Help. [8]

File format

Help is delivered as a binary file with the .chm extension. It contains a set of HTML files, a hyperlinked table of contents, and an index file. The file format has been reverse-engineered and documentation of it is freely available. [9] [10]

The file starts with bytes "ITSF" (in ASCII), for "Info-Tech Storage Format", which is the internal name given by Microsoft to the generic storage file format used for CHM files. [11]

CHM files support the following features:

Use in Windows applications

The Microsoft Reader's .lit file format is a modification of the HTML Help CHM format. CHM files are sometimes used for e-books. [13]

Sumatra PDF supports viewing CHM documents since version 1.9.

Various applications, such as HTML Help Workshop and 7-Zip can decompile CHM files. The hh.exe utility on Windows and the extract_chmLib utility (a component of chmlib) on Linux can also decompile CHM files.

Microsoft's HTML Help Workshop and Compiler generate CHM files by instructions stored in a HTML Help project. The file name of such a project has the extension .HHP and the file is just a text with the INI file format. [14]

The Free Pascal project has a compiler (chmcmd) that can create CHM files in a multiplatform way.

Use in non-Windows applications

Read support:

Read/write support:

See also

Related Research Articles

The Rich Text Format is a proprietary document file format with published specification developed by Microsoft Corporation from 1987 until 2008 for cross-platform document interchange with Microsoft products. Prior to 2008, Microsoft published updated specifications for RTF with major revisions of Microsoft Word and Office versions.

UTF-8 is a variable-length character encoding standard used for electronic communication. Defined by the Unicode Standard, the name is derived from Unicode Transformation Format – 8-bit.

The Portable Executable (PE) format is a file format for executables, object code, DLLs and others used in 32-bit and 64-bit versions of Windows operating systems, and in UEFI environments. The PE format is a data structure that encapsulates the information necessary for the Windows OS loader to manage the wrapped executable code. This includes dynamic library references for linking, API export and import tables, resource management data and thread-local storage (TLS) data. On NT operating systems, the PE format is used for EXE, DLL, SYS, MUI and other file types. The Unified Extensible Firmware Interface (UEFI) specification states that PE is the standard executable format in EFI environments.

OpenType is a format for scalable computer fonts. Derived from TrueType, it retains TrueType's basic structure but adds many intricate data structures for describing typographic behavior. OpenType is a registered trademark of Microsoft Corporation.

<span class="mw-page-title-main">4DOS</span> Command line interpreter

4DOS is a command-line interpreter by JP Software, designed to replace the default command interpreter COMMAND.COM in Microsoft DOS and Windows. It was written by Rex C. Conn and Tom Rawson and first released in 1989. Compared to the default, it has a large number of enhancements.

A document file format is a text or binary file format for storing documents on a storage media, especially for use by computers. There currently exist a multitude of incompatible document file formats.

LZX is an LZ77 family compression algorithm, a slightly improved version of DEFLATE. It is also the name of a file archiver with the same name. Both were invented by Jonathan Forbes and Tomi Poutanen in the 1990s.

<span class="mw-page-title-main">Cardfile</span>

Cardfile is a personal information manager, based on index cards, that was distributed with Microsoft Windows starting from the original version 1.01 until Windows NT 4.0 Server. Cardfile is also included with Windows 98 and Windows Millennium Edition, but has to be installed manually from the installation CD-ROM. Beginning with Windows 3.1, Cardfile supported Object Linking and Embedding. The version supplied with Windows NT versions was a 32-bit application with Unicode support. Both later versions could read .crd files created by previous versions.

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). It remained a popular Help platform from Windows 3.0 through Windows XP. WinHelp was removed in Windows Vista purportedly to discourage software developers from using the obsolete format and encourage use of newer help formats. Support for WinHelp files would eventually be removed entirely in Windows 10.

An INI file is a configuration file for computer software that consists of a text-based content with a structure and syntax comprising key–value pairs for properties, and sections that organize the properties. The name of these configuration files comes from the filename extension INI, for initialization, used in the MS-DOS operating system which popularized this method of software configuration. The format has become an informal standard in many contexts of configuration, but many applications on other operating systems use different file name extensions, such as conf and cfg.

<span class="mw-page-title-main">Internet Explorer 2</span> Web browser for Windows released in 1995

Microsoft Internet Explorer 2 (IE2) is the second, and by now discontinued, version of Internet Explorer (IE), a graphical web browser by Microsoft. It was unveiled in October 1995, and was released on November 27, 1995, for Windows 95 and Windows NT, and on April 23, 1996, for Apple Macintosh and Windows 3.1.

<span class="mw-page-title-main">Markdown</span> Plain text markup language

Markdown is a lightweight markup language for creating formatted text using a plain-text editor. John Gruber and Aaron Swartz created Markdown in 2004 as a markup language that is intended to be easy to read in its source code form. Markdown is widely used for blogging and instant messaging, and also used elsewhere in online forums, collaborative software, documentation pages, and readme files.

Microsoft Assistance Markup Language is an XML-based markup language developed by the Microsoft User Assistance Platform team to provide user assistance for the Microsoft Windows Vista operating system. It makes up the Assistance Platform on Windows Vista.

Sandcastle is a documentation generator from Microsoft. It automatically produces MSDN-style code documentation out of reflection information of .NET assemblies and XML documentation comments found in the source code of these assemblies. It can also be used to produce user documentation from Microsoft Assistance Markup Language (MAML) with the same look and feel as reference documentation.

<span class="mw-page-title-main">Sumatra PDF</span> Free software PDF reader for Windows

Sumatra PDF is a free and open-source document viewer that supports many document formats including: Portable Document Format (PDF), Microsoft Compiled HTML Help (CHM), DjVu, EPUB, FictionBook (FB2), MOBI, PRC, Open XML Paper Specification, and Comic Book Archive file. If Ghostscript is installed, it supports PostScript files. It is developed exclusively for Microsoft Windows.

<span class="mw-page-title-main">ClipBook Viewer</span>

ClipBook Viewer is a discontinued utility included in the Windows NT family of operating system that allows users to view the contents of the local clipboard, clear the clipboard or save copied and cut items. A feature restricted version, called Clipboard Viewer, is available in Windows 9x and earlier.

The following is a comparison of e-book formats used to create and publish e-books.

Microsoft Help 2.x is a proprietary format for online help files, developed by Microsoft and first released in 2001 as a help system for Visual Studio .NET (2002) and MSDN Library.

<span class="mw-page-title-main">Okular</span> Document viewer by KDE

Okular is a multiplatform document viewer developed by the KDE community and based on Qt and KDE Frameworks libraries. It is distributed as part of the KDE Applications bundle. Its origins are from KPDF and it replaces KPDF, KGhostView, KFax, KFaxview and KDVI in KDE 4. Its functionality can be embedded in other applications.

<span class="mw-page-title-main">STDU Viewer</span> Document viewer

STDU Viewer is computer software, a compact viewer for many computer file formats: Portable Document Format (PDF), World Wide Fund for Nature (WWF), DjVu, comic book archive, FB2, ePUB, XML Paper Specification (XPS), Text Compression for Reader (TCR), Mobipocket (MOBI), AZW, multi-page TIFF, text file (TXT), PalmDoc (PDB), Windows Metafile (EMF), Windows Metafile (WMF), bitmap (BMP), Graphics Interchange Format (GIF), JPEG-JPG, Portable Network Graphics (PNG), Photoshop Document (PSD), PiCture eXchange (PCX-DCX). It works under Microsoft Windows, and is free for non-commercial use.

References

  1. Techtonik, Anatoly (11 April 2006). "application/vnd.ms-htmlhelp" . Retrieved 7 March 2012.
  2. "Microsoft HTML Help 1.4". Windows Dev Center. Microsoft. Retrieved 10 January 2017.
  3. ^ since IE 4 is bundled with OSR 2.5, hence adding the CHM file support for the first time ^
  4. "Microsoft Security Bulletin MS02-055 - Critical". docs.microsoft.com. Retrieved 2020-10-29.
  5. "Full Disclosure: HtmlHelp - .CHM File Heap Overflow". seclists.org. Retrieved 2020-10-29.
  6. ^ The information available is scarce, but any VM installation of WinNT 4.0 appears to give .CHM file support out of the box. It seems like it wasn't introduced in in Windows NT 3.51 due to NT 3.51 being intentionally limited to Internet Explorer 16-bit versions ^
  7. "[SOLVED] Windows 10 CHM Help Files showing up blank. - Spiceworks". community.spiceworks.com. Retrieved 2020-10-29.
  8. "Microsoft HTML Help Downloads". Microsoft. Retrieved 6 March 2012.
  9. Wise, Paul; Wing, Jed (2005). "Unofficial (Preliminary) HTML Help Specification" . Retrieved 15 August 2012.
  10. Palade, Alexandru (2005). "Archive::Chm" . Retrieved 22 July 2014.
  11. "Virus Bulletin :: Chamber of horrors". www.virusbulletin.com. Retrieved 2022-01-05.
  12. "INFO: Limited Unicode Support in HTML Help". Microsoft. 11 April 2001. Archived from the original on 13 March 2016. Retrieved 17 March 2012.
  13. Salomon, David; Motta, Giovanni; Bryant, David (CON) (2009). Handbook of Data Compression (5th, illustrated ed.). Springer. ISBN   978-1-84882-902-2.
  14. Wise, Paul; Wing, Jed (2005). "Unofficial (Preliminary) HTML Help Specification INI formats" . Retrieved 1 February 2018.