Freigeben über


IMAPIFolder::SetReadFlags

Gilt für: Outlook 2013 | Outlook 2016

Legt das MSGFLAG_READ-Flag in der eigenschaft PR_MESSAGE_FLAGS (PidTagMessageFlags) einer oder mehrerer Nachrichten des Ordners fest oder löscht es und verwaltet das Senden von Leseberichten.

HRESULT SetReadFlags(
  LPENTRYLIST lpMsgList,
  ULONG_PTR ulUIParam,
  LPMAPIPROGRESS lpProgress,
  ULONG ulFlags
);

Parameter

lpMsgList

[in] Ein Zeiger auf ein Array von ENTRYLIST-Strukturen , die die Nachricht oder Nachrichten identifizieren, deren Leseflags festgelegt oder gelöscht werden sollen. Wenn lpMsgList auf NULL festgelegt ist, werden die Leseflags für alle Nachrichten des Ordners festgelegt oder gelöscht.

ulUIParam

[in] Ein Handle für das übergeordnete Fenster der Statusanzeige. Der ulUIParam-Parameter wird ignoriert, es sei denn, das MESSAGE_DIALOG-Flag ist im ulFlags-Parameter festgelegt.

lpProgress

[in] Ein Zeiger auf ein Statusobjekt, das eine Statusanzeige anzeigt. Wenn NULL in lpProgress übergeben wird, zeigt der Nachrichtenspeicheranbieter mithilfe der MAPI-Implementierung eine Statusanzeige an. Der lpProgress-Parameter wird ignoriert, es sei denn, das flag MESSAGE_DIALOG ist in ulFlags festgelegt.

ulFlags

[in] Eine Bitmaske von Flags, die die Einstellung des Leseflags einer Nachricht und die Verarbeitung von Leseberichten steuert. Die folgenden Flags können festgelegt werden:

  • CLEAR_READ_FLAG: Das MSGFLAG_READ-Flag sollte in PR_MESSAGE_FLAGS deaktiviert und kein Lesebericht gesendet werden.

  • CLEAR_NRN_PENDING: Das MSGFLAG_NRN_PENDING-Flag sollte in PR_MESSAGE_FLAGS deaktiviert und kein ungelesener Bericht gesendet werden.

  • CLEAR_RN_PENDING: Das MSGFLAG_RN_PENDING-Flag sollte in PR_MESSAGE_FLAGS deaktiviert und kein Lesebericht gesendet werden.

  • GENERATE_RECEIPT_ONLY: Ein Lesebericht sollte gesendet werden, wenn ein Bericht aussteht, der Status des MSGFLAG_READ-Flags sollte jedoch nicht geändert werden.

  • MAPI_DEFERRED_ERRORS: Ermöglicht es SetReadFlags , erfolgreich zurückzugeben, möglicherweise bevor der Vorgang abgeschlossen wurde.

  • MESSAGE_DIALOG: Zeigt eine Statusanzeige an, während der Vorgang fortgesetzt wird.

  • SUPPRESS_RECEIPT: Ein ausstehender Lesebericht sollte abgebrochen werden, wenn ein Lesebericht angefordert wurde und dieser Aufruf den Status der Nachricht von ungelesen in gelesen ändert. Wenn dieser Aufruf den Status der Nachricht nicht ändert, kann der Nachrichtenspeicheranbieter dieses Flag ignorieren.

Rückgabewerte

S_OK

Das Leseflag für die angegebene Nachricht bzw. die angegebenen Nachrichten wurde erfolgreich festgelegt oder gelöscht.

MAPI_E_NO_SUPPRESS

Der Nachrichtenspeicheranbieter unterstützt die Unterdrückung von Leseberichten nicht.

MAPI_E_INVALID_PARAMETER

Eine der folgenden inkompatiblen Kombinationen von Flags wird im ulFlags-Parameter festgelegt:

  • SUPPRESS_RECEIPT | CLEAR_READ_FLAG

  • SUPPRESS_RECEIPT | CLEAR_READ_FLAG | GENERATE_RECEIPT_ONLY

  • CLEAR_READ_FLAG | GENERATE_RECEIPT_ONLY

MAPI_W_PARTIAL_COMPLETION

Der Aufruf war erfolgreich, aber nicht alle Nachrichten wurden erfolgreich verarbeitet. Wenn diese Warnung zurückgegeben wird, sollte der Aufruf als erfolgreich behandelt werden. Verwenden Sie zum Testen auf diese Warnung das Makro HR_FAILED . Weitere Informationen finden Sie unter Verwenden von Makros für die Fehlerbehandlung.

Hinweise

