我需要创建一个outlook加载项,其中约会将触发一些功能。例如,当约会开始时,我将从我的Outlook插件向服务器发出HTTP发布请求。
无论如何,这些约会需要同步。也就是说,如果一个用户创建了约会,我希望其他视图也创建相同的约会。为此我想到了这个:
private void ThisAddIn_Startup(object sender, System.EventArgs e)
{
Microsoft.Office.Interop.Outlook.Application outlookApp = Globals.ThisAddIn.Application;
// get primary calendar
MAPIFolder temp = outlookApp.Session.GetDefaultFolder(OlDefaultFolders.olFolderCalendar);
// raise an event when a new appointment is created
temp.Items.ItemAdd += Items_ItemAdd;
}
void Items_ItemAdd(object Item)
{
// serialize this new appointment and send it to the other outlooks
}
通过这种方法,我基本上在订阅被删除,修改或创建时订阅事件,并在其他展望中传播这些更改我认为这不是最好的分享方式日历,我觉得我正在重新发明轮子。我想采用这种方法的原因是因为我不知道如何在我的outlook插件中共享日历。
答案 0 :(得分:1)
看看这个答案。 How to detect which EKevent was changed通过通知,您可以检查加载项内部以查看iCal中的事件何时更改,然后从那里将更新/删除HTTP请求发送到Outlook服务器以反映所做的更改。
在您的HTTP请求中使用“SendToAllAndSaveCopy”