Compartilhar via


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; }
}

Confira também