Compartilhar via


Perfis MAPI

Aplica-se a: Outlook 2013 | Outlook 2016

Um perfil armazena informações sobre provedores de serviços e serviços de mensagens instalados em um computador. Para cada sessão, um cliente em tempo de logon seleciona um perfil que descreve os provedores e serviços a serem usados. Um cliente pode escolher entre uma coleção de perfis e, se desejar, estabelecer um como o padrão. O perfil padrão é o perfil selecionado automaticamente quando um cliente inicia uma sessão e não especifica explicitamente um perfil.

Também nesses tópicos, você encontrará uma discussão sobre o cache de apelido, que é armazenado em um fluxo binário.

Seções de perfil

Os perfis são divididos em seções que clientes e provedores de serviços acessam para exibir propriedades de perfil para usuários ou para fazer alterações de configuração. Uma seção de perfil é um objeto MAPI que implementa a interface IProfSect , uma interface que deriva do IMAPIProp e não tem métodos adicionais. Para obter mais informações, consulte IProfSect : IMAPIProp. Sua única finalidade é manipular as propriedades de uma seção de perfil. Para recuperar um ponteiro IProfSect para uma seção de perfil específico, clientes e provedores de serviços chamam os métodos a seguir.

Propriedade Valor
Os clientes podem chamar:
IMAPISession::OpenProfileSection
Os provedores de serviços podem chamar:
IMAPISupport::OpenProfileSection
Clientes ou provedores podem chamar:
IProviderAdmin::OpenProfileSection

Os perfis são organizados hierarquicamente muito parecidos com o MAPISVC. Arquivo INF. Na parte superior da hierarquia, há seções de perfil que contêm informações relevantes para o perfil. O nível médio inclui seções que contêm informações sobre um determinado serviço de mensagem e o nível inferior inclui seções que contêm informações sobre um dos provedores de serviço em um serviço de mensagem.

Cada perfil tem várias propriedades necessárias armazenadas em uma ou mais das seções do perfil. Por exemplo, cada perfil tem as propriedades PR_PROFILE_NAME (PidTagProfileName) e PR_SEARCH_KEY (PidTagSearchKey). A chave de pesquisa de um perfil é definida como o valor definido em MAPIGUID. H como MUID_PROFILE_INSTANCE e sempre é garantido ser exclusivo entre todos os perfis. Embora dois perfis possam ter o mesmo nome, eles não podem ter a mesma chave de pesquisa. As chaves de pesquisa devem ser tratadas como dados binários em vez de dados de qualquer tipo específico.

Os provedores do repositório de mensagens são necessários para incluir a propriedade PR_DISPLAY_NAME (PidTagDisplayName) do repositório de mensagens nas seções de perfil para o perfil e para o provedor do repositório de mensagens e para manter essas entradas sincronizadas. Quando um repositório de mensagens é criado, o provedor define PR_DISPLAY_NAME com base no valor armazenado nessas seções de perfil.

Há duas grandes diferenças entre seções de perfil e outros objetos que herdam do IMAPIProp:

  • As seções de perfil não dão suporte a transações.

  • As seções de perfil não dão suporte a propriedades nomeadas, retornando MAPI_E_NO_SUPPORT de suas implementações IMAPIProp::GetIDsFromNames e IMAPIProp::GetNamesFromIDs . Para obter mais informações, consulte IMAPIProp::GetIDsFromNames e IMAPIProp::GetNamesFromIDs.

Como as seções de perfil não dão suporte a transações, todas as alterações feitas com chamadas para IMAPIProp::CopyProps, CopyTo ou SetProps imediatamente entrarão em vigor. Para obter mais informações, consulte IMAPIProp::CopyProps. Clientes e provedores de serviços podem chamar o método IMAPIProp::SaveChanges de uma seção de perfil e ele terá êxito, mas não afeta os dados da seção de perfil. Para obter mais informações, consulte IMAPIProp::SaveChanges. Ter alterações ocorrendo imediatamente pode afetar a forma como os provedores de serviço implementam as planilhas de propriedades que os clientes usam para exibir propriedades de perfil aos usuários. Os provedores de serviços que desejam que os usuários possam adiar ou desfazer alterações devem implementar suas planilhas de propriedades com cópias das seções de perfil em vez das seções reais. Usando cópias, os usuários podem fazer alterações e, posteriormente, cancelar essas alterações, deixando as seções de perfil originais intocadas.

A ordem na qual as informações são exibidas em um perfil afeta como o MAPI configura recursos e faz atribuições em uma sessão. As seguintes atribuições são afetadas pela ordem de perfil:

  • Repositório de mensagens padrão

  • Catálogo de endereços pessoais

  • Caminho de pesquisa do repositório de mensagens padrão

  • Caminho de pesquisa do catálogo de endereços padrão

  • Ordem do provedor de transporte

O MAPI define o repositório de mensagens padrão como o primeiro repositório de mensagens no perfil que tem o sinalizador STATUS_DEFAULT_STORE definido em sua propriedade PR_RESOURCE_FLAGS (PidTagResourceFlags), o que indica que ele pode ser o repositório padrão. Os clientes podem substituir essa configuração chamando IMAPISession::SetDefaultStore. Para obter mais informações, consulte IMAPISession::SetDefaultStore.

O MAPI cria uma ordem de transporte para lidar com mensagens de saída e de entrada. Quando mais de um provedor de transporte se registrou para uma mensagem de um tipo específico, o MAPI usa essa ordem para determinar qual provedor deve lidar com a mensagem. O MAPI define a ordem de transporte como a ordem na qual os provedores de transporte foram adicionados ao perfil com uma exceção : os transportes que definem o sinalizador de STATUS_XP_PREFER_LAST em sua propriedade PR_RESOURCE_FLAGS estão posicionados por último na ordem. Os clientes podem definir a ordem de transporte chamando IMsgServiceAdmin::MsgServiceTransportOrder. Para obter mais informações, consulte IMsgServiceAdmin::MsgServiceTransportOrder.

Essas diretrizes para ordenar provedores de serviços e serviços de mensagens às vezes podem entrar em conflito. Se houver um conflito, seu código deverá resolve o conflito. Você pode usar o programa Mail Painel de Controle para inspecionar um perfil criado para determinar se os provedores foram configurados conforme o esperado.