windows-10chmhtml-helphtml-help-workshop

Using HTML Help Workshop 1.3 and HTML5 and Javascript DOM and targeting Windows 10 with HTML Help files?


I am working with HTML Help sources that were generated by converting an older WinHelp help sources (converted from the .RTF files that were edited with Word using a Microsoft conversion tool). This source has not been touched since it was converted and some preliminary work done sometime around 2014 or earlier.

I am currently using Visual Studio 2005 with a Windows 7 PC to update this HTML Help source. I have created a project and added all the various sources: HTML files, BMP files containing images, a file containing JavaScript and a file containing CSS. The older WinHELP based content used a lot of popups which the conversion put into individual files and by just merging these small files used in only a single place, I have reduced the number of files by a third.

The first thing I am doing is cleaning up tags by hand, eliminating files by merging and rewriting content, and changing the old style markup to use more modern CSS.

My target for the help files is desktop users of Windows 7 and Windows 10. I am planning to move to Visual Studio 2015 with this source once I have the basics cleaned up. I have done a test project converting the VS 2005 to VS 2015 and the conversion seemed to work fine and the HTML source to compile into a .chm file that was usable.

From what I can find, it appears that HTML Help Workshop from Microsoft is being maintained but is no longer under active development. The last version seems to be 1.32 published in 2012 though it is for HTML Help version 1.4 according to the HTML Help Workshop and Documentation download page. See also Microsoft HTML Help 1.4 in Microsoft Docs.

Visual Studio 2005 is indicating that some of the markup, which I think is HTML4, is deprecated. The html help source seems to compile to a .chm file fine anyway and the resulting .chm file works fine under Windows 7.

I am a bit confused about this compiling process. My impression is that the workshop compiler packs all of the various .html files together along with a couple of files it generates and then compresses it all into a single archive.

Does this mean that the HTML standard I use depends on the Microsoft browser, Edge I assume, and what HTML standard it supports?

This question really means is there any dependency in the HTML Help Workshop that means I can not use HTML5 or the newer CSS?

There is some, simple Javascript which uses div tags for some basic user interaction. That works just fine. Can I expect that whatever Javascript HTML DOM is supported by Microsoft Edge is available for use with this help text?


Solution

  • You know Windows HTML Help is delivered as a LZX compressed 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 e.g. Unofficial (Preliminary) HTML Help Specification

    The file starts with bytes "ITSF" (in ASCII), for "Info-Tech Storage Format" (see Microsoft's HTML Help (.chm) format documentation). The CHM can be opened using FAR HTML like shown in the screenshot of this SO thread to get CHM details from help ID

    Please note the aged Internet Explorer is used inside HTMLHelp Viewer (hh.exe) for rendering the HTML content. HH.EXE is distributed with HTML Help so you can rely on it being present. It lives in the Windows folder and has a limited number of command-line options. HH.EXE is associated with .CHM files. So double-click a *.CHM file and Windows will open the file using HH.EXE. Its a very small file like a wrapper, it mostly passes the help filename onto a HH API library.

    The Edge browser is not used in this context. Many things still work with the more than 20 years old HTMLHelp, such as the integration of SVG. But, I recommend not to use the standard HTML5 completely and to be very careful. The content itself should be as easy to maintain as possible. This can also be achieved with a simplified HTML.

    You may know Microsoft is building a Chromium-powered web browser that will replace Edge on Windows 10. I'm not sure how Microsoft will integrate the required Internet Explorer rendering engine to support the CHM Viewer in this future environment.

    It's a bit dated but please read Make your CHM Help Files show HTML5 and CSS3 content . See as well Web Browser Control & Specifying the IE Version which discusses using the X-UA-Compatible HTML meta tag.

    See this about that tag, What does <meta http-equiv="X-UA-Compatible" content="IE=edge"> do?.