Compartilhar via


Tabelas de conteúdo

Aplica-se a: Outlook 2013 | Outlook 2016

Uma tabela de conteúdo contém informações sobre objetos em um contêiner MAPI. Os provedores de catálogo de endereços implementam tabelas de conteúdo para cada um de seus contêineres, e o repositório de mensagens e os provedores de transporte remoto implementam tabelas de conteúdo para suas pastas. A tabela de conteúdo de um contêiner de catálogo de endereços lista informações sobre seus objetos de lista de distribuição e usuário de mensagens, enquanto a tabela de conteúdo de uma pasta lista informações sobre suas mensagens. As tabelas de conteúdo são usadas principalmente por aplicativos cliente.

Há dois tipos de tabelas de conteúdo de pasta:

  • As tabelas de conteúdo padrão contêm mensagens padrão – mensagens que podem ser transmitidas e tornadas visíveis para um usuário.

  • As tabelas de conteúdo associadas contêm informações ocultas e não transmitíveis criadas por um cliente para uma finalidade específica, como armazenar uma representação alternativa de uma mensagem padrão. As informações associadas são criadas passando o sinalizador MAPI_ASSOCIATED para a chamada IMAPIFolder::CreateMessage .

As tabelas de conteúdo da maioria dos contêineres de catálogo de endereços e muitas pastas não dão suporte à classificação categorizada.

Uma tabela de conteúdo pode ser acessada chamando:

Os provedores do repositório de mensagens e do catálogo de endereços devem dar suporte a ambas as técnicas para recuperar propriedades da tabela. É inaceitável que os provedores dêem suporte apenas a uma maneira de acessar essas tabelas porque os clientes esperam ter a escolha.

GetContentsTable aceita como entrada vários sinalizadores que especificam preferências. Quando definido, o sinalizador MAPI_ASSOCIATED recupera uma tabela de conteúdo associada. Como algumas pastas não dão suporte a conteúdo associado e não há como os clientes determinarem isso com antecedência, o GetContentsTable às vezes retorna o erro MAPI_E_NO_SUPPORT quando uma tabela de conteúdo associada é solicitada.

O sinalizador MAPI_DEFERRED_ERRORS indica ao implementador da tabela que quaisquer erros encontrados durante a chamada não precisam ser relatados até algum momento posterior.

A chamada para IMAPIProp::OpenProperty envolve acessar uma tabela de conteúdo abrindo sua propriedade correspondente, PR_CONTAINER_CONTENTS para tabelas de conteúdo do catálogo de endereços e tabelas de conteúdo de pasta padrão e PR_FOLDER_ASSOCIATED_CONTENTS para tabelas de conteúdo associadas. Embora nenhuma ou essas propriedades possam ser recuperadas por meio do método IMAPIProp::GetProps de uma pasta ou contêiner, elas são incluídas na matriz de marcas de propriedade retornada pelo método IMAPIProp::GetPropList .

PR_CONTAINER_CONTENTS também pode ser usado para incluir ou excluir uma tabela de conteúdo de uma operação de cópia. Se um cliente especificar PR_CONTAINER_CONTENTS 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 conteúdo da pasta ou contêiner original.

As tabelas de conteúdo de contêiner e pasta do catálogo de endereços têm uma longa lista de colunas necessárias – colunas que os clientes podem esperar estar disponíveis depois de recuperar a tabela de GetContentsTable ou OpenProperty. Os provedores podem adicionar a esse conjunto necessário, se necessário, e os clientes, por meio do método SetColumns , também podem solicitar modificações.

As colunas necessárias para cada um dos tipos de tabelas de conteúdo são:

