I'm writing a VSTO Outlook 2013 add-in and created an Explorer XML ribbon file to display some custom ribbon buttons. The addin runs a long running async process when a ribbon button is clicked and I display a "Loading details..." label in the Explorer ribbon to inform the user what's happening and to allow them to continue working in Outlook.
When the long running process finishes it calls the following code to refresh the ribbon and hide the loading label:
RibbonUI.Invalidate();
The problem is, if the user has 2 Explorer windows open, only the ribbon in the active window is refreshed (and the other explorer window(s) remain displaying the Loading label).
I've tried looping round the open explorer windows and activating each one to try and force the Ribbon to refresh, but it didn't work.
Can someone please tell me how I can force the ribbons in all the open windows in Outlook to refresh?