我在Visual Studio 2010中创建了一个outlook AddIn。
我有两个Outlook日历:1)默认交换日历和2)个人时间跟踪日历。我有一个表单区域,显示帐号以跟踪我的时间,具体取决于任务。
我想做的是如果约会在我的个人日历中,我想将约会添加到我的时间跟踪日历中。
我试过这个:
var outlook = new Application();
var appt = OutlookItem as AppointmentItem;
if (appt == null)
return;
try
{
if (!string.IsNullOrEmpty(txtbxCapNum.Text))
{
if (appt.UserProperties.Find(Constants.CAPITAL_NUMBER) == null)
{
appt.UserProperties.Add(Constants.CAPITAL_NUMBER, OlUserPropertyType.olText);
}
appt.UserProperties[Constants.CAPITAL_NUMBER].Value = txtbxCapNum.Text;
}
if (!(outlook.Application.ActiveExplorer().CurrentFolder).Name.Equals(Constants.TIME_TRACKING_CALENDAR) && chbxInclude.Checked)
{
GetTimeTrackingCalendar(outlook).Items.Add(appt);
}
appt.Save();
}
catch (System.Exception ex)
{
MessageBox.Show(ex.Message);
}
其中GetTimeTrackingCalendar定义为:
public static MAPIFolder GetTimeTrackingCalendar(Application outlook )
{
MAPIFolder result = null;
MAPIFolder calendars = (MAPIFolder)outlook.ActiveExplorer().Session.GetDefaultFolder(OlDefaultFolders.olFolderCalendar);
for (int i = 1; i <= calendars.Folders.Count; i++)
{
if (calendars.Folders[i].Name != Constants.TIME_TRACKING_CALENDAR) continue;
result = calendars.Folders[i];
break;
}
return result;
}
但是,save方法返回以下不明确的错误:
=============================================== ==============================
任何人都知道什么参数无效,甚至知道如何确定哪个参数无效?
谢谢,BillN
答案 0 :(得分:0)
循环访问Namerspace.Stores集合,找到您需要的商店,并使用Store.GetDefaultFolder(olFolderCalendar)打开该商店的默认CXalendar文件夹。