Énumération et ajout des catégories
Cet exemple montre comment énumérer les catégories et ajouter une catégorie à la liste de catégorie principale.
Exemple
Remarque
L’exemple de code suivant est un extrait de Programmation d’Applications pour Microsoft Office Outlook 2007.
Le modèle objet Outlook prend en charge des catégories qui simplifient l'organisation des éléments dans la boîte de réception d'un utilisateur. Pour conserver un niveau supérieur d’organisation, vous pouvez procédez comme suit :
- Classer les éléments Outlook et les afficher par catégorie.
- Appliquer plusieurs catégories de couleur à un élément Outlook unique.
- Grouper et trier des éléments Outlook par catégorie de couleur.
- Affecter des touches de raccourci à chaque catégorie de couleur, permettant ainsi aux utilisateurs de classer plus facilement les éléments.
- Créer, et changer les catégories de couleurs par programme ou par une action de l'utilisateur dans l'interface utilisateur d'Outlook.
Pour exposer la fonctionnalité des catégories, le modèle objet Outlook fournit un objet Category qui représente une catégorie couleur définie par l'utilisateur dans la liste principale de catégories. La liste principale de catégories contient les catégories couleur qui sont présentées dans l'interface utilisateur d'Outlook. La liste est représentée par la collection Categories de l'objet NameSpace . Pour créer un objet Category, utilisez la méthode Add(String, Object, Object) de la collection Categories. Lorsque vous créez un objet Category, un identificateur global unique (GUID, Globally Unique Identifier) est créé, et cet identificateur ne peut pas être modifié. Il est représenté par la propriété CategoryID. Cependant, vous pouvez changer le nom, la couleur et la touche de raccourci associés à une catégorie de couleur en définissant les propriétés Name, Color et ShortcutKey, respectivement, de l'objet Category. Vous pouvez modifier la propriété Color en définissant ou en récupérant sa constante OlCategoryColor. Pour reproduire la couleur dans un contrôle personnalisé, utilisez les propriétés en lecture seule suivantes de l'objet Category:
Ces propriétés renvoient une valeur OLE_COLOR qui dépend de la propriété Color de l'objet Category.
Les éléments Outlook sont affichés en fonction du nom de la catégorie. Chaque objet d'élément a une propriété Categories qui stocke une chaîne délimitée par des virgules qui représente les noms des catégories. Par exemple, pour l'objet MailItem , il convient d'utiliser la propriété MailItemCategories . Cela vous permet d'ajouter une catégorie à l'élément, même si la catégorie ne figure pas dans la liste principale des catégories.
Remarque
[!REMARQUE] Si la propriété Categories d'un élément contient un nom de catégorie qui ne figure pas dans la collection Categories de l'objet NameSpace, le nom de catégorie associé à cet élément Outlook s'affiche, mais sans couleur associée. La propriété Categories sur un objet Item ne renvoie pas une collection Categories.
Dans l'exemple de code suivant, la première procédure, EnumerateCategories, récupère la liste principale de catégories de l'utilisateur actuel, représentée par la collection Categories. Elle énumère ensuite les objets Category dans cette collection, puis écrit les propriétés Name et CategoryID des écouteurs de suivi de la collection Listeners. La deuxième procédure, AddACategory, récupère la liste principale de catégories de l'utilisateur actuel et utilise la méthode CategoryExists pour vérifier si une catégorie nommée « ISV » existe dans la collection. Si aucune catégorie n'existe sous le nom « ISV », AddACategory ajoute une catégorie nommée « ISV » à la liste principale de catégories et lui affecte la couleur bleu foncé à l'aide de la méthode Add de la collection Categories. Il désigne également CTRL + F11 comme touche de raccourci pour la catégorie.
using Outlook = Microsoft.Office.Interop.Outlook;
private void EnumerateCategories()
{
Outlook.Categories categories =
Application.Session.Categories;
foreach (Outlook.Category category in categories)
{
Debug.WriteLine(category.Name);
Debug.WriteLine(category.CategoryID);
}
}
private void AddACategory()
{
Outlook.Categories categories =
Application.Session.Categories;
if (!CategoryExists("ISV"))
{
Outlook.Category category = categories.Add("ISV",
Outlook.OlCategoryColor.olCategoryColorDarkBlue,
Outlook.OlCategoryShortcutKey.olCategoryShortcutKeyCtrlF11);
}
}
private bool CategoryExists(string categoryName)
{
try
{
Outlook.Category category =
Application.Session.Categories[categoryName];
if(category != null)
{
return true;
}
else
{
return false;
}
}
catch { return false; }
}