Partager via


MAPISendMailHelper, fonction (mapiunicodehelp.h)

Prend les informations de message Unicode et envoie le message à l’aide de MAPISendMailW ou, si nécessaire, convertit le message en ANSI et envoie le message à l’aide de MAPISendMail. Sur Windows 8 et versions ultérieures : appelez MAPISendMailW directement pour envoyer un message.

Syntaxe

ULONG MAPISendMailHelper(
  [in] LHANDLE        lhSession,
  [in] ULONG_PTR      ulUIParam,
  [in] lpMapiMessageW lpMessage,
  [in] FLAGS          flFlags,
  [in] ULONG          ulReserved
);

Paramètres

[in] lhSession

Gérez une session MAPI simple ou zéro.

Si la valeur du paramètre lhSession est égale à zéro, MAPI se connecte à l’utilisateur et crée une session qui existe uniquement pendant la durée de l’appel. Cette session temporaire peut être une session partagée existante ou une nouvelle. Si nécessaire, la boîte de dialogue d’ouverture de session s’affiche.

[in] ulUIParam

Poignée de fenêtre parente ou zéro.

Si la valeur du paramètre ulUIParam est zéro et qu’une boîte de dialogue s’affiche, la boîte de dialogue est modale d’application. Si le paramètre ulUIParam contient un handle de fenêtre parent, il est de type HWND (cast en ULONG_PTR). Si aucune boîte de dialogue n’est affichée pendant l’appel, ulUIParam est ignoré.

[in] lpMessage

Pointeur vers une structure MAPISendMailW contenant le message à envoyer.

Si le fournisseur de messagerie inscrit exige que le message utilise l’encodage ANSI, MAPISendMailHelper convertit ce message en structure MAPI MapiMessageansi appelle MAPISendMail pour envoyer le message.

Lorsque vous appelez la fonction, notez les informations suivantes sur les membres de la structure de message :

Membre Notes
lpFiles Définissez ce membre sur NULL lorsque le message n’a pas de pièces jointes.
lpszMessageType Utilisé par les applications qui ne gèrent pas les messages interpersonnelles. Si votre application gère les messages interpersonnels, définissez le membre lpszMessageType sur NULL ou définissez-le pour qu’il pointe vers une chaîne vide.
lpszSubject La valeur NULL signifie qu’il n’y a pas de texte pour l’objet du message.
lpszNoteText La valeur NULL signifie qu’il n’y a pas de texte dans le corps du message.
lpRecips La valeur NULL signifie qu’il n’y a aucun destinataire. En outre, lorsque ce membre a la valeur NULL, le membre nRecipCount doit être égal à zéro.
nRecipCount La valeur zéro signifie qu’il n’y a aucun destinataire. En outre, lorsque ce membre est égal à zéro, le membre lpRecips doit être NULL.
 
Pointe Lorsque vous appelez la fonction et qu’il n’y a aucun destinataire, vous devez définir l’indicateur MAPI_DIALOG ou l’indicateur MAPI_DIALOG_MODELESS pour inviter l’utilisateur à fournir des informations sur le destinataire.
 
Si MAPI_DIALOG ou MAPI_DIALOG_MODELESS n’est pas défini, les membres nRecipCount et lpRecips de la structure doivent être valides pour une remise de message réussie. Les applications clientes peuvent définir le membre flFlagssur MAPI_RECEIPT_REQUESTED pour demander un rapport de lecture.

Pour plus d’informations sur la façon dont la fonction gère les informations sur les destinataires, consultez Gestion des informations sur les destinataires dans MAPISendMailW.

[in] flFlags

Masque de bits des indicateurs d’option. Les indicateurs suivants peuvent être définis.

Valeur Signification
MAPI_DIALOG
0x00000008
Une boîte de dialogue doit s’afficher pour inviter l’utilisateur à entrer les destinataires et d’autres options d’envoi.

Si ni MAPI_DIALOG ni MAPI_DIALOG_MODELESS n’est défini, au moins un destinataire doit être spécifié.

MAPI_DIALOG_MODELESS
0x00000004 | MAPI_DIALOG
Disponible sur Windows 7 ou version antérieure avec la prochaine version d’Office : Une boîte de dialogue sans mode doit s’afficher pour inviter l’utilisateur à entrer les destinataires et d’autres options d’envoi.

Si MAPI_DIALOG_MODELESS est défini, le paramètre lhSession doit être défini sur zéro. Sinon, si cet indicateur est défini et que lhSession n’est pas égal à zéro, Outlook lève une exception.

