This article describes key differences between CDO
(previously known as Active Messaging and OLE Messaging), Simple MAPI, Common
Messaging Calls (CMC), and Extended MAPI (usually referred to simply as MAPI).
Collaboration Data Objects (CDO) was originally called "OLE
Messaging" and later "Active Messaging". CDO is a COM wrapper of the MAPI
library and can be called from any development language that supports
automation. For example, Simple MAPI, CDO is primarily designed for client
activities. CDO implements most but not all MAPI functionality, although far
more than Simple MAPI. Some activities that can be accomplished using CDO:
- Log onto the messaging system with specific profiles or
with anonymous authentication.
- Compose messages, address and resolve recipients, send,
receive, and read messages, add attachments, automate replies.
- Manage calendars; create meetings and
- Manage folders and messages within the information store.
- Manage Addresses, especially within the Personal Address
There are two distinct "flavors" of CDO, the MAPI based
CDO.DLL and the SMTP based CDONTS.dll. The CDONTS library allows rendering of
selected information into HTML format.
For more information specific
to CDO see the following KnowledgeBase articles:
Where to Acquire the Collaboration Data Objects Library
For more information specific to CDONTS see
the following KnowledgeBase articles:
HOWTO: Use CDONTS to Collect and Mail Information From a User
INFO: What is the Difference Between CDO 1.2 and CDONTS?
The Messaging Application Program Interface (MAPI) is an
extensive set of functions that developers can use to create mail-enabled
applications. The full function library is known as MAPI 1.0 or Extended MAPI.
Extended MAPI allows complete control over the messaging system on the client
computer, creation and management of messages, management of the client
mailbox, service providers, and so forth.
Applications that use MAPI
directly are written in C or C++.
Simple MAPI is a subset of 12 functions, which enable developers
to add basic messaging functionality to their Windows-based applications.
Simple MAPI includes functions to support sending and receiving messages:
- Log onto the messaging system.
- Compose new messages, add and resolve recipients, send
- Retrieve and read messages from the inbox.
The Simple MAPI functions can be called from any application
that supports both making API calls as well as the structures and data-types
used by Simple MAPI, such as C, C++, Visual Basic, and Visual Basic for
"The MAPI controls included with Microsoft
Visual Basic (versions 3 through 6), and the version of MAPI installed by
Outlook Express implement Simple MAPI only."
For more information
specific to Simple MAPI see the following KnowledgeBase
PC MAPI: Simple MAPI Common Technical Questions and Answer
INFO: Developer Support Limitations with Outlook Express
Common Messaging Calls (CMC) is a library of 10 functions for
adding simple messaging capabilities to client applications written in C or
C++. CMC is built on top of the core MAPI subsystem so it shares the advantage
of messaging system independence. The CMC API is especially valuable because it
is also independent of the operating system, therefore useful for
cross-platform client applications. CMC also includes support for the X.400
API. The CMC supports three principal tasks:
- Sending messages
- Retrieving messages
- Looking up addressing information
Current versions of the MAPI subsystem do not implement CMC. Do
not use CMC to implement messaging solutions.
Platform Software Development Kit (SDK), Messaging and
The following MSDN topics are helpful to
understand the full relationship of these messaging technologies:
- MAPI Programming Interfaces
- About the MAPI Subsystem
- About the MAPI Architecture