When writing extensions that use modeless windows, it is a good idea to design your code to cooperate with Microsoft Exchange. The most common scenario for this cooperation is enabling or disabling modeless windows when the user switches between Microsoft Exchange windows and the windows of your extension.
Coordination between Microsoft Exchange and modeless extensions is achieved using two interfaces: IExchExtModeless : IUnknown and IExchExtModelessCallback : IUnknown. Microsoft Exchange implements IExchExtModelessCallback and client extensions implement IExchExtModeless.