Compartilhar via


Tabelas MAPI

Aplica-se a: Outlook 2013 | Outlook 2016

Uma tabela MAPI é um objeto MAPI que é usado para exibir uma coleção de propriedades pertencentes a outros objetos MAPI de um tipo específico. As tabelas MAPI são estruturadas em um formato de linha e coluna com cada linha representando um objeto e cada coluna que representa uma propriedade do objeto. Uma das propriedades geralmente incluídas em cada linha é a propriedade PR_ENTRYID (PidTagEntryId), um identificador que pode ser usado para abrir e modificar o objeto.

Como as linhas contêm valores de propriedade, recuperar uma linha de uma tabela é semelhante a obter um conjunto de propriedades diretamente do objeto que a linha representa. Ambas as operações resultam na recuperação de uma matriz de valor de propriedade. A diferença main está no tratamento de propriedades binárias e de cadeia de caracteres longas. Para inclusão em uma tabela, alguns implementadores de tabela truncam essas propriedades para 255 bytes. Quando recuperado diretamente do objeto, o valor completo está sempre disponível.

As tabelas são implementadas por provedores de catálogo de endereços e repositório de mensagens e por MAPI, dependendo do tipo de tabela e dos objetos dentro dela. Um provedor de armazenamento de mensagens implementa pastas e uma tabela de conteúdo para cada pasta que inclui informações sobre as mensagens na pasta. Um provedor de catálogo de endereços implementa contêineres de catálogo de endereços e uma tabela de hierarquia que mostra sua organização. O MAPI implementa várias tabelas diferentes, algumas para uso por aplicativos cliente, algumas para uso por provedores de serviços e outras para uso por ambos. A tabela status é exclusiva na qual o MAPI finalmente fornece a tabela, mas as linhas são compostas por contribuições de todos os tipos de provedores de serviços, além do MAPI.

A ilustração a seguir mostra um dos usos frequentes de uma tabela no MAPI: para exibir o conteúdo de uma pasta. À direita está uma exibição de duas mensagens, conforme pode aparecer em um aplicativo cliente de mensagens típico. A exibição contém quatro informações sobre cada mensagem: o remetente, o destinatário, o assunto e o texto da mensagem. Cada informação corresponde a uma propriedade da mensagem.

À esquerda está uma exibição da tabela de conteúdo que inclui essas duas mensagens. Considerando que a tabela de conteúdo pode ter dez linhas porque a pasta tem dez mensagens, com cada linha contendo muito mais de três colunas, essa exibição específica é limitada a apenas duas linhas e três colunas.

A tabela a seguir mostra as propriedades que compõem o conjunto de colunas para a exibição da tabela.

Propriedade Descrição
PR_SENDER_NAME (PidTagSenderName)
Nome do remetente
PR_ORIGINAL_DELIVERY_TIME (PidTagOriginalDeliveryTime)
Data e hora em que a mensagem foi enviada
PR_SUBJECT (PidTagSubject)
Linha de assunto da mensagem

Observe que o conjunto de propriedades exibidas na mensagem não é o mesmo que o conjunto de colunas exibidas na tabela. O implementador da tabela, nesse caso um provedor de armazenamento de mensagens, fornece um conjunto padrão de colunas em uma ordem padrão. O cliente pode modificar esse conjunto de colunas, solicitar colunas adicionais ou rejeitar as padrão e solicitar que elas sejam ordenadas de maneira específica. O cliente também pode solicitar as linhas, classificando-as de acordo com o valor de uma ou mais colunas.

Using a table to display folder contents

Usando uma tabela para exibir o conteúdo da pasta

Há duas interfaces para trabalhar com tabelas:

  • IMAPITable : O IUnknown fornece aos clientes e provedores de serviço uma exibição somente leitura dos dados subjacentes da tabela, permitindo que eles exibam e alterem apenas a apresentação. Vários usuários podem acessar os mesmos dados simultaneamente com IMAPITable. A IMAPITable é implementada pelo MAPI e pelos provedores de serviços.

  • ITableData : O IUnknown fornece aos clientes e provedores de serviços acesso de leitura/gravação aos dados subjacentes da tabela, permitindo que eles façam alterações permanentes. O IMAPITable é implementado pelo MAPI e usado principalmente por provedores de serviços que o acessam chamando a função CreateTable . A implementação ITableData contém todos os dados da tabela e quaisquer restrições associadas na memória, tornando-os inadequados para uso com tabelas muito grandes. Restrições compostas e operações complexas, como categorização, não têm suporte.

Confira também