I’ve been working on a project using Visual Studio Tools for Office 2008 (VSTO) and at one point I needed to get the colors for categories in Outlook 2007. There are actually 3 colors, and they are returned as uint’s–why the .Net wrappers don’t convert to colors for you, I don’t know (to avoid linking to System.Drawing?).
The important thing is to convert them into the friendly System.Drawing.Color objects I know and love. For this task, there exists a handy ColorTranslator class. There is a FromOle method that does the exact chore you need. Here’s a sample of my code:
1: private void GetCategoryColors()
2: {
3: foreach (OutlookLib.Category category in
4: Application.ActiveExplorer().Session.Categories)
5: {
6: CategoryColor color = new CategoryColor(
7: ColorTranslator.FromOle((Int32)category.CategoryGradientTopColor),
8: ColorTranslator.FromOle((Int32)category.CategoryGradientBottomColor),
9: ColorTranslator.FromOle((Int32)category.CategoryBorderColor));
10: _categoryCollection[category.Name] = color;
11: }
12: }
Pingback: Arjan`s World » LINKBLOG for September 14, 2008