C# 兑换包装类不触发事件

本文关键字:事件 包装类 | 更新日期: 2023-09-27 17:56:59

我使用 Redemption 为 Outlook 加载项编写了以下包装类:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Diagnostics;
namespace PSTAttachRemove_Redemption
{
    class PSTWatch
    {
        private Redemption.RDOPstStore pst;
        public PSTWatch(Redemption.RDOPstStore rPST)
        {
            pst = rPST;
            pst.OnMessageMoved += new Redemption.IRDOStoreEvents_OnMessageMovedEventHandler(pst_OnMessageMoved);
        }
        void pst_OnMessageMoved(string EntryID)
        {
            Debug.Print(EntryID);
        }
    }
}

在我的主加载项代码中,我使用以下代码调用此包装器:

void FileStorePopulation(Redemption.RDOStore store)
{
    switch (store.StoreKind)
    {
        case TxStoreKind.skPstAnsi:
        case TxStoreKind.skPstUnicode:
            PSTWatch p = new PSTWatch(store as RDOPstStore);
            watchedPSTs.Add(store.EntryID, p);
            break;
    }
}

其中,监视的PST是全局变量。

我可以看到正在填充监视的 PST,但在将邮件移动到 PST 时,这些项目永远不会触发。 想法?

谢谢

C# 兑换包装类不触发事件

你如何初始化RDOSession?您是从 OOM 调用 Logon 还是将 RDOSession.MAPIOBJECT 设置为 Namespace.MAPIOBJECT?是否在全局(类)级别声明了监视的 PST 列表?您是否使用多个线程?