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.

See also

HrAllocAdviseSink

IMAPIAdviseSink::OnNotify

IMAPISupport::Notify

NOTIFICATION

NOTIFKEY

IMAPISupport : IUnknown