En outre, si MAPI_DIALOG_MODELESS est défini, le système ignore l’indicateur MAPI_NEW_SESSION .

Si ni MAPI_DIALOG ni MAPI_DIALOG_MODELESS n’est défini, au moins un destinataire doit être spécifié.

MAPI_LOGON_UI
0x00000001
Une boîte de dialogue doit s’afficher pour inviter l’utilisateur à se connecter si nécessaire.

Si l’indicateur MAPI_LOGON_UI n’est pas défini, l’application cliente 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é.

Si le paramètre lpszMessageID est vide, l’indicateur MAPI_LOGON_UI est ignoré.

MAPI_NEW_SESSION
0x00000002
Une tentative est effectuée pour créer une session au lieu d’acquérir la session partagée de l’environnement. Si l’indicateur MAPI_NEW_SESSION n’est pas défini, la fonction utilise une session partagée existante.

Si vous définissez l’indicateur MAPI_NEW_SESSION (empêchant l’utilisation d’une session partagée) et que le profil nécessite un mot de passe, vous devez également définir l’indicateur MAPI_LOGON_UI sinon la fonction échoue. Votre application cliente peut éviter cet échec en utilisant le profil par défaut sans mot de passe ou en utilisant un profil explicite sans mot de passe.

MAPI_FORCE_UNICODE
0x00040000
Ne convertissez pas le message en ANSI si le fournisseur ne prend pas en charge Unicode.

[in] ulReserved

Réservés au; doit être égal à zéro.

Valeur retournée

Cette fonction retourne l’une des valeurs suivantes.

Code/valeur de retour Description
MAPI_E_AMBIGUOUS_RECIPIENT
21
Un destinataire a mis en correspondance plusieurs structures de descripteur de destinataire et MAPI_DIALOG n’a pas été défini. Aucun message n’a été envoyé.
MAPI_E_ATTACHMENT_NOT_FOUND
11
La pièce jointe spécifiée est introuvable. Aucun message n’a été envoyé.
MAPI_E_ATTACHMENT_OPEN_FAILURE
12
Impossible d’ouvrir la pièce jointe spécifiée. Aucun message n’a été envoyé.
MAPI_E_BAD_RECIPTYPE
15
Le type d’un destinataire n’était pas MAPI_TO, MAPI_CC ou MAPI_BCC. Aucun message n’a été envoyé.
MAPI_E_FAILURE
2
Une ou plusieurs erreurs non spécifiées se sont produites. Aucun message n’a été envoyé.
MAPI_E_INSUFFICIENT_MEMORY
5
La mémoire était insuffisante pour continuer. Aucun message n’a été envoyé.
MAPI_E_INVALID_RECIPS
25
Un ou plusieurs destinataires n’étaient pas valides ou n’ont pas résolu d’adresse.
MAPI_E_LOGIN_FAILURE
3
Il n’y avait pas d’ouverture de session par défaut et l’utilisateur n’a pas réussi à se connecter lorsque la boîte de dialogue d’ouverture de session s’affichait. Aucun message n’a été envoyé.
MAPI_E_TEXT_TOO_LARGE
18
Le texte du message était trop volumineux. Aucun message n’a été envoyé.
MAPI_E_TOO_MANY_FILES
9
Il y avait trop de pièces jointes de fichiers. Aucun message n’a été envoyé.
MAPI_E_TOO_MANY_RECIPIENTS
10
Il y avait trop de destinataires. Aucun message n’a été envoyé.
MAPI_E_UNICODE_NOT_SUPPORTED
27
L’indicateur MAPI_FORCE_UNICODE est spécifié et Unicode n’est pas pris en charge.
Note Cette valeur ne peut être retournée que si MAPISendMailW est appelé pour envoyer le message.
 
MAPI_E_UNKNOWN_RECIPIENT
14
Un destinataire n’apparaît pas dans la liste d’adresses. Aucun message n’a été envoyé.
MAPI_E_USER_ABORT
1
L’utilisateur a annulé l’une des boîtes de dialogue. Aucun message n’a été envoyé.
SUCCESS_SUCCESS
0
L’appel a réussi et le message a été envoyé.

Remarques

Pour plus d’informations sur les fonctions d’envoi de courrier MAPI, consultez MAPISendMailW.

Configuration requise

Condition requise Valeur
Plateforme cible Windows
En-tête mapiunicodehelp.h
DLL Mapi32.dll

Voir aussi

MAPISendMailW

SDK Windows pour Windows 8