Recursively look at all the controls belonging to the specified control and save the settings for each root box for controls of type ISettings. Then close the root box for controls of type IRootSite. Ideally IRootSite controls should close their root boxes in the OnHandleDestroyed event, but since sometimes IRootSite controls are created but never shown (which means their handle is never created), we have to close the rootboxes here instead.