IMAPIFolder::CreateMessage
S’applique à : Outlook 2013 | Outlook 2016
Crée un message.
HRESULT CreateMessage(
LPCIID lpInterface,
ULONG ulFlags,
LPMESSAGE FAR * lppMessage
);
Paramètres
lpInterface
[in] Pointeur vers l’identificateur d’interface (IID) qui représente l’interface à utiliser pour accéder au nouveau message. Les identificateurs d’interface valides incluent IID_IUnknown, IID_IMAPIProp, IID_IMAPIContainer et IID_IMAPIFolder. La transmission de la valeur NULL entraîne le retour de l’interface de message standard, IMessage : IMAPIProp.
ulFlags
[in] Masque de bits d’indicateurs qui contrôle la façon dont le message est créé. Les indicateurs suivants peuvent être définis :
ITEMPROC_FORCE
Indique au magasin de dossiers personnels (PST) que le message est éligible pour le traitement des règles avant que le magasin n’informe tout client à l’écoute de l’arrivée du nouveau message. Le traitement des règles s’applique uniquement aux nouveaux messages créés sur un serveur qui n’est pas un Microsoft Exchange Server, car Exchange Server traite les règles pour les messages sur le serveur. Par conséquent, le fournisseur ou le client qui crée le message doit passer cet indicateur en combinaison avec l’enregistrement d’un message avec IMAPIPProp ::SaveChanges à l’aide de NON_EMS_XP_SAVE, ce qui indique que le serveur n’est pas un Exchange Server.
MAPI_ASSOCIATED
Le message à créer doit être inclus dans la table de contenu associée au lieu de la table de contenu standard. Les messages associés sont masqués de l’interaction utilisateur.
MAPI_DEFERRED_ERRORS
CreateMessage est autorisé à réussir même si l’opération de création n’est pas entièrement terminée. Cela implique que le nouveau message peut ne pas être immédiatement disponible pour l’appelant.
lppMessage
[out] Pointeur vers un pointeur vers le message nouvellement créé.
Valeur renvoyée
S_OK
Le message a été créé avec succès.
Remarques
La méthode IMAPIFolder ::CreateMessage crée un message avec du contenu générique ou associé et affecte un identificateur d’entrée. L’identificateur d’entrée se compose d’un composant qui représente le fournisseur de la banque de messages et d’un composant qui représente le message individuel.
Remarques pour les responsables de l’implémentation
Vous pouvez choisir de définir toutes les propriétés de message requises dans CreateMessage ou dans la méthode IMAPIProp ::SaveChanges du message. Vous n’avez pas besoin de rendre ces propriétés disponibles tant qu’un enregistrement réussi n’a pas été effectué.
Pour plus d’informations sur l’utilisation des informations associées, consultez Tables des informations associées aux dossiers tables et tables de contenu.
Remarques pour les appelants
Certains fournisseurs de magasins de messages autorisent la disponibilité de l’identificateur d’entrée du nouveau message immédiatement après le retour de CreateMessage ; d’autres fournisseurs de magasins de messages retardent sa disponibilité jusqu’à ce que le message soit enregistré. Étant donné que tous les fournisseurs de magasins de messages ne génèrent pas d’identificateur d’entrée pour un nouveau message tant que vous n’avez pas appelé la méthode IMAPIProp ::SaveChanges du message, vous risquez de ne pas pouvoir accéder à l’identificateur d’entrée lorsque CreateMessage est retourné. En outre, le nouveau message peut ne pas être inclus dans la table de contenu du dossier tant que l’enregistrement n’a pas été effectué.
Attendez-vous à ce que l’identificateur d’entrée affecté au nouveau message soit unique non seulement dans la banque de messages actuelle, mais probablement dans toutes les banques de messages qui sont ouvertes en même temps. Une exception à cette règle se produit lorsque plusieurs entrées d’une banque de messages apparaissent dans le profil. Cela entraîne l’ouverture de la banque de messages plusieurs fois et la duplication des identificateurs d’entrée.
Pour créer un message sortant, appelez la méthode IMAPIFolder ::CreateMessage du dossier Boîte d’envoi.
Si vous supprimez un dossier qui contient un nouveau message avant l’enregistrement du message, les résultats ne sont pas définis.
Référence MFCMAPI
Pour voir un exemple de code MFCMAPI, consultez le tableau suivant.
Fichier | Fonction | Commentaire |
---|---|---|
FolderDlg.cpp |
CFolder ::OnNewMessage |
MFCMAPI utilise la méthode IMAPIFolder ::CreateMessage pour créer et enregistrer un nouveau message. |