Enumerar e adicionar categorias
Este exemplo mostra como enumerar categorias e adicionar uma categoria na lista categoria principal.
Exemplo
Observação
O exemplo de código a seguir é um trecho da Programação de aplicativos do Microsoft Office Outlook 2007.
O modelo de objeto do Outlook oferece suporte à categorias que ajudam a organizar itens na caixa de entrada do usuário. Para manter o nível mais alto da organização, faça o seguinte:
- Categorize itens do Outlook e exiba-os por categoria.
- Aplique várias categorias de cores a um único item do Outlook.
- Agrupe e classifique os itens do Outlook por categoria de cores.
- Atribua teclas de atalho para cada categoria de cores, permitindo que os usuários possam categorizar itens mais facilmente.
- Crie, exclua e altere as categorias de cores por programação ou por ação do usuário na interface de usuário do Outlook.
Para expor o recurso de categorias, o modelo de objeto do Outlook fornece o objeto categoria que representa uma única categoria de cores definidas pelo usuário na lista categoria principal. A lista Categoria principal contém categorias de cores que são apresentadas na interface de usuário do Outlook. A lista é representada pelo conjunto categorias do objeto NameSpace. Para criar um objeto categoria, use o método adicionar (cadeia de caracteres, objeto, objeto)do conjunto categorias. Quando você cria um objeto categoriaum identificador global exclusivo (GUID) é criado, e esse identificador não pode ser alterado. É representado pela propriedadeIdcategoria. No entanto, você pode alterar a chave de nome, a cor e o atalho associado a uma categoria de cores, definindo as propriedadesnome, cores, e ShortcutKey, respectivamente, da categoria em objeto. Você pode alterar a propriedade cordefinindo ou obtendo suas constantes OlCategoryColor. Para reproduzir a cor de um controle personalizado, use as seguintes propriedades de somente leitura do objetocategoria:
Essas propriedades retornam um valor OLE_COLOR , que depende da propriedade Color do objeto Category .
Itens do Outlook são exibidos com base no nome da categoria. Cada objeto do item tem a propriedadecategoriasque armazena uma cadeia de caracteres delimitada por vírgula e que representa os nomes das categorias. (Por exemplo, para o objeto MailItem, você usaria a propriedade Categorias de MailItem). Isso permite que você adicione uma categoria para o item, mesmo se a categoria não estiver presente na lista de categorias.
Observação
Se a propriedade categorias de um item contém um nome de categoria que não esteja na coleçãocategorias do objeto NameSpace, o nome da categoria associada ao item do Outlook será exibido, mas sem uma cor associada. A propriedade categoriasem um objeto Item não retorna a coleção categorias.
No exemplo código a seguir, o primeiro procedimento EnumerateCategories, é a lista principal do usuário de categorias representado pela coleçãocategorias. Em seguida enumera, o objetocategoriadessa coleção e escreve as propriedadesnomeeIdcategoria do rastreamento de ouvintes na coleçãoOuvintes. O segundo procedimento AddACategory, é a lista principal do usuário de categorias e usa o método CategoryExists para verificar se existe uma categoria chamada "ISV" no conjunto. Se nenhuma categoria com o nome "ISV" existir, o AddACategory adiciona uma categoria chamada "ISV" na lista de categoria principal e atribui uma cor escura azul usando a coleçãoadicione método da categorias. Atribui CTRL + F11. como teclas de atalho para a categoria.
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; }
}