Partager via


HrThisThreadAdviseSink

S’applique à : Outlook 2013 | Outlook 2016

Crée un récepteur de conseil qui encapsule un récepteur de conseil existant pour la sécurité des threads.

Propriété Valeur
Fichier d’en-tête :
Mapiutil.h
Implémenté par :
MAPI
Appelé par :
Applications clientes
HrThisThreadAdviseSink(
  LPMAPIADVISESINK lpAdviseSink,
  LPMAPIADVISESINK FAR * lppAdviseSink
);

Paramètres

lpAdviseSink

[in] Pointeur vers le récepteur de conseil à encapsuler.

lppAdviseSink

[out] Pointeur vers un nouveau récepteur de conseil qui encapsule le récepteur de conseil vers lequel pointe le paramètre lpAdviseSink .

Valeur renvoyée

Aucun.

Remarques

L’objectif du wrapper est de s’assurer que la notification est appelée sur le même thread que celui qui a appelé la fonction HrThisThreadAdviseSink . Cette fonction est utilisée pour protéger les rappels de notification qui doivent s’exécuter sur un thread particulier.

Les applications clientes doivent utiliser HrThisThreadAdviseSink pour limiter le moment où les notifications sont générées, c’est-à-dire quand les appels sont effectués à la méthode IMAPIAdviseSink ::OnNotify de l’objet récepteur de conseil passé par le client dans un appel Advise précédent. Si des notifications sont autorisées à être générées arbitrairement, une implémentation de notification peut forcer un client à effectuer une opération multithread alors que cela ne serait pas approprié. Par exemple, un client peut utiliser une bibliothèque, telle que l’une des bibliothèques de classes Microsoft Foundation, qui ne prend pas en charge les appels multithread. La notification sur un thread différent rend un tel client difficile à tester et susceptible d’erreurs.

HrThisThreadAdviseSink s’assure que les appels OnNotify se produisent uniquement aux moments appropriés :

  • Pendant le traitement d’un appel à une méthode MAPI.

  • Pendant le traitement des messages Windows.

Lorsque HrThisThreadAdviseSink est implémenté, tout appel à la méthode OnNotify du nouveau récepteur de conseil sur un thread entraîne l’exécution de la méthode de notification d’origine sur le thread sur lequel HrThisThreadAdviseSink a été appelé.

Pour plus d’informations sur les récepteurs de notification et de conseil, consultez Notification d’événements dans MAPI et Implémentation d’un objet récepteur Advise.