Maurice Calvert

Building a Real-Time Data server: Utility functions; building help, part 12

Utility functions

This is the final part of the tutorial that describes the techniques necessary to build a Real Time Data server for Microsoft Excel. If you have just come to this page, I suggest you read all parts in order, here is Building a Real Time Data for Excel, part 1.

Hoping again for re-use, I created a little utility library which contains some general-purpose functions that you may find useful.

  • GetCallingAssemblyName #35#. Gets the name of the calling assembly.
  • GetCurrentAssemblyName #36#. Gets the name of the currently-executing assembly.
  • GetExecutingPath #37#. Gets the full path of the currently-executing assembly.
  • GetMyDocuments #38#. Gets the full path to “My Documents”.
  • ShowBox #39#. Drop-in replacement for MsgBox that always displays “on top”, as
    a MsgBox displayed during Setup etc. often gets hidden.
  • ShowHelp #40#. Displays the GeodesiX help spreadsheet. This is much more complicated
    than it appears, as we have to find out the path to the program associated with
    Excel on the current machine (which could be 2003, 2007, 2010, etc).
  • Writelog #41#. Writes a message to a file with the name of the
    currently-executing assembly, with a timestamp, on the path “My Documents”.

Building help from the source with Sandcastle

As an exercise, I used Sandcastle Help File Builder, which is a nice little GUI to wrap the command-line utility Sandcastle. To see how it works, download and install those 2 programs and open GeodesiX.shfbproj in the project’s root folder (it will auto-associate with SFHB). The build takes several minutes.

The result is a nice MSDN-style help file, which displays nicely with Internet Explorer but sends Google Chrome into a fit. Take a peek (don’t open with Chrome!).

I hope you found this tutorial instructive.

Building a Real Time Data for Excel tutorial:

One Comment

  • XL-Dennis says:

    Thanks for an interesting walk through. I guess that You didn’t account the number of hours You put into this project.

    I want to thank You for some gems I have picked up. As usual, when sharing we learn something new every day.

    All the best,

Post a comment

Have any questions? Ask us right now!