Compartilhar via


tabelas One-Off

Aplica-se a: Outlook 2013 | Outlook 2016

Uma tabela única contém informações sobre os modelos que um provedor de catálogo de endereços dá suporte para a criação de novos destinatários. Tabelas pontuais são implementadas por provedores de catálogo de endereços, contêineres de catálogo de endereços individuais e por MAPI e podem ser persistentes ou temporárias.

Observação

Não confunda os modelos em tabelas pontuais com identificadores de modelo; embora seus propósitos sejam semelhantes, seus construtores de código não são nada parecidos. Os modelos são usados para criar destinatários de um tipo específico, enquanto os identificadores de modelo são usados para associar os dados de um destinatário que pertencem a um provedor host com código para dar suporte a outro destinatário que pertence a um provedor estrangeiro.

Os clientes criam novos destinatários:

  • Para adicionar à lista de destinatários de uma mensagem de saída.

  • Para adicionar a um dos contêineres no catálogo de endereços.

Em ambos os cenários, um provedor de catálogo de endereços é solicitado a retornar uma tabela única. Os provedores de catálogo de endereços podem implementar uma única tabela única a ser usada em ambas as situações ou em uma tabela única exclusiva para cada situação.

Quando o destinatário será incluído com uma mensagem de saída, o MAPI chama o método IABLogon::GetOneOffTable do provedor de endereços para recuperar sua tabela única. A tabela única inclui modelos que permitem que um usuário insira informações resultando na criação de um destinatário com um endereço válido. O MAPI registra notificações nesta tabela, mantendo-a aberta para que as alterações possam ser refletidas para o usuário. O MAPI libera a tabela somente quando seu subsistema ou catálogo de endereços status método IMAPIStatus::ValidateState do objeto é chamado.

Quando o destinatário será adicionado a um contêiner, o MAPI faz uma chamada diferente, invocando o método IMAPIProp::OpenProperty do contêiner para recuperar sua propriedade PR_CREATE_TEMPLATES (PidTagCreateTemplates). O conjunto de modelos incluídos nesta tabela única representa os tipos de destinatários que podem ser adicionados ao contêiner. Por exemplo, os servidores de email geralmente expõem um contêiner para cada gateway instalado para que cada contêiner mantenha apenas endereços específicos do gateway correspondente.

O MAPI fornece uma tabela única que inclui seus próprios modelos, bem como modelos de cada um dos provedores de catálogo de endereços na sessão. O MAPI fornece um modelo genérico que pode ser usado para criar um novo destinatário para qualquer tipo de endereço, supondo que o usuário conheça seu formato. Os provedores de catálogo de endereços usam essa tabela única chamando IMAPISupport::GetOneOffTable. Cada um dos modelos incluídos na tabela única mapi resulta na criação de destinatários com endereços de destinatário válidos.

Os provedores de catálogo de endereços normalmente fornecem um modelo para cada tipo de endereço que dão suporte. No entanto, o suporte para modelos não é necessário. Provedores de catálogo de endereços que não permitem a criação de novos endereços podem retornar MAPI_E_NO_SUPPORT quando o MAPI chama para solicitar uma tabela única. Provedores de catálogo de endereços que permitem a criação de novos endereços, mas não fornecem nenhum modelo, podem chamar IMAPISupport::GetOneOffTable para usar os modelos listados na tabela mapi única.

As seguintes propriedades compõem o conjunto de colunas necessário em tabelas pontuais:

PR_ADDRTYPE indica o tipo de endereço que pode ser associado ao novo destinatário criado com o modelo.

PR_DISPLAY_NAME e PR_DISPLAY_TYPE associar dados ao novo destinatário. PR_DISPLAY_NAME contém uma cadeia de caracteres que identifica o novo destinatário e PR_DISPLAY_TYPE contém uma constante que identifica o tipo de ícone a ser exibido com a linha. Modelos para usuários de mensagens têm sua coluna PR_DISPLAY_TYPE definida como DT_MAILUSER; modelos para listas de distribuição têm sua coluna PR_DISPLAY_TYPE definida como DT_DISTLIST.

PR_ENTRYID é o identificador de entrada do modelo a ser usado para criar um novo destinatário. Esse identificador de entrada pode ser passado para futuras chamadas IAddrBook::NewEntry, IAddrBook::OpenEntry e IABContainer::CreateEntry . Os contêineres definem a coluna PR_ENTRYID de sua linha para o modelo de usuário de mensagens padrão como PR_DEF_CREATE_MAILUSER (PidTagDefCreateMailuser) e a coluna PR_ENTRYID de sua linha para o modelo de lista de distribuição padrão para PR_DEF_CREATE_DL (PidTagDefCreateDl).

PR_DEPTH é usado para dar suporte à exibição hierárquica das entradas em uma tabela única, indicando o nível de recuo para o modelo. Embora tabelas pontuais possam ser exibidas como uma lista simples ou uma exibição hierárquica, esta última é preferível e os provedores de catálogo de endereços devem dar suporte a ela definindo a coluna PR_DEPTH para cada linha adequadamente. PR_DEPTH é baseado em zero; Linhas com um valor de 0 na coluna PR_DEPTH não são recuadas. Quanto maior o valor de PR_DEPTH, mais a linha é recuada. Por exemplo, linhas com PR_DEPTH definida como 1 são recuadas uma guia enquanto linhas com PR_DEPTH definidas como 3 são recuadas em três guias.

PR_SELECTABLE é usado para indicar se uma linha na tabela representa um modelo que pode ser selecionado e usado para criar um novo destinatário. Embora a maioria das linhas em uma tabela única represente modelos, os provedores podem incluir linhas não modelo. Por exemplo, um provedor pode querer organizar a tabela única por tipo de modelo, incluindo uma linha de categoria que aparece na exibição, mas não é usada para a criação do destinatário.

Confira também

Tabelas MAPI