65.9K
CodeProject 正在变化。 阅读更多。
Home

使用 CDO 对象添加、更新日历、任务和约会

starIconstarIcon
emptyStarIcon
starIcon
emptyStarIconemptyStarIcon

2.71/5 (5投票s)

Nov 30, 2007

CPOL
viewsIcon

29921

如何使用 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 日:初始发布
© . All rights reserved.