Collaboration Data Objects Roadmap
Naveen Kachroo
Microsoft Corporation
February 2000
Summary: This document provides a roadmap for developers for the CDO API, in the Microsoft Exchange 2000 Server timeframe. This document covers the versions of CDO shipping in the Microsoft Windows 2000 and Exchange 2000 Server products. (8 printed pages)
Contents
Overview
CDO for Windows 2000
CDO for Exchange 2000
CDO Libraries and Versioning Summary
CDO References
Overview
This document provides a roadmap for developers for the Collaboration Data Objects (CDO) application programming interface (API), in the Microsoft® Exchange 2000 Server timeframe. Information provided here covers the versions of CDO shipping in the Microsoft Windows® 2000 and Exchange 2000 Server products. It also includes brief information on how the architecture has evolved from previous versions of CDO. This document is meant to provide implementers with a concise view of the strategic direction of the CDO API and to help developers understand which version works best for their application needs.
The CDO library has proven to be extremely popular with developers, because the library provides developers an easy way to create, manipulate, and send Internet messages. Previous versions of CDO, with the exception of CDO for Microsoft Windows NT®, relied heavily on MAPI as the data access and transport format. This allowed for the development of powerful, collaboration applications, several of which are in widespread deployment today. Going forward, the new versions of CDO will be enhanced in two significant ways; they will be based on Internet-defined standards, and they will leverage standardized data-access formats, that is OLE DB/ADO. Using the new CDO libraries, developers will be able to build complete messaging, calendaring, and contact management applications running on Windows 2000 and Exchange 2000 Servers.
CDO for Windows 2000
CDO for Windows 2000, sometimes referred to as CD0 2.0 or CDOSYS.DLL, is designed to provide an object model for the development of messaging applications on Windows 2000. CDOSYS is based on the Simple Mail Transfer Protocol (SMTP) and Network News Transfer Protocol (NNTP) standards and is available as a system component on Microsoft Windows 2000 Server installations. It is the standard API for building bulk-mailing/Web-based messaging applications on Windows 2000 Server.
CDOSYS is not an update to the CDO 1.2.1 model in terms of new objects or the underlying architecture. Think of CDOSYS as providing enhanced functionality over the existing CDO for Windows NT Server (CDONTS) library, which is available via Windows NT 4.0 Option Pack 1. Although CDOSYS provides the same functionality as CDONTS (plus some additional features), the two are not code-compatible. CDOSYS was written from the ground up to directly manipulate Internet content and is not code-compatible with previous versions of CDO based on MAPI, including CDO 1.1, 1.2, and 1.2.1.
This new version of CDO is designed to support a wide range of developers. Most common functions can be supported in very few lines of code and yet provide powerful Internet-content creation abilities. The library supports the ability to create complex Multipurpose Internet Mail Extensions (MIME) message types, for example, multipart/alternative and text/html. Using the library you can create and manipulate almost any Internet-supported message and enable developers to build applications based on new Internet standards as they arise.
CDOSYS provides two key new features not found in previous versions of CDO: the ability to process protocol events and the ability to support NNTP. Protocol events enable the developer to build applications that can process incoming and outgoing mail. An example of this is an application that scans each incoming mail for a virus. NNTP support enables developers to post and process USENET news messages.
Because CDOSYS is not a direct replacement for CDONTS 1.x, nor a replacement for CDO 1.2.1, it can be used on the same system concurrently, if required. Therefore, if a program or script needs to work with messaging objects using Exchange 5.5 on a Windows 2000 Server as well as the SMTP and NNTP protocols, it can simultaneously access the CDO Library version 1.2.1, the CDO Rendering Library version 1.2.1, the CDO for Windows NT Server Library version 1.2.1, and the CDO for Windows 2000 library. Applications can, therefore, be written to support either CDO for Windows 2000 or CDO 1.2 for Windows NT Server. Both versions (CDO for Windows 2000 and CDO 1.2 for Windows NT Server) ship with Windows 2000.
CDO for Windows 2000 Features
- Supports selection among multiple SMTP configurations. CDOSYS requires Windows 2000 and a local or remote SMTP server for submitting messages that can be an Internet Mail Connector (IMC). CDOSYS can be configured to point to SMTP servers programmatically. This gives developers flexibility in configuring SMTP servers based on their application settings.
- Supports transport events. CDOSYS also supports the processing of incoming and outgoing mail through protocol events. A protocol event fires for inbound and outbound mail and news items allowing the developer to manipulate that message.
- Internet standards support. CDOSYS is based on Internet standards and provides a feature-rich API to create and manipulate MIME/MHTML data. It supports sending/posting of messages through the SMTP/NNTP protocols.
- Standardized data access. CDOSYS integrates OLE DB/ADO features into its architecture. This enables standardized data access when creating or manipulating items at the stream and property level.
- Programming languages support. CDOSYS is a dual-interfaced Component Object Model (COM) object library and supports multiple programming languages, including Microsoft Visual C++®, Microsoft Visual Basic®, Visual Basic Scripting Edition, Microsoft JScript®, and Microsoft Visual Basic for Applications (VBA).
- Object model upgrade path. CDOSYS is designed to be a proper subset of the Collaboration Data Objects library shipping on Exchange 2000 Server. Therefore all applications built using CDOSYS are fully supported when Exchange 2000 is installed.
CDO for Windows 2000 Scenarios
- Bulk mail transport/targeted mailers. Create scalable Internet-based messaging content for a targeted set of mail recipients with only a few lines of code.
- Mail-based replication. Create messaging content to replicate database/directory information to different servers. Windows 2000 replicates directory information using CDOSYS to compose the mail messages.
- Virus checker for mail and news items. Incoming mail and news messages can be scanned for viruses before being delivered to the intended recipients. Incoming mail that contains potentially dangerous content can be logged, discarded, or cured.
- Spam mail detection. Just like junk mail, unwanted e-mail can be a nuisance. Incoming mail can be scanned for certain keywords to detect if it is junk e-mail. If so, the message can be logged, discarded, or categorized. Also, incoming mail sent from unwanted recipients can be deleted automatically.
- Send Web page. Send complete Web pages with graphics and links through mail. Users browsing the Web page can mail the complete Web page to others for review. Also, ISV and Web site hosts can e-mail subscribers complete Web pages. For example, users who subscribe to the daily news can receive the cover page of daily news through e-mail. The e-mail message can contain graphics and active links to additional stores and pages.
- Process Web page forms. CDO can be used to compose receipt/invoice messages from Web-based forms to indicate the successful completion of a transaction.
- Auto-forward incoming message. Messages can be auto-forwarded to a particular mailbox, e-mail address, and so on. Based on the information in the message, all messages with a certain keyword can be forwarded to a specific newsgroup.
- Server administrative alerts. CDO can send alert messages from the server to an administrator mailbox to indicate the health of a server/service.
- Append corporate disclaimer text to incoming and outgoing message. Some companies require that corporate mail be tagged with disclaimers when inbound or outbound. A CDO script running in a transport event sink can easily accomplish this task.
CDO for Exchange 2000
CDO for Exchange 2000 (CDOEX.DLL) is installed with Exchange 2000 Server. CDOEX upgrades the registration for the CDOSYS component to CDO for Exchange 2000. Many of the features not included with CDOSYS, that is targeting the Web Storage System development, are available with CDOEX. Application compatibility for CDOSYS applications is preserved since the CDOEX library is a pure superset to CDOSYS. CDOEX does not use any MAPI code in its implementation and is built from the ground up to use Internet standards and OLE DB data access to access and manipulate data in the Exchange Web Storage System. However, all existing CDO 1.2 and MAPI applications can be ported seamlessly to Exchange 2000 Server and will work concurrently with applications based on CDOEX.
CDOEX expands the functionality of the CDOSYS messaging library to include objects for calendaring and contact management. This enables developers to build powerful Microsoft Outlook-style collaboration applications using the Web Storage System platform. Developers wishing to build their own objects can reuse an existing CDO object or extend the base CDO Item object to build their own first-class objects. Web-based collaboration applications using CDOEX need to be built directly on Exchange 2000 Server public/private stores. CDO objects can also be leveraged in transport and store event sinks that enable developers to customize and extend the behavior of the Web Storage System.
CDO for Exchange 2000 Features
- Seamless upgrade path for CDO for Windows 2000 applications. Application compatibility for CDOSYS applications is preserved.
- Calendaring. CDOEX includes objects for creating appointments and meeting requests to enable personal and group scheduling applications. The calendar protocols are based on Internet standards like iCalendar and provide full interoperability with Outlook 98 and Outlook 2000.
- Contact Management. Contact management applications can leverage CDO contact objects against the Exchange Web Storage System or Active Directory.
- CDO and ActiveX Data Objects (ADO). Use ADO as the data navigation model and CDO objects to bind to individual items in the Web Storage System.
- Extension Model. CDOEX ships a base implementation of a CDO object that enables developers to aggregate and extend the functionality of CDO for building custom CDO objects.
Besides the base objects provided in CDOEX there are additional libraries, shipping with Exchange 2000 Server, that leverage the CDO object model design. This includes the CDO for Exchange Management libraries (CDOEXM), which provides objects and interfaces for management of Exchange mailboxes and servers. Exchange 2000 Server also ships CDO Workflow objects (CDOWF), which is a set of CDO objects for manipulating the built-in Exchange workflow engine.
CDO Libraries and Versioning Summary
Active Messaging (OLEMSG32.DLL)
This library ships with Exchange 5.0.
File name: OLEMSG32.DLL
PROGID: MAPI
Application name: Microsoft Active Messaging
Version: 1.1
Ships with: Exchange 5.0
CDO 1.2.1 (CDO.DLL)
This library ships with Exchange 5.5, Outlook 98, Outlook 2000, and Exchange 2000 Server.
File name: CDO.DLL
PROGID: MAPI
Application name: Microsoft CDO 1.2.1
Version: 1.2.1
Ships with: Exchange 5.5, Outlook 98, Outlook 2000, Exchange 2000 Server
CDO 1.2 for Windows NT Server (CDONTS.DLL)
This library ships with Internet Information Server (IIS) 4.0 (Windows NT 4.0 Option Pack 1) and Windows 2000 Server.
File name: CDONTS.DLL
PROGID: CDONTS
Application name: Microsoft CDO 1.2 for Windows NT Server
Version: 1.2
Ships with: Exchange 5.5, IIS 4.0, Microsoft Commercial Internet System (MCIS), Windows 2000 Server
CDO for Windows 2000 (CDOSYS.DLL)
This library is installed with Windows 2000 Server only.
File name: CDOSYS.DLL
PROGID: CDO
Application name: Microsoft CDO for Windows 2000
Version: 2.0
Ships with: Windows 2000 Server
CDO for Exchange 2000 Server (CDOEX.DLL)
This library is installed with Exchange 2000 Server.
File name: CDOEX.DLL
PROGID: CDO
Application name: Microsoft CDO for Exchange 2000 Server
Version: 3.0
Ships with: Exchange 2000 Server
CDO for Exchange Management (CDOEXM.DLL)
This library is installed with Exchange 2000 Server and consists of a set of objects for administering Exchange 2000 Server mailboxes and servers.
File name: CDOEXM.DLL
PROGID: CDOEXM
Application name: Microsoft CDO for Exchange Management Library
Version: 1.0
Ships with: Exchange 2000 Server
CDO Workflow Objects for Microsoft Exchange (CDOWF.DLL)
This library ships with Exchange 2000 Server only and provides a set of objects for creating workflow applications.
File name: CDOWF.DLL
PROGID: CDOWF
Application name: Microsoft CDO Workflow objects for Microsoft Exchange
Version: 1.0
Ships with: Exchange 2000 Server
CDO Versioning Summary
Exchange 5.0 | Exchange 5.5 | IIS 4.0 | Windows 2000 Server | Exchange 2000 Server | |
---|---|---|---|---|---|
Active Messaging | Yes | N/A | N/A | N/A | N/A |
CDO 1.2 | N/A | Yes | N/A | N/A | Yes * |
CDO 1.2 for Windows NT Server | N/A | Yes | Yes | Yes * | Yes * |
CDO for Windows 2000 Server | N/A | N/A | N/A | Yes | N/A |
CDO for Exchange 2000 Server | N/A | N/A | N/A | N/A | Yes |
CDO for Exchange Management | N/A | N/A | N/A | N/A | Yes |
CDO Workflow Objects for Exchange | N/A | N/A | N/A | N/A | Yes |
* Provided for compatibility with existing applications.
(N/A) Not available in this release.
CDO References
For more information on the different versions of CDO, visit the Microsoft Knowledge Base (KB) and search for the following articles:
- Q176916: "INFO: Active Messaging and Collaboration Data Objects (CDO)"
- Q171440: "INFO: Where to Acquire the Collaboration Data Objects Libraries"
- Q177850: "INFO: What is the Difference Between CDO 1.2 and CDONTS?"
You can also find these Knowledge Base topics in the MSDN Library on CD-ROM and DVD-ROM.