6 Replies Latest reply on Aug 3, 2007 11:02 AM by sstewart-lbmx

    Predefining Map IDs Prior to Help Creation?

      We're looking to streamline our help integration process for in-program, window-level help. The way we would like to do this is to have the developers assign Map IDs in the code right from the outset in the development process, before the help is written. However, doing so would mean that any map file I get from them will not include topic titles. Is this a problem?

      (The advantage is that by using this system I could go through the application screen by screen during the testing phase and determine which screens do not have associated help topics.)

      If we can in fact implement this system, what does the developer need to give me? What should the file content look like?
        • 1. Re: Predefining Map IDs Prior to Help Creation?
          Level 2
          No, this is not a problem and, in fact, HTML Help was designed to do this. The developer will provide you with an .hh file (or just with an .h suffix). This file will be a text file with the structure #define IDH_HELPID xxxxxx, where xxxxxxx is the map number and IDH_HELPID is some (hopefully helpful) help ID.

          As the help author you do need to connect these IDs to your topic file names. This is done in the alias file (.ali), which is also a text file with the format IDH_HELPID=Topicfilename.htm. You can certainly test the app without actually having it hooked up to your topics. You can do this with a tool such as RoboHelp's BugHunter. Running along side the app, it will report the map number requested everytime you press F1 or click a help button in your application.

          You could also create the alias file in advance of creating the topics. Of course, you would get a "Page cannot be displayed" error if the topic had not yet been created.
          • 2. Predefining Map IDs Prior to Help Creation?
            sstewart-lbmx Level 1
            Thanks, John. I think that ought to about do it.

            I've got it mostly working, but can't seem to get BugHunter to give me any feedback whatsoever. I think this may be because the developer has already integrated the help with the application (?), but I'm not sure. I don't understand why BugHunter isn't reporting the Map IDs of the topics the application is calling, and it doesn't seem to be outputting any errors, either.
            • 3. Re: Predefining Map IDs Prior to Help Creation?
              Level 2
              I have usually not had any problems with BugHunter. But my usual caveat applies here - I use RH v. 2000. Another tool you can use is Microsoft's Help Workshop. It will also intercept help messages from applications.

              Before trying anything else, you have your application and BugHunter running simultaneously? And do you have your RH project open? Do you know what command the developer is using to call help? You should get something with the following format from BugHunter:

              CHM File Name: C:\PROGRAM FILES\DSQUARED\LATEST BETA\delight.chm
              Topic: Welcome.htm
              Command: HH_HELP_CONTEXT
              Map Number: 0
              Result: Topic launched.

              I have, on occasion, had neither BugHunter nor Help Workshop respond and the reaon has something to do with the fact that I run numerous, unregistered to Windows, beta and release versions (all with the same filename) of our software on one computer. I have always been able to fix it if I delete the hh.dat file. Something in that file (which seems to have a highly secretive format) interferes with help calls if you have changed directories of your app without letting Windows know.

              • 4. Predefining Map IDs Prior to Help Creation?
                sstewart-lbmx Level 1
                Hi, John,

                FWIW, I was running the application and RH simultaneously with the project open. I don't know how exactly the developer is calling the help, although he says he has set the path to the .chm file and set the help contextid to the map ID from the help project on each form. I don't quite know what he means by "form" in that context. This is Visual Basic he's using.

                I can't find any file as "hh.dat" on my system, but I've got the HTML Help Workshop giving me messages that look like

                HH_HELP_CONTEXT: Cannot find 50001 in mk:@MSITStore:C:\Program Files\[Application]\Help\MainHelp.chm

                I'm waiting for the developer to tell me if this is useful to him or not. :)

                • 5. Re: Predefining Map IDs Prior to Help Creation?
                  Level 2
                  That is a great message because it tells you that

                  a) Your developer is calling HH_HELP_CONTEXT (The right call for map numbers)
                  b) The map number is 50001, and
                  c) Your help file, "MainHelp.chm," does not contain a topic linked to map number 50001.

                  What you should do from here is to assign a topic to that map number. The Edit MapIDs option in your project should allow you to do this. Then, after you compile, the application should fire that topic.

                  Why aren't you getting the same info from RH BugHunter? I don't know. I have only used the newer versions of RH briefly as trial versions.

                  • 6. Re: Predefining Map IDs Prior to Help Creation?
                    sstewart-lbmx Level 1
                    Thanks, John. I had a talk with the developer and everything's working just fine now. Well, except BugHunter, and he's pretty sure the reason it's not working has something to do with the calls he's using to invoke the help.

                    Thanks so much for your assistance.