| History | Versions | HH Runtime Components| HH 1.3 | HH 1.4x | Security Updates |
| Boxed Windows | Internet Explorer | WinHelp Vs HH | Installing HH |
| Collections | More Notes | HH1.3 Changes |
6/9/2014 - At the time of writing MS HTML Help (.chm) is the only choice for general help. All other help systems rely on Visual Studio or Windows 8+ being installed (where no standalone installer is available).
HTML Help requires ANSI HTML files which makes translation tedious. IE. You must edit and compile say Japanese help on a Japanese Windows machine or change the Windows regional settings to Japanese.
For more info on MS Help systems see http://mshelpwiki.helpmvp.com/mshelp | http://www.helpmvp.com/MVP-Info/history
We no longer track changes to HTML Help.
MS HTML Help Home Page:
Download HTML Help Workshop. View API documentation. http://msdn2.microsoft.com/en-us/library/ms670169.aspx
HHUPD.EXE
Hhupd.exe installs the HTML Help runtime files plus language DLLs. Hhupd.exe is also included with HTMLHelp.exe (Workshop installer).
Hhupd.exe does not work on newer operating systems such as Win ME, Win 2000, Win XP, Win Vista etc since HTML Help is now part of the Operating System and can only be upgraded by official updates and service packs.
Exception while installing HTML Help Workshop
HH Workshop (htmlhelp.exe is an old program) runs HHUpd.exe to update the HH Runtime files at the end of installation.
Because the HH runtime is now part of the OS an exception usually occurs. You can ignore this exception.
Files for 32 bit Windows:
Note: Windows 98 & Windows ME use "System" rather than "System 32".
%Windir%\Hh.exe
%Windir%\System32\Hhctrl.ocx
%Windir%\System32\Hhsetup.dll
%Windir%\System32\Itircl.dll
%Windir%\System32\Itss.dll
Files for 64 bit Windows: (32 bit & 64 bit runtime files)
x86
%Windir%\SysWOW64\Hh.exe
%Windir%\SysWOW64\Hhctrl.ocx
%Windir%\SysWOW64\Hhsetup.dll
%Windir%\SysWOW64\Itircl.dll
%Windir%\SysWOW64\Itss.dll
IA64
%Windir%\Hh.exe
%Windir%\System32\Hhctrl.ocx
%Windir%\System32\Hhsetup.dll
%Windir%\System32\Itircl.dll
%Windir%\System32\Itss.dll
Three runtime files require registration: Hhctrl.ocx, Itss.dll, Itircl.dll
Use the regsvr32.exe to register -- Microsoft regsvr32 documentation
For 32 bit Windows (XP and later):
For Windows 64 bit Windows
HH.EXE is not usually changed except for making the version number the same as Hhctrl.ocx.
** Later versions of HH are difficult to list since build numbers different between operation systems.
Prior to HTML Help 1.30 we had a different hhupd.exe and thus hhctrl.ocx for each of the 28 foreign language installs. With 1.30 we now have one hhupd.exe that installs one ocx but 28 language dlls. After installing 1.30 you will find hhctrl.ocx in the Windows System folder as before, but now below the system folder is another folder called \mui which contains all the locale folders. Each locale folder contains a language resource DLL called hhctrlui.dll.
These locale folders are named using the hex representation of that locale's Locale ID (LCID). Thus the English locale's folder is named 409, the German locale's folder is named 407, the Japanese locale's container 411, and so on.
Example: Windows 95/98
\windows\system\mui\409\hhctrlui.dll
Mui I assume stands for Multilingual User Interface.
Note: You can always right-click a DLL and select properties to check version and language details.
When the HtmlHelp API (hhctrl.ocx) is loaded it gets the current locale and loads the resources from the appropriate locale folder. If the folder does not exist it simply defaults to the English resources found in the ocx. So if DLLs are not installed hhctrl.ocx still work and display English.
The immediate advantage for us as developers is obvious. We now have only one install file to download and distribute. We no longer have to detect the Windows O/S language and install the correct hhupd.exe.
Language & LCID ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 0401 Arabic 0403 Catalan 0404 Traditional Chinese 0405 Czech 0406 Danish 0407 German 0408 Greek 0409 English ** 040A Spanish 040B Finnish 040C French 040D Hebrew 040E Hungarian 0410 Italian 0411 Japanese 0412 Korean 0413 Dutch 0414 Norwegian (Bokmal) 0415 Polish 0416 Portuguese (Brazilian) 0419 Russian 041B Slovak 041D Swedish 041F Turkish 0424 Slovenian 042D Basque 0804 Simplified Chinese 0816 Portuguese (Standard)
** Note that HH1.3 always reads English resource strings from the OCX not from the DLL as it should.
PS. I notice that installations of HH that come with Windows 2000 and XP come only with the required language resource DLL files. Hhupd.exe wont install on these systems. On older systems Hhupd.exe 1.3x will install all language resource DLLs.
New HH 1.4 Policy: "Restrict potentially unsafe HTML Help functions to specified folders"
Windows security has tightened up and HH 1.4 now restricts the use of HH Shortcut and WinHelp Topic commands.
More Info: KB810687, KB323180, MS Security Bulletin: MS02-055.
Popup Text Truncated Bug
HH 1.4 introduced a new bug where HH Popup text is truncated to 256 chars. MS know about the bug and will try and fix it in a future release. If your popup text is < 256 chars you wont see a problem -- Fixed 1.4c (below).
Multi-Page Print Bug
HH1.4 multi-page printing works but links to images and style sheets don't work, resulting in text only print-outs. This bug has been fixed in HH1.4a (see below).
Multi-Page Printing Bug Fixed
HH 1.4a fixes the multi-page printing bug. Its available as the patch or Windows security update "Unchecked Buffer in HTML Help Security Vulnerability".
The patch for NT4 is a “traditional” hhupd.exe, but the patches for newer OSs are OS specific. There are no patches for Windows 95.
More Info: Q323255
Link Opens in Internet Explorer Bug
When you click a link it may open in Microsoft Internet Explorer instead of in your default browser, or in the Help and Support Center.
See Q810565 (WinXP) and 810649 (Win2000)
Truncated Popup Bug Fixed
See Q811630. Fixes the truncated HH popup text bug. Also fixes and security update for window.showhelp().
Only .CHM file Extensions Supported
See KB840315 - From KB web site: For security reasons, the 840135 security update prevents unsupported use of compiled HTML Help files. After you apply 840315, only files that have the .chm file name extension can be used as compiled HTML Help files. Programs that use other file name extensions for compiled HTML Help files will no longer display content by using HTML Help.
Software vendors affected should read the next section.
Workaround For Using Non-CHM File Extensions
See KB873343 - The 1.4d update broke software that contained ITS files with non-CHM file extensions. MS have released a work around in the form of a hot fix that you can request from MS Support. The fix updates ITSS.DLL to 5.2.3790.1221 (XP), 5.2.3790.194 (other OSs). XP users who update to SP2 will get the itss.dll update automatically (although the KB article states that users who were using XP SP2 release candidate 1 may not be updated correctly. In this case they should request the Hot Fix KB873343 from MS support).
Once you have the newer itss.dll, update the registry (as described in KB873343) to enable a non-CHM file extensions.
Example:
I run XP SP1 Pro and received itss.dll 5.2.3790.185 (HH 1.4d) via Windows Automatic Updates. After this the *.CHM files I had renamed to *.ITS refused to view in Internet Explorer. I installing XP SP2 (which updated Itss.dll to 5.2.3790.1221). I then added the following registry items to allows Internet Explorer (iexplore.exe) to view *.ITS files.
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\HTMLHelp\1.x\HelpRestrictions\AllowedExtensions\its]
"iexplore.exe"=""
Additional:
I requested the hot fix from MS Support and received the wrong files. They were for a particular Windows operating system so I got an Invalid Operating System error when I ran them. Make sure you specify the Windows OS when you ask Support for the files. Here are some package IDs that I know are associated with KB873343:
Q. I'm a vendor and I want to get all packages and distribute to my customers as required. Is this OK?
A. Normally the customer should ask for the hot fix. It is possible for Vendors to distribute however the approval process is done on a case-by-case basis and requires a number of approvals, including MS legal.
HTML Help On The Web Disabled
MS have released security update MS05-001 which disables the use of HH ActiveX control HHCTL.OCX. So web sites using the HH ActiveX control to display TOC, Index, HH Version etc no longer work. Local machine zone is unaffected.
KB892675: You cannot access HTML Help functionality on some Web sites after installing security update MS05-001.
The user will normally see a blank space where the Hhctrl Visual control is normally seen. You may also get a message box saying: "You must specify the location of the hhc you want to use".
KB892675 describes how to bypass this restriction:
Example 1:
This registry change enables the MS Hhctrl ActiveX control for these two sites:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\HTMLHelp\1.x\HHRestrictions]
"UrlAllowList"="http://helpware.net/;http://www.help-info.de/en/"
Example 2:
Alternatively you can enable sites by using IE Security Zones.
First set the following registry item to enable Hhctrl ActiveX to work in a Zone.
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\HTMLHelp\1.x\HHRestrictions]
"MaxAllowedZone"=dword:00000001
Default value for MaxAllowedZone = 0 (allow Local machine zone only)
1 = Local machine zone + Local intranet zone
2 = Local machine zone + Local intranet zone + Trusted sites zone
3 = Local machine zone + Local intranet zone + Trusted sites zone + Internet zone
4 = Local machine zone + Local intranet zone + Trusted sites zone + Internet zone + Restricted sites zone
Thus if http://helpware.net was part of your companies local Intranet you would do the following:
1. Set MaxAllowedZone = 1 (Local Intranet Zone)
2. Open IE Internet Options
3. Click Security Tab > Local Intranet Icon > Sites Button > Advanced button
4. Add http://*.helpware.net/ to the Zone
Better still your network administrator could push down the settings to all machines.
Since http://helpware.net is a web site on the Internet you would do the following:
1. Set MaxAllowedZone = 2 (Trusted Sites Zone)
2. Open IE Internet Options
3. Click Security Tab > Trusted Sites Icon > Sites Button
4. Add http://*.helpware.net/ to the Zone
Why don't my settings work?
Feedback from user Frank Palinkas in South Africa - Thanks Frank
Hi Rob and Team,
Thought I’d post this to let you know of a serious problem I and several others discovered after installing Windows Server 2003 Service Pack 1, on a Windows 2003 Server, where .chm’s are stored for viewing and downloading through an Intranet.
CAUSE: Windows Server 2003 SP1 disables all Internet Security zones except the Local Machine zone. In this case, the Local Intranet zone blockage was causing the problem.
KB896054 gives a workaround.
This Microsoft Knowledge Base Fix requires the Windows Server 2003 SP1 machine to be adjusted from its Registry. NOTE: You cannot solve this problem by adjusting the Security Zones feature in Internet Options in Internet Explorer. It MUST be done via the Server’s Registry.
Applies to W2003 SP1 & WinXP SP2. See KB896358.
KB902225 gives the following workaround:
To resolve this problem, click to clear the Always ask before opening this file check box in the Open File-Security Warning dialog box, and then click Open. Alternatively, right-click the file that you want to open, click Properties, and then clickUnblock.
kb896905 describes a workaround.
This effects all of us who make uncompressed help in a frameset.
The HH ActiveX controls no longer opens the link files in the correct frame.
22-Oct-2005
What version of Internet Explorer and HTML Help were shipped with Windows.
Notes:
Internet Explorer is embedded in the HTML Help viewer and required to view content.
Early version of HH required you to install IE version 3.0 or greater. IE4 was required for DHTML & advanced scripting, and IE5 for XML support.
Modern Windows Operating Systems include Internet Explorer.
From http://support.microsoft.com/default.aspx?scid=KB;en-us;q164539
IE Version Info
IE Versions: From Shdocvw.dll Note: The Aboutbox and Registry may have a slightly different number.
Version Product -------------------------------------------------------------- 4.40.308 Internet Explorer 1.0 (Plus!) 4.40.520 Internet Explorer 2.0 (NT4) 4.70.1155 Internet Explorer 3.0 4.70.1158 Internet Explorer 3.0 (OSR2) 4.70.1215 Internet Explorer 3.01 4.70.1300 Internet Explorer 3.02 and 3.02a 4.71.1008.3 Internet Explorer 4.0 PP2 4.71.1712.5 Internet Explorer 4.0 4.72.2106.7 Internet Explorer 4.01 4.72.3110.3 Internet Explorer 4.01 Service Pack 1 4.72.3612.1707 Internet Explorer 4.01 SP2 4.72.3711.2900 Internet Explorer 4.x with Update for "Server-side Page Reference Redirect" Issue installed. 5.00.0518.5 Internet Explorer 5 Developer Preview (Beta 1) 5.00.0910.1308 Internet Explorer 5 Beta (Beta 2) 5.00.2014.213 Internet Explorer 5 5.00.2314.1000 Internet Explorer 5 (Office 2000) 5.00.2516.1900 Internet Explorer 5.01 (Windows 2000 Beta 3, build 5.00.2031) 5.00.2614.3500 Internet Explorer 5 (Windows 98 Second Edition) 5.00.2717.2000 Internet Explorer 5 with Update for "Malformed Favorites Icon" Security Issue installed 5.00.2721.1400 Internet Explorer 5 with Update for "ImportExport Favorites()" Security Issue installed 5.00.2723.2900 Internet Explorer 5.0 with Update for "Server-side Page Reference Redirect" Issue installed. 5.00.2919.800 Internet Explorer 5.01 (Windows 2000 RC1, build 5.00.2072) 5.00.2919.3800 Internet Explorer 5.01 (Windows 2000 RC2, build 5.00.2128) 5.00.2919.6307 Internet Explorer 5.01 5.00.2919.6400 Internet Explorer 5.01 with Update for "Server-side Page Reference Redirect" Issue installed. 5.00.2920.0000 Internet Explorer 5.01 (Windows 2000, build 5.00.2195) 5.00.3103.1000 Internet Explorer 5.01 SP1 (Windows 2000) 5.00.3105.0106 Internet Explorer 5.01 SP1 (Windows 95/98 and Windows NT 4.0) 5.50.3825.1300 Internet Explorer 5.5 Developer Preview (Beta) 5.50.4030.2400 Internet Explorer 5.5 & Internet Tools Beta 5.50.4134.0100 Windows Me (4.90.3000) 5.50.4134.0600 Internet Explorer 5.5 5.50.4308.2900 Internet Explorer 5.5 Advanced Security Privacy Beta 5.50.4522.1800 Internet Explorer 5.5 Service Pack 1 5.50.4807.2300 Internet Explorer 5.5 Service Pack 2 6.00.2462.0000 Internet Explorer 6 Public Preview (Beta) 6.00.2479.0006 Internet Explorer 6 Public Preview (Beta) Refresh 6.00.2600.0000 Internet Explorer 6 (Windows XP) 6.00.2800.1106 Internet Explorer 6 Service Pack 1 (Windows XP SP1)
Note1: Early versions of IE did not have a 4th version number, so be careful when reading version info from Shdocvw.dll that you don't turn say 4.70.1155 into 4.70.0.1155.
Note2: Notice that IE2 (shipped with NT4) displays the internal version number (4.4.0.520) in the about box. This can create some confusion as NT4 customers incorrectly report "Yes I do have Version IE4".
It may help to compare the HH files with WinHelp files.
Creating an install program to get HTML Help on a customers machine can be tricky.
HHUPD.EXE
hhupd.exe is a free download from the MS Web. Use it to upgrade or install HTML Help on a customer's machine. HH requires that IE3 or greater be install first. HH actually uses the IE layout engine. The IE browser executable itself is not required.
To install quietly use the switches "/r:n /q:a"
For hh < 1.3, for non-english PCs your installation program should detect and install the appropriate language version of hhupd.exe.
Installing HHUPD.EXE
Check the version of HH before installing. Version info can be read from file hhctrl.ocx.
hhupd.exe installs the ocx into the windows system folder. Note however that the ocx could also be installed in the windows ocx cache via an ActiveX download from the web. So the safest way to locate hhctrl.ocx is via the registry. The full path to hhctrl.ocx can be found in the default value of registry key:
"HKEY_CLASSES_ROOT\CLSID\{adb880a6-d8ff-11cf-9377-00aa003b7a11}\InprocServer32".
Installing Internet Explorer
Before checking for HH you should first check if IE is installed. Minimal requirement for HH is IE3.0 (not 3.02 as some think). If your help uses DHTML or XML then obviously IE4 or IE5 will be required.
The version of the installed IE can be read from the file Shdocvw.dll found in the windows system directory.
See the IE version information above.
IE Component Install
The easiest why to distribute IE to your HTML Help customers is under the IEAK Independent Software Vender (ISV) license. No reporting or strings attached. Fill in the registration form, download the required IE5 components and package it up. You must install IE5 in "passive" also known as "silent" mode which means no IE setup dialogs are to be shown.
License and registration: https://ieak.microsoft.com/en/License/isvlicense.asp
Note: The component install must be run in silent mode. This does not mean you try and hide the fact that you are updating their operating system. The IE browser is installed however the silent install mode does not create program folders and shortcuts. Netscape will remain the default browser if it was the default browser before the install.
IEAK IE5 ISV license agreement went public: 30-Jun-1999
For more info and fee silent installers go to
http://www.mvps.org/htmlhelpcenter/iesilent.htm
Reading Version Info
Programmers can read file version info using the functions GetFileVersionInfo() and VerQueryValue(). The version info is stored in dwFileVersionMS & dwFileVersionLS items of structure VS_FIXEDFILEINFO.
For download info please see the Web Links Page.
** The following discussion is pre-MS Help 2.0 collections.
There is a lot of interest in VS6 collections at the moment so here are some basic facts.
MSDN and MMC needed a way to "snap in" a CHM module at install time. So they built support for collections into HTML Help.
Each CHM should be compiled with binary toc, binary index and no merge information. The .COL file defines how the CHM modules are merged together at run time. HH API and HH.EXE can open COL files like a CHM.
Collections are not an open system at the moment. There is no documentation available.
The binary TOC used an MSDN collection is not compatible with some features of HTML Help 1.x. These include:
However, binary TOC does allow you to add browse buttons to the top of your HH window. See htmlhelp.h for button Ids. The current TOC loaded in the HH window is used as the browse sequence.
A recent post from Jeremy Griffith shows us how to make HH Workshop show a few extra settings such as the "Create .CHI Index file" -- In the Workshop Open dialog, type "I'm MSDN" (without quotes) and click Open. You also get Window Definition toolbar settings "Next, Previous, Zoom".
If you want to add your help into VS6/MSDN collections you do so at your own risk.
For more info see: http://www.codeguru.com/
Information on storage files and Workshop files.
Changes since HH 1.2x
MS HTML Help Web Site
http://msdn2.microsoft.com/en-us/library/ms670169.aspx
http://msdn2.microsoft.com/en-us/library/ms670169.aspx
Documentation Set
api.chm - Updated
hhaxref.chm - No change
htmlhelp.chm - Updated
viewhlp.chm - No change
A Japanese version of the documentation is also available.
Changes to Workshop
Workshop contains minor fixes plus no more 3001, 3003, 3005 warnings and no more crashes caused by spaces in URLs in large indexes or TOCs.
3001 - The file "%s" has a link to a non-existent file: "%s".
3003 - The HTML tag "%s" has invalid characters appearing before the closing angle bracket: %s
3005 - The HTML end tag "%s" has invalid characters before the closing angle bracket (>).
readme.txt -- Woops!! - An empty file.
The duplicate files htmlhelp.lib and htmlhelp.h in the root have been removed. Readme.htm has been replaced by readme.txt.
\redist\hhupd.exe -- Take care. Workshop installer appears to be using a new installation program which is not overwriting any previous versions of \redist\hhupd.exe. Several people have installed workshop over old installations and have noted that \redist\hhupd.exe remains at V1.2.
30-Jan: I just did a folder compare with a file sync program. Hhupd.exe is not the only problem. When the new install program installs over the top of a 1.2 workshop installation it also neglects to update 16 support DLLs in the HTML Help Workshop folder. So best to do a clean installation.
BTW: Great shareware program. Download FileSync from http://www.fileware.com/. Pointed it at my pure 1.3 workshop install folder and my overwritten folder. It showed me the 16 DLLs plus HHUPD.EXE that were different in date then allowed me to press a button and update the DLLs in my overwritten folder. Nice.
Changes to hhupd.exe
The 28 individual international versions of hhupd.exe have gone. Now there is only a single hhupd.exe that installs HTML Help runtime files plus 28 language resource DLLs (see below).
HH 1.3 now writes hh.dat (window position info etc) to the folder %windir%\Application Data\Microsoft\HTML Help\
Note: A newer version of HH is now available which fixes some of the above bugs. Unfortunately Windows 2000 system files can only be updated via an official W2K service pack.