Applications generating events, and system facilities generating events,
send notifications of the events to a system event sink. The event sink
is preferably associated with an operating system, and provides an
application programming interface for registering listeners. (In one
alternative approach, the event sink operates as a centrally-accessible
or network-accessible entity, where it may concurrently interact with
more than one client.) Upon receiving a notification of an event, the
event sink forwards the notification to any registered listeners.
Optionally, filters may be used to specify criteria to be met before a
notification is forwarded to the listener. An event does not rely a
particular application for displaying the event to an end user. As one
example, notification of a newly-arrived e-mail message might be
presented in a chat window of an instant messaging client.