Compartilhar via


Trabalhando com colunas multivaluadas

Aplica-se a: Outlook 2013 | Outlook 2016

Uma coluna multivalida contém os dados de uma propriedade multivalued, que é uma propriedade que tem uma matriz de valores do tipo base em vez de um único valor. Como nenhuma das tabelas inclui propriedades multivalorizadas em seus conjuntos de colunas padrão, as propriedades multivalorizadas serão incluídas em uma tabela somente se o usuário da tabela solicitar.

Colunas multivalorizadas podem ser exibidas em tabelas:

  • Em uma única linha, com todos os valores de propriedade aparecendo na instância de coluna única. Este é o padrão.

    • Ou-
  • Em uma série de linhas, com uma linha para cada um dos valores da propriedade. Cada valor exclusivo aparece na coluna em sua própria linha, com tantas linhas quanto valores na propriedade multivalued. Cada linha tem um valor exclusivo para a propriedade PR_INSTANCE_KEY (PidTagInstanceKey), mas os mesmos valores para as outras colunas. Se uma linha contiver mais de uma coluna com vários valores, por exemplo, duas colunas com valores M e N , respectivamente, em seguida, instâncias M*N da linha aparecem na tabela.

Um usuário de tabela solicita o tipo de exibição nondefault chamando o método IMAPITable::SetColumns com o sinalizador MVI_FLAG definido no tipo de propriedade da coluna multivalued. O sinalizador MVI_FLAG é uma constante definida como resultado da combinação dos sinalizadores MV_FLAG e MV_INSTANCE com uma operação or lógica. Além de ser usado em SetColumns, MVI_FLAG também pode ser passado para IMAPITable::SortTable no parâmetro lpSortCriteria e IMAPITable::Restrict no membro ulPropTag do parâmetro lpRestriction . Quando passado o MVI_FLAG, SortTable executa de forma semelhante a SetColumns, adicionando uma linha para cada valor na coluna multivalida e classificando os valores únicos nas instâncias. Uma linha é adicionada para cada valor.

Restringir, no entanto, não expande a coluna multivalida em linhas computadas adicionais. Uma coluna multivalida com o conjunto MVI_FLAG instrui o provedor de serviços a usar essa coluna para restringir a tabela. Se houver um valor de propriedade na restrição, ele deverá ser uma marca de propriedade de valor único idêntica à que seria retornada por IMAPITable::QueryRows para a coluna.

Os implementadores de tabela só são necessários para dar suporte ao tipo padrão de exibição e podem retornar o valor MAPI_E_TOO_COMPLEX quando um chamador solicita a outra alternativa. A capacidade de dar suporte a ambos os tipos de exibição é mais importante para provedores de armazenamento de mensagens que implementam tabelas de conteúdo de pasta.

Confira também

Tabelas MAPI