A modeless extension must first indicate to Microsoft Exchange that it will be modeless. This is done by calling the IExchExtCallback::RegisterModeless method. If an extension does not call this method, Microsoft Exchange, by default, detects a modal extension window. This results in the inability of the extension to coordinate its actions with those of Microsoft Exchange.
When calling RegisterModeless, the extension must pass to Microsoft Exchange a modeless object that implements the IExchExtModeless interface. This interface enables Microsoft Exchange to communicate with the extension object about the state of its windows.