• 0

Integrating CHM files into .NET applications


Question

I have created some help documentation for my company's software, using Microsoft Assistance Markup Language; I have compiled this using Sandcastle Help File Builder, resulting in a decent CHM help file.

Now, by default, on a Windows system, this type of file opens in Microsoft HTML Help. I would like to find a way to display the contents of this help file in our .NET C# application, preferably on a panel component. It would be nice if the sidebar could be included (or a sidebar of sorts) which allows the user to select the topic to view or search the help file for content.

The files behind the compiled CHM file consist of AML files, rather than HTML files (due to me using the MAML mark-up language and not HTML); I am unsure whether I can get to any HTML files which may have been produced as a result of the compile.

I imagine there may be some sort of ActiveX control for this? I couldn't find any when searching. If not, is there any other way I can display this help file on a panel, as described?

Any help would be much appreciated :happy:

3 answers to this question

Recommended Posts

  • 0
  On 15/06/2010 at 14:51, The_Decryptor said:

You'd need to read the contents out, transform it into HTML then use the IE control to display it.

It'd probably be easier to just use raw HTML files on disk, save reading it back out.

Thank you for the suggestion and I think that's the route I'll have to go down if there is no ActiveX control or .NET function/s; however, are we sure that there is no other way to integrate the CHM file itself into the application? I'm aware I can use the HTMLBuilder and link to the CHM file so it opens externally, but that isn't an option for us.

What made me optimistic was finding this: http://msdn.microsoft.com/en-us/library/ms644670(v=VS.85).aspx However, when trying to incorporate that ActiveX control into a HTML page, a message informs me "This operation can only function within HTML help."

I'm sure there would be a way I could convert my AML files into seperate HTML files and then obviously create my own 'Contents' pane in a sidebar etc, but it would be so useful if there was some sort of control to manipulate a CHM file.

  • 0

You can use IE control to show CHM, but this does not work with AML files, since IE does not know how to display them.

private void button1_Click(object sender, EventArgs e)
{
    webBrowser1.Navigate(@"mk:@MSITStore:C:\Application\Help\Help.chm::/Index.htm");
}

54432026.th.jpg

This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.