CHHCtrl is an MFC class designed for placing an embedded help window inside of a dialog, property sheet, or window. The CHHCtrl class hosts shdocvw directly rather then using the HtmlHelp API. This bypasses the bugs in embedded help introduced with the version of HTML Help released with Visual Studio 6. It also gives you access to all IWebBrowser methods which means you can change HTML files on the fly -- for example, showing the actual key associations currently in effect for a program rather then the default set it ships with.
This project also includes a CItsFile class that you can use for reading any file from a CHM (or ITS) file. It is used by the CHHCtrl class for convertting mapped ids into URLs, but you can use it to read any kind of data that is stored in the CHM file.
Because of additions to MFC that CHHCtrl relies on, this project requires Visual Studio 6. You may be able to port it to an earlier version of Visual Studio, but expect a fair amount of work.
The zip file includes additional information (chhctrl.htm) covering how to add CHHCtrl into your project, and documents other functionality that CHHCtrl provides.