Compartilhar via


Adicionar ou excluir provedores em um serviço de mensagem

Aplica-se a: Outlook 2013 | Outlook 2016

Para adicionar ou excluir provedores de serviços em um serviço de mensagem, use a interface IProviderAdmin : IUnknown . Você pode recuperar um ponteiro IProviderAdmin chamando IMsgServiceAdmin::AdminProviders. A tabela do provedor, acessável por meio de IProviderAdmin::GetProviderTable, lista informações sobre os provedores de serviços atualmente instalados no serviço de mensagem. Clientes e provedores de serviços podem usar a tabela do provedor para acessar o nome do arquivo DLL do provedor, por exemplo, ou o MAPIUID, o nome de exibição e o tipo do provedor, bem como informações sobre o serviço de mensagem. Para obter mais informações, consulte Tabelas do Provedor.

Para adicionar ou excluir um provedor de serviços em um serviço de mensagem

  1. Chame o método AdminServices para acessar um objeto de administração do serviço de mensagem.

  2. Chame IMsgServiceAdmin::GetMsgServiceTable para acessar a tabela de serviço de mensagem.

  3. Crie uma restrição de propriedade usando uma estrutura SPropertyRestriction que corresponda a PR_DISPLAY_NAME (PidTagDisplayName) ou PR_SERVICE_NAME (PidTagServiceName) com o nome do serviço de mensagem a ser modificado.

  4. Chame o método IMAPITable::FindRow da tabela de mensagens para localizar a linha na tabela que representa o serviço de mensagem de destino.

  5. Chame IMsgServiceAdmin::AdminProviders para recuperar um ponteiro IProviderAdmin . Passe a coluna PR_SERVICE_UID (PidTagServiceUid) da linha de tabela do serviço de mensagem como o parâmetro lpUID .

  6. Chame IProviderAdmin::GetProviderTable para acessar a tabela do provedor.

  7. Crie uma restrição de propriedade usando uma estrutura SPropertyRestriction que corresponda a PR_DISPLAY_NAME (PidTagDisplayName) ou PR_PROVIDER_DISPLAY (PidTagProviderDisplay) com o nome do provedor de serviços a ser adicionado ou excluído.

  8. Chame o método IMAPITable::FindRow da tabela do provedor para localizar a linha na tabela que representa o provedor de serviços de destino.

  9. Chame IProviderAdmin::CreateProvider para adicionar o provedor ou IProviderAdmin::D eleteProvider para removê-lo do serviço de mensagem. Para CreateProvider, passe a propriedade PR_DISPLAY_NAME do provedor como o parâmetro lpszProvider . Para qualquer método, passe a propriedade PR_SERVICE_UID do provedor como o parâmetro lpUID . Depois que o provedor de serviços tiver sido adicionado ou excluído, a alteração não será aparente até que uma nova sessão seja criada.

Outra técnica para adicionar um provedor de serviços, especificamente um provedor de armazenamento de mensagens, a um perfil envolve a construção de um identificador de entrada para o provedor. Como a construção de um identificador de entrada requer conhecimento de seu formato, essa técnica só pode ser usada se o provedor de serviços tornou público o formato de identificador de entrada.

Com o identificador de entrada recém-construído, um cliente pode chamar IMAPISession::OpenMsgStore. O MAPI cria automaticamente uma seção de perfil no perfil do provedor de serviços, mas não o adiciona a um serviço de mensagem.

Alguns serviços de mensagem não permitem esse tipo de modificação dinâmica; se há ou não suporte para o serviço de mensagens. Outro recurso que pode ou não ter suporte é a capacidade de acessar diretamente as seções de perfil privado de um serviço de mensagem. Se o serviço de mensagem que você está usando permitir esse acesso, ele publicará o GUID que representa a seção privada em MAPISVC.INF. Você pode passar este GUID em uma chamada para IProviderAdmin::OpenProfileSection para acessar a seção de perfil.