Commit 8712174c authored by Marcus Meissner's avatar Marcus Meissner Committed by Alexandre Julliard

Handle errors in std marshaller better, do not crash.

Added another error message if some program tries to marshal IOleObject. OleCreate() should be able to use Local Servers too (it can't as of now, just for debugging).
parent 0f53dbf3
......@@ -316,12 +316,14 @@ StdMarshalImpl_UnmarshalInterface(
return hres;
}
hres = PIPE_GetNewPipeBuf(&mid,&chanbuf);
if (hres)
FIXME("Failed to get an rpc channel buffer for %s\n",debugstr_guid(riid));
IRpcProxyBuffer_Connect(rpcproxy,chanbuf);
IRpcProxyBuffer_Release(rpcproxy); /* no need */
if (hres) {
ERR("Failed to get an rpc channel buffer for %s\n",debugstr_guid(riid));
} else {
IRpcProxyBuffer_Connect(rpcproxy,chanbuf);
IRpcProxyBuffer_Release(rpcproxy); /* no need */
}
IPSFactoryBuffer_Release(psfacbuf);
return S_OK;
return hres;
}
HRESULT WINAPI
......@@ -477,7 +479,11 @@ CoMarshalInterface( IStream *pStm, REFIID riid, IUnknown *pUnk,
MESSAGE("\nERROR: You need to merge the 'winedefault.reg' file into your\n");
MESSAGE(" Wine registry by running: `regedit winedefault.reg'\n\n");
} else {
FIXME("Failed to Marshal the interface, %lx?\n",hres);
if (IsEqualGUID(riid,&IID_IOleObject)) {
ERR("WINE currently cannot marshal IOleObject interfaces. This means you cannot embed/link OLE objects between applications.\n");
} else {
FIXME("Failed to marshal the interface %s, %lx?\n",debugstr_guid(riid),hres);
}
}
goto release_marshal;
}
......
......@@ -97,7 +97,7 @@ HRESULT WINAPI OleCreate(
FIXME("\n\t%s\n\t%s stub!\n", debugstr_guid(rclsid), debugstr_guid(riid));
if (SUCCEEDED((hres = CoCreateInstance(rclsid, 0, CLSCTX_INPROC_SERVER, riid, (LPVOID*)&pUnk))))
if (SUCCEEDED((hres = CoCreateInstance(rclsid, 0, CLSCTX_INPROC_SERVER|CLSCTX_INPROC_HANDLER|CLSCTX_LOCAL_SERVER , riid, (LPVOID*)&pUnk))))
{
if (pClientSite)
{
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment