Partager via


IMAPIFormAdviseSink::OnActivateNext

S’applique à : Outlook 2013 | Outlook 2016

Indique si le formulaire peut gérer la classe de message du message suivant à afficher.

HRESULT OnActivateNext(
  LPCSTR lpszMessageClass,
  ULONG ulMessageStatus,
  ULONG ulMessageFlags,
  LPPERSISTMESSAGE FAR * ppPersistMessage
);

Paramètres

lpszMessageClass

[in] Pointeur vers la classe de message du message suivant.

ulMessageStatus

[in] Masque de bits d’indicateurs définis par le client ou par le fournisseur, copié à partir de la propriété PR_MSG_STATUS (PidTagMessageStatus) du message suivant à afficher, qui fournit status informations concernant la table de contenu dans laquelle le message est inclus.

ulMessageFlags

[in] Pointeur vers un masque de bits d’indicateurs copiés à partir de la propriété PR_MESSAGE_FLAGS (PidTagMessageFlags) du message suivant à afficher qui indique l’état actuel du message.

ppPersistMessage

[out] Pointeur vers un pointeur vers l’implémentation IPersistMessage de l’objet form utilisé pour le nouveau formulaire, si un nouveau formulaire est requis. Un pointeur vers NULL peut être retourné si l’objet de formulaire actif peut être utilisé pour afficher et enregistrer le message suivant.

Valeur renvoyée

S_OK

La notification a réussi et le formulaire peut gérer le message suivant.

S_FALSE

Le formulaire ne gère pas la classe de message du message suivant.

Remarques

Les visionneuses de formulaires appellent la méthode IMAPIFormAdviseSink ::OnActivateNext pour aider le formulaire à déterminer s’il peut afficher le message suivant dans un dossier. Le message suivant peut être un message de n’importe quelle classe, mais il s’agit généralement de la même classe ou d’une classe associée. Cela rend le processus de lecture de plusieurs messages de la même classe plus efficace en permettant aux applications clientes de réutiliser les objets de formulaire dans la mesure du possible.

La plupart des objets de formulaire utilisent la classe de message pointée par le paramètre lpszMessageClass pour déterminer s’ils peuvent gérer le message suivant. En règle générale, un formulaire peut gérer les messages qui appartiennent à des classes dont la classe par défaut du formulaire est une sous-classe, en plus des messages qui appartiennent à la classe par défaut. Toutefois, un formulaire peut utiliser d’autres facteurs pour déterminer sans doute si un message peut être géré, par exemple le status envoyé ou non envoyé du message suivant.

Remarques pour les responsables de l’implémentation

Retourne S_OK et NULL dans le paramètre ppPersistMessage si le formulaire peut gérer la classe de message. Si le formulaire peut créer un formulaire capable de gérer le message qu’il ne peut pas gérer, procédez comme suit :

  1. Appelez la fabrique de classes de votre formulaire pour créer un instance d’un nouvel objet de formulaire.

  2. Stockez ce instance dans le contenu du paramètre pointeur ppPersistMessage.

  3. Elles retournent S_OK.

La visionneuse de formulaires charge le message à l’aide de la méthode IPersistMessage ::Load qui appartient à l’objet pointé par ppPersistMessage.

Si ni le formulaire ni un formulaire que vous pouvez créer ne peuvent gérer le message suivant, retournez S_FALSE. Toutefois, en règle générale, les formulaires ne doivent pas retourner cette valeur, car cela entraîne une baisse des performances dans la visionneuse de formulaires.

Référence MFCMAPI

Pour voir un exemple de code MFCMAPI, consultez le tableau suivant.

Fichier Fonction Commentaire
MAPIFormFunctions.cpp
CMyMAPIFormViewer ::ActivateNext
MFCMAPI utilise la méthode IMAPIFormAdviseSink ::OnActivateNext pour implémenter la méthode IMAPIViewContext ::ActivateNext .

Voir aussi

IMAPIViewContext::ActivateNext

IPersistMessage : IUnknown

IPersistMessage::Load

Propriété canonique PidTagMessageFlags

Propriété canonique PidTagMessageStatus

IMAPIFormAdviseSink : IUnknown

MFCMAPI comme un exemple de Code