The Microsoft Exchange client enables extensions to control various details of how a message is handled when certain events occur. This is done with the IExchExtMessageEvents : IUnknown interface, which allows extensions to intercept message events:
For example, an extension might want to check spelling or validate data before it is written to the properties of the message in the store and sent to another user.
Each one of the events in the preceeding list is associated with a method that is a member of IExchExtMessageEvents. For example, the IExchExtMessageEvents::OnWrite method is invoked whenever Microsoft Exchange is about to save the message properties.