Partager via


Ajout ou suppression de fournisseurs dans un service de messagerie

S’applique à : Outlook 2013 | Outlook 2016

Pour ajouter ou supprimer des fournisseurs de services dans un service de messagerie, utilisez l’interface IProviderAdmin : IUnknown . Vous pouvez récupérer un pointeur IProviderAdmin en appelant IMsgServiceAdmin ::AdminProviders. La table du fournisseur, accessible via IProviderAdmin ::GetProviderTable, répertorie des informations sur les fournisseurs de services actuellement installés dans le service de message. Les clients et les fournisseurs de services peuvent utiliser la table provider pour accéder au nom du fichier DLL du fournisseur, par exemple, au MAPIUID, au nom d’affichage et au type du fournisseur, ainsi qu’aux informations sur le service de messagerie. Pour plus d’informations, consultez Tables de fournisseurs.

Pour ajouter ou supprimer un fournisseur de services dans un service de messagerie

  1. Appelez la méthode AdminServices pour accéder à un objet d’administration de service de messagerie.

  2. Appelez IMsgServiceAdmin ::GetMsgServiceTable pour accéder à la table du service de messages.

  3. Générez une restriction de propriété à l’aide d’une structure SPropertyRestriction qui correspond à PR_DISPLAY_NAME (PidTagDisplayName) ou PR_SERVICE_NAME (PidTagServiceName) avec le nom du service de message à modifier.

  4. Appelez la méthode IMAPITable ::FindRow de la table de service de message pour localiser la ligne dans la table qui représente le service de message ciblé.

  5. Appelez IMsgServiceAdmin ::AdminProviders pour récupérer un pointeur IProviderAdmin . Transmettez la colonne PR_SERVICE_UID (PidTagServiceUid) à partir de la ligne de la table du service de messages en tant que paramètre lpUID .

  6. Appelez IProviderAdmin ::GetProviderTable pour accéder à la table du fournisseur.

  7. Créez une restriction de propriété à l’aide d’une structure SPropertyRestriction qui correspond à PR_DISPLAY_NAME (PidTagDisplayName) ou PR_PROVIDER_DISPLAY (PidTagProviderDisplay) avec le nom du fournisseur de services à ajouter ou à supprimer.

  8. Appelez la méthode IMAPITable ::FindRow de la table de fournisseur pour localiser la ligne dans la table qui représente le fournisseur de services ciblé.

  9. Appelez IProviderAdmin ::CreateProvider pour ajouter le fournisseur ou IProviderAdmin ::D eleteProvider pour le supprimer du service de messagerie. Pour CreateProvider, transmettez la propriété PR_DISPLAY_NAME du fournisseur en tant que paramètre lpszProvider . Pour l’une ou l’autre méthode, transmettez la propriété PR_SERVICE_UID du fournisseur en tant que paramètre lpUID . Une fois que le fournisseur de services a été ajouté ou supprimé, la modification n’est pas apparente tant qu’une nouvelle session n’est pas créée.

Une autre technique permettant d’ajouter un fournisseur de services, en particulier un fournisseur de magasin de messages, à un profil consiste à construire un identificateur d’entrée pour le fournisseur. Étant donné que la construction d’un identificateur d’entrée nécessite une connaissance de son format, cette technique ne peut être utilisée que si le fournisseur de services a rendu public son format d’identificateur d’entrée.

Avec l’identificateur d’entrée nouvellement construit, un client peut appeler IMAPISession ::OpenMsgStore. MAPI crée automatiquement une section de profil dans le profil pour le fournisseur de services, mais ne l’ajoute pas à un service de messagerie.

Certains services de messagerie n’autorisent pas ce type de modification dynamique ; qu’il soit pris en charge ou non est à la charge du service de messagerie. Une autre fonctionnalité qui peut ou non être prise en charge est la possibilité d’accéder directement aux sections de profil privé d’un service de messagerie. Si le service de message que vous utilisez autorise cet accès, il publie le GUID qui représente la section privée dans MAPISVC.INF. Vous pouvez passer ce GUID dans un appel à IProviderAdmin ::OpenProfileSection pour accéder à la section de profil.