В надстройке Outlook VSTO как очистить текущий выбор? - PullRequest
0 голосов
/ 30 сентября 2011

Из надстройки Outlook VSTO я хочу очистить текущий выбор.Есть ли для этого API?

1 Ответ

1 голос
/ 18 октября 2011

Мой текущий хак, чтобы временно выбрать отправленную папку.

void ClearSelection(IRibbonControl control)
{
    //Here be dragons
    //Ok this looks like pointless code but it is necessary. 
    //For multiple items we are doing it in a background thread. 
    //There is a "feature" in outlook that means you cant delete 
    //the current selected item from a background thread. 
    //So we need this to clear the selection
    //and NO "control.Explorer().ClearSelection();" does not work.
    var explorer = GetExplorer(control);
    var currentFolder = explorer.CurrentFolder;
    var session = ThisAddIn.Application.Session;
    var sentFolder = session.GetDefaultFolder(OlDefaultFolders.olFolderSentMail);
    explorer.CurrentFolder = sentFolder;
    explorer.CurrentFolder = currentFolder;
}

Explorer GetExplorer(IRibbonControl control)
{
    dynamic context = control.Context;
    var explorer = context.Parent as Explorer;
    if (explorer == null)
    {
        var application = (ApplicationClass)context.Parent;
        explorer = application.ActiveExplorer();
    }
    return explorer;
}
...