从任何外部应用程序

时间:2016-07-15 15:59:29

标签: c# outlook outlook-addin

就像当我立即打开Outlook,然后点击“新电子邮件”时,我看到我的插件加载在新电子邮件窗口(这就是插件应该是的位置)。 但是当我在Word / Excel中打开文档并单击文件>>单击并保存>>使用电子邮件发送>>作为附件发送时。现在它确实打开了Outlook“新电子邮件窗口”,但我的插件没有加载到侧边栏中。 同样,在按照“mailto:this@email.com”等链接打开Outlook时

关于如何实现此行为的任何建议/指针?

编辑: 我尝试了一个计时器,间隔大约14秒(仅用于测试)。 计时器事件确实执行但我没有得到一个应该是MailItem的检查器。这是代码:

 private void OnTimedEvent(object sender, ElapsedEventArgs e)
        {
            diagnosticLog.Debug("In OnTimed Event!");
            InspectorWrapper wrapper;
            foreach (Outlook.Inspector item in Application.Inspectors)
            {
                diagnosticLog.Debug("In OutlookInspector Loop: " + item.ToString());
                if (item is Outlook.MailItem)
                {
                    diagnosticLog.Debug("Inspector is a MialItem: " + item.ToString());
                    diagnosticLog.Debug("In OnTimed Event!");
                    if (!inspectorWrappersValue.TryGetValue(item, out wrapper))
                    {
                        inspectorWrappersValue.Add(item, new InspectorWrapper(item));
                        diagnosticLog.Debug("new Inspector Added");
                    }
                }
            }
        }

这一行:

 foreach (Outlook.Inspector item in Application.Inspectors)

确实有一个检查员,但它从来不是一个Outlook.MailItem,因此我无法访问我应该添加我的插件的检查器。

inspectorWrappersValue是一个字典,它在InspectorWrapper的构造函数中,我初始化了我的Addin UI。

 inspectorWrappersValue.Add(item, new InspectorWrapper(item));

此检查员正由Excel(发送附件)

打开

1 个答案:

答案 0 :(得分:1)

您如何/何时添加自己的用户界面?请记住,如果使用简单MAPI或mailto链接打开检查器,则不会触发Inspectors.NewInspector事件。