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