Unblock Compiled HTML Help files (.chm)
Since CHM consists of compiled HTML files, it can contain harmful scripts. That is why Windows security updates may block its content.
How to Unblock a CHM File
If you can open the Help file and see navigation (table of contents) in the left pane, but the right pane is empty or shows a warning message, try this:
- Download the CHM and store it to a local drive on your PC. Do not store it on a network drive.
- Right-click on the CHM file in Windows Explorer and select Properties.
- On the General tab of the Properties dialog, click Unblock, then click OK.
Other Symptoms and Solutions
SECURITY WARNING: "The CHM viewer component is not properly registered on your PC."
If you see this warning, clear the checkbox next to “Always ask before opening this file”.
SECURITY WARNING: "The system file
\system32\hhctrl.ocx is missing, corrupted, or unregistered."
System files may sometimes “unregister” themselves when you install Windows service packs. To resolve, run regsvr32 hhctrl.ocx in the command line (Start > Run) to register the library in the system.
Your CHM files are stored in the folder with '#' (hash) character in the path.
C# developers may discover that their documentation and e-books in CHM format cannot be opened because they store their CHM files in directories such as 'C:\E-books\C#\'. The hash character signifies an anchor in HTML so the CHM viewer fails to resolve the path properly and to retrieve the content. To resolve, remove the '#' (hash) character from the directory name. Also avoid using '?', '&', and '+' characters in directory names.
The CHM file is in the restricted Internet zone
When a CHM file that you are trying to access is stored remotely, e.g. on the network drive or on a remote server, you may also have problems. If the associated security zone is restricted, then CHM files won't be displayed as well. To resolve, modify the ItssRestrictions registry entry to enable a specific security zone.
- Run 'regedit' command from the command line.
- Locate and then click the following subkey:
- Note: If this registry subkey does not exist, then create it.
- Right-click the ItssRestrictions subkey, point to New, and then click DWORD Value.
- Type MaxAllowedZone, and then press ENTER.
- Right-click the MaxAllowedZone value, and then click Modify.
- In the Value data box, type a number from 0 and 4, and then click OK. For most CHM files, the value of 1 should be enough to allow use without opening up access from/to remote CHM files in email/internet locations.
- Quit Registry Editor.
Warning: Enable only those security zones that you trust. Do not enable security zones about which you are not sure.