IMAPISupport::Notify
S’applique à : Outlook 2013 | Outlook 2016
Envoie une notification d’un événement spécifié à une source d’avis qui s’est inscrite à l’origine pour la notification via la méthode IMAPISupport ::Subscribe .
HRESULT Notify(
LPNOTIFKEY lpKey,
ULONG cNotification,
LPNOTIFICATION lpNotifications,
ULONG FAR * lpulFlags
);
Paramètres
lpKey
[in] Pointeur vers la clé de notification de l’objet source de conseil. Le paramètre lpKey ne peut pas être NULL.
cNotification
[in] Nombre de structures de notification vers lesquelles pointe le paramètre lpNotifications .
lpNotifications
[in] Pointeur vers un tableau de structures NOTIFICATION qui décrivent les notifications en attente.
lpulFlags
[in, out] Masque de bits d’indicateurs qui contrôle le processus de notification. En entrée, l’indicateur suivant peut être défini :
MAPI_UNICODE
Les chaînes dans les structures de notification pointées par lpNotifications sont au format Unicode. Si l’indicateur MAPI_UNICODE n’est pas défini, les chaînes sont au format ANSI.
Dans la sortie, MAPI peut définir l’indicateur suivant :
NOTIFY_CANCELED
Une fonction de rappel a annulé une notification synchrone.
Valeur renvoyée
S_OK
Les notifications ont été générées avec succès.
Remarques
La méthode IMAPISupport ::Notify est implémentée pour tous les objets de prise en charge du fournisseur de services. Les fournisseurs de services appellent Notify pour demander que MAPI génère une notification pour un récepteur d’avis précédemment inscrit à la notification via la méthode IMAPISupport ::Subscribe .
Notify copie en mémoire les structures pointées par le paramètre lpNotifications et appelle la méthode IMAPIAdviseSink ::OnNotify du récepteur conseillé approprié. Une fois la notification terminée, OnNotify libère la mémoire impliquée. L’appelant n’a pas besoin d’allouer de mémoire ; MAPI effectue toutes les allocations de mémoire nécessaires.
Remarques pour les appelants
La clé de notification transmise dans le paramètre lpKey doit être identique à la clé passée dans lpKey à la méthode IMAPISupport ::Subscribe . De nombreux fournisseurs utilisent l’identificateur d’entrée de la source conseillée comme clé, mais d’autres données, telles qu’un chemin d’accès de fichier, peuvent être utilisées. MAPI utilise cette clé pour rechercher toutes les inscriptions pour les notifications sur la source de conseil identifiée.
Veillez à définir le membre lpEntryID de la structure de notification sur un identificateur d’entrée à long terme.
Si vous définissez l’indicateur NOTIFY_SYNC sur l’appel Subscribe pour l’une des notifications en attente, Notify appelle les fonctions de rappel de méthode IMAPIAdviseSink ::OnNotify avant de retourner. Un récepteur de conseil peut être créé manuellement ou en appelant HrAllocAdviseSink. La fonction HrAllocAdviseSink permet à son appelant de spécifier une fonction de rappel qui notifie les appels dans le cadre de la notification. La fonction de rappel est conforme au prototype NOTIFCALLBACK . Les fonctions de rappel implémentées par les clients retournent toujours S_OK ; Les fonctions de rappel implémentées par les fournisseurs de services peuvent retourner CALLBACK_DISCONTINUE.
Si une fonction de rappel retourne CALLBACK_DISCONTINUE, MAPI cesse d’envoyer des notifications et retourne NOTIFY_CANCELED dans le paramètre lpulFlags de la méthode Notify. Vous pouvez supposer que le processus est inactif et arrêter de générer des notifications pour ce processus. Si Notify renvoie 0 dans lpulFlags, le processus est toujours actif et vous devez continuer à envoyer des notifications, le cas échéant.
Lorsque vous utilisez des notifications synchrones, veillez à éviter les situations d’interblocage.
Pour plus d’informations sur le processus de notification, consultez Notification d’événements dans MAPI.