Partager via


IMAPIForm::ShutdownForm

S’applique à : Outlook 2013 | Outlook 2016

Ferme le formulaire.

HRESULT ShutdownForm(
  ULONG ulSaveOptions
);

Paramètres

ulSaveOptions

[in] Valeur qui contrôle comment ou si les données du formulaire sont enregistrées avant la fermeture du formulaire. Vous pouvez d�finir un des indicateurs suivants :

SAVEOPTS_NOSAVE

Les données de formulaire ne doivent pas être enregistrées.

SAVEOPTS_PROMPTSAVE

L’utilisateur doit être invité à enregistrer les données modifiées dans le formulaire.

SAVEOPTS_SAVEIFDIRTY

Les données de formulaire doivent être enregistrées si elles ont changé depuis le dernier enregistrement. Si aucune interface utilisateur n’est affichée, le formulaire peut éventuellement basculer vers l’utilisation de la fonctionnalité pour l’option SAVEOPTS_NOSAVE.

Valeur renvoyée

S_OK

Le formulaire a été fermé.

E_UNEXPECTED

Le formulaire a déjà été fermé par un appel antérieur à ShutdownForm.

Remarques

Les visionneuses de formulaires appellent la méthode IMAPIForm ::ShutdownForm pour fermer un formulaire.

Remarques pour les responsables de l’implémentation

Effectuez les tâches suivantes dans votre implémentation de ShutdownForm :

  1. Vérifiez qu’une visionneuse n’a pas déjà appelé ShutdownForm et retournez E_UNEXPECTED si elle l’a fait. Bien que cela soit peu probable, vous devez case activée.

  2. Appelez la méthode IUnknown ::AddRef de votre formulaire afin que le stockage du formulaire et toutes les structures de données internes restent disponibles jusqu’à la fin du traitement.

  3. Déterminez s’il existe des modifications non enregistrées dans les données du formulaire. Enregistrez les données non enregistrées en fonction de la façon dont le paramètre ulSaveOptions est défini en appelant la méthode IMAPIMessageSite ::SaveMessage de votre visionneuse.

  4. Détruisez la fenêtre d’interface utilisateur de votre formulaire.

  5. Libérez les objets de message et de site de message de votre formulaire en appelant leurs méthodes IUnknown ::Release .

  6. Informez tous les observateurs inscrits de l’arrêt en attente en appelant leurs méthodes IMAPIViewAdviseSink ::OnShutdown .

  7. Appelez la méthode IMAPIViewContext ::SetAdviseSink pour annuler l’inscription de votre formulaire pour la notification en définissant le pointeur récepteur de conseil sur null.

  8. Appelez la fonction MAPIFreeBuffer pour libérer de la mémoire pour les propriétés de votre formulaire.

  9. Appelez la méthode IUnknown ::Release de votre formulaire, correspondant à l’appel AddRef effectué à l’étape 2.

  10. Elles retournent S_OK.

Remarque

Une fois ces actions terminées, les seules méthodes valides sur l’objet de formulaire qui peuvent être appelées sont celles de l’interface IUnknown .

Remarques pour les appelants

Lorsque ShutdownForm retourne, qu’il retourne ou non une erreur, libérez le formulaire en appelant sa méthode IUnknown ::Release . Vous pouvez ignorer en toute sécurité les erreurs retournées par ShutdownForm.

Voir aussi

IMAPIMessageSite::SaveMessage

IMAPIViewAdviseSink::OnShutdown

IMAPIViewContext::SetAdviseSink

MAPIFreeBuffer

IMAPIForm : IUnknown