Partager via


IMAPIFolder::DeleteFolder

S’applique à : Outlook 2013 | Outlook 2016

Supprime un sous-dossier.

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

Paramètres

cbEntryID

[in] Nombre d’octets dans l’identificateur d’entrée vers lequel pointe le paramètre lpEntryID .

lpEntryID

[in] Pointeur vers l’identificateur d’entrée du sous-dossier à supprimer.

ulUIParam

[in] Handle de la fenêtre parente de l’indicateur de progression. Le paramètre ulUIParam est ignoré, sauf si l’indicateur FOLDER_DIALOG est défini dans le paramètre ulFlags .

lpProgress

[in] Pointeur vers un objet progress qui affiche un indicateur de progression. Si NULL est passé dans lpProgress, le fournisseur de magasin de messages affiche un indicateur de progression à l’aide de l’implémentation de l’objet de progression MAPI. Le paramètre lpProgress est ignoré, sauf si l’indicateur FOLDER_DIALOG est défini dans ulFlags.

ulFlags

[in] Masque de bits d’indicateurs qui contrôle la suppression du sous-dossier. Les indicateurs suivants peuvent être définis :

DEL_FOLDERS

Tous les sous-dossiers du sous-dossier pointé par lpEntryID doivent être supprimés.

DEL_MESSAGES

Tous les messages du sous-dossier pointé par lpEntryID doivent être supprimés.

DELETE_HARD_DELETE

Supprime définitivement le dossier.

FOLDER_DIALOG

Un indicateur de progression doit s’afficher pendant que l’opération se poursuit.

Valeur renvoyée

S_OK

Le dossier spécifié a été supprimé avec succès.

MAPI_E_HAS_FOLDERS

Le sous-dossier supprimé contient des sous-dossiers et l’indicateur DEL_FOLDERS n’a pas été défini. Les sous-dossiers n’ont pas été supprimés.

MAPI_E_HAS_MESSAGES

Le sous-dossier supprimé contient des messages et l’indicateur DEL_MESSAGES n’a pas été défini. Le sous-dossier n’a pas été supprimé.

MAPI_W_PARTIAL_COMPLETION

L’appel a réussi, mais toutes les entrées n’ont pas été supprimées avec succès. Lorsque cet avertissement est retourné, l’appel doit être géré comme ayant réussi. Pour tester cet avertissement, utilisez la macro HR_FAILED . Pour plus d’informations, consultez Utilisation de macros pour la gestion des erreurs.

Remarques

La méthode IMAPIFolder ::D eleteFolder supprime un sous-dossier. Par défaut, DeleteFolder fonctionne uniquement sur les dossiers vides, mais vous pouvez l’utiliser correctement sur des dossiers non vides en définissant deux indicateurs : DEL_FOLDERS et DEL_MESSAGES. Seuls les dossiers vides ou les dossiers qui définissent les indicateurs DEL_FOLDERS et DEL_MESSAGES sur l’appel DeleteFolder peuvent être supprimés. DEL_FOLDERS permet de supprimer tous les sous-dossiers du dossier ; DEL_MESSAGES permet de supprimer tous les messages du dossier.

Le programme MFCMAPI permet de choisir entre la suppression réversible du dossier et la suppression définitive du dossier. Exchange Server 2019 n’implémente pas non plus la suppression réversible des dossiers dans les magasins privés et traite les demandes de suppression des dossiers dans des magasins privés (cf. la demande [ropOpenFolder] ) comme si DELETE_HARD_DELETE était défini.

Remarques pour les responsables de l’implémentation

Lorsque l’opération de suppression implique plusieurs dossiers, effectuez l’opération aussi complètement que possible pour chaque dossier. Parfois, l’un des dossiers à supprimer n’existe pas ou a été déplacé ou copié ailleurs. N’arrêtez pas l’opération prématurément, sauf si une défaillance indépendante de votre contrôle se produit, telle qu’une insuffisance de mémoire, un manque d’espace disque ou une altération dans la banque de messages.

Remarques pour les appelants

Attendez-vous à ces valeurs de retour dans les conditions suivantes.

Condition Valeur renvoy�e
DeleteFolder a correctement supprimé tous les messages et sous-dossiers. S_OK
DeleteFolder n’a pas pu supprimer correctement tous les messages et sous-dossiers. MAPI_W_PARTIAL_COMPLETION ou MAPI_E_NOT_FOUND
DeleteFolder n’a pas pu se terminer. Toute valeur d’erreur à l’exception de MAPI_E_NOT_FOUND

Lorsque DeleteFolder ne peut pas se terminer, ne supposez pas qu’aucun travail n’a été effectué. DeleteFolder a peut-être pu supprimer un ou plusieurs des messages et sous-dossiers avant de rencontrer l’erreur.

Si un ou plusieurs sous-dossiers ne peuvent pas être supprimés, DeleteFolder retourne MAPI_W_PARTIAL_COMPLETION ou MAPI_E_NOT_FOUND, en fonction de l’implémentation du fournisseur de la banque de messages.

Référence MFCMAPI

Pour voir un exemple de code MFCMAPI, consultez le tableau suivant.

Fichier Fonction Commentaire
MsgStoreDlg.cpp
CMsgStoreDlg ::OnDeleteselectedItem
MFCMAPI utilise la méthode IMAPIFolder ::D eleteFolder pour supprimer des dossiers.

Voir aussi

IMAPIFolder : IMAPIContainer

MFCMAPI comme un exemple de Code