Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se a: Outlook 2013 | Outlook 2016
Os tipos de propriedade são constantes definidas por MAPI nos MAPIDEFS. Arquivo de cabeçalho H que indica o tipo de dados subjacente de um valor de propriedade. Todas as propriedades, sejam elas definidas por MAPI, por aplicativos cliente ou por provedores de serviços, usam um desses tipos.
Os tipos de propriedade seguem uma convenção de nomenclatura semelhante à usada para tags de propriedade. Muitos tipos de propriedade têm uma versão de valor único e uma versão de vários valores. As propriedades de valor único contêm um valor desse tipo, como um único inteiro ou cadeia de caracteres. A constante usada para representar uma única propriedade de valor tem duas partes: o prefixo PT_ e uma cadeia de caracteres que descreve o tipo real, como LONG ou STRING8.
As propriedades de vários valores contêm mais de um valor de seu tipo. Ao contrário das matrizes de variantes OLE, todos os valores em uma propriedade de valores múltiplos são do mesmo tipo. A constante usada para representar propriedades de valores múltiplos é criada combinando o sinalizador MV_FLAG com a constante de valor único correspondente que representa o tipo base. Há três partes: o prefixo PT_ seguido por MV_ seguido por uma cadeia de caracteres que descreve o tipo. Por exemplo, o tipo de uma propriedade que contém vários inteiros é PT_MV_LONG e para várias cadeias de caracteres é PT_MV_STRING8.
A ilustração a seguir mostra a estrutura de uma estrutura SPropValue para descrever um inteiro de vários valores, uma propriedade do tipo PT_MV_LONG. O membro Value é expandido para incluir uma contagem do número de valores inteiros na propriedade e um ponteiro para uma matriz desses valores.
Multiple-value properties
Embora o suporte para propriedades de vários valores seja opcional, o MAPI recomenda que clientes e provedores de serviços ofereçam suporte a ambos os tipos de propriedades, pois isso permite maior interação entre componentes compatíveis com MAPI.
A ilustração a seguir lista todas as diferentes constantes de tipo de propriedade, mostrando onde elas são armazenadas em uma estrutura SPropValue . O tamanho do membro Value depende do tipo específico. Observe que nem todos os tipos de valor único têm equivalentes de vários valores.
Property type constants
Clientes e prestadores de serviços que trabalham com uma propriedade precisam seguir duas etapas:
Determine se a propriedade está disponível ou não.
Se disponível, recupere o valor da propriedade.
Às vezes, um cliente ou provedor de serviços precisa apenas marcar a existência de uma propriedade; outras vezes, é necessário marcar um valor específico. Por exemplo, os provedores de transporte têm três cursos de ação diferentes para processar a propriedade PR_SEND_RICH_INFO (PidTagSendRichInfo), um valor booliano que indica se uma mensagem deve ou não ser transmitida com texto formatado. Se PR_SEND_RICH_INFO for definido como TRUE, o provedor de transporte transmitirá o texto formatado. Se for definido como FALSE, o texto formatado será descartado antes da transmissão. Se PR_SEND_RICH_INFO não estiver disponível, o provedor de transporte segue seu curso de ação padrão, seja lá o que for para o provedor específico.
O MAPI define um tipo de propriedade especial, PT_UNSPECIFIED, que um cliente ou provedor de serviços pode usar para recuperar uma propriedade quando o tipo de propriedade é desconhecido. Para recuperar uma propriedade sem conhecimento prévio de seu tipo, um cliente ou provedor de serviços chama o método IMAPIProp::GetProps de um objeto e passa uma marca de propriedade composta pelo identificador da propriedade e pelo tipo de propriedade PT_UNSPECIFIED. GetProps retorna uma estrutura SPropValue para a propriedade, substituindo PT_UNSPECIFIED pelo tipo apropriado. Os provedores de serviços que implementam GetProps são necessários para dar suporte a PT_UNSPECIFIED.
Alguns objetos MAPI dão suporte a propriedades que são objetos. As propriedades do objeto têm o tipo PT_OBJECT. Em vez de usar IMAPIProp::GetProps para acessar essas propriedades, clientes e provedores de serviços normalmente usam o método IMAPIProp::OpenProperty , especificando a interface apropriada para acesso, ou um método no objeto que dá suporte à propriedade.
Como acessar o valor de uma propriedade de objeto envolve o uso de uma das interfaces para o objeto, GetProps é inadequado. Com GetProps, o chamador acessa o valor de uma propriedade por meio de uma estrutura SPropValue . Com IMAPIProp::OpenProperty, o chamador recupera um ponteiro para uma interface que pode acessar o objeto. OpenProperty sempre pode ser usado para recuperar uma propriedade de objeto. A outra opção, chamar um método no objeto, não está disponível com todas as propriedades de objeto.
Por exemplo, cada pasta suporta duas tabelas, uma tabela de hierarquia e uma tabela de conteúdo. Essas tabelas são propriedades da pasta; suas marcas de propriedade são PR_CONTAINER_HIERARCHY (PidTagContainerHierarchy) e PR_CONTAINER_CONTENTS (PidTagContainerContents). Tabelas são objetos que exigem a interface IMAPITable para acesso. Um cliente pode chamar o método IMAPIContainer::GetHierarchyTable da pasta para acessar a tabela de hierarquia, o método IMAPIContainer::GetContentsTable da pasta para acessar a tabela de conteúdo ou o método IMAPIProp::OpenProperty da pasta para acessar qualquer tabela. Para chamar OpenProperty, um cliente passa a marca de propriedade da propriedade como o primeiro parâmetro e um identificador de interface para a interface a ser usada para acesso como o segundo parâmetro. Esses parâmetros seriam PR_CONTAINER_HIERARCHY ou PR_CONTAINER_CONTENTS e IID_IMAPITable.
Para obter uma lista completa dos tipos de propriedade de valor único e de valor múltiplo, consulte Tipos de propriedade.