0
votes

From within an Outlook VSTO addin I want to clear the current selection. Is there an API for this?

1
Have you figure out how to do this yet? - Ivan G.
@aloneguid no I did not solve this. I worked out how to clear the selection which was sufficient for my purposes - Simon
How do you clear the selection? :) - Ivan G.
@aloneguid I changed the question and added an answer :) - Simon

1 Answers

1
votes

My current hack it to temporarily select the sent folder.

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;
}