Implémentation de l’ouverture de session du fournisseur de services
S’applique à : Outlook 2013 | Outlook 2016
MAPI appelle une méthode dans votre objet fournisseur pour commencer le processus d’ouverture de session à l’aide du pointeur que vous retournez à partir de votre fonction de point d’entrée. La méthode varie comme suit, en fonction du type de votre fournisseur de services :
IABProvider ::Ouverture de session pour les fournisseurs de carnets d’adresses
IMSProvider ::Logon pour les fournisseurs de magasins de messages
IXPProvider ::TransportLogon pour les fournisseurs de transport
Effectuez les tâches suivantes dans la méthode d’ouverture de session que vous implémentez :
Incrémentez le nombre de références sur l’objet de support passé en tant que paramètre d’entrée en appelant sa méthode IUnknown ::AddRef .
Appelez la méthode IMAPISupport ::OpenProfileSection de l’objet de support pour accéder à votre section de profil.
Appelez la méthode IMAPIProp ::SetProps de la section de profil pour définir les propriétés suivantes :
PR_DISPLAY_NAME (PidTagDisplayName)
PR_ENTRYID (PidTagEntryId)
PR_PROVIDER_DISPLAY (PidTagProviderDisplay)
PR_RECORD_KEY (PidTagRecordKey)
Remarque
N’essayez pas de définir les propriétés PR_RESOURCE_FLAGS ou PR_PROVIDER_DLL_NAME de la section de profil. Au moment de l’ouverture de session, ces propriétés sont en lecture seule.
Vérifiez que les propriétés dont vous avez besoin pour la configuration sont stockées dans le profil ou disponibles auprès de l’utilisateur. Pour plus d’informations sur la vérification de votre configuration, consultez Vérification de la configuration du fournisseur de services.
Appelez la méthode IMAPISupport ::SetProviderUID de l’objet de support pour inscrire un identificateur unique, ou MAPIUID, si votre fournisseur est un fournisseur de carnet d’adresses ou de magasin de messages. Les fournisseurs de transport inscrivent les structures MAPIUID lorsque MAPI appelle leur méthode IXPLogon ::AddressTypes . Pour plus d’informations sur l’inscription d’un MAPIUID, consultez Inscription d’identificateurs uniques de fournisseur de services.
Instanciez un objet d’ouverture de session et retournez avec l’une des valeurs suivantes :
S_OK pour indiquer une ouverture de session réussie.
MAPI_E_UNCONFIGURED pour indiquer qu’une ou plusieurs propriétés de configuration n’étaient pas disponibles.
MAPI_E_USER_CANCEL pour indiquer que l’utilisateur a annulé la boîte de dialogue de configuration, ce qui entraîne l’indisponibilité des propriétés de configuration.
MAPI_E_FAILONEPROVIDER pour indiquer que votre fournisseur n’a pas pu être configuré, mais que MAPI doit autoriser son utilisation indépendamment. Les méthodes d’ouverture de session doivent renvoyer cette valeur pour signaler une erreur irrécupérable, par exemple lorsque le fournisseur requiert un mot de passe et ne peut pas inviter l’utilisateur à le fournir, car l’interface utilisateur est désactivée.
La liste précédente de tâches décrit une implémentation minimale pour une méthode d’ouverture de session du fournisseur de services. Vous pouvez inclure des fonctionnalités supplémentaires, si nécessaire. Par exemple, certains fournisseurs appellent IMAPISupport ::ModifyStatusRow pour mettre à jour la table status dans leur méthode d’ouverture de session.
Remarque
Pour obtenir des performances optimales au moment de l’ouverture de session, évitez d’appeler IMAPISupport ::P repareSubmit ou IMAPISupport ::SpoolerNotify. Avant que ces appels puissent se terminer et retourner le contrôle à votre méthode d’ouverture de session, le spouleur MAPI doit être démarré.