Components that are implemented as executable files (EXE files) cannot execute in the Microsoft Transaction Server (MTS) runtime environment. The components need to be DLLs that are registered in MTS. Also, another limitation of MTS is that you can’t create MTS objects as part of an aggregation. In this respect, using CreateInstance is like using CoCreateInstance and specifying NULL for the controlling IUnknown interface (pUnkOuter).