Ok technically - it is possible, but now that I tell you how - you will
realize how much of a pain it will be to set it up, and the even more pain
maintaining it.
So here you go ---on your computer you will find a file called, C:\Program
Files\MSDN\2004JAN\1033\msdn.hxt. (Or something similar). That is basically
an XML file, that any HTML help collection - what MSDN is - would use to
store it's tree.
If you closely observe that tree, the node ids have a URL in them, so for a
tree in
\ComponentDevelopment\Knowledgebase you would have,
<?xml version="1.0" ?>
- <HelpTOC DTDVersion="1.0" PluginStyle="Hierarchical" PluginTitle="MSDN
Library-January 2004">
- <HelpTOCNode Id="2" NodeType="Regular" Title="Component Development"
Url="/dnanchor/html/ComponentDevelopment.htm">
- <HelpTOCNode Id="5" NodeType="Regular" Title="Knowledge Base">
<HelpTOCNode Id="6" NodeType="TOC" Url="enu_kbadobj" />
Or something similar.
Now when you happen to click on any of those trees, you would load URL
which looks like -
ms-help://MS.MSDNQTR.2004JAN.1033/enu_kbadobj/adobj/818518.htm, in other
words, "adobj/818518.htm" comes from a URL called enu_kbadobj, which is
interpreted by your operating system/IE as a ms-help kind of URL, which
guess what .. is represented as two files on your machine viz -
enu_kbadobj.hxi AND
enu_kbadobj.HxS
And look deeper into it, hxi is your index, which is the contents of the
tree (indivdual knowledgebase articles), and xS is the actual html pages.
Now let us take this paradigm to the web based htm msdn library -
and here is where the problems start becoming evident.
Problem #1 - The KB database is at different places in the MSDN library, so
there isn't a direct one to one mapping of structures.
But lets compare this article on our local MSDN, with the online equivalent
MSDN article
<<----- this much comes from your hxt file ------->>/<<---- and this from
within the hxi --->>
ms-help://MS.MSDNQTR.2004JAN.1033/ActiveX/workshop/components/activex/intro.
htm
http://msdn.microsoft.com/workshop/components/activex/intro.asp
WOW .. is the one to one URL mapping a co-incidence??? I think not !!!
So for you to have an Online MSDN instead of local MSDN, you would need to
a) Edit your .hxt file, to point to correct URLs - as is in the online
MSDN - and maintain it as MS changes the online structure (boy that could be
a royal pain). (Probelm #2)
b) Write an application that makes ms-help:// registered URL not work as
html help intends it to, but as you need it to (viz. go online, and convert
it to http:// <<similar address>> // this will obviously break anything that
uses html help, so good luck maintaining that. (Probelm #3)
c) And then remember, that context sensitive help will be a whole another
can of worms to deal with .. i.e. when you hit F1, the compiled HTML file
has anchors in it that open it right there and then based on what your
active focus was - hope that works in an online environment. (Probelm #3)
In short, it's not easy to do it
.
But now armed with this knowledge, you could now create your own help
system, that is online, and is hot linked to a windows forms application
that is distributed by your company - NOW THAT WOULD BE AWESOME HUH? I've
actually done that for one of the companies I worked for, and the client
wanted to kiss me after that. (well almost). Remember you would have to
register a new url type (can't use ms-help://), but you could use
malik-help:// .. hehe !!
Hope this was helpful dude, it took a long time typing this !!!!!
- Sahil Malik
Independent Consultant
You can reach me thru my blog -
http://dotnetjunkies.com/WebLog/sahilmalik/