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 den der lpEntryID-Parameter zeigt.

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, die Kennzeichnung FOLDER_DIALOG wird 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 einen Statusindikator an. Der Parameter lpProgress wird ignoriert, es sei denn, das Flag FOLDER_DIALOG wird 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 zeigt, sollten gelöscht werden.

DEL_MESSAGES

Alle Nachrichten im Unterordner, auf die lpEntryID zeigt, müssen gelöscht werden.

DELETE_HARD_DELETE

Entfernt den Ordner endgültig.

FOLDER_DIALOG

Während der Ausführung des Vorgangs muss 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 zu löschende Unterordner enthält Meldungen, 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, muss 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 Methode IMAPIFolder::DeleteFolder löscht einen Unterordner. Standardmäßig wird DeleteFolder nur für leere Ordner ausgeführt. Sie können ihn jedoch erfolgreich für nicht leere Ordner verwenden, indem Sie zwei Flags festlegen: DEL_FOLDERS und DEL_MESSAGES. Nur leere Ordner oder Ordner, die sowohl das DEL_FOLDERS- als auch das DEL_MESSAGES-Flag 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.

Mit dem MFCMAPI-Programm können Sie zwischen dem vorläufigen Löschen von Ordnern und dem endgültigen Löschen von Ordnern wählen. Exchange Server 2019 implementiert auch kein vorläufiges Löschen von Ordnern 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 eine andere Stelle 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. zu wenig Arbeitsspeicher, nicht genügend Speicherplatz 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 erledigt 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 Methode IMAPIFolder::DeleteFolder zum Löschen von Ordnern.

Siehe auch

IMAPIFolder : IMAPIContainer

MFCMAPI (engl.) als ein Codebeispiel