[OLE #56] Propogate errors better in the typelib marshaller

Mike Hearn mh at codeweavers.com
Wed Jan 26 12:17:47 CST 2005


This stops us crashing out messily when stdole32.tlb is missing with
InstallShield. Instead InstallShield now correctly reports an error and
quits.

Mike Hearn <mh at codeweavers.com>
Fix a typo, propagate errors better from inside the typelib marshaller
-------------- next part --------------
--- dlls/oleaut32/tmarshal.c  (revision 111)
+++ dlls/oleaut32/tmarshal.c  (local)
@@ -132,7 +132,7 @@ _unmarshal_interface(marshal_state *buf,
     if (hres) { FIXME("Failed Seek %lx\n",hres); return hres;}
     hres = CoUnmarshalInterface(pStm,riid,(LPVOID*)pUnk);
     if (hres) {
-	FIXME("Marshalling interface %s failed with %lx\n",debugstr_guid(riid),hres);
+	FIXME("Unmarshalling interface %s failed with %lx\n",debugstr_guid(riid),hres);
 	return hres;
     }
     IStream_Release(pStm);
@@ -1145,7 +1145,7 @@ _get_funcdesc(
 		ITypeInfo_Release(tinfo2);
 		if (!hres) return S_OK;
 	    }
-	    return E_FAIL;
+	    return hres;
 	}
 	if (((*fdesc)->oVft/4) == iMethod) {
 	    if (fname)
@@ -1374,6 +1374,7 @@ xCall(LPVOID retptr, int method, TMProxy
 		);
 	    if (hres) {
 		FIXME("Failed to unmarshall param, hres %lx\n",hres);
+		status = hres;
 		break;
 	    }
 	    xargs += _argsize(elem->tdesc.vt);


More information about the wine-patches mailing list