Help2 Viewer

The Help2 Viewer application allows you to view and navigate HTML Help 2 namespaces. Visual Studio and MSDN use HTML Help 2 as a help system, it is a radical departure from the older HTML Help 1.x system of CHM files and in my opinion much superior in that you can manipulate it through the IHx group of COM interfaces. With the older CHM format direct manipulation and display within your own program was difficult to achieve without reverse engineering the CHM format. Unfortunately Microsoft has decided that HTML Help 2 will not be publicly available and will primarily be used only in their own help systems, using DExplore as the display engine. Because of this there is virtually no documentation on the IHx interfaces. Using OleView it is possible to build header files of the interfaces and ActiveX controls for Help2, once the header files are built it takes a bit of detective work as well as trial and error to figure out how to use Help2. This is my attempt, in order to assemble the project you will require the headers from my header project, version 01.30.02 or greater, the Help2 headers are included in the collection.

Help2 Viewer is a light weight viewer meant to replace DExplore for small IDE platforms, allowing the relevant functionality of DExplore in an open source, freely distributable package.

Feature list:

WebBrowser2 MFC web browser control using ATL.
Fast index list using the IHxIndexView control
Contents using the IHxTreeview control
Keyword search
Synchronize contents with current page
Text search displaying the first fifty items found
Real time collection switching
Easy command line search and collection switching
Fully Unicode application
Written entirely in GoAsm using the header project and RadASM IDE

Please note that this code is Copyright Edgar Hansen 2009, and may be freely used and distributed as part of any package including commercial software, as long as the source of the code is not misrepresented. There is no need to ask permission or to acknowledge me. For those who wish to release any code contained here in an application licensed under the GPL  I would ask that you not do so.