The SeparateExplorerFactory class is registered by EXPLORER.EXE through the CoRegisterClassObject function while EXPLORER runs as a separate process from the shell process that creates the desktop and taskbar. While such a process is running, other programs can get an instance of this class created for them by using such well-documented COM functions as CoCreateInstance, treating EXPLORER as a local server, and giving it the following CLSID:

CLSID_SeparateExplorerFactory {CEFF45EE-C862-41DE-AEE2-A022C81EDA92}

The instance so obtained is an ExplorerFactoryServer implemented by ExplorerFrame.dll in the separate EXPLORER process. It implements only one interface: IExplorerFactory.