diff --git a/dlls/ole32/ole2.c b/dlls/ole32/ole2.c index 8f0629cb4a2..c6df7edd132 100644 --- a/dlls/ole32/ole2.c +++ b/dlls/ole32/ole2.c @@ -1007,12 +1007,13 @@ HRESULT WINAPI OleLoad( } } - /* - * Initialize the object with it's IPersistStorage interface. - */ - hres = IOleObject_QueryInterface(pUnk, - &IID_IPersistStorage, - (void**)&persistStorage); + if (SUCCEEDED(hres)) + /* + * Initialize the object with it's IPersistStorage interface. + */ + hres = IOleObject_QueryInterface(pUnk, + &IID_IPersistStorage, + (void**)&persistStorage); if (SUCCEEDED(hres)) { @@ -1034,6 +1035,18 @@ HRESULT WINAPI OleLoad( if (pOleObject) IOleObject_Release(pOleObject); + if (SUCCEEDED(hres)) + { + IOleLink *pOleLink; + HRESULT hres1; + hres1 = IUnknown_QueryInterface(pUnk, &IID_IOleLink, (void **)&pOleLink); + if (SUCCEEDED(hres1)) + { + FIXME("handle OLE link\n"); + IOleLink_Release(pOleLink); + } + } + if (FAILED(hres)) { IUnknown_Release(pUnk);