gpt4 book ai didi

c# - 如何捕获自定义文件夹上的 Outlook 约会删除事件?

转载 作者:太空宇宙 更新时间:2023-11-03 16:28:15 25 4
gpt4 key购买 nike

我正在开发 Outlook 加载项。其中一部分是我在特定文件夹中组织约会。我想捕获元素是否被删除(在这种情况下,移出“我的”文件夹算作已删除)。

我找到了这篇文章 https://stackoverflow.com/questions/10579240/how-to-capture-a-c-sharp-outlook-addin-appointment-delete-event他/她的解决方案很有帮助,但我有一个大问题:该事件仅在创建我的文件夹的那个“ session ”中触发,而不是在我从 Outlook 获取文件夹对象时触发。

我的代码是这样的:

private Outlook.MAPIFolder _CalendarMAPIFolder = null;
private Outlook.MAPIFolderEvents_12_Event _CalendarFolder = null;
private Outlook.Items _CalendarItems = null;

private void ThisAddIn_Startup(object sender, System.EventArgs e)
{
Outlook.MAPIFolder calendarFolder =
this.Application.GetNamespace("mapi").GetDefaultFolder(Outlook.OlDefaultFolders.olFolderCalendar);

// get my-Folder (if not found, create it)
try
{
_CalendarMAPIFolder = calendarFolder.Folders["my-Folder"];
}
catch
{
_CalendarMAPIFolder = calendarFolder.Folders.Add("my-Folder");
}
_CalendarItems = _CalendarMAPIFolder.Items;
_CalendarFolder = _CalendarMAPIFolder as Outlook.MAPIFolderEvents_12_Event;
if (_CalendarFolder == null)
{
MessageBox.Show("can not cast MAPIFolder to Folder");
}


_CalendarFolder.BeforeItemMove += new Outlook.MAPIFolderEvents_12_BeforeItemMoveEventHandler(Folder_BeforeItemMove);
Debug.Print("events registered");
}
public void Folder_BeforeItemMove(
Object Item,
Outlook.MAPIFolder MoveTo,
ref bool Cancel)
{
Outlook.AppointmentItem aitem = Item as Outlook.AppointmentItem;
string s = "";
if (aitem != null) s = aitem.Subject;
//Cancel = false;
MessageBox.Show("Test! " + s);
}

有没有人有解决办法?

谢谢;)

编辑:我还是没头绪:(((((((

最佳答案

根据定义,BeforeItemMove仅在用户(Outlook 客户端)启动要移动的 Item 时触发。它不会因同步事件(即 Exchange 同步)而触发。

如果您将 Outlook 连接到 Exchange 服务器,您应该查看 EWS(Exchange Web 服务)notified of folder change events在客户端应用程序之外(即 session )。 EWS 提供推送、拉取或流式通知选项。您可以将通知附加到 "Item deletion" operation .

关于c# - 如何捕获自定义文件夹上的 Outlook 约会删除事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11737059/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com