ContactsToFM was written in MS Visual Basic 6 using the COM interface exposed by Outlook, and ActiveX Data Objects (ADO) to interact with the main application (which was written in FileMaker Pro 5 by the prime contractor). Our original intention was to read/write data directly to/from the FileMaker-based application using the ODBC drivers supplied with FileMaker Pro 5. However testing revealed those drivers to be both slow and buggy. Instead we had the prime contractor modify their application to export/import data as comma-delimited text. We then used Microsoft's ODBC driver for text files to read/write the comma-delimited data. This improved performance by a factor of five and eliminated the bugs we experienced with the FileMaker driver. By simply switching to another ODBC driver, we were able to continue using ADO and leverage our existing work.
The mapping of Outlook fields to database fields was accomplished by reading the information from a standard .ini file at startup. There are a few required fields (especially the Entry ID, a unique ID assigned to every Contact by Outlook, and a corresponding field in the database records of the FileMaker application). Other fields can be mapped as required to adapt to changes in the custom application without the need for additional development.