COM outproc & CFProxy unhandled interface for IRunnableObject

Jeroen Janssen japj at xs4all.nl
Fri Jul 23 11:12:10 CDT 2004


Forwarding this to the wine-devel mailinglist.....

Robert Shearman wrote:

> Jeroen Janssen wrote:
>
>> Hello,
>>
>> I'm mailing the both of you with a small (com) example attached.
>>
>> It is a client/server/proxystub example (with binaries), so you need to
>> /RegServer the server and regsvr32 the proxy.
>>
>> Now I first manually start the server in a seperate console and then I
>> manually start the client.
>>
>> I modified the client to look for input, so there are basically two 
>> paths
>> in the client:
>>
>> * you press: 1 <enter>; the normal path, goes OK
>>  hr =
>> CoCreateInstance(CLSID_Calculate,NULL,CLSCTX_LOCAL_SERVER,IID_ICalculate,(void**) 
>>
>> &pICalculate);
>>
>> * you press: 2 (or something else) <enter>; the other path, FAILURE
>> hr =
>> CoCreateInstance(CLSID_Calculate,NULL,CLSCTX_LOCAL_SERVER,IID_IUnknown,(void**) 
>>
>> &pIUnknown);
>> hr = pIUnknown->QueryInterface(IID_ICalculate, (void **) &pICalculate);
>>
>> Now either there is something wrong with my sample, or there is 
>> something
>> wrong in wine that causes this to fail.
>>
>> Can you verify that the client code path is ok (the very few above
>> mentioned lines that differentiate in scenario 1,2). If the client 
>> code is
>> ok, then any idea what is actually causing the problem? 
>
>
> Yes, I can see the problem. What happens with native OLE is that the 
> IUnknown part of the object is handled by the proxy manager. What this 
> basically means is that it is translated into IRemUnknown (remote 
> unknown) calls that will do the appropriate thing. However, this is 
> currently not implemented on Wine.
> I'm not sure we (Mike and I) will have time to properly implement 
> this, but I could maybe write a quick hack for you sometime over the 
> weekend.


Ok, thanks for this explanation (that explains why this is not working
yet on wine).

Btw, is it ok to forward this information to the mailinglist too? (I
didn't want to sent the example attachment to everyone on the
mailinglist, but this discussion seems interesting enough to have the
"conclusion" posted on the wine development mailinglist.

I had a short look at the 'world of com' patch, and it looks like there
is something in there that implements the IRemUnknown stuff. Is there
any easy way to determine if/how this can be 'ported' to the current wine?
---
Jeroen





More information about the wine-devel mailing list