Coluna necessária Tipo de tabela de conteúdo
PR_ADDRTYPE (PidTagAddressType)
Tabelas de contêineres do catálogo de endereços
PR_DISPLAY_NAME (PidTagDisplayName)
Tabelas de contêineres do catálogo de endereços
PR_DISPLAY_CC (PidTagDisplayCc)
Tabelas de pastas do repositório de mensagens
PR_DISPLAY_TO (PidTagDisplayTo)
Todas as tabelas de conteúdo de pasta
PR_DISPLAY_TYPE (PidTagDisplayType)
Tabelas de contêineres do catálogo de endereços
PR_ENTRYID (PidTagEntryId)
Todas as tabelas de conteúdo
PR_HASATTACH (PidTagHasAttachments)
Todas as tabelas de conteúdo de pasta
PR_INSTANCE_KEY (PidTagInstanceKey)
Todas as tabelas de conteúdo
PR_LAST_MODIFICATION_TIME (PidTagLastModificationTime)
Tabelas de pastas do repositório de mensagens
PR_MAPPING_SIGNATURE (PidTagMappingSignature)
Tabelas de pastas do repositório de mensagens
PR_MESSAGE_CLASS (PidTagMessageClass)
Todas as tabelas de conteúdo de pasta
PR_MESSAGE_DOWNLOAD_TIME (PidTagMessageDownloadTime)
Tabelas de pastas de transporte remoto
PR_MESSAGE_FLAGS (PidTagMessageFlags)
Todas as tabelas de conteúdo de pasta
PR_MESSAGE_SIZE (PidTagMessageSize)
Todas as tabelas de conteúdo de pasta
PR_MSG_STATUS (PidTagMessageStatus)
Todas as tabelas de conteúdo de pasta
PR_OBJECT_TYPE (PidTagObjectType)
Todas as tabelas de conteúdo
PR_PARENT_ENTRYID (PidTagParentEntryId)
Tabelas de pastas do repositório de mensagens
PR_RECORD_KEY (PidTagRecordKey)
Tabelas de pastas do contêiner do catálogo de endereços e do repositório de mensagens
PR_SENT_REPRESENTING_NAME (PidTagSentRepresentingName)
Tabelas de pastas de transporte remoto
PR_STORE_ENTRYID (PidTagStoreEntryId)
Tabelas de pastas do repositório de mensagens
PR_STORE_RECORD_KEY (PidTagStoreRecordKey)
Tabelas de pastas do repositório de mensagens

O identificador de entrada disponível com cada linha pode ser um identificador de entrada de curto ou longo prazo, dependendo da implementação da tabela. Identificadores de entrada de curto prazo normalmente são usados em situações em que o desempenho é um problema. Qualquer tipo de identificador de entrada pode ser usado para acessar o objeto correspondente.

As tabelas de conteúdo também têm um conjunto de colunas que são opcionais, mas geralmente incluídas pelos provedores de serviços em suas implementações. Estas colunas opcionais são:

Coluna opcional Tipo de tabela de conteúdo
PR_CLIENT_SUBMIT_TIME (PidTagClientSubmitTime)
Tabelas de pastas do repositório de mensagens
PR_CONTENT_COUNT (PidTagContentCount)
Tabelas de conteúdo de pasta padrão
PR_CONTENT_UNREAD (PidTagContentUnreadCount)
Tabelas de conteúdo de pasta padrão
PR_CONVERSATION_INDEX (PidTagConversationIndex)
Tabelas de pastas do repositório de mensagens
PR_EMAIL_ADDRESS (PidTagEmailAddress)
Tabelas de contêineres do catálogo de endereços
PR_IMPORTANCE (PidTagImportance)
Todas as tabelas de conteúdo de pasta
PR_MESSAGE_DELIVERY_TIME (PidTagMessageDeliveryTime)
Todas as tabelas de conteúdo de pasta
PR_NORMALIZED_SUBJECT (PidTagNormalizedSubject)
Todas as tabelas de conteúdo de pasta
PR_PRIORITY (PidTagPriority)
Todas as tabelas de conteúdo de pasta
PR_SEARCH_KEY (PidTagSearchKey)
Tabelas de contêineres do catálogo de endereços
PR_SEND_RICH_INFO (PidTagSendRichInfo)
Tabelas de contêineres do catálogo de endereços
PR_SENDER_NAME (PidTagSenderName)
Todas as tabelas de conteúdo de pasta
PR_SENSITIVITY (PidTagSensitivity)
Todas as tabelas de conteúdo de pasta
PR_SUBJECT (PidTagSubject)
Todas as tabelas de conteúdo de pasta
PR_TRANSMITABLE_DISPLAY_NAME (PidTagTransmittableDisplayName)
Tabelas de contêineres do catálogo de endereços

Os provedores do repositório de mensagens também devem incluir PR_PARENT_DISPLAY (PidTagParentDisplay) apenas para tabelas de conteúdo de pastas de resultado de pesquisa.

As propriedades nomeadas podem ser adicionadas ao conjunto de colunas de uma tabela de conteúdo de pasta somente se todas as mensagens na pasta tiverem a mesma assinatura de mapeamento, ou seja, o mesmo mapeamento de nomes de propriedade para identificadores de propriedade. As tabelas de conteúdo da pasta devem dar suporte à adição de propriedades específicas da classe de mensagem ao conjunto de colunas, se elas derem suporte à criação de mensagens arbitrárias na pasta.

Os clientes podem salvar a ordem de classificação padrão de uma tabela de conteúdo de pasta chamando seu método IMAPIFolder::SaveContentsSort . Se o sinalizador RECURSIVE_SORT for especificado na chamada, a ordem de classificação poderá ser feita para aplicar a todas as subpastas dentro da pasta.

Confira também

Tabelas MAPI