Hi Mark,
> they would protect me from myself, no?
Sure! <eg>
> So my guess (my hope) is that the VFP library maintains a TLS reference count
You can test this yourself. Create multiple instances of a DLL server making sure that _VFP.ThreadID is different. Then enter a few critical section in all of them, issue SYS(2336,3) in one and return SYS(2336) in the other one. If it still has the correct value you are safe for one DLL, if it's 0, you have a problem with this approach.
If you have multiple COM servers from different DLLs you should also test how releasing all critical sections in one DLL affects critical sections in another DLL on the same thread.
--
Christof