Creazione IDL per conversione MAPI-MIME
Domanda
Sto cercando di creare l'IDL per l'interfaccia IConverterSession e sono confuso dalla definizione di MIMETOMAPI . Specifica il parametro LPMESSAGE pmsg
come [out] ma i commenti indicano che è il puntatore al messaggio MAPI da caricare.
Non mi è chiaro se le funzioni allocano l'oggetto messaggio MAPI e impostano il puntatore, nel qual caso non dovrebbe essere un puntatore a un puntatore di MESSAGGIO? O è previsto che il codice chiamante abbia già istanziato l'oggetto messaggio, nel qual caso perché è contrassegnato [out] e non [in]?
In definitiva questa interfaccia deve essere consumata dal codice VB6, quindi dovrà essere [in] o [in, out] ma devo sapere se nell'IDL che ho usato: -
[in] IMessage pmsg*
o
[in, out] IMessage pmsg**
Soluzione
Penso che in questo caso la documentazione sia fuorviante quando contrassegna il parametro come [out]. Devi passare un LPMESSAGE valido al metodo ed è per questo che non è un doppio puntatore. Quindi vorrei andare con [in] sulla tua definizione idl.
Altri suggerimenti
Vedi MAPIMime.h dalla fonte MFCMapi (http://mfcmapi.codeplex.com/) come fonte definitiva.