Visual Basic 8 (2005)Visual Studio 2005.NET 2.0Windows Forms初学者开发Visual StudioWindows.NETVisual Basic
使用 CDO 对象添加、更新日历、任务和约会






2.71/5 (5投票s)
如何使用 CDOAppointment 对象添加或更新 Exchange 日历/任务文件
引言
本文档描述了如何使用 CDO Appointment 对象添加或更新日历/任务约会项目。
Using the Code
打开 Exchange 服务器连接
Dim ADOExchangeConn as new ADODB.Connection
Dim MailBoxUrl as string = "http://100.100.100.10/Exchange/test/Calendar/213.eml"
ADOExchangeConn.Provider = "ExOLEDB.DataSource"
ADOExchangeConn.Open(MailBoxURL, ExchangeUserName, ExchangePassword, 0)
MailBoxURL
的描述如下:
- 100.100.100.10 - Exchange IP 地址
- Exchange - 服务器名称
- test - 用户名
- Calendar - 文件夹
- 231.eml - eml 文件名
定义 CDO Appointment 对象
Dim objCDOApp as CDO.Appointment
要添加主题,我们需要设置
CDO.CdoDAV.cdoContentClass.Equals("urn:content-classes:appointment")
objCDOApp.Fields.Item(http://schemas.microsoft.com/exchange/outlookmessageclass).Value =
"IPM.Appointment"
然后,将主题设置为如下:
objCDOApp.Subject = sDisplayName
objCDOApp.Priority = 0
objCDOApp.AllDayEvent = True
objCDOApp.BusyStatus = "FREE"
objCDOApp.Duration = 86400
objCDOApp.Fields("urn:schemas:calendar:reminderoffset").Value = 64800
'''we can also Set objCDOApp.Fields("ReminderOffSet").Value = 64800
如果事件是单日事件,那么 StartTime
应该类似于 "Date 00:00:00 AM",否则日历将在连续的两个日期上显示相同的事件(约会)。 此外,将日期转换为 GMT 是必要的
Dim dtTemp1 As Date = DatePart(DateInterval.Month, strStartTime) & "/" & _
DatePart(DateInterval.Day, strStartTime) & "/" & _
DatePart(DateInterval.Year, strStartTime) &
" 00:00:00 AM"
Dim iGmtDiff As Double =
DateDiff(DateInterval.Minute, System.DateTime.UtcNow(), System.DateTime.Now())
Dim dtTemp2 As Date = DateAdd(DateInterval.Minute, -iGmtDiff, dtTemp1)
objCDOApp.StartTime = dtTemp2.Date
dtTemp2 = DateAdd(DateInterval.Day, 1, dtTemp2)
objCDOApp.EndTime = dtTemp2.Date
objCDOApp.Contact = "H"
objCDOApp.TextBody = "There is meeting today with H"
// This line is required to update objCDOApp.Fields("ReminderOffSet").Value = 600
objCDOApp.Fields.Update()
使用“var”按钮将变量或类名包裹在 <code>
标签中,例如这样
objCDOApp.DataSource.SaveTo(MailboxUrl, , ADODB.ConnectModeEnum.adModeReadWrite,
ADODB.RecordCreateOptionsEnum.adCreateOverwrite,
ADODB.RecordOpenOptionsEnum.adOpenSource, exchangeusername, exchangepwd)
''' 'SaveTo' function adds new eml also updates if the eml exists.
历史
- 2007 年 11 月 30 日:初始发布