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