Unknown MMO

MMO (Mobile Mapper Office) can create custom background maps, but it does not have options to manage multiple maps, create POIs, or create more than one group (needed for full GPSR search support). That is why we are trying to create custom programs to add these features to our custom maps. Not all of them are still realized.

But if we will have a look to MMO code we will find that many useful functions are exist in the MMO code, but they do not have calls from menus or buttons. Nevertheless the code of MMO can be modified to call these functions. Some of them can be called easily with just sending windows messages (e.g. see showCcenter program), some of them can be called by changing the reference to the function called (e.g. POI creation, see below), the others exist within Custdll.dll and do not have calls from mmomain.exe.

We are sitting on a hidden treasure, it seems Thales Navigation has full-feature working version, but they were lazy enough to remove the functions from DLLs and programs. They are trying to restrict usage of MMO in the latest version, for example, MMO110 and MMO200 have different order of the fields in the headers to prevent usage with Magellan GPSR (solved with convertMMOoutput and MMOconvertor), in contrast to MMO100 and MMO110, MMO200 does not have POI creation hidden function, some of the potentially useful functions were removed from CustMap.dll in the MMO200.

I notticed the following hidden functions: 3D view (in the mmomain.exe), POI creation (in CustMap.dll imported to mmomain.exe), manage multiple maps (CustMapl.dll), manage layers to multiple groups (CustMap.dll). It is not that easy to make the functions work. The code should be disassembled first and traced to find out how the code is organized and what should be modified to call hidden function.

But if hidden function is called, the result is truly amazing. Below you will find how to modify MMO1.00 and MMO1.10 to call POI creation dialog. After that POI database can be created from *.dbf (DBASE format).


Since this page was written things changed. I found how to unhide another hidden feature: Advance Map Creation dialog (multiple groups). To work with this new feature and with POI creation dialog, I created new program: unhideMMO.exe. With this unhideMMO.exe program both "POI creation" and "Advance Map creation" dialogs can be shown. The new program is more convenient to use, so please use unhideMMO.exe program to work with POI creation as well. In contrast to makeMMOcreatePOI.exe, unhideMMO works with MMO1.00 only. Please find the User guide to this program at "Advanced maps" section and skip the following 2 paragraphs.

To call POI creation dialog mmomain.exe should be modified to call appropriate function. There is no POI creation item in menus (even hidden) and up to now I did not find how to call this function using safe "sitting on the top" methods. So we need to modify mmomain.exe program by changing the reference from BackgroundMap creation dialog to POI creation dialog. After such modification MMO will show POI creation dialog instead of Background map creation dialog when we press Background Map button or menu item. We will have 2 mmomain.exe programs: one for Background Map and the other for POIs.

Please find makeMMOcreatePOI.exe program in the download section. The program does not create any backups and the program modifies mmomain.exe code, so please backup mmomain.exe before applying the patch (say, copy and rename). Run makeMMOcreatePOI.exe from the root folder of MMO1.00 or MMO1.10. Program automatically will recognize the version and will do modification of the code. MMO2.00 does not have hidden POI creation function and the code of mmomain.exe will not be modified.

Run MMO. Press "Background map" button (or "Background map" menu item). Wow! No background map dialog, instead you see something new:

This is POI creation dialog. Press "Add" and select DBF file containing POI information (as an example I attached simple DBF file containing 4 POIs in 2 categories (Aerial and Zoos)). Multiple DBFs are allowed. You can see content of selected DBF if you press "Database" button. Then double click to the "Source field" and select appropriate fields from the DBF. Then press "add" button underneath of POI Field box, add Auxiliary fields if needed. The project can be saved and loaded in MMO's *.mpp format ("Load" and "Save As"). Press "Convert", you will see progress bar and after that "Attributes" dialog will appear, where you will see icons for the categories and can select zoom visibility properties. Close the "POI creation" dialog. Done. MMO even should not be restarted, you will see POIs immediately after zoom to the area. Below is the example.

If you need to return to the version with Background Map dialog, replace (rename) mmomain.exe to the backuped mmomain.exe.

Nevertheless POI_DB_creator is still useful. First, plain text format is more convenient, second, it much more flexible (custom icons, auxiliary fields as a record for category etc), and, most important: it can create POI_DB for virtually any MapSend, while MMO will create POIs with MMO header, which is not compatible with other MapSends. Advantage of MMO is subcategories, which are not supported by POI_DB_creator.