HTML Help features

Preface

Many of the features of HH are incomplete in v1.x and it is hoped that the new Help 2 system, expected in 2003, will provide the complete versions of thse features, allowing for a richer documentation system.

This is a menu that provides all the same features as the toolbars, with a few more features; some stuff from IE, Define Subset & in the Help menu are MSDN Library Help & MSDN Online, which jump to a topic in the MSDN and to http://www.microsoft.com/msdn/. The other menu items are all accessible from other parts of the UI such as the toolbar & context menus and so the only reason for an author to include the menu would be to let the user access the Define Subset command, which can be useful for documentation containing information on a diverse range of topics, especially for the index & search tabs. The two MSDN menu items (that do nothing outside the MSDN) could confuse the user, however, and they may be removed through the use of an external dll using the Win32 menu manipulation functions. An example of this technique can be found at ???. It is probable that MS will fix this feature for Help 2.

Toolbar

The toolbar contains several very useful buttons and some that don't yet do anything - they just sit there looking stupid or do something one of the other buttons does. The useful buttons include: Hide/Show, Back, Forward, Stop, Refresh, Home, Locate, Options, Print, 2 jump buttons, Font, Next and Previous. Most of the buttons do what would be expected from their text/icons. The 2 jump buttons use predefined icons (a page with a world on it & the curvy Windows logo overlaid on a globe) and allow the help author to customise their jump location and text. The Previous and Next buttons jump to the previous and next topics according to the Contents tab.

The navigation pane is to the left of the content pane & has several different tabs in it. These include Contents, Index, Search, Favourites, History (empty), Author (hinted at in htmlhelp.h, but currently can't seem to get it) & custom tabs.

Contents

The Contents tab is a tree structure of titles. Each title may contain other titles and or link to a topic file. It is used by authors to list all the contents of a help file.

Index

The Index tab is also a tree structure, but it usually is a list of words linked to topics. It is used by authors to list all concepts in the help file & is usually linked to context sensitivity.

The search tab allows users to search topics for keywords. The advanced mode allows a user to search using boolean, wildcard, and nested expressions. A user can also limit the search to previous results, match similar words, or search topic titles only.

Favourites

This is a list of bookmarks the user can add topics to & remove topics from. It is stored in the hh.dat file.

Custom tabs

These are currently used in MS Office for the Answer Wizard and "enhanced" Index tabs, but they don't seem to work in HH & seem to require an different program provided by MS Office. No doubt MS has actually completed this technology but is withholding it from use by the general public, who rely on HH. Why they would do this is left as something for the reader to think up. Strangely enough it is possible to put custom tabs into the CHM, but the viewer architecture must not yet be complete since they are not displayed. Hopefully MS will provide this functionality in Help 2.

Information types

Information types are only semi-implemented in HH, but it is probable that MS will provide this functionality in full in Help 2. Information types allow authors to categorize topics and let users see only the topics that apply to them. For example topics might be classified on the basis of user experience, giving the category "User Experience" and the information types Luser, Hacker and Guru (for example). The user would then choose which topics to view according to their experience level.

Text popups

Popups are used mainly in dialog boxes when users request more information on a single control, usually using a right-click or a "What's This?" button. The popup mechanism provided by HH is limited to text popups only, while WinHelp popups were RTF like the rest of its topics. Hopefully Help 2 will provide the flexibility of HTML popups.

Context-sensitive help

This allows a program to open the topic in its help system that relates to a specific part of its user interface. For example all dialogs might have a Help button, which would display the topic related to that dialog when pressed.

Subsets

These are present in the MSDN, but not present in HHW or documented in the HHW help. The mode of their production is currently unknown. They seem to work similarly to information types. The user selects an active subset and only that subset is displayed in the contents and searched using the search tab. The index items that are not in the subset are grayed out & disabled. They only work for collections and are stored in CHS files.

Samples

This is another MSDN thing. It is only minimally documented by Olivier Sannier and in this document. Samples are sets of files (usually code) that can be provided inside or outside the CHM and copied to the users system through the HH ActiveX control.

Merged help

Merged help allows authors to separate their content into different files and have the content merged at runtime by the HH viewer into one cohesive unit, allowing several CHM files to act as one CHM. There are two mechanisms used with CHMs to achieve this; collections and CHM-based.

Collections

This involves an XML file with an extension of .col that contains information on the files to be merged at runtime. The advantage of this is that since the collection file is XML it can be easily modified to accomodate new pieces of documentation.

Merge Files

With this mechanism instructions in a CHM indicate that it should be merged with other CHMs. The advantage of this system is that modification is difficult. The inability to modify CHMs is useful where there is no need to change which files are merged very often.