Freigeben über


IMAPIFolder::DeleteMessages

Gilt für: Outlook 2013 | Outlook 2016

Löscht eine oder mehrere Nachrichten.

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

Parameter

lpMsgList

[in] Ein Zeiger auf eine ENTRYLIST-Struktur , die die Anzahl der zu löschenden Nachrichten und ein Array von ENTRYID-Strukturen enthält, die die Nachrichten identifizieren.

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-Statusobjektimplementierung eine Statusanzeige an. Der lpProgress-Parameter wird ignoriert, es sei denn, das MESSAGE_DIALOG-Flag ist im ulFlags-Parameter festgelegt.

ulFlags

[in] Eine Bitmaske von Flags, die steuert, wie die Nachrichten gelöscht werden. Die folgenden Flags können festgelegt werden:

DELETE_HARD_DELETE

Entfernt dauerhaft alle Nachrichten, einschließlich vorläufig gelöschter Nachrichten.

MESSAGE_DIALOG

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

Rückgabewert

S_OK

Die angegebenen Nachrichten wurden erfolgreich gelöscht.

MAPI_W_PARTIAL_COMPLETION

Der Aufruf war erfolgreich, aber nicht alle Nachrichten wurden erfolgreich gelöscht. 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::D eleteMessages-Methode löscht Nachrichten aus einem Ordner. Nachrichten, die nicht vorhanden sind, die an einen anderen Ort verschoben wurden, die mit Lese-/Schreibberechtigung geöffnet sind oder die derzeit übermittelt werden, können nicht gelöscht werden.

Hinweise für Implementierer

Wenn der Löschvorgang mehrere Nachrichten umfasst, führen Sie den Vorgang so vollständig wie möglich für jeden Ordner aus, auch wenn eine oder mehrere der Nachrichten nicht gelöscht werden können. 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.

Hinweise für Aufrufer

Erwarten Sie diese Rückgabewerte unter den folgenden Bedingungen.

Bedingung R�ckgabewert
DeleteMessages hat erfolgreich jede Nachricht gelöscht. S_OK
DeleteMessages konnte nicht alle Nachrichten und Unterordner erfolgreich löschen. MAPI_W_PARTIAL_COMPLETION oder MAPI_E_NOT_FOUND
DeleteMessages konnte nicht abgeschlossen werden. Beliebiger Fehlerwert außer MAPI_E_NOT_FOUND

Wenn DeleteMessages nicht abgeschlossen werden kann, gehen Sie nicht davon aus, dass keine Arbeit erledigt wurde. DeleteMessages konnte möglicherweise eine oder mehrere der Nachrichten löschen, bevor der Fehler auftritt.

DeleteMessages gibt abhängig von der Implementierung des Nachrichtenspeichers MAPI_W_PARTIAL_COMPLETION oder MAPI_E_NOT_FOUND zurück.

MFCMAPI-Referenz

Einen MFCMAP-Beispielcode finden Sie in der folgenden Tabelle.

Datei Funktion Kommentar
FolderDlg.cpp
CFolderDlg::OnDeleteselectedItem
MFCMAPI verwendet die IMAPIFolder::D eleteMessages-Methode , um die angegebenen Nachrichten zu löschen.

Siehe auch

ENTRYID

ENTRYLIST

IMAPIFolder : IMAPIContainer

MFCMAPI (engl.) als ein Codebeispiel

Verwenden von Makros für die Fehlerbehandlung