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


MapPoint Automation with C/C++ - Part 1

This is the first of three articles by Sergey Kostrov on automating MapPoint with C/C++ starting with a simple C/C++ application.

A Simple C/C++ Application

As a C++ software developer Im very surprised by the lack of documentation from Microsoft about MapPoint Automation with C/C++. It looks like Microsoft wants to move everybody to the .NET Universe and completely ignores some reality of the world when some C++ programmers dont want to give up

On MP2Kmag there are already a couple of articles related with automation of MapPoint from an application written in C++. In Part 1 of my article I would like to demonstrate what should be done to initialize MapPoint and then how to use MapPoints COM API.

I assume that you use Microsoft Visual C++ and to simplify development I also recommend using Type Library mpna82.tlb because it gives lots of advantages and increases productivity. With that approach you dont have to do low-level COM programming. If youve installed the MapPoint application to a default folder you can find mpna82.tlb file at the C:\Program Files\Microsoft MapPoint folder.

The main goal of this article is to help you at the beginning and as soon as basic things are clear all the rest is easier. This article is not intended to teach you how to do C/C++ programming or what OLE Automation is, and should be considered as a set of recommendations.

Here are source codes for a simple C/C++ application that initializes MapPoint, finds an address, puts pushpin and saves a map on the hard drive.

///// ComInterfaces.h /////


#pragma once
#pragma pack( push, ComInterfaces )
#undef EOF
#import "C:\Program Files\Microsoft MapPoint\mpna82.tlb" no_implementation
#pragma pack( pop, ComInterfaces )


///// ComInterfaces.cpp /////

#include "ComInterfaces.h"

#pragma once
#pragma pack( push, ComInterfaces )

#import "C:\Program Files\Microsoft MapPoint\mpna82.tlb" implementation_only

#pragma pack( pop, ComInterfaces )

///// MapPointApp.cpp /////

#include "ComInterfaces.h"

MapPoint::_ApplicationPtr g_pMapPoint = NULL;

void main( void )
CoInitialize( NULL );

g_pMapPoint.CreateInstance( "MapPoint.Application" );
g_pMapPoint->Visible = true;
g_pMapPoint->PutWindowState( geoWindowStateNormal );
g_pMapPoint->PutCaption( "MapPoint 2004 is in Automation Mode!" );
g_pMapPoint->PutUnits( geoKm );

_MapPtr myMapPtr = g_pMapPoint->ActiveMap;

FindResultsPtr resultsPtr = myMapPtr->FindAddressResults
	400 Coronado Dr, Denton, "", TX, 76209, geoCountryDefault

VariantInit( &idx );
V_VT(&idx) = VT_I4;
V_I4(&idx) = 1;
LocationPtr locAddressPtr = resultsPtr->GetItem( &idx );
PushpinPtr pinAddressPtr = myMapPtr->AddPushpin( locAddressPtr, "Your property is here" );

pinAddressPtr->PutSymbol( 57 );					// Red triangle ( big )

pinAddressPtr->BalloonState = geoDisplayBalloon;
pinAddressPtr->Highlight = true;


myMapPtr->SaveAs( "C:\\$MapIsHere", geoFormatHTMLMapAndDirections, false );

pinAddressPtr->Highlight = false;
pinAddressPtr->BalloonState = geoDisplayNone;

myMapPtr->Saved = true;



A few comments and recommendations

  • As you can see source codes are very straightforward and even if you dont have any experience with C/C++ programming it takes little efforts to study the example;
  • Take a look at two compiler-generated files mpna82.tlh and mpna82.tli. These two files are an invaluable source of the information because all interfaces, smart pointer typedef declarations and enumerations described there. It is very useful to run this example under the control of the Visual C++ Debugger in order to see how it actually works;
  • In the example we save a map on the drive C: in the folder $MapIsHere and MapIsHere.htm file can be used to view the map in an Internet browser. Enclosed are also two pictures that give you an idea how the results look like in automated MapPoint and Internet Explorer:

(click on the image to view the full screenshot)

(click on the image to view the full screenshot)

Discuss this story in the forum.

Author: Sergey Kostrov
Email: sergeykostrov(AT)
Sergey Kostrov is a Senior C++ Software Developer with 4NF Systems Inc.

MP2Kmag Internet

 Recent Discussion
-Sexy photo galleries, daily updated pics
-New hot project galleries, daily updates
-Convert MBOX to PST
-My new hot project
-Teen Girls Pussy Pics. Hot galleries
-Đại Học Kinh Tế Lu*t 2022 -
-Young Heaven - Naked Teens & Young Porn Pictures
-Enjoy daily galleries
-Sexy photo galleries, daily updated collections
-MBOX to PST Converter Tool
-Ch*y iỂm nỢ mn tn chỈ nhanh chng
-Ch*y iỂm toeic - ielts - nhanh chong 2022
-Young Heaven - Naked Teens & Young Porn Pictures
-Young Heaven - Naked Teens & Young Porn Pictures
-Free Porn Pictures and Best HD Sex Photos
-Best Nude Playmates & Centerfolds, Beautiful galleries daily updates
-New project started to be available today, check it out
-Ch*y iỂm nỢ mn 2022
-Ch*y iỂm cc trỜng *i hỌc 2022
-Chạy Điểm Nợ Môn Các Trường Đại Học 2022
-CH*Y ĐIỂM TOEIC - IELTS Toan Quoc 2022
-Ch*y iỂm nỢ mn cc trỜng​ - 2022 - nhanh chong
-Sexy teen photo galleries
-enjoy new website
-ДУБКАН • Изготовление Фитилей, Канатов и тд.
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.