Pregunta

Estoy intentando crear el IDL para la interfaz IConverterSession y estoy confundido por la definición de MIMETOMAPI método.Se especifica el LPMESSAGE pmsg parámetro como [out] pero los comentarios indican que es el puntero al mensaje MAPI que se va a cargar.

No me queda claro si las funciones asignan el objeto de mensaje MAPI y establecen el puntero, en cuyo caso ¿no debería ser un puntero a un puntero de MENSAJE?O se espera que el código de llamada ya haya creado una instancia del objeto de mensaje, en cuyo caso ¿por qué está marcado [fuera] y no [dentro]?

En última instancia, esta interfaz debe consumirse desde el código VB6, por lo que tendrá que estar [dentro] o [dentro, fuera] pero necesito saber si en el IDL que usé:

[in] IMessage pmsg* 

O

[in, out] IMessage pmsg**
¿Fue útil?

Solución

Creo que en este caso la documentación es engañosa cuando marca el parámetro como [out].Tienes que pasar un LPMESSAGE válido al método, y por eso no es un puntero doble.Entonces elegiría [in] en su definición de idl.

Otros consejos

Consulte MAPIMime.h de la fuente MFCMapi (http://mfcmapi.codeplex.com/) como fuente definitiva.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top