Described is a system and method by which client programs such as desktop
applications can use instant messaging functionality. An application
program interface is provided that allows a client program (e.g., an
application program) to interact with an instant messaging
infrastructure, such as via event calls to initiate conversations, send
messages and/or obtain presence information. This enables other programs
to create new user experiences that integrate the messaging
infrastructure, such as displaying presence, or enabling instant messages
to be sent from within an application program. Document collaboration is
also facilitated, by allowing users to send instant messages (or the
document) to other users, including sending an instant message directly
to a user associated with a specific comment or change to the document.