How Modeless Coordination Works

When Microsoft Exchange runs, it creates a modeless callback object with which extensions can communicate. This callback object implements the IExchExtModelessCallback : IUnknown interface.

Before displaying a modal window, Microsoft Exchange invokes the IExchExtModeless::EnableModeless method on all modeless objects. In this case, the fEnable parameter of EnableModeless is set to FALSE, indicating that the extension should disable its modeless windows. When Microsoft Exchange removes its modal window, it calls EnableModeless with the fEnable parameter set to TRUE. The extension can then re-enable its modeless windows.

Similary, if a modeless extension displays a modal window, it should call the IExchExtModelessCallback::EnableModeless method with the fEnable parameter set to FALSE. Microsoft Exchange then disables its modeless windows. When the extension removes its modal window, it should call IExchExtModeless::EnableModeless with the fEnable parameter set to TRUE, enabling Microsoft Exchange to re-enable its modeless windows.