Я пытаюсь перехватить события из моей надстройки VSTO для Outlook 2007, когда активированы команды Reply / Reply-All / Forward windows. Итак, я делаю это:
private void ThisAddIn_Startup(object sender, System.EventArgs e)
{
this.Application.ItemLoad += new Microsoft.Office.Interop.Outlook.ApplicationEvents_11_ItemLoadEventHandler(onItemLoad);
}
Outlook.ItemEvents_10_Event gObj_itemEvt = null;
private void onItemLoad(object Item)
{
gObj_itemEvt = (Outlook.ItemEvents_10_Event)Item;
gObj_itemEvt.Reply += new Microsoft.Office.Interop.Outlook.ItemEvents_10_ReplyEventHandler(on_Reply);
gObj_itemEvt.ReplyAll += new Microsoft.Office.Interop.Outlook.ItemEvents_10_ReplyAllEventHandler(on_ReplyAll);
gObj_itemEvt.Forward += new Microsoft.Office.Interop.Outlook.ItemEvents_10_ForwardEventHandler(on_Forward);
}
private void on_Reply(object Item, ref bool cancel)
{
//Called when user loads Reply window
LogMessage("Reply opened");
}
private void on_ReplyAll(object Item, ref bool cancel)
{
//Called when user loads Reply-All window
LogMessage("Reply-All opened");
}
private void on_Forward(object Item, ref bool cancel)
{
//Called when user loads Forward window
LogMessage("Forward opened");
}
Это работает несколько раз, но затем останавливается. В этом случае я все еще получаю onItemLoad
события, но on_Reply
, on_ReplyAll
и on_Forward
больше не транслируются.
Что я здесь делаю не так?