Before you begin to write code to support your message service, it is important to create a design. Resolve the following issues in your design process:
Because MAPI stores only one entry point for each provider type, do not include multiple providers of the same type in a single DLL. If it makes sense to include multiple providers of one type, either implement them in separate DLLs or have them share an entry point function.
Another option is to implement related message services, or message services that are able to use the same installation and configuration code and the same DLL entry point function, in one DLL.
If possible, keep it simple and use one DLL that contains the implementation of all the service providers in the message service and all the code to install and configure the message service. If this is not possible, you can implement one DLL for the installation and configuration code and either a single DLL for all of the service providers or one DLL for each provider.
For example, if you have two DLLs, TEST and PROVS, and your message service runs on both a 16-bit platform and a 32-bit platform, MAPI generates two DLLs for each platform: