Tabelas de hierarquia

Aplica-se a: Outlook 2013 | Outlook 2016

Uma tabela de hierarquia contém informações sobre as pastas em um repositório de mensagens ou os contêineres em um contêiner de catálogo de endereços. Cada linha de uma tabela de hierarquia contém um conjunto de colunas com informações sobre uma pasta ou contêiner do catálogo de endereços. As tabelas de hierarquia são usadas principalmente por clientes e implementadas por provedores de repositório de mensagens para mostrar uma árvore de pastas e subpastas e implementadas por provedores de catálogo de endereços para mostrar uma árvore de contêineres no catálogo de endereços. Os contêineres que não podem conter subcontêineres, conforme indicado pela ausência do sinalizador de AB_SUBCONTAINERS em sua propriedade PR_CONTAINER_FLAGS (PidTagContainerFlags), não implementam uma tabela de hierarquia.

Uma tabela de hierarquia pode ser acessada chamando:

Contêineres e pastas devem dar suporte a ambas as técnicas para recuperar propriedades da tabela. É inaceitável que os provedores de serviços ofereçam suporte a apenas uma maneira de acessar essas tabelas porque os clientes esperam ter a escolha.

Importante

Não há garantia de que os provedores da Store honrem o conjunto de ordens de classificação especificado para tabelas de hierarquia.

A chamada para IMAPIProp::OpenProperty envolve o acesso à tabela de hierarquia abrindo sua propriedade correspondente, PR_CONTAINER_HIERARCHY. Embora PR_CONTAINER_HIERARCHY não possa ser recuperado por meio do método IMAPIProp::GetProps de uma pasta ou contêiner, ele está incluído na matriz de marca de propriedade retornada pelo método IMAPIProp::GetPropList .

PR_CONTAINER_HIERARCHY também pode ser usado para incluir ou excluir uma tabela de hierarquia de uma operação de cópia. Se um cliente especificar PR_CONTAINER_HIERARCHY no parâmetro lpExcludeProps para IMAPIProp::CopyTo em uma operação de cópia, a nova pasta ou contêiner não dará suporte à tabela de hierarquia da pasta ou contêiner original.

As seguintes propriedades compõem o conjunto de colunas necessário em uma tabela de hierarquia:

Valor
PR_COMMENT (PidTagComment)
PR_DEPTH (PidTagDepth)
PR_DISPLAY_NAME (PidTagDisplayName)
PR_DISPLAY_TYPE (PidTagDisplayType)
PR_ENTRYID (PidTagEntryId)
PR_INSTANCE_KEY (PidTagInstanceKey)
PR_OBJECT_TYPE (PidTagObjectType)
PR_STATUS (PidTagStatus)

PR_DISPLAY_NAME contém o nome do contêiner ou pasta que deve aparecer na exibição da hierarquia.

PR_ENTRYID é o identificador de entrada associado a esse contêiner ou pasta. Espera-se que seja um identificador de entrada de longo prazo. Os clientes e o MAPI podem passar esse identificador de entrada para OpenEntry para abrir o contêiner ou pasta e exibir seu conteúdo chamando IMAPIContainer::GetContentsTable.

PR_DEPTH é um valor numérico que indica o nível de recuo para esse contêiner ou pasta com zero sendo o nível superior. Quanto mais profundo for o contêiner ou pasta em um hierarquia, maior será o valor de sua propriedade PR_DEPTH . Os clientes usam a propriedade PR_DEPTH para exibir uma tabela de hierarquia adequadamente, de modo que os usuários possam ver claramente os relacionamentos pai e filho. A profundidade do contêiner ou pasta é sempre relativa ao contêiner ou pasta que implementa a tabela hierárquica.

PR_OBJECT_TYPE é sempre definido como MAPI_ABCONT para tabelas de hierarquia de catálogo de endereços e MAPI_FOLDER para tabelas de hierarquia de pastas.

PR_DISPLAY_TYPE é um valor numérico relacionado a como um contêiner ou pasta é exibido na tabela de hierarquia. É usado principalmente para fins de exibição, para diferenciar visualmente entre os tipos de contêineres ou pastas. Muitos provedores de repositório de mensagens e catálogo de endereços usam ícones para os diferentes tipos de exibição. Cabe ao provedor fornecer esses ícones; O MAPI não fornece padrões.

O MAPI define muitos valores para PR_DISPLAY_TYPE, alguns que são válidos para pastas e outros que são usados com as tabelas de hierarquia de contêineres de catálogo de endereços. Normalmente, o PR_DISPLAY_TYPE de uma pasta é definido como DT_FOLDER para indicar um ícone de pasta padrão, DT_FOLDER_LINK para indicar um ícone que representa um link para outra pasta ou DT_FOLDER_SPECIAL para indicar um ícone específico do aplicativo. DT_FOLDER_LINK é usado com pastas de resultados de pesquisa.

Além dessas colunas necessárias, as tabelas de hierarquia do catálogo de endereços devem incluir a propriedade PR_CONTAINER_FLAGS . PR_CONTAINER_FLAGS indica vários atributos sobre um contêiner na hierarquia e é usado para distinguir um contêiner de outro.

Uma propriedade opcional para tabelas de hierarquia do catálogo de endereços é a propriedade PR_AB_PROVIDER_ID (PidTagAbProviderId).

As tabelas de hierarquia do repositório de mensagens incluem estas propriedades no conjunto de colunas obrigatório:

Os provedores de catálogo de endereços devem dar suporte aos seguintes métodos IMAPITable em suas implementações de tabela de hierarquia porque eles são exigidos pelo catálogo de endereços integrado MAPI:

Método Método
IMAPITable::QueryColumns
IMAPITable::QueryPosition
IMAPITable::SeekRow
IMAPITable::SeekRowApprox
IMAPITable::ExpandRow
IMAPITable::Restrict
IMAPITable::CreateBookmark
IMAPITable::FreeBookmark
IMAPITable::QueryRows

Confira também

Tabelas MAPI