DLLs are loaded in the same adress space as their client application so there is no question of reentrancy based on process space.
As far as the question of threading is concerned we can't write free-threaded apps in
VB and hence can't call an object's methods on a thread other than the one on which we created the object.
So you should not worry about reentrancy until you are writing free threaded apps in VC++ and accessing the same object on multiple threads.
Further, it doesn't matter whether you wrote an ActiveX DLL or someone else did. What matters is reentrancy will occur if any of the three situations you mentioned occur.
Regards,
Ejan