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