Compartilhar via


Definindo novas propriedades MAPI

Aplica-se a: Outlook 2013 | Outlook 2016

Apesar da riqueza de propriedades fornecidas pelo MAPI para uso por clientes e provedores de serviços, o MAPI permite que novas propriedades sejam criadas, se necessário. Alguns dos cenários válidos para definir novas propriedades públicas incluem um cliente criando propriedades para dar suporte a uma nova classe de mensagem e um provedor de serviços criando novas propriedades para expor recursos exclusivos do sistema de mensagens.

Normalmente, não é válido que um provedor de serviços defina novas propriedades para um objeto MAPI ou classe de mensagem existente. Um dos principais benefícios do uso do MAPI é que identificadores e formatos padrão para um grande número de elementos do sistema de mensagens são configurados, permitindo que os usuários misturem e correspondam perfeitamente aos provedores de serviços. Os provedores de serviços que usam propriedades não padrão não funcionam tão bem com outros provedores de serviços.

Os clientes podem criar propriedades de conteúdo para novas classes de mensagem por:

  • Usando identificadores de propriedade dentro de um intervalo designado para propriedades de conteúdo específicas da classe de mensagem.

    • Ou-
  • Usando propriedades nomeadas.

A primeira opção é preferível porque nem todos os provedores de serviço dão suporte a propriedades nomeadas. O MAPI define dois intervalos separados para os clientes usarem para novas propriedades de conteúdo específicas da classe de mensagem:

  • 0x6800 0x7BFF para propriedades transmitíveis

  • 0x7C00 0x7FFF para propriedades nãotransmittable

Os identificadores de propriedade devem se enquadrar em intervalos predefinidos para ajudar a evitar colisões entre propriedades definidas por diferentes fornecedores ou usuários. No entanto, os usuários de propriedades nesses intervalos não podem fazer suposições quanto ao comportamento das propriedades. Cada cliente que cria uma nova classe de mensagem tem acesso a esses intervalos; uma propriedade com o identificador xxxx pode significar um comportamento para uma classe de mensagem e outro comportamento para outra classe de mensagem.

As propriedades nomeadas são usadas para garantir que uma propriedade específica seja exclusiva de uma classe de mensagem. Os identificadores de propriedade nomeados começam no intervalo de 0x8000. Os clientes definem um ou mais nomes e, em seguida, chamam o método IMAPIProp::GetIDsFromNames do repositório para associar um identificador a cada nome. As propriedades nomeadas podem ser usadas por clientes ou provedores de serviços para definir novas propriedades para qualquer objeto somente se o proprietário do objeto der suporte a propriedades nomeadas. Os usuários dessas propriedades chamam GetIDsFromNames e um método IMAPIProp relacionado, GetNamesFromIDs, para mapear entre um nome e seu identificador.

Todas as propriedades, novas ou existentes, devem usar o conjunto de tipos de propriedade predefinidos. Novos tipos de propriedade não podem ser adicionados e os tipos existentes não podem ser modificados ou excluídos. Propriedades simples e pequenas, como propriedades inteiros de caractere único ou de 16 bits, podem ser armazenadas em qualquer tipo apropriado. Por exemplo, inteiros podem ser armazenados como ULONG e cadeias de caracteres podem ser armazenadas como PT_STRING8.

Use o tipo PT_BINARY para indicar uma matriz de bytes contada. Esse tipo de propriedade é útil para estender os tipos de dados que podem ser armazenados em um objeto. Bytes são transmitidos em sequência e nenhuma suposição é feita sobre o significado dos dados. Quando um aplicativo cliente lê dados de tal propriedade, os dados não são alterados de como foram armazenados. O cliente deve executar qualquer troca de bytes necessária ao mover dados em CPUs.

Confira também

Visão geral da propriedade MAPI