Partager via


Inscription à une notification

S’applique à : Outlook 2013 | Outlook 2016

Un client peut s’inscrire aux notifications de carnet d’adresses ou de magasin de messages dans le cadre de son processus d’initialisation.

MAPI prend en charge la notification sur le carnet d’adresses, que l’un des fournisseurs de carnets d’adresses la prenne en charge ou non. La prise en charge des notifications sur les magasins de messages dépend du fournisseur de magasin de messages particulier. Pour déterminer si un fournisseur de magasin de messages particulier prend en charge les notifications, case activée sa propriété PR_STORE_SUPPORT_MASK (PidTagStoreSupportMask). Si la banque de messages prend en charge les notifications, le bit STORE_NOTIFY_OK est défini.

Inscrivez-vous aux notifications en appelant la méthode Advise d’un objet source d’avis. De nombreux objets implémentent Advise et les clients peuvent s’inscrire auprès de ces objets de différentes façons.

Pour s’inscrire à une notification

  1. Créez un objet récepteur de conseil MAPI et incrémentez son nombre de références.

  2. Si nécessaire, appelez HrThisThreadAdviseSink pour créer un objet récepteur de conseil qui encapsule votre récepteur de conseil d’origine, puis relâchez le récepteur de conseils d’origine.

  3. Appelez l’une des méthodes Advise suivantes pour terminer l’inscription :

  • Appelez IMAPISession ::Advise pour vous inscrire aux notifications de session ou aux notifications sur un carnet d’adresses ou un objet de magasin de messages.

  • Appelez IAddrBook ::Advise pour vous inscrire aux notifications de carnet d’adresses ou aux notifications sur un utilisateur de messagerie, un conteneur ou une liste de distribution.

  • Appelez IABLogon ::Advise pour vous inscrire directement auprès d’un fournisseur de carnet d’adresses pour les notifications sur un utilisateur de messagerie, un conteneur ou une liste de distribution.

  • Appelez IMsgStore ::Advise pour vous inscrire aux notifications de magasin de messages ou aux notifications sur un dossier ou un message.

  • Appelez IMSLogon ::Advise pour vous inscrire directement auprès d’un fournisseur de magasin de messages pour les notifications sur un dossier ou un message.

  • Appelez IMAPITable ::Advise pour vous inscrire aux notifications de table.

  1. Mettez en cache le numéro de connexion retourné par Advise.

  2. Si vous utilisez un récepteur de conseil encapsulé, relâchez-le. Une fois le récepteur de conseil encapsulé inscrit, vous n’en avez plus besoin.

L’appel de IMAPISession ::Advise vous permet de vous inscrire aux notifications d’erreurs critiques sur l’ensemble de la session ou pour diverses notifications sur des objets individuels. Les sessions envoient des notifications d’erreur critiques aux clients connectés aux sessions partagées lorsqu’un autre client utilisant la session partagée appelle la méthode IMAPISession ::Logoff . Pour vous inscrire aux notifications de session, passez NULL pour le paramètre d’identificateur d’entrée. Pour vous inscrire aux notifications sur un objet individuel, transmettez l’identificateur d’entrée de l’objet. La méthode IMAPISession transfère l’appel au fournisseur de services approprié, comme déterminé par la partie MAPIUID de l’identificateur d’entrée. L’appel de IMAPISession ::Advise pour s’inscrire aux notifications d’objets est plus simple que d’appeler la méthode Advise d’un fournisseur de services.

L’inscription auprès du carnet d’adresses est similaire à l’inscription à la session. Pour vous inscrire à la notification d’erreur critique à partir du carnet d’adresses, passez la valeur NULL pour l’identificateur d’entrée. Pour vous inscrire aux notifications sur un objet de carnet d’adresses particulier, spécifiez l’identificateur d’entrée et l’événement ou les événements d’intérêt appropriés. N’oubliez pas que de nombreux fournisseurs de carnets d’adresses ne prennent pas en charge les notifications sur des objets individuels. Au lieu de cela, ils prennent en charge les notifications de table sur leur contenu et leurs tables de hiérarchie.

Il est recommandé de libérer le récepteur de conseil que vous implémentez ou créez avec HrAllocAdviseSink immédiatement après un retour réussi d’un appel Advise . Cela est dû au fait qu’il est possible pour les fournisseurs de services de libérer votre récepteur de conseil après l’appel Advise , mais avant qu’un appel sans avertissement ne soit effectué. Une fois que vous avez donné à la source de conseil un pointeur vers votre récepteur de conseil et que le nombre de références a été incrémenté sur ce récepteur de conseil, il est judicieux de le libérer, sauf si vous avez une utilisation à long terme pour elle.

Remarque

Tous les numéros de connexion qui représentent des inscriptions de conseil valides ne seront pas libérés tant que l’appel Deadvise n’est pas effectué.