2 Replies Latest reply on Feb 17, 2009 3:36 PM by Amebr-ke0mH4

    Directly Accessing Help Page in Merged Help

      I am using a button on a C# Windows Form to dislpay a specific page in a CHM file created by RoboHelp. This all worked fine before we started merging CHM files. Now I can only open a specific HTM file in the parent CHM. If I try to directly access a page in one of the merged CHM files I get page not found.

      Ex: Using the code sample below: DisplayHelpTopic( "Parent.chm", "PageInParent.htm" ) works fine.
      These don't work. I get page not found:
      DisplayHelpTopic( "Parent.chm", "PageInChild.htm" )
      DisplayHelpTopic( "Parent.chm", "Child.chm::/PageInChild.htm" )
      This works, but my TOC only displays entries in that child CHM file. I do not get the merged TOC:
      DisplayHelpTopic( "Child.chm", "PageInChild.htm" )

      I've look at some of the HTML pages (using View Source) that HTML link from Parent to Child, and the links in the <a href=""> statements are simply of the format PageInChild.htm. Also verified that I the link names are correct using this method.

      What can I do to link directly to a Child CHM file and still get the merged Table of Contents? Is it a problem with the way I reference the nested HTML page, or a problem with the child TOC itself?

      Note that I am on the development side of the fence and the CHM files are being provided to me by our documentation team. Some of my RoboHelp terminology may not be accurate.

      Thanks in advance for any help.

      C# code follows. This is inside of our base Form class.
      The HH1Interop wrappers come directly from Microsoft: http://support.microsoft.com/?kbid=317406
        • 1. Re: Directly Accessing Help Page in Merged Help
          Pete Lees Level 2
          Hi, Michael, and welcome to the forum,

          The simpler solution would probably be for your writers to modify each child .chm file so that it looks and acts like the parent .chm file. This means:

          1) Changing the project settings of each child .chm file so that all the other .chm files in the collection are merged into it. This allows the user to view the consolidated index from any child .chm file, and conduct searches across all the files. See the section called "Step 2 - The [MERGE FILES] statement" in this article:


          2) Changing the window properties of each child .chm file so that the TOC displayed is that of the parent. See the section called "Step 3 - Slave Windows Definitions" in the article above.

          The more complicated solution is to channel all the help calls through the parent .chm file, using the techniques described here:


          Or perhaps you can adapt the HH_DISPLAY_TOPIC method that I've described here:


          • 2. Directly Accessing Help Page in Merged Help
            Amebr-ke0mH4 Level 2
            Be careful with option 1. When we upgraded from RH9 to X3 this functionality was broken in Robohelp, and we got nasty recursive TOCs. There was a workaround of only doing the compile through HTML Help Workshop, but that meant we couldn't use conditional tags or other nifty RH features. We ended up changing our process to #3 - channelling all help calls through the parent chm.

            It's possible this has been fixed since X3, but we haven't tried it as our system works and we didn't want to get the developers to change the product again.

            I would recommend a small test with only one or two projects, rather than your full help system to start with.