IMAPISupport::Subscribe
Applies to: Outlook 2013 | Outlook 2016
Registers an advise sink to receive notifications through MAPI.
HRESULT Subscribe(
LPNOTIFKEY lpKey,
ULONG ulEventMask,
ULONG ulFlags,
LPMAPIADVISESINK lpAdviseSink,
ULONG FAR * lpulConnection
);
Parameters
lpKey
[in] A pointer to a notification key that represents the advise source object. The lpKey parameter cannot be NULL.
ulEventMask
[in] A mask of values that indicate the types of notification events that the caller is interested in and should be included in the registration. The following values are valid:
fnevCriticalError
Registers for notifications about severe errors, such as insufficient memory.
fnevExtended
Registers for notifications about events specific to the particular address book or message store provider.
fnevNewMail
Registers for notifications about the arrival of new messages.
fnevObjectCreated
Registers for notifications about the creation of a new object.
fnevObjectCopied
Registers for notifications about an object being copied.
fnevObjectDeleted
Registers for notifications about an object being deleted.
fnevObjectModified
Registers for notifications about an object being modified.
fnevObjectMoved
Registers for notifications about an object being moved.
fnevSearchComplete
Registers for notifications about the completion of a search operation.
ulFlags
[in] A bitmask of flags that controls how notification occurs. The following flag can be set:
NOTIFY_SYNC
When the caller calls the IMAPISupport::Notify method to generate notifications for this advise sink, Notify should make all necessary calls to advise sinks before returning. If this flag is not set, notification is asynchronous and callbacks are queued to the processes that have subscribed and started when those processes gain control of the CPU.
lpAdviseSink
[in] A pointer to an advise sink object.
lpulConnection
[out] A pointer to a nonzero connection number that represents the registration.
Return value
S_OK
The notification registration was successful.
Remarks
The IMAPISupport::Subscribe method is implemented for all service provider support objects. Service providers call Subscribe from one of their Advise methods to allow MAPI to manage the notifications.
Notes to callers
To use the MAPI support methods for notification, create a key for the advise source the object about which notifications should be generated. The value of the key must be unique and should be easily regenerated each time the object changes.
MAPI uses the notification key to search for any callback functions registered through the HrAllocAdviseSink function for the corresponding advise source. Pass this key to IMAPISupport::Notify whenever you need to generate a notification for the corresponding advise source.
The NOTIFY_SYNC flag affects the operation of subsequent calls to Notify. When you set NOTIFY_SYNC, Notify does not return until it has finished sending all of the necessary notifications. When you do not set NOTIFY_SYNC, Notify operates asynchronously, possibly returning before all of the notifications have been sent.