问候Overflowers,
我正在尝试为特别签名的电子邮件开发VSTO / C#企业电子邮件跟踪器。 我依靠:
不知何故,Inspector事件会在一段时间后停止发射。 在检查标志后,我在1的正文中注册2,3和4。 我试图跟踪已经登记的检查员,但没有希望。 任何线索?
更新:以下是示例代码。平均OnSelect和OnOpen发射几次,然后突然停止:
using System;
using System.Collections;
using Microsoft.Office.Interop.Outlook;
// using Microsoft.Office.Core;
namespace eMailTrackingSystem
{
public enum TrackingEvent
{
Opened, Closed, Forwarded, Deleted
}
public partial class eMTSAddIn
{
private ArrayList trackedEmails = new ArrayList();
private void InternalStartup()
{
this.Application.ActiveExplorer().SelectionChange += new ExplorerEvents_10_SelectionChangeEventHandler(OnSelect);
}
private void OnSelect()
{
Selection selection = this.Application.ActiveExplorer().Selection;
foreach (object item in selection)
{
if (item is MailItem)
{
MailItem email = (MailItem)item;
if (email.Subject == "eMTS" && !trackedEmails.Contains(email.EntryID))
{
email.Open += new ItemEvents_10_OpenEventHandler(OnOpen);
trackedEmails.Add(email.EntryID);
}
}
}
}
private void OnOpen(ref bool cancel)
{
}
private void OnClose()
{
}
}
}
此致
答案 0 :(得分:1)
您使用的是Inspector Wrappers吗?它们对于正确处理用户打开的每个项目至关重要:
为Outlook 2010开发Inspector Wrapper: http://msdn.microsoft.com/en-us/library/ff973716.aspx
类似的方法可用于监控用户在资源管理器中选择的项目。