Registar Serviços e Fornecedores de Serviços no MapiSvc.inf
Aplica-se a: Outlook 2013 | Outlook 2016
A instalação de um novo fornecedor num sistema requer a atualização do ficheiro MapiSvc.inf para apontar para o novo fornecedor. As propriedades padrão definidas durante a configuração, que incluem o seguinte, informam a MAPI onde encontrar a biblioteca de ligações dinâmicas (.dll) do fornecedor:
A PR_SERVICE_DLL_NAME é especificada na secção [Serviço de Mensagens] .
A PR_PROVIDER_DLL_NAME é especificada na secção [Fornecedor de Serviços] .
Observação
A expetativa é que defina o nome da .dll do seu fornecedor (sem o sufixo "32"). Em seguida, o MAPI carrega o seu fornecedor ao procurá-lo no caminho.
Colocar um Caminho em MapiSvc.inf
A maioria das aplicações é instalada em Ficheiros de Programa, o que requer uma atualização da variável de caminho para permitir que os fornecedores MAPI funcionem. Com algumas restrições Microsoft Outlook 2010 e o Outlook 2013 pode acomodar caminhos completos para fornecedores MAPI.
Ao registar o seu fornecedor em MapiSvc.inf, pode colocar o caminho completo para o fornecedor nas propriedades MAPI PR_SERVICE_DLL_NAME e PR_PROVIDER_DLL_NAME.
Em qualquer uma das propriedades, o caminho completo tem de estar sem o sufixo "32", porque a MAPI continua a acrescentá-lo ao nome do ficheiro antes de procurar o seu ficheiro. Isto significa que, se registar o caminho "c:\mypath\myprovider.dll", a MAPI tentará carregar "c:\mypath\myprovider32.dll".
Uma vez que o MAPI do Outlook não foi originalmente concebido para acomodar caminhos completos, consegue esta inserção do sufixo "32" ao procurar o primeiro período na cadeia, o que significa que os caminhos que contêm outros períodos não podem funcionar, pelo que não pode utilizar caminhos como "c:\my.path\myprovider.dll" ou "c:\mypath\my.provider.dll".
Por vezes, num fornecedor de loja, irá gerar identificadores de entrada com a função WrapStoreEntryID , que utiliza como parâmetro o nome do seu fornecedor.
Importante
Se estiver a utilizar caminhos completos em MapiSvc.inf, tem de utilizar o mesmo caminho em quaisquer chamadas para WrapStoreEntryID.
Além disso, o caminho que utiliza pode ser convertido de e para Unicode através da página de código fornecida pela função GetACP .
Cuidado
Irá deparar-se com falhas se escolher um caminho que contenha carateres que não possam sobreviver a tal ida e volta através das funções MultiByteToWideChar e WideCharToMultiByte .
Para uma demonstração desta funcionalidade, o exemplo PST Encapsulado no GitHub foi revisto. A funcionalidade pertinente está em MergeWithMapiSvc e GenerateProviderPath.