About: Exchange Store Sinks

API Interface: COM interface implementation hosted in COM+.

Business Logic: Store sink interfaces do not add or enhance business logic, see ExOLEDB  or CDO for Exchange (CDOEX).

Language Support: All COM compatible languages including .NET.

Direct Property Access: Item access performed by ExOLEDB or CDO for Exchange (CDOEX).

Product Versions: Exchange 2000, 2003, and 2007.

 

Summary :

 

Exchange Store Sinks are primarily used to capture save and delete events in the Exchange Store either synchronously or asynchronously.  There are also event interfaces for capturing system events.  Developers create Store Sinks by implementing a specific COM interface according to the type of events they want to trap.  The COM library the developer creates must be configured to run in COM+ and is then registered to a specific folder whose events the library will get notified of. 

 

Points of Interest:

  • There are three Store Sink event types synchronous, asynchronous, and system events.
  • Store Sinks can be registered on a specific mailbox or public folder, they can also be registered recursively or store-wide to cover multiple folders. 
  • The setup process has two main steps: the COM library must be configured in COM+ to be hosted in dllhost.EXE and the Store Sink must be registered with a particular folder to receive events for.
  • Store Sink were depreciated in Exchange 2007 - although they still work and are supported, we recommend that new development uses Exchange Web Services or Exchange REST.
  • Store Sinks for Exchange 2007 must be compiled as 64-bit.
  • Since these ran in process with Exchange they had the potential of crashing Exchange. 

 Further Reading:

OUTBOX: Introduction to Exchange Store Event Sinks Part 1
https://blogs.msdn.com/b/mstehle/archive/2006/01/17/514019.aspx

OUTBOX: Introduction to Exchange Store Event Sinks Part 2
https://blogs.msdn.com/b/mstehle/archive/2006/01/19/514881.aspx

Store Events
https://msdn.microsoft.com/en-us/library/ms879480(v=exchg.65).aspx

Exchange ADO
https://msdn.microsoft.com/en-us/library/aa123760.aspx

ExOLEDB
https://msdn.microsoft.com/en-us/library/ms876455(v=exchg.65).aspx

Consider the following for new development with Exchange 2007 and later:

About: Office 365 REST APIs for Exchange
https://blogs.msdn.com/b/webdav_101/archive/2015/05/18/about-365-rest-apis.aspx

Outlook Notifications REST API reference (preview)
https://msdn.microsoft.com/office/office365/APi/notify-rest-operations

About: Exchange Web Services (EWS)
https://blogs.msdn.com/b/webdav_101/archive/2015/05/03/getting-started-with-ews.aspx

Mailbox synchronization and EWS in Exchange
https://msdn.microsoft.com/en-us/library/office/dn440952(v=exchg.150).aspx

Notification subscriptions, mailbox events, and EWS in Exchange
https://msdn.microsoft.com/en-us/library/office/dn458791(v=exchg.150).aspx

Also see:

About: Messaging APIs
https://blogs.msdn.com/b/webdav_101/archive/2015/08/07/about-messaging-apis.aspx