I have created an ActiveX exe that encapsulate a global object (that resides
in Standard Module). Now I have marked this component for unattended
execution. I have read somewhere that by doing so, I would make this
component a multi-threaded component (despite the fact that VB is not known
for being mult-threaded).

As I understand it, for client apps to use the component contained in
ActiveX Exe, I have to run the ActiveX exe before any client app can create
an instance of it. I am wondering if there is anyway for client to detect
that the ActiveX exe is not running (thus call the executable from command
line first) before creating a new instance.

Now with respect to the global object, it is my intention that its methods
can only be accessed serially. This is to say, assume that there are methods
A and B of this global object. After Client App C accessed Method A, Client
App D cannot access either Method A or Method B until Client App C completes
executing Method A (i.e., Client App D is blocked from accessing any of the
global object's method until Client App C's request in Method A is
completed.). If marking the component as unattended execution makes the
component (thus the global object encapsulated) multi-threaded, would it
defeat my purpose?

TIA