如何在 Outlook VSTO 加载项中捕获文件夹同步结束 (send/receive)
How to catch synchronization end of folders(send/receive) in Outlook VSTO add-in
简单的问题,我需要在Outlook 同步完此文件夹后加载数据(存储为收件箱文件夹中的存储项)。我当前的代码:
private Outlook.Explorer _currentExplorer;
private void ThisAddIn_Startup(object sender, System.EventArgs e)
{
_currentExplorer = Application.ActiveExplorer();
_currentExplorer.Session.SyncObjects[1].SyncEnd += SyncEnd_Event;
// also tried:
//_currentExplorer.Session.SyncObjects.AppFolders.SyncEnd += SyncEnd_Event;
}
private void SyncEnd_Event()
{
MyAddin.LoadData();
}
我用了SyncObjects[1]
因为我发现它应该是"Send/Receive All"但是我的SyncEnd_Event()
从来没有被触发过。
非常感谢您的帮助!
SyncEnd 事件不会在您的情况下触发,因为引发事件的对象 (SyncObject) 是由编译器创建的隐式变量。一旦 GC 释放它,就不会触发任何事件。
将 SyncObject 对象存储在专用全局 (class) 变量中并在其上设置事件处理程序。
简单的问题,我需要在Outlook 同步完此文件夹后加载数据(存储为收件箱文件夹中的存储项)。我当前的代码:
private Outlook.Explorer _currentExplorer;
private void ThisAddIn_Startup(object sender, System.EventArgs e)
{
_currentExplorer = Application.ActiveExplorer();
_currentExplorer.Session.SyncObjects[1].SyncEnd += SyncEnd_Event;
// also tried:
//_currentExplorer.Session.SyncObjects.AppFolders.SyncEnd += SyncEnd_Event;
}
private void SyncEnd_Event()
{
MyAddin.LoadData();
}
我用了SyncObjects[1]
因为我发现它应该是"Send/Receive All"但是我的SyncEnd_Event()
从来没有被触发过。
非常感谢您的帮助!
SyncEnd 事件不会在您的情况下触发,因为引发事件的对象 (SyncObject) 是由编译器创建的隐式变量。一旦 GC 释放它,就不会触发任何事件。 将 SyncObject 对象存储在专用全局 (class) 变量中并在其上设置事件处理程序。