|After a few years of investigating and building MAPI clients applications, we shifted part of our development team to the "MAPI inferno" - the service providers. This area of MAPI cannot be done with any kind of third-party custom MAPI components we know - they all have proved inapplicable here.|
The first one, available for download MAPI service provider, is the compiled version of the Sample Address
Book Provider Sample (DELPHI 6 edition).
DELPHI Flat File Address Book Provider
This sample supports a single read-only container with names read from a flat binary file containing display names and e-mail addresses. It supports one-off templates and all configuration options.
It is about 49 000 lines (some of them shared with the Peer Transport Provider) without blanks (a monstrous job!) translated from C code, with original comments from the Microsoft developers. Moreover, the code includes DELPHI improvements (we haven't had the patience to leave part of the code as it used to be, also the side-by-side translation doesn't mean a working application.). In addition, the package includes a simple editor (not provided from Microsoft), which can edit this read-only AB provider. This was compiled with using DELPHI 6 and the improved by us version is tested with Exchange client (shipped with Windows NT 4.0), Outlook 97, Outlook 2000, Outlook 2002 (XP) and Outlook 2003/2007 - (the original C code works fine only with the Exchange client).
Details (according the original C code and Microsoft Readme.txt file):
The sample address book provider is based on a read-only file of fixed-length records (.SAB File). Each record contains the display name and e-mail address of a messaging user. This file supplies the contents of a single, read-only address container, which contains only e-mail users. The sample address book supports one e-mail address type; it is hard-coded to MSPEER.
Details. The sample address book implements its own details display table for messaging users. There are two sets of properties, divided into two pages. The first page has the standard properties: display name, e-mail address, and address type. The second page has an example of almost every control type implemented in MAPI display tables (the data is hard-coded, not drawn from
the address book). There is a template identifier for messaging user details, which enables all details to be supported for users copied from the sample address book to the personal address book. Details are also supported for the top-level directory, including the ability to change the .SAB file from the details pane. The directory details view uses a notification to update the display when the .SAB file is changed.
Custom recipients (one-offs). The sample address book implements a one-off table with a set of properties different from the native details; these properties combine to form the e-mail address. The template identifier enables messaging users to be added to the personal address book, or directly to a message, using a special dialog box; processing is routed through the sample address book, which has the ability to generate the e-mail address from the properties entered in the dialog box.
Advanced search dialog box. The sample address book implements an advanced search dialog box, accessible by choosing the Advanced button on the MAPI addressing dialog box. In reality, the advanced search is only slightly different from the standard search, which uses an ANR restriction.
Configuration interfaces. The sample address book supports both interactive and programmatic configuration.
Distribution lists. Creating, deleting, and modifying entries from particular user.
Multi-valued properties. Named properties.
DELPHI Peer Transport Provider
It is about 47 000 lines (some of them shared with the Address Book Provider), without blanks, translated from C code, with original comments from the Microsoft developers. Moreover, the code includes DELPHI improvements (the side-by-side translation doesn't mean a working application.). In addition, the package includes a simple “installer” (not provided from Microsoft).
This was compiled with DELPHI 6 and improved by us version was tested with Exchange client (shipped with Windows NT 4.0), Outlook 97, Outlook 2000, Outlook 2002 (XP) and Outlook 2003 – (the original C code work fine only with the Exchange client).
(according original Microsoft Readme.txt file)
The sample peer-to-peer transport transmits messages as files and uses network file paths as its e-mail addresses. Each user has an inbound message directory and an outbound message directory; the user e-mail address is the network path to the inbound directory. The transport creates an outbound message in each recipient's inbound directory (obtained from the recipient's address).
DELPHI Sample Message Store
This project, for shame or pride, took us more than year and a half (with some brakes).
It is based of old Microsoft Example for building a Message Store. Original comments are saved.
The message store is based on the file system. Each folder is a directory and each message is a file. Additional files hold properties of folders and of the message store itself.
The project named DSEMPMS32.dpr contains about 63 000 lines of code. It was very hard to make our Message Store working with all the Outlook versions, starting from Exchange for WinNT4 to the last one (Outlook 2007) with all possible service packs. Notice that for each Outlook version, Microsoft has separate Message Store Provider for PST - MSPST32.DLL
Some of the things, that make possible for DSEMPMS32 to work with the other Outlook versions.
Love us? Hate us? Questions or comments?
If you have any questions, concerns, compliments, or suggestions about these articles - write us
If you expect "Mickey Mouse fee" for source code licensing, please do not bother us!
Copyright © 2017 IMIBO