Freigeben über


IMAPIFormAdviseSink::OnActivateNext

Gilt für: Outlook 2013 | Outlook 2016

Gibt an, ob das Formular die Nachrichtenklasse der nächsten anzuzeigenden Nachricht verarbeiten kann.

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

Parameter

lpszMessageClass

[in] Ein Zeiger auf die Nachrichtenklasse der nächsten Nachricht.

ulMessageStatus

[in] Eine Bitmaske von clientdefinierten oder vom Anbieter definierten Flags, die aus der eigenschaft PR_MSG_STATUS (PidTagMessageStatus) der nächsten anzuzeigenden Nachricht kopiert wurde und status Informationen zur Inhaltstabelle bereitstellt, in der die Nachricht enthalten ist.

ulMessageFlags

[in] Ein Zeiger auf eine Bitmaske von Flags, die aus der eigenschaft PR_MESSAGE_FLAGS (PidTagMessageFlags) der nächsten anzuzeigenden Nachricht kopiert wurden, die den aktuellen Status der Nachricht angibt.

ppPersistMessage

[out] Ein Zeiger auf einen Zeiger auf die IPersistMessage-Implementierung für das formularobjekt, das für das neue Formular verwendet wird, wenn ein neues Formular erforderlich ist. Ein Zeiger auf NULL kann zurückgegeben werden, wenn das aktuelle Formularobjekt zum Anzeigen und Speichern der nächsten Nachricht verwendet werden kann.

Rückgabewert

S_OK

Die Benachrichtigung war erfolgreich, und das Formular kann die nächste Nachricht verarbeiten.

S_FALSE

Das Formular behandelt nicht die Nachrichtenklasse der nächsten Nachricht.

Hinweise

Formular-Viewer rufen die IMAPIFormAdviseSink::OnActivateNext-Methode auf, damit das Formular bestimmen kann, ob die nächste Nachricht in einem Ordner angezeigt werden kann. Die nächste Nachricht kann eine Nachricht einer beliebigen Klasse sein, aber in der Regel stammt sie aus derselben Klasse oder einer verwandten Klasse. Dadurch wird das Lesen mehrerer Nachrichten derselben Klasse effizienter, da Clientanwendungen nach Möglichkeit Formularobjekte wiederverwenden können.

Die meisten Formularobjekte verwenden die Nachrichtenklasse, auf die der lpszMessageClass-Parameter verweist, um zu bestimmen, ob sie die nächste Nachricht verarbeiten können. Normalerweise kann ein Formular Nachrichten verarbeiten, die zu Klassen gehören, von denen die Standardklasse des Formulars eine Unterklasse ist, zusätzlich zu Nachrichten, die zur Standardklasse gehören. Ein Formular kann jedoch andere Faktoren verwenden, um ohne Frage zu bestimmen, ob eine Nachricht verarbeitet werden kann, z. B. die gesendete oder nicht gesendete status der nächsten Nachricht.

Hinweise für Implementierer

Gibt S_OK und NULL im ppPersistMessage-Parameter zurück, wenn das Formular die Nachrichtenklasse verarbeiten kann. Wenn das Formular ein neues Formular erstellen kann, das die Nachricht verarbeiten kann, die das Formular nicht verarbeiten kann, führen Sie die folgenden Schritte aus:

  1. Rufen Sie die Klassenfactory Ihres Formulars auf, um eine instance eines neuen Formularobjekts zu erstellen.

  2. Speichern Sie diese instance im Inhalt des ppPersistMessage-Zeigerparameters.

  3. Geben Sie S_OK zur�ck.

Der Formular-Viewer lädt die Nachricht mithilfe der IPersistMessage::Load-Methode , die zu dem Objekt gehört, auf das ppPersistMessage verweist.

Wenn weder das Formular noch ein Formular, das Sie erstellen können, die nächste Nachricht verarbeiten kann, geben Sie S_FALSE zurück. Im Allgemeinen sollten Formulare diesen Wert jedoch nicht zurückgeben, da dies zu einer Leistungseinbuße im Formular-Viewer führt.

MFCMAPI-Referenz

Einen MFCMAP-Beispielcode finden Sie in der folgenden Tabelle.

Datei Funktion Kommentar
MAPIFormFunctions.cpp
CMyMAPIFormViewer::ActivateNext
MFCMAPI verwendet die IMAPIFormAdviseSink::OnActivateNext-Methode , um die IMAPIViewContext::ActivateNext-Methode zu implementieren.

Siehe auch

IMAPIViewContext::ActivateNext

IPersistMessage : IUnknown

IPersistMessage::Load

PidTagMessageFlags (kanonische Eigenschaft)

PidTagMessageStatus (kanonische Eigenschaft)

IMAPIFormAdviseSink : IUnknown

MFCMAPI (engl.) als ein Codebeispiel