Which QueryInterface is called?
Mike Hearn
mh at codeweavers.com
Mon Jan 17 15:36:01 CST 2005
I think Robs theory is right, but IMHO we need more tracing in this part
of the code anyway. Try applying this patch and resending the log.
I suspect you'll get
err:proxy_manager_create_ifproxy: Could not locate PSFactoryBuffer for IID {00000000-0000-0000-C000-000000000046}
But let's find out.
thanks -mike
--- dlls/ole32/marshal.c (revision 108)
+++ dlls/ole32/marshal.c (local)
@@ -350,13 +350,21 @@ static HRESULT proxy_manager_create_ifpr
&ifproxy->proxy, &ifproxy->iface);
IPSFactoryBuffer_Release(psfb);
}
+ else
+ ERR("Could not locate PSFactoryBuffer for iid %s\n", debugstr_guid(riid));
if (hr == S_OK)
+ {
hr = IRpcProxyBuffer_Connect(ifproxy->proxy, This->chan);
+ if (FAILED(hr)) ERR("Could not connect ifproxy to RPC channel\n");
+ }
/* get at least one external reference to the object to keep it alive */
if (hr == S_OK)
+ {
hr = ifproxy_get_public_ref(ifproxy);
+ if (FAILED(hr)) ERR("Could not get public ref on ifproxy\n");
+ }
if (hr == S_OK)
{
@@ -369,6 +377,8 @@ static HRESULT proxy_manager_create_ifpr
else
ifproxy_destroy(ifproxy);
+ if (FAILED(hr)) ERR("PANIC: ifproxy construction failed, expect failure now ...\n");
+
return hr;
}
More information about the wine-devel
mailing list