Where does a VB COM object create an in-proc COM free-threaded COM object?
I know that if an STA thread creates an in-process COM object whose threading model is Free, the object will be created in the client's MTA, and the creating STA thread will access the object via a marshalled interface pointer. I am clear on this. However, I am not sure what happens if the client is a VB COM object, since I know that VB does not support MTAs? Where will the free-threaded object be created - does COM create the object in an STA instead? If so, is it the same or a different STA than the VB client component?
What happens if the free-threaded component is created by a C++ client in an MTA, and then the interface pointer is passed to the VB COM object - does the VB COM object create a proxy object in an STA, or can it access objects already created in an MTA? Please help ....
Re: Where does a VB COM object create an in-proc COM free-threaded COM object?
What happens if a VB COM just tries to access an in-proc COM server object already created in an MTA by another C++ client? Can it call methods on this object in the MTA via a marshalled interface pointer? Or does COM create a proxy in the STA since VB does not support MTAs?
My in-proc server object needs to be created in an MTA since it has worker threads that need to access it directly. I just want to make sure that my design works and the VB clients are able to access this object if it has already been created in the process MTA.
If you could solve this little mystery for me, that would be so great as it is driving me mad - I have just been going round and round in circles with this one.