Platform SDK: SMTP Server Events |
[This is preliminary documentation and subject to change.]
The IMailMsgPropertyStream interface defines methods implemented by an object supplied by the store driver object for the purpose of persisting a MailMsg object's transport envelope properties.
Method | Description |
---|---|
GetSize | Get the number of bytes in the stream (with asynchronous completion). |
ReadBlocks | Read a list of blocks from the stream (with asynchronous completion). |
WriteBlocks | Write a list of blocks to the stream (with asynchronous completion). |
StartWriteBlocks | Start a transaction for block writes. |
EndWriteBlocks | End (commit) a transaction of block writes. |
CancelWriteBlocks | Cancel (abort) block writes executed within a transaction marked with the StartWriteBlocks method. All blocks written from within the transaction are discarded. |
Transport envelope properties for a MailMsg object are persisted using an object provided by the currently registered store driver object (catidStoreDriver). When binding a MailMsg object to the store driver through the IMailMsgStoreDriver::BindToStore method, the driver object must return a reference to a separate object that implements the IMailMsgPropertyStream interface. This object is subsequently used by the transport to persist the transport envelope properties for the bound MailMsg object.
When implementing an SMTP service store driver component, providing a persisted location for each MailMsg object's content and envelope properties is required. Therefore, as part of your implementation, you must provide a COM class that implements the IMailMsgPropertyStream interface, and return a reference to an instance when the transport invokes the IMailMsgStoreDriver::BindToStore method.
The default SMTP store driver persists the transport envelope properties for a MailMsg object using the file system.
This interface is marked "local" meaning that these methods cannot be marshaled across apartment or process boundaries.