当尝试使用赎回添加自定义类别时,Outlook默认类别正在添加到类别列表中



我有一个outlook插件,可以在插件启动完成时向outlook添加自定义类别。

public void CreateCategories()
{
RDOCategories categories = null;
RDOCategory category = null;            
try
{
var customCategoryList = FileManager.GetCustomCategoryList();
categories = rSession.Categories;
// add category 
foreach (var customCategory in customCategoryList)
{
try
{
category = categories.Add(customCategory.Name
, PaintHelper.GetHexCodeByColorName(customCategory.Color));
}
catch (Exception ex)
{

}
finally
{
if (category != null)
{
Marshal.ReleaseComObject(category);
}
}
}
}
catch (Exception ex)
{

}
finally
{
if (categories != null)
{
Marshal.ReleaseComObject(categories);
}
}
}

当我从outlook中删除所有类别并尝试运行插件时,它仍然显示rssession .categories的计数作为6,它添加了所有默认的6个类别以及自定义类别。

当所有outlook分类被删除时,我们可以忽略添加默认分类吗?

如果没有类别,Redemption将假定它是Outlook从未接触过的全新商店,并添加默认类别。

尝试在添加自定义类别后删除默认类别

使用命名空间对象的Categories属性获取一个Categories对象引用,表示该命名空间的Master Category List

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("MyCategory"))
{
Outlook.Category category = categories.Add("MyCategory",
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; }
}

AddACategory过程获取当前用户的主类别列表,并使用CategoryExists方法检查集合中是否存在名为MyCategory的类别。如果没有名称为MyCategory的类别存在,则AddACategory将一个名为"MyCategory"的类别添加到主类别列表中,并使用Categories集合的Add方法为其分配一个深蓝色。

相关内容

  • 没有找到相关文章

最新更新