Jeroen Janssen wrote:
Hello,
I'm trying to run 2 programs:
- is a COM server program
- is a COM client program
Now, program 2) tries to access a COM component from 1) (outproc).
It seems some marshalling is being done, but eventually I get:
fixme:ole:CFProxy_QueryInterface Unhandled interface: {00000126-0000-0000-c000-000000000046}
This interface seems to be IRunnableObject.
Now I'm not exactly sure how this is supposed to work, or even if this is the reason why my test currently fails. I can provide more logging/info if I know what exactly to provide.
IRunnableObject does not have anything to do with COM marshalling; it is an OLE thing. MSDN says this about it: "The *IRunnableObject *interface enables a container to control the running of its embedded objects". So basically, I don't see any reason why CFProxy (IClassFactory proxy) should implement it. Therefore, I suspect this message is just distracting you from the real source of the problem (and you don't state what the problem is).
Note that I tried a small outproc client/server test that seems to go ok without this error, so the 'basic' outproc mechanism seems to work ok.
Good.
Can someone provide more information on how wine deals with Outproc COM?
Mike Hearn posted a really good outline of COM to wine-devel a week or two ago. I suggest that you read that first, but feel free to ask any specific questions.
On a side note, what are the main differences in COM implementation between wine and winex (if I understand correctly, Transgaming rewrote the COM implemenation for winex in order to better support the InstallShield installer?).
Ove from Transgaming has donated their COM implementation to wine (several years ago), and Mike Hearn and I are trying to find a way to merge it that: 1) Improves our (D)COM implementation 2) Doesn't introduce any regressions 3) Has the right architecture to build upon for future features
Rob