Microsoft CDO for Exchange 2000 Library
The following table lists IDataSource interface bindings.
Method Target Argument Content Class Open Exchange store item URL urn:content-classes:calendarmessage OpenObject IRow _Record IStream _Stream IBodyPart urn:content-classes:calendarmessage SaveTo Exchange store item URL N/A SaveToContainer Exchange store folder URL N/A SaveToObject _Record IStream _Stream IBodyPart N/A
Because meeting requests are sent and received as messages with Multipurpose Internet Mail Extensions (MIME) body parts containing calendar content, this class accesses full messaging functionality with the IMessage, IBodyPart, and IDataSource interfaces.
The IBodyPart interface acts as the root of the hierarchy of MIME body parts in a message.
The CalendarMessage object encapsulates the meeting request as an e-mail message. It also provides access to the ICalendarParts interface that filters for body parts containing calendar content.
The CalendarMessage object serves the protocol requirements for the organizer, who sends a meeting request, and an attendee, who sends a meeting response. The following steps outline a typical scenario for the request and response protocol:
- The organizer creates an Appointment object, populated with the necessary property values such as the meeting location and times. The organizer adds Attendee objects to the Attendees collection.
- The Appointment object's CreateRequest method creates a CalendarMessage object that is sent with the Send method.
- An attendee receives a meeting request in a message containing at least one body part of calendar content. The CalendarMessage object's CalendarParts property accesses an ICalendarParts collection, and its GetUpdatedItem method instantiates an Appointment object with the meeting times, location, and other values from a calendar part in the meeting request message. That Appointment object is saved in the attendee's calendar folder.
- An attendee can respond by accepting, accepting tentatively, or declining the meeting request. To respond, the attendee creates a CalendarMessage object using the Appointment object's Accept, AcceptTentative, and Decline methods and sends a response message to the organizer with an optional text message. An attendee can also invite another person to the meeting using a CalendarMessage object.
- The organizer receives the response message and derives an Appointment object using the ICalendarParts collection and GetUpdatedItem method. The Attendee collection can be examined to determine the attendees who accepted or declined. The organizer saves the Appointment object to his or her calendar folder using the IDataSource.Save method. This updates the organizer's appointment item with the updated appointment information.
[Visual Basic] Function SendMeetingRequest(iMbx As CDO.IMailbox, sRecipEmail As String) Dim Config As New Configuration Dim iAppt As New Appointment Dim iCalMsg As CalendarMessage Dim iAttn As Attendee ' Set the configuration fields. Config.Fields(cdoMailboxURL) = iMbx.BaseFolder Config.Fields("CalendarLocation") = iMbx.Calendar Config.Fields(cdoSendUsingMethod) = cdoSendUsingExchange Config.Fields(cdoSendEmailAddress) = "User1@exchange.example.com" Config.Fields.Update With iAppt .Configuration = Config 'Set the appointment properties .StartTime = #9/5/1999 12:30:00 PM# .EndTime = #9/5/1999 1:30:00 PM# .Subject = "Lunch meeting" .Location = "Building B Cafeteria" End With ' Add an attendee. Set iAttn = .Attendees.Add iAttn.Address = sRecipEmail ' Create the calendar message and send it. Set iCalMsg = iAppt.CreateRequest Set iCalMsg.Configuration = Config iAppt.DataSource.SaveToContainer iMbx.Calendar iCalMsg.Message.Send Set SendMeetingRequest = iAppt End Function