COM outproc & CFProxy unhandled interface for IRunnableObject

Robert Shearman rob at codeweavers.com
Thu Jul 22 11:38:43 CDT 2004


Jeroen Janssen wrote:

>I am not sure, but there seems to be a difference in the outproc handling
>of the CoCreateInstance call?
>
>This goes ok:
>hr = CoCreateInstance(CLSID_Component1, NULL, clsctx, IID_IX, (void**)&pIX) ;
>
>However this seems to go wrong?:
>hr = CoCreateInstance(CLSID_Component1, NULL, clsctx, __uuidof(IUnknown),
>(void**)&pIUnknown);
>hr = pIUnknown->QueryInterface(IID_IX, (void **)&pIX);
>
>Summary:
>If you perform a CoCreateInstance for IUnknown (outproc), you get back the
>classfactory instead of the proxy to the object itself?
>  
>

If you look at the code for CoCreateInstance you will see that it is 
completely agnostic to the context it is being used for. If what you say 
were true then every COM program on Wine would be broken (and that isn't 
true).

>Maybe you can check this behaviour? (I don't know exactly if this is
>indeed what seems to wrong or that I might have made a mistake with the
>simple test program).
>  
>

Sure. If you let me know what program this is then it would be even better.

>>Me and Rob are starting to scrape together a plan, I think, and as part of
>>working on other apps we're fixing bits as we go, but it's a long long
>>road we have ahead of us. Any help would certainly be welcome.
>>    
>>
>
>Well, I'm trying get this application running with wine, I don't know what
>else I might walk into, but I surely hope to do some contributions to wine
>in the process.
>

Unfortunately, you have stumbled into one of the most confusing areas of 
the Win32 API that I think only one person in the world fully 
understands (Don Box in case you are wondering).
I do hope that you will make some contributions to Wine in the future.

Rob




More information about the wine-devel mailing list