locked
Offer custom help-content RRS feed

  • Question

  • Hi,

    in my Addin for WHS I would like to be able to offer a custom help.

    I compiled a .chm file, but the question is: how do i show it?

    In the SDK it says passing true to HomeServer.Extensibility.IConsoleTab.GetHelp() indicates that I want to

    use my own help.

    I did so, but how do I call my file? Is there an event for clicking on the help button?

    Greets, Alex

    Sunday, June 10, 2007 2:37 PM

Answers

  •  

    Yeah, this will be the behavior in this release. If a third-party Add-In wants to launch its own help file on the client, it will need to use it's own way to deploy it on the client installation folder.

    Wednesday, June 13, 2007 8:13 PM

All replies

  •  

     

    Please call the following API instead:

     

    // Causes opening given help file on the machine running the console

    // If guidTopic==null, opens the default page

    // fileName refers to the installation directory of the WHS

    void OpenHelp(string fileName, string guidTopic);

     

     

    Monday, June 11, 2007 4:48 PM
  • Thanks,

    but I already tried this and came to the conclusion that when I want to use this API I have to copy my help files to each machine running the WHS Console. This is not very convenient, I think Smile

     

    One possible solution I thought would be to install the help file in a share on the server and then launch it from the client with the API via the UNC-path. However, it then opened the Help-Viewer but gave me a "Navigation Cancelled" error. It seems that the Viewer only allows to view locally stored help-files Sad

     

    There should be a way to either simply distribute ones helpfiles to each machine or to view them via the shares.

     

    Greets, Alex

    Tuesday, June 12, 2007 2:13 PM
  •  

    OK. Now I understand what you are talking about. It's an interesting idea for us to think about.

     

    Also, have you tried to place the help file on the server? It is supposed to open the one on the server if the client one is absent.

     

    Thanks,

    Fan

    Tuesday, June 12, 2007 8:34 PM
  • Hi,

    I have tried that now and it doesn't do what it is supposed to Smile

    If I launch the Console from the server then it will open the help-file (placed in the install directory on the server).

    But on the client it will only show the help if I also put the file in the install dir on the client.

    If the file isn't there then it simply does nothing Wink

    Greets, Alex

    Wednesday, June 13, 2007 3:45 PM
  •  

    Yeah, this will be the behavior in this release. If a third-party Add-In wants to launch its own help file on the client, it will need to use it's own way to deploy it on the client installation folder.

    Wednesday, June 13, 2007 8:13 PM
  • Hi,

     

    could anyone point me into the right direction? I'm trying to call my own help file, but I'm getting a "page not found" error, when the help file is shown.

     

    My call is:

     

    Code Snippet

     

    this.services.OpenHelp(sHelpFileName, null);

     

     

    Obviously something with the second parameter (string guidTopic) isn't right. What I want is just to show the default page of the .chm file.

     

    Thanks in advance for your help!

    Wednesday, August 20, 2008 10:17 AM
  • You'll have to enter the guid for the default page in your .chm file.  A null guid is not equivalent to opening the default page.
    Thursday, August 21, 2008 5:28 PM
  •  daviande wrote:
    You'll have to enter the guid for the default page in your .chm file.  A null guid is not equivalent to opening the default page.

     

    So it is a must, that one passes the corresponding guid? Is there a way to get the guid out of the .chm file programmatically, before showing it?

    Our help files are delivered by an external company, so if the .chm file changes because of some reason, it might be that the guid passed by my code isn't correct any more. So I would always have to double check my code to pass the right guid?! I think there has to be another way. Replacing an old .chm file with a new one is no big deal, but changing the code and recompiling it would mean to do some regression tests and so on. It cannot be the way to go, is it?

     

    EDIT:

    Please note the 2nd posting in this thread, where it is mentioned, that it should be possible to always open the default page:

     

    // Causes opening given help file on the machine running the console

    // If guidTopic==null, opens the default page

    // fileName refers to the installation directory of the WHS

    void OpenHelp(string fileName, string guidTopic);

    Friday, August 22, 2008 9:19 AM
  • I'm not sure passing null for the guidTopic is supposed to open the default page.  I don't see it mentioned in the docs:  http://msdn.microsoft.com/en-us/library/microsoft.homeserver.extensibility.iconsoleservices.openhelp.aspx.

     

    I do not know how (or if it is possible to) to determine the guid for a default page in a chm.  A search on msdn revealed:  http://msdn.microsoft.com/en-us/library/ms524255(VS.85).aspx.  But these api's seemed more about displaying a chm than inspecting them.

     

    You could just manually open a chm file yourself and it would be displayed on the console.  Also is there any reason why the default guid for the chm would change?  I don't have much experience working with chm's.

     

    Dave

    Friday, August 22, 2008 8:59 PM
  • Hi!

     

    The parameter guidTopic is simply the filename of the HTML-page inside the chm. You can open the desired page in Help Viewer, right-click and select Properties.

    You will see the URL of the page, e.g. WHS_ConsoleHelp.chm::/html/f438575f-0cd9-4c99-b153-aef2a8fbda88.htm

     

    If you want to open that page, you simply call:

    Code Snippet

    consoleServices.OpenHelp("WHS_ConsoleHelp.chm", "f438575f-0cd9-4c99-b153-aef2a8fbda88.htm");

     

     

    If you compile your own help-file, remember that the underlying function expects the HTML-pages to be in a subfolder /html !

     

    Regards, Alex

    Saturday, August 23, 2008 12:52 PM