A method and apparatus for inter-module communication is disclosed. The
method includes defining a command definition, wherein the command
definition comprises commands for interfacing with a multi-channel,
multi-media, communication queuing system. The command definition can
include, for example, driver object commands to request media type lists
and command event lists, create drivers, request service, and release
drivers. The command definition can also include, for example, service
object commands to release service objects, notify when handling of an
event is complete, invoke commands, release work items, suspend work
items, resume work items, handle queued events, and cancel queued events.
The command definition can also include, for example, client object
commands to start a work item, release work items, save work item
contexts, restore work item contexts, serialize work items, free work
item storage, begin batch processing, and end batch processing.