Implémentation d’une fonction de point d’entrée de fournisseur de services
S’applique à : Outlook 2013 | Outlook 2016
Chaque DLL de fournisseur de services a une fonction de point d’entrée que MAPI appelle pour la charger. N’oubliez pas que cette fonction de point d’entrée n’est pas identique à DllMain, la fonction de point d’entrée de la DLL Win32.
Selon le type de votre fournisseur, votre fonction de point d’entrée de fournisseur est conforme à un prototype différent. MAPI définit différents prototypes de fonction de point d’entrée pour les fournisseurs de services.
Provider | Prototype de fonction de point d’entrée |
---|---|
Fournisseurs de magasins de messages |
MSProviderInit |
Fournisseurs de transport |
XPProviderInit |
Fournisseurs de carnets d’adresses |
ABProviderInit |
La plupart des fonctionnalités de ces prototypes sont les mêmes pour tous les types de fournisseurs de services.
Les fournisseurs de carnet d’adresses, de magasin de messages et de transport effectuent les deux tâches main suivantes dans leurs fonctions de point d’entrée :
- Vérifiez la version de l’interface du fournisseur de services (SPI) pour vous assurer que MAPI utilise une version compatible avec la version utilisée par votre fournisseur de services. Utilisez le paramètre lpulMAPIVer, qui contient la version DE MAPI SPI, et le paramètre lpulProviderVer, qui contient votre version SPI, pour effectuer la case activée. Ces paramètres sont des entiers non signés 32 bits composés de trois parties :
Les bits 24 à 31 représentent la version principale.
Les bits 16 à 23 représentent la version mineure.
Les bits 0 à 15 représentent l’identificateur de mise à jour. Bien que le numéro de version principale change rarement, le numéro de version mineure change chaque fois que MAPI est publié et que le SPI a changé. L’identificateur de mise à jour est la version de build interne de Microsoft ; il est utilisé pour suivre les modifications pendant le processus de développement. MAPI définit la constante CURRENT_SPI_VERSION, documentée dans le fichier d’en-tête Mapispi.h, pour indiquer la version spi actuelle. Échouez votre case activée avec l’erreur MAPI_E_VERSION si vous utilisez une version du SPI qui est plus récente que la version utilisée par MAPI.
Créez un instance d’un objet fournisseur. Étant donné que votre fournisseur peut être démarré et initialisé plusieurs fois, vous devez créer un instance chaque fois que cela se produit. Les fournisseurs sont démarrés plusieurs fois lorsqu’ils apparaissent dans plusieurs profils utilisés simultanément par un ou plusieurs clients, ou lorsqu’ils apparaissent plusieurs fois dans un même profil. Tout comme le prototype de fonction de point d’entrée diffère en fonction du type de votre fournisseur, il en va de même pour le type d’objet fournisseur.
Si vous écrivez un fournisseur de carnet d’adresses, implémentez IABProvider : IUnknown. Si vous écrivez un fournisseur de magasin de messages, implémentez IMSProvider : IUnknown. Pour plus d’informations, consultez Chargement de fournisseurs de magasins de messages.
Si vous écrivez un fournisseur de transport, implémentez IXPProvider : IUnknown. Pour plus d’informations, consultez Initialisation du fournisseur de transport.