Création d'IDL pour la conversion MAPI-MIME
Question
J'essaie de créer l'IDL pour l'interface IConverterSession et la définition du MIMETOMAPI . Il spécifie le paramètre LPMESSAGE pmsg
comme étant [out], mais les commentaires indiquent son pointeur sur le message MAPI à charger.
Il m'est difficile de savoir si les fonctions allouent l'objet de message MAPI et définissent le pointeur. Dans ce cas, ne devrait-il pas s'agir d'un pointeur sur un pointeur de MESSAGE? OU le code appelant est-il censé avoir déjà instancié l’objet de message, auquel cas pourquoi est marqué [out] et non [in]?
Cette interface doit être consommée à partir du code VB6, elle devra donc être soit [in] ou [in, out], mais j’ai besoin de savoir si, dans le fichier IDL que j’ai utilisé: -
.[in] IMessage pmsg*
OU
[in, out] IMessage pmsg**
La solution
Je pense que dans ce cas, la documentation est trompeuse lorsqu'elle marque le paramètre comme [out]. Vous devez transmettre un LPMESSAGE valide à la méthode, et c'est pourquoi il ne s'agit pas d'un double pointeur. Je voudrais donc aller avec [dans] sur votre définition idl.
Autres conseils
Voir MAPIMime.h à partir de la source MFCMapi (http://mfcmapi.codeplex.com/) comme source définitive.