The CHM viewer component is not properly registered on your PC
The system file \system32\hhctrl.ocx may get missing, corrupted, or unregistered.

Solution: Run “regsvr32 hhctrl.ocx” command from the command line to register the library in the system.

Your CHM files are stored in the folder with ‘#’ (hash) character in the path
Many C# developers discovered that their documentation and e-books in CHM format cannot be read because they were storing their CHM files in the directories like ‘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.

Solution: Remove the ‘#’ (hash) character from the directory name. Also avoid using ‘?’, ‘&’, and ‘+’ characters in directory names.

1. Double-click the .chm file.
2. In the Open File-Security Warning dialog box, click to clear the Always ask before opening this file check box.
3. Click Open.

Method 2

Right-click the CHM file, and then click Properties.

Click Unblock.

Double-click the .chm file to open the file.