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 permissíveis podem ser uma característica de objetos MAPI e de propriedades individuais com suporte desses objetos. O acesso ao objeto é determinado pelo pai de um objeto. Para uma mensagem, sua pasta determina permissões de acesso. Para um usuário de mensagens ou uma 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 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 foram concedidos 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 dessa propriedade, é recomendável que os clientes a 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. Ele também afeta os implementadores de objetos dentro de contêineres em termos de exibição de interface do usuário e sua implementação geral.
O acesso a uma propriedade específica é determinado pelo esquema de propriedade configurado pela MAPI para o objeto que possui a propriedade. Os esquemas de propriedade especificam o conjunto de propriedades necessárias e opcionais para um objeto e sua permissão de acesso. Ao contrário do acesso ao objeto 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 determinadas pelo esquema.
Quando uma propriedade é 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:
Fail and return 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 o IPropData para implementar o IMAPIProp em determinadas circunstâncias, como para seu objeto status ou se estiverem usando um banco de dados que não tenha transações internas. O IPropData funciona exclusivamente na memória, tornando desnecessário bloquear e desbloquear dados.