Since every preprocessor must be registered by a transport provider, you may need to create a minimal transport provider whose sole task is to register your preprocessor. A minimal transport provider does not advertise any address types to the MAPI spooler, so the MAPI spooler will never call the transport provider to send or receive messages.
To create a minimal transport provider
Create a transport provider with the minimum required interfaces for transport providers. Many of the methods and interfaces used by transport providers can be implemented as stubs that do nothing or return MAPI_E_NO_SUPPORT. The minimal transport provider should initialize as recommended in the topic Required Functionality for Transport Providers. In response to the IXPLogon::AddressTypes call, the transport provider should return a single zero-length string in lpppszAdrTypeArray and NULL in lpppUIDArray.
Create a MAPISVC.INF fragment for the transport provider and the message service that contains it. See Implementing a Message Service.
Optionally, create an online Help file linked to your configuration property pages, wizard pages, or both, providing full details about all configuration options.
Optionally, create a header file for custom programmatic configuration by MAPI clients.