The "hack" works as follows. Both Datebook events and To Do tasks are
encoded as vCalendar objects. The vCalendar spec also supports collections
of events and tasks, including heterogeneous collections (a mix of both
types), although Palm devices won't generate such vCalendar objects.
Datebook registers with the Exchange Manager to receive incoming vCalendar
objects (.vcs extension). To Do doesn't register with the Exchange Manager.
Datebook specifies its own creator ID as the target when beaming or sending
over any other transport. To Do specifies its own creator ID as well.
Beaming or sending categories works the same way as individual records.
When beaming between two Palm devices, the target field is effective. Beams
from Datebook are received by Datebook and beams from To Do are received by
To Do (even though it didn't register for anything). However, beams from a
PC (or any other non-Palm device) to a Palm won't transmit the target field.
The same goes for some other transports. The result is that Datebook will
receive the incoming vCalendar, regardless of whether it contains events,
tasks, or a combination of the two. When Datebook finds a task within a
vCalendar object, it'll sublaunch To Do to parse it. The two applications
cooperate to parse the vCalendar object. This all works fine except that the
initial "do you wanna accept" dialog refers to Datebook, even if the
incoming vCalendar object contains only tasks. This could be fixed, but it's
obviously not a serious problem.
The sample code for Datebook and To Do should include all the code that's
involved in this "hack". The OS (including the Exchange Manager and the IR
Library) isn't involved.
--
Danny @ Palm
--
For information on using the Palm Developer Forums, or to unsubscribe, please see
http://www.palmos.com/dev/tech/support/forums/