diff options
author | Julien Nabet <serval2412@yahoo.fr> | 2013-01-07 22:16:37 +0100 |
---|---|---|
committer | Miklos Vajna <vmiklos@suse.cz> | 2013-01-08 09:40:34 +0000 |
commit | 1f5ae5e8c18138d8537e5b080d87d0b61f451449 (patch) | |
tree | 8fadb50c8bf3f2f5d67512b2d887247c336bca34 /embedserv | |
parent | f8552dca6b0142ce58bc2bdc25cfb170aa29506a (diff) |
test on the return of pOleObject->Close
Change-Id: Iee64f6f369e2312d479fa81e7a59fb962ed8d90e
Reviewed-on: https://gerrit.libreoffice.org/1567
Reviewed-by: Miklos Vajna <vmiklos@suse.cz>
Tested-by: Miklos Vajna <vmiklos@suse.cz>
Diffstat (limited to 'embedserv')
-rw-r--r-- | embedserv/source/inprocserv/inprocembobj.cxx | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/embedserv/source/inprocserv/inprocembobj.cxx b/embedserv/source/inprocserv/inprocembobj.cxx index c6bad4643031..27c28adff032 100644 --- a/embedserv/source/inprocserv/inprocembobj.cxx +++ b/embedserv/source/inprocserv/inprocembobj.cxx @@ -771,6 +771,7 @@ STDMETHODIMP InprocEmbedDocument_Impl::SetHostNames( LPCOLESTR szContainerApp, L //------------------------------------------------------------------------------- STDMETHODIMP InprocEmbedDocument_Impl::Close( DWORD dwSaveOption ) { + HRESULT ret = S_OK; if ( m_pDefHandler && CheckDefHandler() ) { // no need to close if there is no default handler. @@ -781,14 +782,18 @@ STDMETHODIMP InprocEmbedDocument_Impl::Close( DWORD dwSaveOption ) if ( SUCCEEDED( hr ) && pOleObject ) { hr = pOleObject->Close( dwSaveOption ); + if (!SUCCEEDED(hr)) + ret = hr; hr = CoDisconnectObject( (IUnknown*)(IPersistStorage*)this, 0 ); + if (!(SUCCEEDED(hr) && SUCCEEDED(ret))) + ret = hr; } } // if the object is closed from outside that means that it should go to uninitialized state Clean(); - return S_OK; + return ret; } //------------------------------------------------------------------------------- |