Partager via


Exécution immédiate d’une règle

Cet exemple montre comment exécuter instantanément une règle à l’aide de la méthode Execute(Object, Object, Object, Object) de l’objet Rule.

Exemple

Remarque

L’exemple de code suivant est un extrait de programmation d’Applications pour Microsoft Office Outlook 2007.

Vous pouvez déclencher l'exécution immédiate d'une règle en appelant la méthode Execute sur l'objet Rule. Les paramètres de la méthode Execute sont facultatifs ; s'ils ne sont pas spécifiés, la règle sera appliquée à tous les messages de la Boîte de réception mais pas à ses sous-dossiers, et des valeurs par défaut seront utilisées pour les paramètres. Le tableau suivant répertorie les valeurs par défaut pour les paramètres facultatifs de la méthode Execute.

Paramètre

Valeur par défaut

ShowProgress

False

Dossier

Boîte de réception

IncludeSubfolders

False

RuleExecuteOption

OlRuleExecuteOption.olRuleExecuteAllMessages

Vous pouvez annuler l’exécution d’une règle à l’aide de l’Assistant Règles et alertes. Vous pouvez aussi annuler l’exécution d’une règle en définissant le paramètre ShowProgress sur true, puis en annulant la boîte de dialogue de progression. Une fois que vous avez annulé la boîte de dialogue de progression, Execute renvoie une erreur.

Dans l’exemple de code suivant, ExecuteManagerRule obtient la règle qui a été créée dans la procédure CreateManagerRule de la rubrique Créer une règle pour classer les éléments de courrier provenant d’un responsable et les marquer pour suivi. ExecuteManagerRule vérifie ensuite si la règle n’est pas une référence NULL. Si ce n’est pas le cas, ExecuteManagerRule appelle la méthode Execute sur la règle avec les paramètres par défaut, exécutant immédiatement la règle.

Remarque

[!REMARQUE] Pour appliquer une règle une fois, indépendamment du fait que la propriété Enabled retourne true, utilisez la méthode Rule.Execute. Pour appliquer la règle pour la session actuelle et au-delà de cette session, utilisez à la fois la propriété Rule.Enabled et la méthode Save(Object) .

Si vous utilisez Visual Studio pour tester cet exemple de code, vous devez d’abord ajouter une référence au composant Bibliothèque d’objets Microsoft Outlook 15.0 et spécifier la variable lorsque vous importez l’espace de noms Microsoft.Office.Interop.Outlook. L’instruction using ne doit pas se produire juste avant les fonctions de l’exemple de code, mais doit être ajoutée avant la déclaration publique. La ligne de code suivante montre comment effectuer l’importation et l’affectation dans C#.

using Outlook = Microsoft.Office.Interop.Outlook;
private void ExecuteManagerRule()
{
    Outlook.AddressEntry currentUser =
        Application.Session.CurrentUser.AddressEntry;
    if (currentUser.Type == "EX")
    {
        try
        {
            string managerName = currentUser.
                GetExchangeUser().GetExchangeUserManager().Name;
            Outlook.Rule managerRule =
                Application.Session.DefaultStore.GetRules()[managerName];
            if (managerRule != null)
            {
                managerRule.Execute(false, Type.Missing,
                    Type.Missing, Type.Missing);
            }
        }
        catch (Exception ex)
        {
            Debug.WriteLine(ex.Message);
        }
    }
}

Voir aussi