Partager via


Inscription de services et de fournisseurs de services dans MapiSvc.inf

S’applique à : Outlook 2013 | Outlook 2016

L’installation d’un nouveau fournisseur sur un système nécessite la mise à jour du fichier MapiSvc.inf pour pointer vers le nouveau fournisseur. Les propriétés standard définies pendant la configuration, notamment les suivantes, indiquent à MAPI où trouver la bibliothèque de liens dynamiques du fournisseur (.dll) :

  • Le PR_SERVICE_DLL_NAME est spécifié dans la section [Service de message].

  • Le PR_PROVIDER_DLL_NAME est spécifié dans la section [Fournisseur de services].

Remarque

Vous devez définir le nom du .dll de votre fournisseur (sans le suffixe « 32 »). MAPI charge ensuite votre fournisseur en le recherchant sur le chemin d’accès.

Placement d’un chemin dans MapiSvc.inf

La plupart des applications s’installent sous Program Files, ce qui nécessite une mise à jour de la variable de chemin d’accès pour permettre aux fournisseurs MAPI de fonctionner. Avec quelques restrictions, Microsoft Outlook 2010 et Outlook 2013 peuvent prendre en charge des chemins d’accès complets aux fournisseurs MAPI.

Lors de l’inscription de votre fournisseur dans MapiSvc.inf, vous pouvez placer le chemin d’accès complet au fournisseur dans les propriétés MAPI PR_SERVICE_DLL_NAME et PR_PROVIDER_DLL_NAME.

Dans l’une ou l’autre propriété, le chemin d’accès complet doit être sans le suffixe « 32 », car MAPI continue à l’ajouter au nom de fichier avant de rechercher votre fichier. Cela signifie que si vous inscrivez le chemin « c:\mypath\myprovider.dll », MAPI tente de charger « c:\mypath\myprovider32.dll ».

Étant donné que MAPI d’Outlook n’a pas été initialement conçu pour prendre en charge les chemins d’accès complets, il effectue cette insertion du suffixe « 32 » en recherchant la première période dans la chaîne, ce qui signifie que les chemins qui contiennent d’autres périodes ne peuvent pas fonctionner, donc vous ne pouvez pas utiliser de chemins d’accès tels que « c:\my.path\myprovider.dll » ou « c:\mypath\my.provider.dll ».

Parfois, dans un fournisseur de magasin, vous générez des identificateurs d’entrée à l’aide de la fonction WrapStoreEntryID , qui prend comme paramètre le nom de votre fournisseur.

Importante

Si vous utilisez des chemins d’accès complets dans MapiSvc.inf, vous devez utiliser le même chemin dans tous les appels à WrapStoreEntryID.

En outre, le chemin d’accès que vous utilisez peut être converti vers et à partir d’Unicode à l’aide de la page de codes fournie par la fonction GetACP .

Attention

Vous rencontrerez un échec si vous choisissez un chemin qui contient des caractères qui ne peuvent pas survivre à un tel aller-retour via les fonctions MultiByteToWideChar et WideCharToMultiByte .

Pour une démonstration de cette fonctionnalité, l’exemple PST encapsulé sur GitHub a été révisé . La fonctionnalité pertinente se trouve dans MergeWithMapiSvc et GenerateProviderPath.