Propriedades Canônicas MAPI

Aplica-se a: Outlook 2013 | Outlook 2016

Uma propriedade canônica é uma propriedade virtual que representa uma propriedade MAPI ou várias propriedades MAPI definidas com o mesmo identificador de propriedade. As propriedades canônicas destinam-se apenas a facilitar a identificação consistente de propriedades MAPI em discussões ou documentação fora do código. Ao contrário dos nomes de propriedades marcadas definidas por MAPI, os nomes de propriedades canônicas não são definidos como constantes globais em arquivos de cabeçalho MAPI.

Convenções de nomenclatura

Nomes de propriedades canônicas começam com um prefixo, "Pid", que representa "identificador de propriedade". Dependendo se a propriedade é uma propriedade marcada, uma propriedade nomeada com um identificador numérico ou uma propriedade nomeada com um nome de cadeia de caracteres, o prefixo é qualificado como "PidTag", "PidLid" e "PidName", respectivamente. Por exemplo, PidTagAccount representa as propriedades marcadas, PR_ACCOUNT (PidTagAccount), PR_ACCOUNT_A (PidTagAccount) e PR_ACCOUNT_W (PidTagAccount), que especificam o nome da conta de um destinatário; PidLidContacts representa a propriedade dispidContacts , uma propriedade nomeada que possui um identificador numérico e que especifica o nome dos contatos associados a uma mensagem; e PidNamePhishingStamp representa "http://schemas.microsoft.com/outlook/phishingstamp," uma propriedade nomeada que tem um nome de cadeia de caracteres e que especifica a cadeia de caracteres que marca as mensagens que provavelmente são phishing.

Representando propriedades semelhantes usando uma propriedade canônica

Identificando propriedades em MAPI

Todas as propriedades em MAPI são identificadas por um identificador de propriedade que é um valor de 16 bits não assinado. O identificador da propriedade e o tipo de propriedade (outro valor não assinado de 16 bits) constituem uma marca de propriedade para a propriedade.

O MAPI usa uma marca de propriedade para definir propriedades exclusivamente. As propriedades que têm a mesma marca de propriedade, como PR_BUSINESS2_TELEPHONE_NUMBER (PidTagBusiness2TelephoneNumber) e PR_OFFICE2_TELEPHONE_NUMBER (PidTagBusiness2TelephoneNumber), são consideradas propriedades idênticas no MAPI. Para obter uma lista de marcas de propriedade que o MAPI definiu para suas próprias propriedades, consulte o arquivo de cabeçalho MAPI, Mapitags.h.

Observe que MAPI divide identificadores de propriedade em intervalos. Onde um identificador está no intervalo indica seu uso e propriedade. Os identificadores de propriedade de propriedades marcadas se enquadram no intervalo de 0x0001 a 0x7FFF. Dentro desse intervalo estão os identificadores de propriedade das propriedades definidas pelo MAPI, que se enquadram no intervalo de 0x0001 a 0x3FFF. Os identificadores de propriedade de propriedades nomeadas estão no intervalo de 0x8000 a 0x8FFF.

As propriedades nomeadas também são atribuídas por um conjunto de propriedades e por uma ID longa (LID), que é um valor de 32 bits não assinado, ou uma cadeia de caracteres. Um conjunto de propriedades é um GUID que identifica um grupo de propriedades nomeadas com uma finalidade semelhante. O conjunto de propriedades e o LID ou nome da cadeia de caracteres são usados para obter ou definir a propriedade nomeada.

Tipo de propriedade

Além dos identificadores, uma propriedade é atribuída por um tipo de dados que especifica o tipo de valores permitidos para essa propriedade.

Para propriedades que são do tipo cadeia de caracteres, dependendo do suporte para Unicode na plataforma subjacente, a propriedade pode ser do tipo PT_STRING8 (cadeia de caracteres de 8 bits terminada em nulo) ou PT_UNICODE (cadeia de caracteres Unicode terminada em nulo). Uma propriedade pode ser definida com o tipo PT_TSTRING e, dependendo das configurações de compilação, PT_TSTRING padrão para uma cadeia de caracteres Unicode para plataformas que dão suporte a Unicode ou para uma cadeia de caracteres PT_STRING8 para plataformas que dão suporte a ANSI ou DBCS. É comum que uma propriedade digitada por cadeia de caracteres seja identificada por três nomes semelhantes, como PR_ACCOUNT, PR_ACCOUNT_A e PR_ACCOUNT_W, que são do tipo PT_TSTRING, PT_STRING8 e PT_UNICODE respectivamente.

Para obter mais informações sobre tipos de propriedade e macros relacionadas a tipos, consulte o arquivo de cabeçalho MAPI, Mapidefs.h.

Identificando propriedades semelhantes

No atual cenário de propriedade MAPI, não é incomum descobrir que uma propriedade foi exposta sob nomes de propriedade diferentes, todos definidos com o mesmo identificador de propriedade. Por exemplo, as propriedades marcadas, PR_BUSINESS2_TELEPHONE_NUMBER e PR_OFFICE2_TELEPHONE_NUMBER, são definidas em Mapitags.h para ter o mesmo identificador e tipo de propriedade. Intimamente relacionados a essas duas propriedades estão:

  • PR_BUSINESS2_TELEPHONE_NUMBER_A

  • PR_BUSINESS2_TELEPHONE_NUMBER_W

  • PR_OFFICE2_TELEPHONE_NUMBER_A

  • PR_OFFICE2_TELEPHONE_NUMBER_W

As propriedades com o sufixo "_A" são digitadas como PT_STRING8, e aquelas com o sufixo "_W" são digitadas como PT_UNICODE.

A finalidade de uma propriedade canônica, PidTagBusiness2TelephoneNumber neste exemplo, é facilitar a referência a essas propriedades MAPI estreitamente afiliadas usando um identificador e de maneira consistente (usando o prefixo "Pid") em todas as propriedades MAPI. Para descobrir quais propriedades MAPI reais uma propriedade canônica representa, consulte Mapeando nomes de propriedades canônicas para nomes MAPI. Para localizar a propriedade canônica à qual uma propriedade MAPI está associada, consulte Mapeando nomes MAPI para nomes de propriedades canônicas.

Suporte MAPI a nomes de propriedades canônicas

Como as propriedades canônicas não são propriedades reais e não são definidas em arquivos de cabeçalho MAPI, você não deve usar nomes de propriedade canônica no código; em vez disso, você deve continuar a usar os nomes de propriedade MAPI exatos no código. Por exemplo, você pode se referir PR_BUSINESS2_TELEPHONE_NUMBER e PR_OFFICE2_TELEPHONE_NUMBER fora do código como PidTagBusiness2TelephoneNumber e usar PR_BUSINESS2_TELEPHONE_NUMBER ou PR_OFFICE2_TELEPHONE_NUMBER no código.

Se você precisar usar nomes de propriedade canônicos em seu código, deverá primeiro defini-los em seus próprios arquivos de cabeçalho.

Nomes de propriedades canônicas e especificações de protocolo do Exchange

Os nomes canônicos são referenciados nas especificações de protocolo do Microsoft Exchange Server que são usadas pelo Exchange Server para se comunicar com outros produtos da Microsoft. Para obter mais informações sobre as propriedades do objeto da mensagem referenciadas pelas especificações do protocolo do Exchange, consulte [MS-OXPROPS].

Confira também

Marcas de propriedade MAPI

Visão geral do identificador de propriedade MAPI

Visão geral do tipo de propriedade MAPI