my COM Server freezes when the client is busy
Posted on 2004-07-31
Hi. I am new with COM, but have come far enough to create a Visual C++ COM client and a VB COM Server that communicate through the proper interfaces and event sinks. (Yes, I'm proud of that. VB is great for front-end development and I still get to use Visual C++ as a powerful back-end.)
The problem is that when when the C++ client shows a modal dialog, the VB front-end COM server is frozen as well, as if it is a child window of the C++ back-end. Why is this?? Is this because they are both in the same "thread", or in the same window parent-child lineage (I don't really know whether either of these are true for me or not), or what?
I have not studied up on multithreading, the apartment model, etc., within COM, that would be quite a research project I wanted to get an opinion on whether this is the right direction to go first.
Incidentally here is the COM command I'm using in the C++ engine to instantiate my VB server front-end. I'm including this just in case it's as simple as changing one of these parameters (I lifted this from some working sample code, do not 100% understand all the parameters yet).
CoCreateInstance(CLSID_myHMIClass, NULL, CLSCTX_SERVER, IID__myHMIClass, (void**)&m_pHMIObj)
Thanks very much in advance.