Neil's News

Microsoft Help

4 December 2004

Microsoft's help compiler used to be based around an RTF document marked up with various bizarre codes and footers. It was fragile, difficult to use, and extremely buggy. I built Recog's help system with it in 1996, then shunned it for the next eight years. However, it seems that during Microsoft's great Internet U-turn they replaced their weird RTF-based system with an HTML-based system. The new help system is actually quite good.

What made me revisit Microsoft's help system was that the two easiest to learn programming languages from the recent 'Polyglot' series used MS Help. POV-Ray and PHP both offer help as compiled CHM files -- in addition to the usual HTML, PostScript, TeX, and PDF formats. This made a significant difference. CHM is very quick to load, allows any-word searches through the entire content, handles Boolean and iterative searches, provides good navigation with two-way synchronisation between the tree frame and the content frame, is distributed as a single file instead of an entire directory, uses compression to keep the file size down, and best of all uses (almost) standard HTML&CSS content. The compiled file format is well documented, which means there are viewers for Linux and MacOS. It's not every day that I'm impressed with something from Redmond.

[Note that I'm praising the compiled help files themselves. The application that actually does the compiling is a buggy piece of garbage that can be crashed in four clicks (New > Index > OK > Sort A-Z). But the general public doesn't see that.]

In order to explore the new system, I took Recog's old RTF help and converted it into the new HTML help [src]. There was an automated tool to do this, but that would have defeated the purpose of it. Besides, I don't trust computers to write HTML. Recog was built in VB 3 and doesn't have the APIs to call the new help, so this was purely a learning exercise. But I'm sure it won't be too long before I encounter an application which needs its help system upgraded.

Update: A frightening thought just occured to me. I could probably recode Recog from VB to JavaScript and embed it within its own help file...

< Previous | Next >

Legal yada yada: My views do not necessarily represent those of my employer or my goldfish.