spacer2 1_1 1_2
 The MP2K Update!
Front Cover
What's New
Sample Data
MapPoint 2013
Press Releases
MapPoint Forums
Link to MP2Kmag
Wish List
MapPoint Trial
 Earlier Content
Past News Items
Past What's New Announcements

MapPoint 2013

Programming MapPoint in .NET

MapPoint Book

  Spatial Community
SVG Tutorials

Map Visitors


Shape Name Utility

The Shape Name Utility is a simple utility developed by Richard Marsden that allows a user to examine and/or change the names of MapPoint shapes. This article describes the code and how it works.

The Shape Name Utility has been released as freeware and as open source under the Berkeley license. An installer, and a source code archive can both be downloaded from the website at:

The following source code description can be used as a form of tutorial for those who want to build a MapPoint add-in using Visual Basic 6. As well as Visual Basic 6, the project uses NSIS for building the installer, and Help & Manual for the documentation. NSIS is open source, but Help & Manual is a commercial system. Both are good products, but you do not need either of them in order to build the project and to install it on your development PC. After saying this, it is strongly recommended that you use an installer if you wish to distribute your add-in on multiple PCs.

Project Files

The Shape Name Utility has been written using Visual Basic 6. Although this getting old, it is good for quick MapPoint development, and is widely available. You will need Visual Studio 6 to build the Shape Name Utility files.

The installer is an NSIS script. NSIS is a powerful open source scripting system for building installers. It includes support for registry modification and DLL version updates - both of which are essential for a MapPoint add-in.

The PDF manual is built using Help & Manual v4.5. Help & Manual is a commercial help authoring system, but is very powerful and easy to use.

The source code is split amongst three files. frmAbout.frm, frmShape.frm, and Connect.dsr. frmAbout.frm is the standard VB6 About Box but with the default text fields filled out. The other two files are explained on the next two pages.


The Connect.dsr is based on the file produced by the VB6 Add-in Wizard. It manages the add-in for MapPoint, by controlling the menu item and the menu callback.

There are two global variables (oApp and oFrm) which hold references to the parent MapPoint application and our form, respectively.

There are only three methods:


This subroutine is called when the user clicks the Shape Name Utility menu item. It creates a new form object if we do not have one, and then calls the form's DisplayForm method. This method queries the selected shape and displays the form as a modal dialog box. Here is the code:


This method is a part of the standard add-in interface. It is called by MapPoint when it loads the Shape Name Utility add-in and connects to it.

Our implementation stores a reference to the parent application for future use, and adds our menu item ("Shape Name Utility...") to the Tools menu. This is connected to the AddinInstance_MenuCheck method, above.


This method is also a part of the standard add-in interface. It is called when MapPoint is disconnecting and unloading the add-in from memory. We remove our menu item from the Tools menu, and clear our global references.


frmShape.frm is a VB6 form file that implements the main Shape Name Utility modal dialog box. It also manages the shape name query and update. The form is visually defined to look like this:


There are four global variables defined for the form. oApp and oMap define references to the MapPoint Application and Map. sName stores the name that was read from the current shape. bReadonly indicates if the name is read only (and should not be updated).

There are four methods, three of which are button call-backs.


This is called when the user clicks the About button. It creates an About box (frmAbout) and opens it as a dialog box. frmAbout is implemented as a standard VB6-produced About box.


This is called when the user clicks the Cancel button. It simply closes the frmShape modal dialog box.


This is called when the user clicks the OK button. If saves any name change (if possible), and then closes the frmShape modal dialog box. Note that the new name is trimmed (leading and trailing spaces are removed) and compared against the stored copy of the shape name to check if it has changed.


This is called by the Tools menu callback, to query the selected object's name and to display the form. Warning dialog boxes are displayed if an object is not selected, or if the object is not a shape or a pushpin. The name is read for both shape and pushpin selections, but pushpins are marked as readonly.

If the object is a shape, then the shape type is queried. Both the name and the type are displayed in the dialog before it is finally displayed.

Discuss this story in the forum.

Author: Richard Marsden
Email: enquiries(AT)
Richard Marsden is the proprietor of Winwaed Software Technology, LLC which provides software consulting and development services, specializing in both MapPoint and online mapping applications. He operates the Website for MapPoint Tools and Utilities, and recently launched the GeoWeb Guru a community website for developers of the geospatial web. In 2008, Richard was awarded Virtual Earth MVP status by Microsoft.

Prior to Winwaed, Richard worked as a software developer working on seismic processing algorithms for the oil exploration industry. He holds geology and geophysics degrees from the University of Cambridge (Churchill College), and the University of Durham; and an interdisciplinary MBA from the University of Dallas.

MP2Kmag Internet

 Recent Discussion
Browse GIS books and periodicals
Find a MapPoint Partner or Consultant
Real Estate Columbia For Sale By Owner

Want Your Site To Appear Here?

   © 1999-2012 MP2K. Questions and comments to:
  Microsoft and MapPoint 2002/2004/2006/2009/2010/2011/2013 are either trademarks or registered trademarks of Microsoft.