The 9x support code uses so-called 'thunking' to get from 32-bit to the old 16-bit NETAPI.DLL. This technique is only supported on 9x itself. If it were built into the main executable, the executable would fail to run on anything but 9x. This is why the 9x support code is in separate DLL's.

Atually, if it had been possible, I would have built everything into a single EXE, just to keep the distribution and installation hassle to a minimum.

On COM interop: it's an interesting thought, but unfortunately we are not talking about a few calls tacked onto the engine. In reality, COM automation is tightly woven into the engine itself. If at all possible, moving COM interop to a separate DLL would be a massive amount of work.

Still, thanks for the input, keep it coming.