Die IMAPIFolder::SetReadFlags-Methode legt das MSGFLAG_READ-Flag in der PR_MESSAGE_FLAGS-Eigenschaft einer oder mehrerer Nachrichten des Ordners fest oder löscht es. Durch Festlegen des MSGFLAG_READ Flags wird eine Nachricht als gelesen gekennzeichnet, was nicht unbedingt darauf hinweist, dass der beabsichtigte Empfänger die Nachricht tatsächlich gelesen hat.

SetReadFlags verwaltet auch das Senden von Leseberichten.

Das Leseflag kann für Folgendes nicht geändert werden:

  • Nachrichten, die nicht vorhanden sind.

  • Nachrichten, die an einen anderen Ort verschoben wurden.

  • Nachrichten, die mit Lese-/Schreibberechtigung geöffnet sind.

  • Nachrichten, die derzeit übermittelt werden.

Hinweise für Implementierer

Sie können das Senden von Leseberichten und die Anforderung zum Unterdrücken von Leseberichten nicht unterstützen. Um das Unterdrücken eines Leseberichts zu vermeiden, geben Sie MAPI_E_NO_SUPPRESS zurück, wenn SetReadFlags mit SUPPRESS_RECEIPT aufgerufen wird, der im ulFlags-Parameter festgelegt ist.

Wenn der lpMsgList-Parameter auf mehr als eine Nachricht verweist, führen Sie den Vorgang für jede Nachricht so vollständig wie möglich aus. Beenden Sie den Vorgang nicht vorzeitig, es sei denn, es tritt ein Fehler auf, der außerhalb Ihrer Kontrolle liegt, z. B. nicht genügend Arbeitsspeicher, nicht genügend Speicherplatz auf dem Datenträger oder beschädigung im Nachrichtenspeicher.

Wenn keines der Flags im ulFlags-Parameter festgelegt ist, gelten die folgenden Regeln:

  • Wenn MSGFLAG_READ bereits festgelegt ist, tun Sie nichts.

  • Wenn MSGFLAG_READ nicht festgelegt ist, legen Sie es sofort fest, und senden Sie alle ausstehenden Leseberichte, wenn die eigenschaft PR_READ_RECEIPT_REQUESTED (PidTagReadReceiptRequested) festgelegt ist.

Wenn das SUPPRESS_RECEIPT-Flag festgelegt ist, gelten die folgenden Regeln:

  • Wenn MSGFLAG_READ bereits festgelegt ist, tun Sie nichts.

  • Wenn MSGFLAG_READ nicht festgelegt ist, legen Sie es fest, und brechen Sie alle ausstehenden Leseberichte ab.

Wenn das CLEAR_READ_FLAG-Flag festgelegt ist, deaktivieren Sie das MSGFLAG_READ-Flag in der PR_MESSAGE_FLAGS-Eigenschaft jeder Nachricht, und senden Sie keine Leseberichte.

Wenn das GENERATE_RECEIPT_ONLY-Flag festgelegt ist, senden Sie alle ausstehenden Leseberichte. Legen Sie MSGFLAG_READ nicht fest oder löschen Sie sie nicht.

Wenn sowohl die SUPPRESS_RECEIPT- als auch GENERATE_RECEIPT_ONLY-Flags festgelegt sind, legen Sie PR_READ_RECEIPT_REQUESTED auf FALSE fest, wenn sie festgelegt ist, und senden Sie keinen Lesebericht.

Hinweise für Aufrufer

Erwarten Sie diese Rückgabewerte unter den folgenden Bedingungen.

Bedingung R�ckgabewert
SetReadFlags hat jede Nachricht erfolgreich verarbeitet. S_OK
SetReadFlags konnte nicht jede Nachricht erfolgreich verarbeiten. MAPI_W_PARTIAL_COMPLETION oder MAPI_E_NOT_FOUND
SetReadFlags konnte nicht abgeschlossen werden. Beliebiger Fehlerwert außer MAPI_E_NOT_FOUND

Wenn SetReadFlags nicht abgeschlossen werden kann, gehen Sie nicht davon aus, dass keine Arbeit erledigt wurde. SetReadFlags konnte möglicherweise das MSGFLAG_READ-Flag für eine oder mehrere der Nachrichten festlegen oder löschen, bevor der Fehler auftritt.

MFCMAPI-Referenz

Einen MFCMAP-Beispielcode finden Sie in der folgenden Tabelle.

Datei Funktion Kommentar
FolderDlg.cpp
CFolderDlg::OnSetReadFlag
MFCMAPI verwendet die IMAPIFolder::SetReadFlags-Methode, um die Lese-status für die angegebenen Nachrichten manuell festzulegen.

Siehe auch