Permissões para objetos e propriedades MAPI

Aplica-se a: Outlook 2013 | Outlook 2016

A permissão de acesso, ou o conjunto de operações permitidas, pode ser uma característica de objetos MAPI e de propriedades individuais compatíveis com esses objetos. O acesso ao objeto é determinado pelo pai de um objeto. Para uma mensagem, sua pasta determina as permissões de acesso. Para um usuário de mensagens ou lista de distribuição, seu contêiner de catálogo de endereços faz essa determinação. Quando um objeto, como uma mensagem, reside em duas pastas, as permissões para as duas cópias do objeto podem ser diferentes.

Os clientes que usam esses objetos podem solicitar o nível mais alto de acesso permitido para o objeto definindo o sinalizador de MAPI_BEST_ACCESS na chamada IMAPISession::OpenEntry . Dependendo do provedor de serviços que implementa o objeto, o cliente pode ou não receber o nível de acesso necessário. Os clientes podem determinar o nível de acesso que lhes foi concedido chamando o método GetProps do objeto para recuperar a propriedade PR_ACCESS (PidTagAccess). No entanto, como o provedor de serviços deve gerar dinamicamente o valor para essa propriedade, é recomendável que os clientes o recuperem somente quando necessário.

Para determinar se um contêiner, como uma pasta, um contêiner de catálogo de endereços ou uma lista de distribuição, permite modificação, chame seu método GetProps para recuperar a propriedade PR_ACCESS_LEVEL (PidTagAccessLevel). O acesso no nível do contêiner afeta os clientes em termos de como eles exibem suas interfaces de usuário. Também afeta os implementadores de objetos dentro de contêineres em termos de exibição da interface do usuário e implementação geral.

O acesso a uma propriedade específica é determinado pelo esquema de propriedade configurado por MAPI para o objeto que possui a propriedade. Os esquemas de propriedade especificam o conjunto de propriedades obrigatórias e opcionais para um objeto e sua permissão de acesso. Ao contrário do acesso ao objeto, que é determinado pelo pai do objeto, o acesso à propriedade é global. Cada objeto, independentemente dos requisitos de acesso do pai do objeto, tem as mesmas permissões para a propriedade, conforme determinado pelo esquema.

Quando uma propriedade for somente leitura, ela sempre estará disponível com uma chamada GetProps ou OpenProperty . No entanto, dependendo da implementação do objeto que dá suporte à propriedade, há dois resultados possíveis para o método SetProps para modificar uma propriedade e o método DeleteProps para removê-la:

  • Falhar e retornar MAPI_E_NO_ACCESS

  • Êxito sem nenhuma ação tomada

O acesso à propriedade e ao objeto também pode ser recuperado ou definido usando a interface IPropData que herda da interface IMAPIProp . O MAPI fornece uma implementação de IPropData baseada em dados na memória. Os provedores de serviços podem usar IPropData para implementar IMAPIProp em determinadas circunstâncias, como para seu objeto de status ou se estiverem usando um banco de dados que não tem transações internas. O IPropData funciona exclusivamente na memória, tornando desnecessário bloquear e desbloquear dados.

Confira também

Visão geral da propriedade MAPI