I just wanted to report a problem I had earlier tonight in interfacing some code with iMessenger on a VIIx 3.5 debug ROM. If you want to start iMessenger from another program to add a mail to the outbox, there is a well defined interface in <AppLaunchCmd.h> using the sysAppLaunchCmdAddRecord launch code. To invoke iMessenger, you have to fill in a MsgAddRecordParamsType structure with the details of the new mail. If your putting the mail in the Outbox and you have the edit flag set to true, iMessenger gives the user the opportunity to edit the message or cancel. Here's the bug. When edit is true, it looks like iMessenger is directly using the char pointers in that MsgAddRecordParamsType struct to populate the edit form. In order for this to work, the strings in the struct must be allocated with MemHandleNew, then locked with the locked pointer stored in the struct. Otherwise, the field manager code in PalmOS will try to do bad things with non-handle based pointers. I discovered this when I tried to use string constants -- I kept getting lock errors from the debug ROM when I tried to do any editing of a message. I've not checked PalmOS 4.0's iMessenger yet -- there aren't any 4.0 ROMs with that application posted. I can live with the limitation; it just needs to be better documented in that header. -- Ben Combee Veriprise Wireless <http://www.veriprise.com> -- For information on using the Palm Developer Forums, or to unsubscribe, please see http://www.palmos.com/dev/tech/support/forums/
