Click here to Skip to main content
65,938 articles
CodeProject is changing. Read more.
Articles
(untagged)

Help File Integration in Windows Mobile Pocket PC

0.00/5 (No votes)
8 Jan 2009 1  
Help file integration with Windows Mobile applications programmatically.

HelpIntigration

Introduction

This article is helpful for Windows Mobile, Smart Device application developers, regarding how to integrate help files programmatically to a targeted device. To develop help files, we have to follow some steps which I have described below.

The .NET Compact Framework allows users to register custom application Help files in Pocket PC's Help systems. It provides access to the Windows CE Help program using peghelp.exe, to display custom application Help files within Windows Mobile Pocket PC applications.

The Solution

How can we create and integrate a Help files in Windows Mobile Pocket PC applications? To create and integrate a help file in Windows Mobile Pocket PC applications, we will follow the steps given below:

Step 1

First, we will create a help file including the help topics that we want to show in our application. Create an HTML file using some specific tags. For example, we are creating "DEMO-HELP.htm" to be integrated as a Help file in our application.

HelpFileIntegration/html_help_file.PNG

Note: you can find a sample HTML help file to download from the top of this article.

Step 2

We now have to put this (DEMO-HELP.htm) file in our Windows Mobile Pocket PC device/emulator's \windows directory.

Step 3

Step 3 is achieved programmatically.

The Help file needs to be registered in Pocket PC 's Help File System. To install your Help file on the Pocket PC Help Systems, we have to create a shortcut file in the \Windows\Help folder. Create a shortcut to "DEMO-HELP.htm" in the \Windows\Help folder.

How to create a shortcut to "DEMO-HELP.htm"?

Create a text file on you PC and write 16#\windows\DEMO-HELP.htm to it and save this file using the same name as the Help file with a .lnk extension (DEMO-HELP.lnk). Now, you can put it in the \Windows\Help folder.

You can now check out the application Help integration successfully with the device help system. Tap Help from the Start menu. If your Help is not already displayed, choose All Installed Help from the View menu. Your Help should be included alphabetically in the list.

Code snippet for step 3

private bool CreateLinkHelpFile()
{
    bool isLinkFileCreated = false;
    try
    {
        if (!System.IO.File.Exists(LINK_HELPFILE_PATH))
        {
            System.IO.StreamWriter sw = 
                    new System.IO.StreamWriter(LINK_HELPFILE_PATH);
            sw.Write("16#" + HELPFILE_PATH);
            sw.Close();
            sw = null;
            isLinkFileCreated = true;
        }
        else
        {
            isLinkFileCreated = true;
        }
    }
    catch (Exception ex)
    {
        MessageBox.Show("Link file does not create.", "CreateLinkHelpFile");
        Close();
    }
    return isLinkFileCreated;
}

LINK_HELPFILE_PATH is a variable which is assigned with the @"\Windows\Help" folder path. And it means insert the name of the Help file by the number of characters in the path and the number sign (#). This should be the only line in the file.

protected override void OnHelpRequested(HelpEventArgs e)
{
   try
   {
       if (System.IO.File.Exists(HELPFILE_PATH))
       {
           Help.ShowHelp(this, HELPFILE_PATH);
           base.OnHelpRequested(e);
       }  
       else
       {
           MessageBox.Show("Help File Not Found", "Help Intigration");
       }
    }
    catch (Exception ex)
    {
       MessageBox.Show(ex.Message, "OnHelpRequested");
    }
}

Here, HELPFILE_PATH is a variable which is assigned with the @"\windows\DEMO-HELP.htm" HTML help file.

Points of interest

After installing the application, you are able to view the application help on your device:

HelpFileIntegration/help_show_000.PNG

HelpFileIntegration/help_show_001.PNG

HelpFileIntegration/help_show_002.PNG

HelpFileIntegration/help_show_003.PNG

Reference

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here