Which QueryInterface is called?

Robert Shearman rob at codeweavers.com
Mon Jan 17 12:58:43 CST 2005


Bill Medland wrote:

>(Mike? Robert?,)
>
>I am trying to understand what is failing in a piece of -out-of-process COM 
>under Wine.  Basically it is an ATL-based CreateInstance that is returning 
>E_NOINTERFACE under Wine.
>
>Below is a cut-down copy of the trace.
>
>What I don't understand is which QueryInterface is being called.  I don't 
>totally understand what is going on in the marshalling etc. but from what I 
>can see I expected to see ClientIdentity_QueryRef called and some sort of 
>marshalling going on in the last stages.
>
>Can anyone point me at which code is probably implementing the QueryInterface?
>
>
>Basic code:
>rclsid = __uuidof(ACCPACSignonMgr)
>CoCreateInstance (rclsid, NULL, CLSCTX_ALL, __uuidof(IUnknown), &pIUnknown);
>OleRun (pIUnknown)
>pIUnknown->QueryInterface (getIID(), &m_pInterface)
>pIUnknown->Release
>
>Problem:
>pIUnknown->QueryInterface returns E_NOINTERFACE
>The interface is provided by a an object running in a local server
>
>Why don't I see a trace on ClientIdentity_QueryInterface?
>  
>

I think we need to special-case IID_IUnknown in 
StdMarshalImpl_UnmarshalInterface to just create a proxy and not try to 
get the IRpcProxyBuffer for the interface.

Rob



More information about the wine-devel mailing list