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 mit vom Client oder Anbieter definierten Kennzeichen, die aus der Eigenschaft PR_MSG_STATUS (PidTagMessageStatus) der nächsten anzuzeigenden Nachricht kopiert wird und Statusinformationen zu der Inhaltstabelle enthält, in der die Nachricht enthalten ist.

ulMessageFlags

[in] Ein Zeiger auf eine Bitmaske aus Kennzeichen, die aus der Eigenschaft PR_MESSAGE_FLAGS (PidTagMessageFlags) der nächsten anzuzeigenden Nachricht kopiert wurde und 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, falls 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 wurde erfolgreich übermittelt und das Formular kann die nächste Nachricht verarbeiten.

S_FALSE

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

Hinweise

Die 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, in der Regel handelt es sich jedoch um eine Nachricht derselben oder einer verwandten Klasse. Dadurch wird das Lesen mehrerer Nachrichten derselben Klasse effizienter, da Clientanwendungen Formularobjekte nach Möglichkeit wiederverwenden können.

Die meisten Formularobjekte verwenden die Nachrichtenklasse, auf die der Parameter lpszMessageClass verweist, um zu bestimmen, ob sie die nächste Nachricht verarbeiten können. In der Regel kann ein Formular neben Nachrichten, die zur Standardklasse gehören, auch Nachrichten verarbeiten, die zu Klassen gehören, deren Standardklasse eine Unterklasse der Standardklasse des Formulars ist. Ein Formular kann jedoch auch andere Faktoren heranziehen, um ohne Rückfrage zu entscheiden, ob eine Nachricht verarbeitet werden kann, beispielsweise den Status „gesendet“ oder „nicht gesendet“ der nächsten Nachricht.

Hinweise für Implementierer

Geben Sie S_OK und NULL im Parameter ppPersistMessage 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 Instanz eines neuen Formularobjekts zu erstellen.

  2. Speichern Sie diese Instanz im Inhalt des Zeigerparameters ppPersistMessage.

  3. Geben Sie S_OK zurück.

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

Wenn weder das Formular noch ein von Ihnen erstelltes Formular 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 verminderten Leistung 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 Methode IMAPIFormAdviseSink::OnActivateNext, um die Methode IMAPIViewContext::ActivateNext zu implementieren.

Siehe auch

IMAPIViewContext::ActivateNext

IPersistMessage : IUnknown

IPersistMessage::Load

PidTagMessageFlags (kanonische Eigenschaft)

PidTagMessageStatus (kanonische Eigenschaft)

IMAPIFormAdviseSink : IUnknown

MFCMAPI (engl.) als ein Codebeispiel