miércoles, 26 de noviembre de 2008

Adjuntos en Windows Mobile 6

Sí, es un artículo técnico.
Desde que comencé a programar para Windows CE, el 2001, he visto pasar cinco versiones del sistema operativo, todas incompatibles entre sí debido a pequeños cambios no documentados. Hace dos semanas, aproximadamente, me topé con el más reciente: el mecanismo utilizado en Windows Mobile 5 y anteriores para adjuntar un archivo a un correo ya no funciona en Windows Mobile 6. Lo que es mucho peor, lo que funciona en Windows Mobile 6 no funciona en las versiones anteriores. Como de costumbre, en Microsoft no hay indicación alguna de qué ha sucedido, ni por qué, ni de qué hacer.
Total, para eso estoy yo.
En resumen:

En Windows Mobile 6, un attachmente (un objeto Attach) debe tener una propiedad PR_MSG_STATUS, de valor (en ul) MSGSTATUS_RECTYPE_SMTP.
En Windows Mobile 5, un attachment puede tener una propiedad PR_MSG_STATUS.
En Windows Mobile 4 y anteriores, un attachment no debe tener una propiedad PR_MSG_STATUS.

Sencillo, ¿no? Lo único que tienes que hacer para que tu código funcione en cualquier versión de Windows Mobile es comprobar la versión del sistema operativo en tiempo de ejecución, y poner la propiedad PR_MSG_STATUS sólo cuando es posible.

Ahora bien, la propiedad PR_MSG_STATUS no es propia de los attachments. Todo parece indicar que es utilizada en el ejemplo del SDK porque tiene el mismo valor que otra constante, que no está definida en los archivos de cabecera de los entornos de desarrollo disponibles actualmente. En la próxima encarnación del Visual Studio estará incluida sin lugar a dudas; y el ejemplo incluido en el SDK será convenientemente modificado, sin que quede rastro de que fue distinto alguna vez. Ya sabes, Microsoft es así.

No hay comentarios: