>>But one thread per apartment is a single threaded apartment....aren't we discussing MTDLLs where there are multiple threads per apartment all accessing the same address space.
No, that's the point: VFP uses STA rather than free-threaded. IIS does create a STA and loads COM into it for multithreading whereas VFP itself and other clients including NET can't do it for COM without help. In addition to the previously referenced article, see this one:
http://foxpert.com/docs/com_intro.en.htm
"... They ne'er cared for us
yet: suffer us to famish, and their store-houses
crammed with grain; make edicts for usury, to
support usurers; repeal daily any wholesome act
established against the rich, and provide more
piercing statutes daily, to chain up and restrain
the poor. If the wars eat us not up, they will; and
there's all the love they bear us."
-- Shakespeare: Coriolanus, Act 1, scene 1