I am having a hard time sending meeting updates to attendees. I can
get the updated meeting to save to the organizer's calendar, but then
when I send it the meeting is sent to the attendee as a new meeting
instead of an update (It seems that Exchange assigns a new UID when
the Save method is called, so the attendees' calendar can't link it
with the original UID?!). If I try to send without saving first, the
old meeting is sent instead of the update.
Here is a sample of the code:
string sURL = "http://localhost/Exchange/" + username + "/calendar";
ADODB.Connection oCn = new ADODB.Connection();
oCn.Provider = "exoledb.datasource";
oCn.Open(sURL, username, password, 0);
CDO.Appointment oApp = new CDO.Appointment();
//Set updated Fields
oApp = ConvertVEItoCDOAppointment(appt, oCn, username, password, sURL, false);
//Get URL location of oApp
string UID = oApp.Fields["urn:schemas:calendar:uid"].Value.ToString();
string href = GetExistingAppointmentHrefFromUID(UID, oCn, username);
oApp.DataSource.Open(href, oCn,
ADODB.ConnectModeEnum.adModeReadWrite,
ADODB.RecordCreateOptionsEnum.adFailIfNotExists,
ADODB.RecordOpenOptionsEnum.adOpenSource,
username, password);
oApp.DataSource.SaveTo(href, oCn,
ADODB.ConnectModeEnum.adModeReadWrite,
ADODB.RecordCreateOptionsEnum.adCreateOverwrite,
ADODB.RecordOpenOptionsEnum.adOpenSource,
username, password);
CDO.ICalendarMessage iCalMsg = (CDO.ICalendarMessage)oApp.CreateRequest();
iCalMsg.Message.Send();
Any help would be greatly appreciated!