Freigeben über


IMAPIFolder::DeleteFolder

Gilt für: Outlook 2013 | Outlook 2016

Löscht einen Unterordner.

HRESULT DeleteFolder(
  ULONG_PTR cbEntryID,
  LPENTRYID lpEntryID,
  ULONG_PTR ulUIParam,
  LPMAPIPROGRESS lpProgress,
  ULONG ulFlags
);

Parameter

cbEntryID

[in] Die Byteanzahl im Eintragsbezeichner, auf die der lpEntryID-Parameter verweist.

lpEntryID

[in] Ein Zeiger auf den Eintragsbezeichner des zu löschenden Unterordners.

ulUIParam

[in] Ein Handle für das übergeordnete Fenster der Statusanzeige. Der ulUIParam-Parameter wird ignoriert, es sei denn, das FOLDER_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 FOLDER_DIALOG-Flag ist in ulFlags festgelegt.

ulFlags

[in] Eine Bitmaske von Flags, die das Löschen des Unterordners steuert. Die folgenden Flags können festgelegt werden:

DEL_FOLDERS

Alle Unterordner des Unterordners, auf den lpEntryID verweist, sollten gelöscht werden.

DEL_MESSAGES

Alle Nachrichten im Unterordner, auf die lpEntryID verweist, sollten gelöscht werden.

DELETE_HARD_DELETE

Entfernt den Ordner endgültig.

FOLDER_DIALOG

Während des Vorgangs sollte eine Statusanzeige angezeigt werden.

Rückgabewert

S_OK

Der angegebene Ordner wurde erfolgreich gelöscht.

MAPI_E_HAS_FOLDERS

Der zu löschende Unterordner enthält Unterordner, und das flag DEL_FOLDERS wurde nicht festgelegt. Die Unterordner wurden nicht gelöscht.

MAPI_E_HAS_MESSAGES

Der gelöschte Unterordner enthält Nachrichten, und das flag DEL_MESSAGES wurde nicht festgelegt. Der Unterordner wurde nicht gelöscht.

MAPI_W_PARTIAL_COMPLETION

Der Aufruf war erfolgreich, aber nicht alle Einträge 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 eleteFolder-Methode löscht einen Unterordner. Standardmäßig arbeitet DeleteFolder nur für leere Ordner, aber Sie können es erfolgreich für nicht leere Ordner verwenden, indem Sie zwei Flags festlegen: DEL_FOLDERS und DEL_MESSAGES. Nur leere Ordner oder Ordner, die sowohl die DEL_FOLDERS- als auch DEL_MESSAGES-Flags für den DeleteFolder-Aufruf festlegen, können gelöscht werden. DEL_FOLDERS ermöglicht das Entfernen aller Unterordner des Ordners; DEL_MESSAGES ermöglicht das Entfernen aller Nachrichten des Ordners.

Das MFCMAPI-Programm ermöglicht die Wahl zwischen vorläufigem Löschen und endgültigem Löschen von Ordnern. Exchange Server 2019 implementiert das vorläufige Löschen von Ordnern auch nicht in privaten Speichern und behandelt Löschanforderungen für Ordner in privaten Speichern (siehe [ropOpenFolder]-Anforderung), als ob DELETE_HARD_DELETE festgelegt wäre.

Hinweise für Implementierer

Wenn der Löschvorgang mehrere Ordner umfasst, führen Sie den Vorgang für jeden Ordner so vollständig wie möglich aus. Manchmal ist einer der zu löschenden Ordner nicht vorhanden oder wurde an einen anderen Ort verschoben oder kopiert. 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
DeleteFolder hat erfolgreich alle Nachrichten und Unterordner gelöscht. S_OK
DeleteFolder konnte nicht alle Nachrichten und Unterordner erfolgreich löschen. MAPI_W_PARTIAL_COMPLETION oder MAPI_E_NOT_FOUND
DeleteFolder konnte nicht abgeschlossen werden. Beliebiger Fehlerwert außer MAPI_E_NOT_FOUND

Wenn DeleteFolder nicht abgeschlossen werden kann, gehen Sie nicht davon aus, dass keine Arbeit ausgeführt wurde. DeleteFolder konnte möglicherweise eine oder mehrere der Nachrichten und Unterordner löschen, bevor der Fehler auftritt.

Wenn mindestens ein Unterordner nicht gelöscht werden kann, gibt DeleteFolder abhängig von der Implementierung des Nachrichtenspeicheranbieters 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
MsgStoreDlg.cpp
CMsgStoreDlg::OnDeleteSelectedItem
MFCMAPI verwendet die IMAPIFolder::D eleteFolder-Methode , um Ordner zu löschen.

Siehe auch

IMAPIFolder : IMAPIContainer

MFCMAPI (engl.) als ein Codebeispiel