Сохранение объекта Mailitem или любого свойства, которое можно использовать для вызова сохраненного Mailitem.

Я использую VS 2010, Dot Net Framework 2.0. Я создал проект в Extensibility-> Shared Add-ins для Outlook.

Я хочу сохранить объект Outlook.MailItem в DataTable на explorer_SelectionChange() и использовать этот объект Outlook.MailItem для последующего управления темой и телом.

когда я сохраняю объект Mailitem в datatable, он сохраняется как SYS.ComAddins. Вот переменные класса кода:

private Outlook.MailItem connectingMailItem;
private Outlook.Inspectors inspectors;
private Outlook.Application applicationObject;
private object addInInstance;
private Outlook.Explorer explorer;
DataTable dtMailItem = new DataTable();

При подключении:

    explorer = this.Application.ActiveExplorer();
    explorer.SelectionChange += new Outlook.ExplorerEvents_10_SelectionChangeEventHandler(explorer_SelectionChange);
    dtMailItem.Columns.Add("MailItem",typeOf(Outlook.MailItem));
    tFollowUp = new Timer();
    tFollowUp.Interval = 100000;
    tFollowUp.Tick += new EventHandler(tFollowUp_Tick);

explorer_SelectionChange

void explorer_SelectionChange()
{
    if (connectingMailItem != null && connectingMailItem is Outlook.MailItem)
    {
        Marshal.ReleaseComObject(connectingMailItem);
        // Perform a Garbage Collection
        GC.Collect();
        connectingMailItem = null;
        return;
    }
    foreach (object selectedItem in explorer.Selection)
    {
        connectingMailItem = selectedItem as Outlook.MailItem;
        break;
    }
    if (connectingMailItem != null && connectingMailItem is Outlook.MailItem)
    {                
        dtMailItem.Rows.Add(connectingMailItem);
        dtMailItem.AcceptChanges();
    } 
}

tFollowUp_Tick

 void tFollowUp_Tick(object sender, EventArgs e)
{
    if(dtMailItem.Rows.Count <= 0)
    {
        foreach(DataRow dr in dtMailItem.Rows)
        {
           // Manipulation code for subject and body or remove the Mailitem from Datatable
        }
    }
}

Как я могу сохранить объект Mailitem или любое свойство, чтобы определить, какой Mailitem был сохранен


person CHANDRAHAS    schedule 09.05.2013    source источник
comment
Извините, я не понимаю вашего вопроса. Не могли бы вы опубликовать код, объясняющий, какой результат вы пытаетесь получить?   -  person Fabske    schedule 09.05.2013


Ответы (1)


Вы можете попробовать то, что предлагается в этом вопросе, чтобы сохранить EntryID и получить его позже, используя тот же самый ID.

person Adrian    schedule 09.05.2013