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. |