【问题标题】:Outlook 2007 add-in - Problem using BeforeItemMove eventOutlook 2007 加载项 - 使用 BeforeItemMove 事件时出现问题
【发布时间】:2009-05-04 19:09:33
【问题描述】:

我正在编写 Outlook 2007 插件。我所做的只是:

        private void ThisAddIn_Startup(object sender, System.EventArgs e)
    {
        Outlook.Folder root;

        //creates Spam folder if it dosen't exist
        if (!SpamFolderExist())
        {
            CreateSpamFolder();
        }

        root = (Outlook.Folder)this.Application.Session.DefaultStore.GetRootFolder();

        //set BeforeItemMove event for spam and inbox folders
        spamFolder = (Outlook.Folder)root.Folders["Spam"];
        inboxFolder = (Outlook.Folder)this.Application.ActiveExplorer().Session.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderInbox);

        spamFolder.BeforeItemMove += new Microsoft.Office.Interop.Outlook.MAPIFolderEvents_12_BeforeItemMoveEventHandler(BeforeItemMoveFromSpam);
        inboxFolder.BeforeItemMove += new Microsoft.Office.Interop.Outlook.MAPIFolderEvents_12_BeforeItemMoveEventHandler(BeforeItemMoveFromInbox);

        //set new mail event
        this.Application.NewMail += new Microsoft.Office.Interop.Outlook.ApplicationEvents_11_NewMailEventHandler(OnNewMail);
    }

问题是,即使我没有在 BeforeItemMoveFromInbox 和 BeforeItemMoveFromSpam 方法中写入任何内容,应用程序也会出现奇怪的行为。在我移动一些邮件后,它不再对特定邮件执行任何移动操作。似乎有一封邮件被阻止了,我就是无法移动它。执行其他移动操作后,其他邮件将被阻止,并且可以移动先前被阻止的邮件。这个想法是,在一封邮件被阻止后,它总是至少有一封无法移动的邮件。换句话说,一些移动动作随机失败。我不得不说,除了将邮件从一个文件夹移动到另一个文件夹之外,我没有做任何其他事情,而且我没有收到任何错误消息。我还尝试在方法结束时将 BeforeItemMove 事件处理程序的取消参数设置为 false,但我得到了相同的行为。

【问题讨论】:

    标签: outlook vsto add-in outlook-2007 outlook-addin


    【解决方案1】:

    你得到了 76 梅尔。我遇到了同样的问题(只是将文件夹连接到 BeforeItemMove 事件,这样当我将消息移出该文件夹时,我无法在短时间内将其从新文件夹移动到另一个文件夹) .

    将 Marshal.ReleaseComObject() 添加到事件处理程序的末尾完美地修复了它。

    【讨论】:

    • 忘记 Marshal.ReleaseComObject() 是使用 COM 和 Outlook 时的常见问题
    【解决方案2】:

    如果我理解您上面的问题描述,

    如果您将项目从收件箱移动到垃圾邮件文件夹,则该事件会触发,但如果您将相同的项目移回,则该事件不起作用。 ??因为您必须为要从中移动的 alls 文件夹挂钩事件。

    可能发生的情况是您可能必须在事件处理程序中释放对象 Marshal.ReleaseComObject()

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-24
      • 1970-01-01
      • 2022-01-25
      • 1970-01-01
      • 1970-01-01
      • 2019-03-11
      相关资源
      最近更新 更多