Provedores de Serviços MAPI
Aplica-se a: Outlook 2013 | Outlook 2016
Há três tipos comuns de provedores de serviços:
Provedores de catálogo de endereços.
Provedores do repositório de mensagens.
Provedores de transporte.
Os provedores do catálogo de endereços e do repositório de mensagens têm muitas semelhanças. Eles registram um identificador exclusivo com MAPI que eles usam para construir identificadores de entrada para seus objetos. Eles fornecem uma hierarquia de objetos e propriedades que os clientes podem acessar e manipular. Para seus objetos de contêiner, eles dão suporte a uma tabela de hierarquia e uma tabela de conteúdo. Eles dão suporte à notificação de eventos nessas tabelas e, opcionalmente, em objetos individuais para que os clientes possam ser informados das alterações que ocorrem durante a sessão. Quando as operações se tornam longas, elas podem exibir um indicador de progresso para informar o usuário sobre o status da operação. Os clientes podem se comunicar com provedores de catálogo de endereços e repositório de mensagens indiretamente por meio do MAPI usando as interfaces IAddrBook : IMAPIProp e IMAPISession : IUnknown ou diretamente usando uma das interfaces do provedor de serviços na tabela a seguir.
Interfaces do provedor de catálogo de endereços | Interfaces do provedor do repositório de mensagens |
---|---|
IABContainer : IMAPIContainer |
IMsgStore : IMAPIProp |
IDistList : IMAPIContainer |
IMAPIFolder : IMAPIContainer |
IMailUser : IMAPIProp |
IMessage : IMAPIProp |
IAttach : IMAPIProp |
Os provedores de transporte diferem do catálogo de endereços e dos provedores do repositório de mensagens na forma como se comunicam com o MAPI e com os clientes. Os provedores de transporte normalmente esperam que o MAPI os solicite informações em vez de iniciar a comunicação. Ao contrário dos outros provedores, os provedores de transporte não dão suporte a uma variedade de objetos e tabelas que são comumente acessados por clientes. No entanto, eles dão suporte a um objeto status, assim como todos os provedores de serviços e publicam suas propriedades na tabela status. Enquanto provedores de catálogo de endereços e repositório de mensagens chamam o método IMAPISupport::SetProviderUID para registrar identificadores exclusivos para construir seus identificadores de entrada, os provedores de transporte chamam o método IXPLogon::AddressTypes para registrar identificadores exclusivos, bem como tipos de endereço para assumir a responsabilidade pela entrega de mensagens específicas.
Seu provedor de serviços deve ter três arquivos de cabeçalho: um arquivo de cabeçalho público e dois arquivos internos. Use o arquivo de cabeçalho público para configuração e para documentar propriedades e seus valores. Incluir em um dos arquivos de cabeçalho interno todos os cabeçalhos MAPI públicos necessários; esse arquivo de cabeçalho deve ser incluído em todos os arquivos de origem do provedor de serviços. Use o outro arquivo interno para definir identificadores de recursos.
O catálogo de endereços, o repositório de mensagens e os provedores de transporte executam as seguintes tarefas:
Forneça uma função de ponto de entrada.
Forneça um objeto de provedor e logon para lidar com logon e inicialização.
Se o provedor pertencer a um serviço de mensagem, forneça uma função de ponto de entrada do serviço de mensagem.
Suporte à configuração implementando uma folha de propriedades.
Implemente um objeto status e dê suporte à tabela status.
Manipular desligado.