This page explore the links within a Help Viewer help topic. Before starting you may want to read: Help API, F1 & URLs See also h3m.js Script File
Help Library AgentIn MS Help 1.0 each topic is given a unique help ID and optionally a unique F1 context Id. These Ids are used to link between topics.
<meta name="Microsoft.Help.Id" content="SomeUniqueId" /> <meta name="Microsoft.Help.SelfBranded" content="true"/>
When a .mshc help file is installed, it is copied into the Help Library store exactly as you authored it. Yet when you do a "View Source" (browser) you will see your topic source heavily modified. The extent of the modifications depend on whether the topic is marked as SelfBranded or not.
Agent is responsible for fetching content from the store, modifying it and passing it to the help viewer. Some modification are done via branding package transforms. Others appear to be done directly by the agent application.
<a href="ms-xhelp:///?id=xxx"> LinksThis simple Id link is the most common way of linking between help topics. Agent uses a transform to expand <a href="ms-xhelp:///?id=xxx"> links to the full URL at render time.
So tags like this in your source code...
<a href="ms-xhelp:///?id=RWCTest1"> Or like this... <a href="ms.help?id=RWCTest1"> <a href="ms.help?method=page&id=RWCTEST1&product=VS&productVersion=100&topicVersion=&locale=EN-US&topicLocale=EN-US" target=""> If you do a "View Source" in your browser and that's what you'll see.
Advantage of Transform:
Disadvantage:
ms-xhelp:///? VS ms.help?Not sure that I see any obvious advantage in using one or the other. Differences:
One small advantage of ms.help? link over ms-xhelp:///? is that Agent wont modify ms.help? links (except for <a href="ms.help?id=xxx"> - see above). So your scripting is simplified a little. Making a Redirection LinkThese solutions work for both SelfBranded=true and SelfBranded=false.
Here's a redirection link using a help Id (Page API call). Insert this anywhere in the topic header.
(see test topics testdoc3.htm and testdoc4.htm -- attached) <meta http-equiv="refresh" content="0; url=ms-xhelp:///?method=page&id=RWCTest1&product=VS&productVersion=100"> or use the "ms.help?" form if you want
(see test topics testdoc7.htm and testdoc8.htm - attached) <meta http-equiv="refresh" content="0; url=ms.help?method=page&id=RWCTest1&product=VS&productVersion=100"> Notice I had to specify target catalog but not the catalog locale ("&locale=en-us" parameter). MS HV 1.0 is smart enough to work out the locale (for both Page and F1 API calls). Which is good because your customer could have installed say French VS and help catalog = VS\100\fr-fr instead of VS\100\en-us.
You could also use the "F1" API call. Again locale is not required.
(see test topics testdoc5.htm and testdoc6.htm - attached) <meta http-equiv="refresh" content="0; url=ms-xhelp:///?method=f1&query=RWCTest1&product=VS&productVersion=100"> or use the "ms.help?" form if you want
<meta http-equiv="refresh" content="0; url=ms.help?method=f1&query=RWCTest1&product=VS&productVersion=100"> Advantages
Disadvantages
April-2010 - h3m.js
|
FAQ >