INI files are text files with CRLF line endings. They are divided into uniquely named sections. The beginning each of section is denoted by a line of the following form: "[section type]" where section type is a series of words. Each section type is followed by lines up to the next section that specify data for that section and each different section type may have a different format.
There are two main types of format following the section type: Each line is variable = value[, value]… Each line is a just an EOL terminated string.
Also any line beginning with a semicolon (;) is a comment and will be ignored. NOTE that the author (who has since left MS) of MS' chm compiler (HHC & HHA) has said that it is only safe to put comments before any section names have been specified (ie at the start of the file). Tests with HHW 1.3 (HHA Version 4.74.8702), however indicate that it is safe to put comments on any line. This may not be true for older versions, however.
The following variables are used below in the description of values in the different format descriptions:
Yes|No
(0|1|2|3|4|5|6|7| 8|9)…
0x(0|1|2|3|4|5|6| 7|8|9|a|b|c|d|e| f|A|B|C|D|E|F)…
hex number|decimal number
Any character (usually alphanumerics plus underscore) repeated up to the terminator (usually EOL, also '=' or '"')
Similar to string, but a file with the same name should exist
This is documentation on the HHP format used by MS' HTML Help Workshop (HHW) to compile CHM files. There are various titbits of info out there on the web, in Usenet & in the docs for various programs. So far I have not found a complete reference for this format.
This is file has the INI format.
HHW dies if any line is 1024 or more characters (not including CRLF).
This is a variable=value section sorted by variable name (using memcmp), except for Custom tab, which occurs at the end.
Table 5.48. Explanations for all the different [OPTIONS] that are displayed and preserved by HHW.
This is a variable=value section sorted by order of addition.
Each line has the following format:
string =" string ", " path ", " path ", " path ", " path ", " path ", " string ", " path ", " string ", number , number , [ number , number , number , number ], number , number , number , number , number , number , number
Table 5.49. Summary of the arguments for each [WINDOWS] entry.
Table 5.50. Buttons to put in the HH toolbar.
Value | Explanation | Recommended setting |
---|---|---|
0x00000002 | Hide/Show button hides/shows the navigation pane. | On |
0x00000004 | Back button. | On |
0x00000008 | Forward button. | On |
0x00000010 | Stop button. | On |
0x00000020 | Refresh button. | On |
0x00000040 | Home button. | On |
0x00000080 | Next button. Not implemented by HH. | Off |
0x00000100 | Previous button. Not implemented by HH. | Off |
0x00000200 | Notes button. Not implemented by HH. | Off |
0x00000400 | Contents button. Not implemented by HH. | Off |
0x00000800 | Locate button. Jumps to the current topic in the contents pane. | On |
0x00001000 | Options button. | On |
0x00002000 | Print button. | On |
0x00004000 | Index button. Not implemented by HH. | Off |
0x00008000 | Search button. Not implemented by HH. | Off |
0x00010000 | History button. Not implemented by HH. | Off |
0x00020000 | Favorites button. Not implemented by HH. | Off |
0x00040000 | Jump 1 button. Customisable text - Arg 7. | Either |
0x00080000 | Jump 2 button. Customisable text - Arg 9. | Either |
0x00100000 | Font button. Changes the size of the text shown in the IE HTML display pane. | On |
0x00200000 | Next button. Jumps to the next topic in the contents pane. Requires "Binary TOC=Yes". | On |
0x00400000 | Previous button. Jumps to the previous topic in the contents pane. Requires "Binary TOC=Yes". | On |
0x???0000? | The rest of the buttons either do nothing or are unknown. If you find out what others do please tell us. |
Table 5.51. Navigation pane styles.
Value | Explanation | Recommended setting |
---|---|---|
0x00000001 | Automatically hide/show tri-pane window: when the help window has focus the navigation pane is visible, otherwise it is hidden. | Off |
0x00000002 | Keep the help window on top. | Off |
0x00000004 | No title bar | Off |
0x00000008 | No default window styles (only HH_WINTYPE.dwStyles) | Either |
0x00000010 | No default extended window styles (only HH_WINTYPE.dwExStyles) | Either |
0x00000020 | Use a tri-pane window | On |
0x00000040 | No text on toolbar buttons | On |
0x00000080 | Post WM_QUIT message when window closes | Off |
0x00000100 | When the current topic changes automatically sync contents and index. | On |
0x00000200 | Send tracking notification messages | Off |
0x00000400 | Include search tab in navigation pane | On |
0x00000800 | Include history tab in navigation pane | Off |
0x00001000 | Include favorites tab in navigation pane | On |
0x00002000 | Put current HTML title in title bar | On |
0x00004000 | Only display the navigation window | Off |
0x00008000 | Don't display a toolbar | Off |
0x00010000 | MSDN Menu | Off |
0x00020000 | Advanced FTS UI. | On |
0x00040000 | After initial creation, user controls window size/position | On |
0x00080000 | Use custom tab #1 | Off |
0x00100000 | Use custom tab #2 | Off |
0x00200000 | Use custom tab #3 | Off |
0x00400000 | Use custom tab #4 | Off |
0x00800000 | Use custom tab #5 | Off |
0x01000000 | Use custom tab #6 | Off |
0x02000000 | Use custom tab #7 | Off |
0x04000000 | Use custom tab #8 | Off |
0x08000000 | Use custom tab #9 | Off |
0x10000000 | The window type has a margin | On |
0x?0000000 | The rest of the navigation pane styles either do nothing or are unknown. If you find out what others do please tell us. |
This is a list of CHMs to merge this one with. See the Merge Files feature in the features list for more information. Help 2 only used Collections to merge CHMs. HHA Version 4.74.8702 will crash if there are more than 1148 entries in the merge files list (could be a mem thing, but probably not). Note that the internal file formats only allow storage of 1004 entries in the internal binary merge files list. Any lines that begin with a comment character (;), after any whitespace, are ignored. Any whitespace at the end or start of a filename is stripped away.
This is a list of files that should be compiled into the CHM by the compiler. Files linked to from the TOC or Index or other HTML files will also be compiled into the CHM. It is known that Help 2 only compiled files listed to be put in the CHM.
This is a list of text files and header files that contain the text for various popups that can be displayed using the Popup command of the HH ActiveX control.
It is unknown how this section is formatted since the current version of HHW refuses to output anything in this section. I guess that the help viewer doesn't yet implement this feature. If you find a past or future version that does output this section please let us know.
This is a variable=value section sorted by the numerical value of the variable.
Each line has the following format:
number|string = path ; This is a comment or #include path
HHS files are used by MS' HTML Help Workshop (HHW) to compile samples into .chm files. At the time of writing there was a single titbit of info out there on the web.
Below is an example of a hhs file
[Example1] ID=Example1 DistributionMediaDestination=MyProject\Example1 DefaultClientCopyDestination=\MyProject\Example1 SourceLocation=Samples\Example1\