MAPILogonEx
S’applique à : Outlook 2013 | Outlook 2016
Enregistre une application cliente dans une session avec le système de messagerie.
Propriété | Valeur |
---|---|
Fichier d’en-tête : |
Mapix.h |
Implémenté par : |
MAPI |
Appelé par : |
Applications clientes |
HRESULT MAPILogonEx(
ULONG_PTR ulUIParam,
LPSTR lpszProfileName,
LPSTR lpszPassword,
FLAGS flFlags,
LPMAPISESSION FAR * lppSession
);
Paramètres
ulUIParam
[in] Gérez la fenêtre à laquelle la boîte de dialogue d’ouverture de session est modale. Si aucune boîte de dialogue n’apparaît pendant l’appel, le paramètre ulUIParam est ignoré. Ce paramètre peut être égal à zéro.
lpszProfileName
[in] Pointeur vers une chaîne qui contient le nom du profil à utiliser lorsque l’utilisateur se connecte. Cette chaîne est limitée à 64 caractères.
lpszPassword
[in] Pointeur vers une chaîne qui contient le mot de passe du profil. Le paramètre lpszPassword doit être NULL.
flFlags
[in] Masque de bits des indicateurs utilisés pour contrôler la façon dont l’ouverture de session est effectuée. Les indicateurs suivants peuvent être définis :
MAPI_ALLOW_OTHERS
La session partagée doit être retournée, ce qui permet aux clients ultérieurs d’obtenir la session sans fournir d’informations d’identification utilisateur.
MAPI_APP_PROFILE
Incluez les profils « application » dans la liste des boîtes de dialogue d’ouverture de session. Si cet indicateur n’est pas défini, les profils « application » ne sont pas inclus. Cet indicateur peut ne pas être reconnu ou pris en charge dans toutes les implémentations MAPI.
MAPI_BG_SESSION
Connectez-vous à une session et exécutez toutes les opérations en arrière-plan. En général, si un client a l’intention d’effectuer un traitement sur un thread d’arrière-plan ou dans un processus distinct d’une manière qui n’est pas discrète pour le thread de premier plan, il doit appeler avec l’indicateur MAPI_BG_SESSION. Une application cliente telle qu’un moteur d’indexation ou l’ouverture d’un fichier de dossiers personnels (PST) pour l’accès au type d’arrière-plan sont quelques exemples d’utilisation de MAPI_BG_SESSION. MAPILogonEx.
MAPI_EXPLICIT_PROFILE
Le profil par défaut ne doit pas être utilisé et l’utilisateur doit être tenu de fournir un profil.
MAPI_EXTENDED
Ouvrez une session avec des fonctionnalités étendues. Cet indicateur doit toujours être défini.
MAPI_FORCE_DOWNLOAD
Une tentative de téléchargement de tous les messages de l’utilisateur doit être effectuée avant de revenir. Si l’indicateur MAPI_FORCE_DOWNLOAD n’est pas défini, les messages peuvent être téléchargés en arrière-plan après le retour de l’appel à MAPILogonEx.
MAPI_LOGON_UI
Une boîte de dialogue doit s’afficher pour inviter l’utilisateur à entrer des informations de connexion si nécessaire. Lorsque l’indicateur MAPI_LOGON_UI n’est pas défini, le client appelant n’affiche pas de boîte de dialogue d’ouverture de session et retourne une valeur d’erreur si l’utilisateur n’est pas connecté.
MAPI_NEW_SESSION
Une tentative doit être effectuée pour créer une session MAPI au lieu d’acquérir la session partagée. Si l’indicateur MAPI_NEW_SESSION n’est pas défini, MAPILogonEx utilise une session partagée existante même si le paramètre lpszprofileName n’est pas NULL.
MAPI_NO_MAIL
MAPI ne doit pas informer le spouleur MAPI de l’existence de la session. Le résultat est qu’aucun message ne peut être envoyé ou reçu dans la session, à l’exception d’une paire de stockage et de transport étroitement couplée. Un client appelant définit cet indicateur s’il agit en tant qu’agent, si le travail de configuration doit être effectué ou si le client navigue dans les magasins de messages disponibles.
MAPI_NT_SERVICE
L’appelant s’exécute en tant que service Windows. Les appelants qui ne s’exécutent pas en tant que service Windows ne doivent pas définir cet indicateur ; Les appelants qui s’exécutent en tant que service doivent définir cet indicateur.
MAPI_SERVICE_UI_ALWAYS
MAPILogonEx doit afficher une boîte de dialogue de configuration pour chaque service de message dans le profil. Les boîtes de dialogue s’affichent une fois le profil choisi, mais avant qu’un service de message ne soit connecté. La boîte de dialogue commune MAPI pour l’ouverture de session contient également une zone case activée qui demande la même opération.
MAPI_TIMEOUT_SHORT
L’ouverture de session doit échouer si elle est bloquée pendant plus de quelques secondes.
MAPI_UNICODE
Les chaînes transmises sont au format Unicode. Si l’indicateur MAPI_UNICODE n’est pas défini, les chaînes sont au format ANSI.
MAPI_USE_DEFAULT
Le sous-système de messagerie doit remplacer le nom du profil par défaut par le paramètre lpszProfileName . L’indicateur MAPI_EXPLICIT_PROFILE est ignoré, sauf si lpszProfileName est NULL ou vide.
lppSession
[out] Pointeur vers un pointeur vers l’interface de session MAPI.
Valeur renvoyée
S_OK
L’ouverture de session a réussi.
MAPI_E_LOGON_FAILED
L’ouverture de session a échoué, soit parce qu’un ou plusieurs paramètres de MAPILogonEx n’étaient pas valides ou parce qu’il y avait déjà trop de sessions ouvertes.
MAPI_E_TIMEOUT
MAPI sérialise toutes les connexions via un mutex. Cette valeur est retournée si l’indicateur MAPI_TIMEOUT_SHORT a été défini et qu’un autre thread a conservé le mutex.
MAPI_E_USER_CANCEL
L’utilisateur a annulé l’opération, généralement en cliquant sur le bouton Annuler dans une boîte de dialogue.
Remarques
Les applications clientes MAPI appellent la fonction MAPILogonEx pour se connecter à une session avec le système de messagerie. Toutes les chaînes passées et retournées vers et à partir d’appels MAPI sont terminées par null et doivent être spécifiées dans le jeu de caractères ou la page de codes actuel du système d’exploitation du client ou du fournisseur appelant.
Le paramètre lpszProfileName est ignoré s’il existe une session précédente qui a appelé MapiLogonEx avec l’indicateur MAPI_ALLOW_OTHERS défini et si l’indicateur MAPI_NEW_SESSION n’est pas défini. Si le paramètre lpszProfileName a la valeur NULL ou pointe vers une chaîne vide et que le paramètre flFlags inclut l’indicateur MAPI_LOGON_UI, la fonction MAPILogonEx génère une boîte de dialogue d’ouverture de session contenant un champ vide pour le nom du profil.
Lors de la connexion à un profil spécifique, un client doit transmettre l’indicateur MAPI_NEW_SESSION à MAPILogonEx en plus du nom du profil. Sinon, si un autre client a établi une session partagée en se connectant avec MAPI_ALLOW_OTHERS, le client est connecté à la session partagée au lieu du profil demandé.
L’indicateur MAPI_EXPLICIT_PROFILE n’entraîne pas l’utilisation du nom de profil par défaut lorsque lpszProfileName est NULL ou vide, sauf si l’indicateur MAPI_USE_DEFAULT est également présent.
L’indicateur MAPI_NO_MAIL a plusieurs effets qui provoquent les effets suivants lorsque vous n’utilisez pas le spouleur MAPI :
Aucun message ne peut être envoyé ou remis par le spouleur MAPI pendant cette session. Seuls les fournisseurs de stockage et de transport étroitement couplés peuvent envoyer et remettre des messages.
Les magasins basés sur le serveur peuvent toujours envoyer ou remettre des messages.
Les messages envoyés ou remis par les magasins basés sur le serveur ne sont traités par aucun fournisseur de hook.
Les options par message et par destinataire pour les transports ne sont pas disponibles.
La table status ne contient pas d’entrées pour les fournisseurs de transport, et aucune fonctionnalité de transport dépendante d’objets status (par exemple, la configuration) n’est disponible.
La ligne du spouleur de messages dans la table status contient la valeur STATUS_FAILURE.
Les ouvertures de session piggybackées sont autorisées, mais ces ouvertures de session ne font pas que l’ouverture de session précédente reçoit status mises à jour d’objets.
Un service doit toujours se connecter à l’aide de l’indicateur MAPI_NO_MAIL.
Référence MFCMAPI
Pour voir un exemple de code MFCMAPI, consultez le tableau suivant.
Fichier | Fonction | Commentaire |
---|---|---|
MAPIObjects.cpp |
CMapiObjects ::MAPILogonEx |
MFCMAPI utilise la méthode MAPILogonEx pour se connecter à MAPI. |