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
Quando um aplicativo cliente abre um repositório de mensagens, o MAPI carrega a DLL do provedor do repositório de mensagens na memória. Depois que o MAPI carrega a DLL, ocorre uma sequência muito específica de chamadas de método entre o provedor do repositório de mensagens e o MAPI. Essa sequência de chamada de método permite que o MAPI obtenha interfaces IMSProvider : IUnknown, IMSLogon : IUnknown e IMsgStore : IMAPIProp e permite que o provedor de repositório de mensagens obtenha um objeto de suporte MAPI. Após a sequência de chamada, o provedor do repositório de mensagens deve estar pronto para aceitar logons de clientes.
A sequência de chamada quando uma DLL de provedor de mensagens é carregada é a seguinte:
O cliente chama IMAPISession::OpenMsgStore.
Se o repositório de mensagens ainda não estiver aberto, o MAPI carregará a DLL do provedor de repositório e chamará o ponto de entrada MSProviderInit da DLL. Se o repositório de mensagens já estiver aberto, o MAPI pulará as etapas 2 e 3 e usará a interface IMSProvider : IUnknown existente para concluir a etapa 4.
MSProviderInit cria e retorna um objeto IMSProvider .
O MAPI chama IMSProvider::Logon, passando o identificador de entrada do repositório de mensagens do aplicativo cliente.
IMSProvider::Logon cria e retorna uma interface IMSLogon : IUnknown e uma interface IMsgStore : IMAPIProp e, em seguida, chama o método IUnknown::AddRef em sua interface IMAPISupport : IUnknown . Se o identificador de entrada do repositório de mensagens do cliente se referir a um repositório de mensagens que já está aberto, o provedor do repositório de mensagens poderá retornar interfaces IMSLogon e IMsgStore existentes e não precisará chamar AddRef em seu objeto de suporte.
Se o cliente não tiver definido o sinalizador de MAPI_NO_MAIL no logon e não tiver definido o MDB_NO_MAIL na etapa 1, o MAPI fornecerá o identificador de entrada do repositório de mensagens ao spooler MAPI para que ele possa fazer logon no repositório de mensagens.
O MAPI retorna a interface IMsgStore para o cliente.
O spooler MAPI chama IMSProvider::SpoolerLogon.
IMSProvider::SpoolerLogon retorna as mesmas interfaces IMSLogon e IMsgStore da etapa 5.
Observação
Se a chamada de logon para o provedor de repositório de mensagens falhar porque uma senha incorreta foi fornecida e o provedor de repositório de mensagens não pode exibir uma interface para solicitar a senha correta, ele deverá retornar MAPI_E_FAILONEPROVIDER do método IMSProvider::Logon . Isso permitirá que os clientes solicitem ao usuário uma senha para tentar fazer logon no provedor de repositório de mensagens novamente, em vez de fazer com que o MAPI falhe no provedor durante toda a sessão.