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:
Rufen Sie die Klassenfactory Ihres Formulars auf, um eine instance eines neuen Formularobjekts zu erstellen.
Speichern Sie diese instance im Inhalt des ppPersistMessage-Zeigerparameters.
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
PidTagMessageFlags (kanonische Eigenschaft)
PidTagMessageStatus (kanonische Eigenschaft)