diff options
author | Mike Kaganski <mike.kaganski@collabora.com> | 2021-12-18 18:41:00 +0300 |
---|---|---|
committer | Mike Kaganski <mike.kaganski@collabora.com> | 2021-12-18 21:23:42 +0100 |
commit | 6689f49b272f43d8cd032d1aab57aaffca619ec7 (patch) | |
tree | 218e89e1d1f9c5ce11d92371beaa6a90ba2a1c52 /embedserv | |
parent | 8e300570d5ad745441d560e7b0ea2e7cb66fa21e (diff) |
Drop ComSmart and use sal::systools::COMReference
Change-Id: Ib4f5d160b66c01caa507f536fb487bc5ee527815
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127045
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
Diffstat (limited to 'embedserv')
-rw-r--r-- | embedserv/source/inprocserv/advisesink.cxx | 6 | ||||
-rw-r--r-- | embedserv/source/inprocserv/advisesink.hxx | 15 | ||||
-rw-r--r-- | embedserv/source/inprocserv/inprocembobj.cxx | 424 | ||||
-rw-r--r-- | embedserv/source/inprocserv/inprocembobj.h | 18 | ||||
-rw-r--r-- | embedserv/source/inprocserv/smartpointer.hxx | 144 |
5 files changed, 188 insertions, 419 deletions
diff --git a/embedserv/source/inprocserv/advisesink.cxx b/embedserv/source/inprocserv/advisesink.cxx index faf37e20e4fd..f06cffbf62cd 100644 --- a/embedserv/source/inprocserv/advisesink.cxx +++ b/embedserv/source/inprocserv/advisesink.cxx @@ -36,7 +36,7 @@ OleWrapperAdviseSink::OleWrapperAdviseSink() { } -OleWrapperAdviseSink::OleWrapperAdviseSink( const ComSmart< IAdviseSink >& pListener ) +OleWrapperAdviseSink::OleWrapperAdviseSink( const sal::systools::COMReference< IAdviseSink >& pListener ) : m_nRefCount( 0 ) , m_pListener( pListener ) , m_nAspect( DVASPECT_CONTENT ) @@ -49,7 +49,7 @@ OleWrapperAdviseSink::OleWrapperAdviseSink( const ComSmart< IAdviseSink >& pList { } -OleWrapperAdviseSink::OleWrapperAdviseSink( const ComSmart< IAdviseSink >& pListener, FORMATETC* pFormatEtc, DWORD nDataRegFlag ) +OleWrapperAdviseSink::OleWrapperAdviseSink( const sal::systools::COMReference< IAdviseSink >& pListener, FORMATETC* pFormatEtc, DWORD nDataRegFlag ) : m_nRefCount( 0 ) , m_pListener( pListener ) , m_nAspect( DVASPECT_CONTENT ) @@ -71,7 +71,7 @@ OleWrapperAdviseSink::OleWrapperAdviseSink( const ComSmart< IAdviseSink >& pList } } -OleWrapperAdviseSink::OleWrapperAdviseSink( const ComSmart< IAdviseSink >& pListener, DWORD nAspect, DWORD nViewRegFlag ) +OleWrapperAdviseSink::OleWrapperAdviseSink( const sal::systools::COMReference< IAdviseSink >& pListener, DWORD nAspect, DWORD nViewRegFlag ) : m_nRefCount( 0 ) , m_pListener( pListener ) , m_nAspect( nAspect ) diff --git a/embedserv/source/inprocserv/advisesink.hxx b/embedserv/source/inprocserv/advisesink.hxx index 1a89e38b4c3b..03c81f1ff18f 100644 --- a/embedserv/source/inprocserv/advisesink.hxx +++ b/embedserv/source/inprocserv/advisesink.hxx @@ -29,7 +29,7 @@ #endif #include <windows.h> #include <objidl.h> -#include "smartpointer.hxx" +#include <systools/win32/comtools.hxx> namespace inprocserv { @@ -38,7 +38,7 @@ class OleWrapperAdviseSink : public IAdviseSink protected: ULONG m_nRefCount; - ComSmart<IAdviseSink> m_pListener; + sal::systools::COMReference<IAdviseSink> m_pListener; DWORD m_nListenerID; std::unique_ptr<FORMATETC> m_pFormatEtc; @@ -57,14 +57,15 @@ public: OleWrapperAdviseSink(); // an AdviseSink for IOleObject interface - explicit OleWrapperAdviseSink(const ComSmart<IAdviseSink>& pListener); + explicit OleWrapperAdviseSink(const sal::systools::COMReference<IAdviseSink>& pListener); // an AdviseSink for IDataObject interface - OleWrapperAdviseSink(const ComSmart<IAdviseSink>& pListener, FORMATETC* pFormatEtc, - DWORD nDataRegFlag); + OleWrapperAdviseSink(const sal::systools::COMReference<IAdviseSink>& pListener, + FORMATETC* pFormatEtc, DWORD nDataRegFlag); // an AdviseSink for IViewObject interface - OleWrapperAdviseSink(const ComSmart<IAdviseSink>& pListener, DWORD nAspect, DWORD nViewRegFlag); + OleWrapperAdviseSink(const sal::systools::COMReference<IAdviseSink>& pListener, DWORD nAspect, + DWORD nViewRegFlag); virtual ~OleWrapperAdviseSink(); @@ -77,7 +78,7 @@ public: FORMATETC* GetFormatEtc() { return m_pFormatEtc.get(); } DWORD GetAspect() { return m_nAspect; } - ComSmart<IAdviseSink>& GetOrigAdvise() { return m_pListener; } + sal::systools::COMReference<IAdviseSink>& GetOrigAdvise() { return m_pListener; } void DisconnectOrigAdvise() { m_pListener = nullptr; } void SetClosed() { m_bClosed = TRUE; } diff --git a/embedserv/source/inprocserv/inprocembobj.cxx b/embedserv/source/inprocserv/inprocembobj.cxx index cf7fd4a61a6f..32039b631dd9 100644 --- a/embedserv/source/inprocserv/inprocembobj.cxx +++ b/embedserv/source/inprocserv/inprocembobj.cxx @@ -68,7 +68,7 @@ void SetName( LPCOLESTR pszNameFromOutside, wchar_t*& pOwnName ) pOwnName[nLen] = 0; } -DWORD InsertAdviseLinkToList( const ComSmart<OleWrapperAdviseSink>& pOwnAdvise, ComSmart< OleWrapperAdviseSink > pAdvises[] ) +DWORD InsertAdviseLinkToList( const sal::systools::COMReference<OleWrapperAdviseSink>& pOwnAdvise, sal::systools::COMReference< OleWrapperAdviseSink > pAdvises[] ) { // the result should start from 1 in case of success, the element 0 can be used for own needs DWORD nResult = 0; @@ -77,7 +77,7 @@ DWORD InsertAdviseLinkToList( const ComSmart<OleWrapperAdviseSink>& pOwnAdvise, { for ( DWORD nInd = 1; nInd < DEFAULT_ARRAY_LEN && nResult == 0; nInd++ ) { - if ( pAdvises[nInd] == pOwnAdvise ) + if ( pAdvises[nInd].get() == pOwnAdvise.get() ) { nResult = nInd; } @@ -109,9 +109,8 @@ BOOL InprocEmbedDocument_Impl::CheckDefHandler() { // deregister all the listeners - ComSmart< IOleObject > pOleObject; - HRESULT hr = m_pDefHandler->QueryInterface( IID_IOleObject, reinterpret_cast<void**>(&pOleObject) ); - if ( SUCCEEDED( hr ) && pOleObject ) + sal::systools::COMReference< IOleObject > pOleObject(m_pDefHandler, sal::systools::COM_QUERY); + if ( pOleObject ) { for ( DWORD nInd = 0; nInd < DEFAULT_ARRAY_LEN; nInd++ ) if ( m_pOleAdvises[nInd] ) @@ -124,9 +123,8 @@ BOOL InprocEmbedDocument_Impl::CheckDefHandler() pOleObject->SetClientSite( nullptr ); } - ComSmart< IDataObject > pIDataObject; - hr = m_pDefHandler->QueryInterface( IID_IDataObject, reinterpret_cast<void**>(&pIDataObject) ); - if ( SUCCEEDED( hr ) && pIDataObject ) + sal::systools::COMReference< IDataObject > pIDataObject(m_pDefHandler, sal::systools::COM_QUERY); + if ( pIDataObject ) { for ( DWORD nInd = 0; nInd < DEFAULT_ARRAY_LEN; nInd++ ) if ( m_pDataAdvises[nInd] ) @@ -137,17 +135,15 @@ BOOL InprocEmbedDocument_Impl::CheckDefHandler() } } - ComSmart< IViewObject > pIViewObject; - hr = m_pDefHandler->QueryInterface( IID_IViewObject, reinterpret_cast<void**>(&pIViewObject) ); - if ( SUCCEEDED( hr ) && pIViewObject ) + sal::systools::COMReference< IViewObject > pIViewObject(m_pDefHandler, sal::systools::COM_QUERY); + if ( pIViewObject ) { if ( m_pViewAdvise ) pIViewObject->SetAdvise( m_pViewAdvise->GetAspect(), m_pViewAdvise->GetViewAdviseFlag(), nullptr ); } - ComSmart< IPersistStorage > pPersist; - hr = m_pDefHandler->QueryInterface( IID_IPersistStorage, reinterpret_cast<void**>(&pPersist) ); - if ( SUCCEEDED( hr ) && pPersist ) + sal::systools::COMReference< IPersistStorage > pPersist(m_pDefHandler, sal::systools::COM_QUERY); + if ( pPersist ) { // disconnect the old wrapper from the storage pPersist->HandsOffStorage(); @@ -171,29 +167,26 @@ BOOL InprocEmbedDocument_Impl::CheckDefHandler() { if ( m_nInitMode == INIT_FROM_STORAGE ) { - ComSmart< IPersistStorage > pPersist; - hr = m_pDefHandler->QueryInterface( IID_IPersistStorage, reinterpret_cast<void**>(&pPersist) ); + sal::systools::COMReference< IPersistStorage > pPersist(m_pDefHandler, sal::systools::COM_QUERY); ULONGGuard aGuard( &m_nCallsOnStack ); // avoid reentrance problem - if ( SUCCEEDED( hr ) && pPersist && m_pStorage ) + if ( pPersist && m_pStorage ) hr = pPersist->InitNew( m_pStorage.get() ); } else if ( m_nInitMode == LOAD_FROM_STORAGE ) { - ComSmart< IPersistStorage > pPersist; - hr = m_pDefHandler->QueryInterface( IID_IPersistStorage, reinterpret_cast<void**>(&pPersist) ); + sal::systools::COMReference< IPersistStorage > pPersist(m_pDefHandler, sal::systools::COM_QUERY); ULONGGuard aGuard( &m_nCallsOnStack ); // avoid reentrance problem - if ( SUCCEEDED( hr ) && pPersist && m_pStorage ) + if ( pPersist && m_pStorage ) hr = pPersist->Load( m_pStorage.get() ); } else if ( m_nInitMode == LOAD_FROM_FILE ) { - ComSmart< IPersistFile > pPersistFile; - hr = m_pDefHandler->QueryInterface( IID_IPersistFile, reinterpret_cast<void**>(&pPersistFile) ); + sal::systools::COMReference< IPersistFile > pPersistFile(m_pDefHandler, sal::systools::COM_QUERY); ULONGGuard aGuard( &m_nCallsOnStack ); // avoid reentrance problem - if ( SUCCEEDED( hr ) && pPersistFile && m_pFileName ) + if ( pPersistFile && m_pFileName ) hr = pPersistFile->Load( m_pFileName, m_nFileOpenMode ); } } @@ -206,9 +199,8 @@ BOOL InprocEmbedDocument_Impl::CheckDefHandler() // register all the listeners new - ComSmart< IOleObject > pOleObject; - hr = m_pDefHandler->QueryInterface( IID_IOleObject, reinterpret_cast<void**>(&pOleObject) ); - if ( SUCCEEDED( hr ) && pOleObject ) + sal::systools::COMReference< IOleObject > pOleObject(m_pDefHandler, sal::systools::COM_QUERY); + if ( pOleObject ) { if ( m_pClientSite ) pOleObject->SetClientSite( m_pClientSite.get() ); @@ -222,9 +214,8 @@ BOOL InprocEmbedDocument_Impl::CheckDefHandler() } } - ComSmart< IDataObject > pIDataObject; - hr = m_pDefHandler->QueryInterface( IID_IDataObject, reinterpret_cast<void**>(&pIDataObject) ); - if ( SUCCEEDED( hr ) && pIDataObject ) + sal::systools::COMReference< IDataObject > pIDataObject(m_pDefHandler, sal::systools::COM_QUERY); + if ( pIDataObject ) { for ( DWORD nInd = 0; nInd < DEFAULT_ARRAY_LEN; nInd++ ) if ( m_pDataAdvises[nInd] ) @@ -235,9 +226,8 @@ BOOL InprocEmbedDocument_Impl::CheckDefHandler() } } - ComSmart< IViewObject > pIViewObject; - hr = m_pDefHandler->QueryInterface( IID_IViewObject, reinterpret_cast<void**>(&pIViewObject) ); - if ( SUCCEEDED( hr ) && pIViewObject ) + sal::systools::COMReference< IViewObject > pIViewObject(m_pDefHandler, sal::systools::COM_QUERY); + if ( pIViewObject ) { if ( m_pViewAdvise ) pIViewObject->SetAdvise( m_pViewAdvise->GetAspect(), m_pViewAdvise->GetViewAdviseFlag(), m_pViewAdvise.get() ); @@ -255,17 +245,8 @@ void InprocEmbedDocument_Impl::Clean() // no DisconnectOrigAdvise() call here, since it is no explicit disconnection for ( DWORD nInd = 0; nInd < DEFAULT_ARRAY_LEN; nInd++ ) { - if ( m_pOleAdvises[nInd] ) - { - ComSmart< OleWrapperAdviseSink > pAdvise = m_pOleAdvises[nInd]; - m_pOleAdvises[nInd] = nullptr; - } - - if ( m_pDataAdvises[nInd] ) - { - ComSmart< OleWrapperAdviseSink > pAdvise = m_pDataAdvises[nInd]; - m_pDataAdvises[nInd] = nullptr; - } + m_pOleAdvises[nInd].clear(); + m_pDataAdvises[nInd].clear(); } m_pViewAdvise = nullptr; @@ -421,11 +402,10 @@ COM_DECLSPEC_NOTHROW STDMETHODIMP InprocEmbedDocument_Impl::IsDirty() if ( CheckDefHandler() ) { - ComSmart< IPersistStorage > pPersist; - HRESULT hr = m_pDefHandler->QueryInterface( IID_IPersistStorage, reinterpret_cast<void**>(&pPersist) ); + sal::systools::COMReference< IPersistStorage > pPersist(m_pDefHandler, sal::systools::COM_QUERY); ULONGGuard aGuard( &m_nCallsOnStack ); // avoid reentrance problem - if ( SUCCEEDED( hr ) && pPersist ) + if ( pPersist ) return pPersist->IsDirty(); } @@ -437,13 +417,12 @@ COM_DECLSPEC_NOTHROW STDMETHODIMP InprocEmbedDocument_Impl::InitNew( IStorage *p { if ( CheckDefHandler() ) { - ComSmart< IPersistStorage > pPersist; - HRESULT hr = m_pDefHandler->QueryInterface( IID_IPersistStorage, reinterpret_cast<void**>(&pPersist) ); + sal::systools::COMReference< IPersistStorage > pPersist(m_pDefHandler, sal::systools::COM_QUERY); ULONGGuard aGuard( &m_nCallsOnStack ); // avoid reentrance problem - if ( SUCCEEDED( hr ) && pPersist ) + if ( pPersist ) { - hr = pPersist->InitNew( pStg ); + HRESULT hr = pPersist->InitNew( pStg ); if ( SUCCEEDED( hr ) ) { m_nInitMode = INIT_FROM_STORAGE; @@ -469,13 +448,12 @@ COM_DECLSPEC_NOTHROW STDMETHODIMP InprocEmbedDocument_Impl::Load( IStorage *pStg { if ( CheckDefHandler() ) { - ComSmart< IPersistStorage > pPersist; - HRESULT hr = m_pDefHandler->QueryInterface( IID_IPersistStorage, reinterpret_cast<void**>(&pPersist) ); + sal::systools::COMReference< IPersistStorage > pPersist(m_pDefHandler, sal::systools::COM_QUERY); ULONGGuard aGuard( &m_nCallsOnStack ); // avoid reentrance problem - if ( SUCCEEDED( hr ) && pPersist ) + if ( pPersist ) { - hr = pPersist->Load( pStg ); + HRESULT hr = pPersist->Load( pStg ); if ( SUCCEEDED( hr ) ) { m_nInitMode = LOAD_FROM_STORAGE; @@ -504,11 +482,10 @@ COM_DECLSPEC_NOTHROW STDMETHODIMP InprocEmbedDocument_Impl::Save( IStorage *pStg if ( CheckDefHandler() ) { - ComSmart< IPersistStorage > pPersist; - HRESULT hr = m_pDefHandler->QueryInterface( IID_IPersistStorage, reinterpret_cast<void**>(&pPersist) ); + sal::systools::COMReference< IPersistStorage > pPersist(m_pDefHandler, sal::systools::COM_QUERY); ULONGGuard aGuard( &m_nCallsOnStack ); // avoid reentrance problem - if ( SUCCEEDED( hr ) && pPersist ) + if ( pPersist ) return pPersist->Save( pStgSave, fSameAsLoad ); } @@ -528,13 +505,12 @@ COM_DECLSPEC_NOTHROW STDMETHODIMP InprocEmbedDocument_Impl::SaveCompleted( IStor if ( CheckDefHandler() ) { - ComSmart< IPersistStorage > pPersist; - HRESULT hr = m_pDefHandler->QueryInterface( IID_IPersistStorage, reinterpret_cast<void**>(&pPersist) ); + sal::systools::COMReference< IPersistStorage > pPersist(m_pDefHandler, sal::systools::COM_QUERY); ULONGGuard aGuard( &m_nCallsOnStack ); // avoid reentrance problem - if ( SUCCEEDED( hr ) && pPersist ) + if ( pPersist ) { - hr = pPersist->SaveCompleted( pStgNew ); + HRESULT hr = pPersist->SaveCompleted( pStgNew ); if ( SUCCEEDED( hr ) ) { m_nInitMode = LOAD_FROM_STORAGE; @@ -563,13 +539,12 @@ COM_DECLSPEC_NOTHROW STDMETHODIMP InprocEmbedDocument_Impl::HandsOffStorage() { if ( CheckDefHandler() ) { - ComSmart< IPersistStorage > pPersist; - HRESULT hr = m_pDefHandler->QueryInterface( IID_IPersistStorage, reinterpret_cast<void**>(&pPersist) ); + sal::systools::COMReference< IPersistStorage > pPersist(m_pDefHandler, sal::systools::COM_QUERY); ULONGGuard aGuard( &m_nCallsOnStack ); // avoid reentrance problem - if ( SUCCEEDED( hr ) && pPersist ) + if ( pPersist ) { - hr = pPersist->HandsOffStorage(); + HRESULT hr = pPersist->HandsOffStorage(); if ( SUCCEEDED( hr ) ) { m_pStorage = nullptr; @@ -588,13 +563,12 @@ COM_DECLSPEC_NOTHROW STDMETHODIMP InprocEmbedDocument_Impl::Load( LPCOLESTR pszF { if ( CheckDefHandler() && pszFileName ) { - ComSmart< IPersistFile > pPersist; - HRESULT hr = m_pDefHandler->QueryInterface( IID_IPersistFile, reinterpret_cast<void**>(&pPersist) ); + sal::systools::COMReference< IPersistFile > pPersist(m_pDefHandler, sal::systools::COM_QUERY); ULONGGuard aGuard( &m_nCallsOnStack ); // avoid reentrance problem - if ( SUCCEEDED( hr ) && pPersist ) + if ( pPersist ) { - hr = pPersist->Load( pszFileName, dwMode ); + HRESULT hr = pPersist->Load( pszFileName, dwMode ); if ( SUCCEEDED( hr ) ) { m_nInitMode = LOAD_FROM_FILE; @@ -618,11 +592,10 @@ COM_DECLSPEC_NOTHROW STDMETHODIMP InprocEmbedDocument_Impl::Save( LPCOLESTR pszF { if ( CheckDefHandler() ) { - ComSmart< IPersistFile > pPersist; - HRESULT hr = m_pDefHandler->QueryInterface( IID_IPersistFile, reinterpret_cast<void**>(&pPersist) ); + sal::systools::COMReference< IPersistFile > pPersist(m_pDefHandler, sal::systools::COM_QUERY); ULONGGuard aGuard( &m_nCallsOnStack ); // avoid reentrance problem - if ( SUCCEEDED( hr ) && pPersist ) + if ( pPersist ) return pPersist->Save( pszFileName, fRemember ); } @@ -634,13 +607,12 @@ COM_DECLSPEC_NOTHROW STDMETHODIMP InprocEmbedDocument_Impl::SaveCompleted( LPCOL { if ( CheckDefHandler() ) { - ComSmart< IPersistFile > pPersist; - HRESULT hr = m_pDefHandler->QueryInterface( IID_IPersistFile, reinterpret_cast<void**>(&pPersist) ); + sal::systools::COMReference< IPersistFile > pPersist(m_pDefHandler, sal::systools::COM_QUERY); ULONGGuard aGuard( &m_nCallsOnStack ); // avoid reentrance problem - if ( SUCCEEDED( hr ) && pPersist ) + if ( pPersist ) { - hr = pPersist->SaveCompleted( pszFileName ); + HRESULT hr = pPersist->SaveCompleted( pszFileName ); if ( SUCCEEDED( hr ) ) { m_nInitMode = LOAD_FROM_STORAGE; @@ -663,11 +635,10 @@ COM_DECLSPEC_NOTHROW STDMETHODIMP InprocEmbedDocument_Impl::GetCurFile( LPOLESTR { if ( CheckDefHandler() ) { - ComSmart< IPersistFile > pPersist; - HRESULT hr = m_pDefHandler->QueryInterface( IID_IPersistFile, reinterpret_cast<void**>(&pPersist) ); + sal::systools::COMReference< IPersistFile > pPersist(m_pDefHandler, sal::systools::COM_QUERY); ULONGGuard aGuard( &m_nCallsOnStack ); // avoid reentrance problem - if ( SUCCEEDED( hr ) && pPersist ) + if ( pPersist ) return pPersist->GetCurFile( ppszFileName ); } @@ -693,11 +664,10 @@ COM_DECLSPEC_NOTHROW STDMETHODIMP InprocEmbedDocument_Impl::SetClientSite( IOleC if ( CheckDefHandler() ) { - ComSmart< IOleObject > pOleObject; - HRESULT hr = m_pDefHandler->QueryInterface( IID_IOleObject, reinterpret_cast<void**>(&pOleObject) ); + sal::systools::COMReference< IOleObject > pOleObject(m_pDefHandler, sal::systools::COM_QUERY); ULONGGuard aGuard( &m_nCallsOnStack ); // avoid reentrance problem - if ( SUCCEEDED( hr ) && pOleObject ) + if ( pOleObject ) { HRESULT hr2 = pOleObject->SetClientSite( pSite ); if ( SUCCEEDED( hr2 ) ) @@ -727,11 +697,10 @@ COM_DECLSPEC_NOTHROW STDMETHODIMP InprocEmbedDocument_Impl::GetClientSite( IOleC { if ( CheckDefHandler() ) { - ComSmart< IOleObject > pOleObject; - HRESULT hr = m_pDefHandler->QueryInterface( IID_IOleObject, reinterpret_cast<void**>(&pOleObject) ); + sal::systools::COMReference< IOleObject > pOleObject(m_pDefHandler, sal::systools::COM_QUERY); ULONGGuard aGuard( &m_nCallsOnStack ); // avoid reentrance problem - if ( SUCCEEDED( hr ) && pOleObject ) + if ( pOleObject ) return pOleObject->GetClientSite( pSite ); } @@ -744,13 +713,12 @@ COM_DECLSPEC_NOTHROW STDMETHODIMP InprocEmbedDocument_Impl::SetHostNames( LPCOLE if ( CheckDefHandler() ) { - ComSmart< IOleObject > pOleObject; - HRESULT hr = m_pDefHandler->QueryInterface( IID_IOleObject, reinterpret_cast<void**>(&pOleObject) ); + sal::systools::COMReference< IOleObject > pOleObject(m_pDefHandler, sal::systools::COM_QUERY); ULONGGuard aGuard( &m_nCallsOnStack ); // avoid reentrance problem - if ( SUCCEEDED( hr ) && pOleObject ) + if ( pOleObject ) { - hr = pOleObject->SetHostNames( szContainerApp, szContainerObj ); + pOleObject->SetHostNames( szContainerApp, szContainerObj ); } } @@ -764,13 +732,12 @@ COM_DECLSPEC_NOTHROW STDMETHODIMP InprocEmbedDocument_Impl::Close( DWORD dwSaveO if ( m_pDefHandler && CheckDefHandler() ) { // no need to close if there is no default handler. - ComSmart< IOleObject > pOleObject; - HRESULT hr = m_pDefHandler->QueryInterface( IID_IOleObject, reinterpret_cast<void**>(&pOleObject) ); + sal::systools::COMReference< IOleObject > pOleObject(m_pDefHandler, sal::systools::COM_QUERY); ULONGGuard aGuard( &m_nCallsOnStack ); // avoid reentrance problem - if ( SUCCEEDED( hr ) && pOleObject ) + if ( pOleObject ) { - hr = pOleObject->Close( dwSaveOption ); + HRESULT hr = pOleObject->Close( dwSaveOption ); if (!SUCCEEDED(hr)) ret = hr; hr = CoDisconnectObject( static_cast<IUnknown*>(static_cast<IPersistStorage*>(this)), 0 ); @@ -790,11 +757,10 @@ COM_DECLSPEC_NOTHROW STDMETHODIMP InprocEmbedDocument_Impl::SetMoniker( DWORD dw { if ( CheckDefHandler() ) { - ComSmart< IOleObject > pOleObject; - HRESULT hr = m_pDefHandler->QueryInterface( IID_IOleObject, reinterpret_cast<void**>(&pOleObject) ); + sal::systools::COMReference< IOleObject > pOleObject(m_pDefHandler, sal::systools::COM_QUERY); ULONGGuard aGuard( &m_nCallsOnStack ); // avoid reentrance problem - if ( SUCCEEDED( hr ) && pOleObject ) + if ( pOleObject ) return pOleObject->SetMoniker( dwWhichMoniker, pmk ); } @@ -806,11 +772,10 @@ COM_DECLSPEC_NOTHROW STDMETHODIMP InprocEmbedDocument_Impl::GetMoniker( DWORD dw { if ( CheckDefHandler() ) { - ComSmart< IOleObject > pOleObject; - HRESULT hr = m_pDefHandler->QueryInterface( IID_IOleObject, reinterpret_cast<void**>(&pOleObject) ); + sal::systools::COMReference< IOleObject > pOleObject(m_pDefHandler, sal::systools::COM_QUERY); ULONGGuard aGuard( &m_nCallsOnStack ); // avoid reentrance problem - if ( SUCCEEDED( hr ) && pOleObject ) + if ( pOleObject ) return pOleObject->GetMoniker( dwAssign, dwWhichMoniker, ppmk ); } @@ -822,11 +787,10 @@ COM_DECLSPEC_NOTHROW STDMETHODIMP InprocEmbedDocument_Impl::InitFromData( IDataO { if ( CheckDefHandler() ) { - ComSmart< IOleObject > pOleObject; - HRESULT hr = m_pDefHandler->QueryInterface( IID_IOleObject, reinterpret_cast<void**>(&pOleObject) ); + sal::systools::COMReference< IOleObject > pOleObject(m_pDefHandler, sal::systools::COM_QUERY); ULONGGuard aGuard( &m_nCallsOnStack ); // avoid reentrance problem - if ( SUCCEEDED( hr ) && pOleObject ) + if ( pOleObject ) return pOleObject->InitFromData( pDataObject, fCreation, dwReserved ); } @@ -838,11 +802,10 @@ COM_DECLSPEC_NOTHROW STDMETHODIMP InprocEmbedDocument_Impl::GetClipboardData( DW { if ( CheckDefHandler() ) { - ComSmart< IOleObject > pOleObject; - HRESULT hr = m_pDefHandler->QueryInterface( IID_IOleObject, reinterpret_cast<void**>(&pOleObject) ); + sal::systools::COMReference< IOleObject > pOleObject(m_pDefHandler, sal::systools::COM_QUERY); ULONGGuard aGuard( &m_nCallsOnStack ); // avoid reentrance problem - if ( SUCCEEDED( hr ) && pOleObject ) + if ( pOleObject ) return pOleObject->GetClipboardData( dwReserved, ppDataObject ); } @@ -860,14 +823,12 @@ COM_DECLSPEC_NOTHROW STDMETHODIMP InprocEmbedDocument_Impl::DoVerb( { if ( CheckDefHandler() ) { - ComSmart< IOleObject > pOleObject; - HRESULT hr = m_pDefHandler->QueryInterface( IID_IOleObject, reinterpret_cast<void**>(&pOleObject) ); + sal::systools::COMReference< IOleObject > pOleObject(m_pDefHandler, sal::systools::COM_QUERY); ULONGGuard aGuard( &m_nCallsOnStack ); // avoid reentrance problem - if ( SUCCEEDED( hr ) && pOleObject ) + if ( pOleObject ) { - hr = pOleObject->DoVerb( iVerb, pMsg, pActiveSite, nLong, hWin, pRect ); - return hr; + return pOleObject->DoVerb( iVerb, pMsg, pActiveSite, nLong, hWin, pRect ); } } @@ -880,11 +841,10 @@ COM_DECLSPEC_NOTHROW STDMETHODIMP InprocEmbedDocument_Impl::EnumVerbs( IEnumOLEV { if ( CheckDefHandler() ) { - ComSmart< IOleObject > pOleObject; - HRESULT hr = m_pDefHandler->QueryInterface( IID_IOleObject, reinterpret_cast<void**>(&pOleObject) ); + sal::systools::COMReference< IOleObject > pOleObject(m_pDefHandler, sal::systools::COM_QUERY); ULONGGuard aGuard( &m_nCallsOnStack ); // avoid reentrance problem - if ( SUCCEEDED( hr ) && pOleObject ) + if ( pOleObject ) return pOleObject->EnumVerbs( ppEnumOleVerb ); } @@ -897,11 +857,10 @@ COM_DECLSPEC_NOTHROW STDMETHODIMP InprocEmbedDocument_Impl::Update() if ( m_pDefHandler && CheckDefHandler() ) { - ComSmart< IOleObject > pOleObject; - HRESULT hr = m_pDefHandler->QueryInterface( IID_IOleObject, reinterpret_cast<void**>(&pOleObject) ); + sal::systools::COMReference< IOleObject > pOleObject(m_pDefHandler, sal::systools::COM_QUERY); ULONGGuard aGuard( &m_nCallsOnStack ); // avoid reentrance problem - if ( SUCCEEDED( hr ) && pOleObject ) + if ( pOleObject ) return pOleObject->Update(); } @@ -913,11 +872,10 @@ COM_DECLSPEC_NOTHROW STDMETHODIMP InprocEmbedDocument_Impl::IsUpToDate() { if ( CheckDefHandler() ) { - ComSmart< IOleObject > pOleObject; - HRESULT hr = m_pDefHandler->QueryInterface( IID_IOleObject, reinterpret_cast<void**>(&pOleObject) ); + sal::systools::COMReference< IOleObject > pOleObject(m_pDefHandler, sal::systools::COM_QUERY); ULONGGuard aGuard( &m_nCallsOnStack ); // avoid reentrance problem - if ( SUCCEEDED( hr ) && pOleObject ) + if ( pOleObject ) return pOleObject->IsUpToDate(); } @@ -938,11 +896,10 @@ COM_DECLSPEC_NOTHROW STDMETHODIMP InprocEmbedDocument_Impl::GetUserType( DWORD d { if ( CheckDefHandler() ) { - ComSmart< IOleObject > pOleObject; - HRESULT hr = m_pDefHandler->QueryInterface( IID_IOleObject, reinterpret_cast<void**>(&pOleObject) ); + sal::systools::COMReference< IOleObject > pOleObject(m_pDefHandler, sal::systools::COM_QUERY); ULONGGuard aGuard( &m_nCallsOnStack ); // avoid reentrance problem - if ( SUCCEEDED( hr ) && pOleObject ) + if ( pOleObject ) return pOleObject->GetUserType( dwFormOfType, pszUserType ); } @@ -954,11 +911,10 @@ COM_DECLSPEC_NOTHROW STDMETHODIMP InprocEmbedDocument_Impl::SetExtent( DWORD dwD { if ( CheckDefHandler() ) { - ComSmart< IOleObject > pOleObject; - HRESULT hr = m_pDefHandler->QueryInterface( IID_IOleObject, reinterpret_cast<void**>(&pOleObject) ); + sal::systools::COMReference< IOleObject > pOleObject(m_pDefHandler, sal::systools::COM_QUERY); ULONGGuard aGuard( &m_nCallsOnStack ); // avoid reentrance problem - if ( SUCCEEDED( hr ) && pOleObject ) + if ( pOleObject ) return pOleObject->SetExtent( dwDrawAspect, psizel ); } @@ -970,11 +926,10 @@ COM_DECLSPEC_NOTHROW STDMETHODIMP InprocEmbedDocument_Impl::GetExtent( DWORD dwD { if ( CheckDefHandler() ) { - ComSmart< IOleObject > pOleObject; - HRESULT hr = m_pDefHandler->QueryInterface( IID_IOleObject, reinterpret_cast<void**>(&pOleObject) ); + sal::systools::COMReference< IOleObject > pOleObject(m_pDefHandler, sal::systools::COM_QUERY); ULONGGuard aGuard( &m_nCallsOnStack ); // avoid reentrance problem - if ( SUCCEEDED( hr ) && pOleObject ) + if ( pOleObject ) return pOleObject->GetExtent( dwDrawAspect, psizel ); } @@ -997,14 +952,12 @@ COM_DECLSPEC_NOTHROW STDMETHODIMP InprocEmbedDocument_Impl::Advise( IAdviseSink if ( pAdvSink && CheckDefHandler() ) { - ComSmart< IOleObject > pOleObject; - HRESULT hr = m_pDefHandler->QueryInterface( IID_IOleObject, reinterpret_cast<void**>(&pOleObject) ); + sal::systools::COMReference< IOleObject > pOleObject(m_pDefHandler, sal::systools::COM_QUERY); ULONGGuard aGuard( &m_nCallsOnStack ); // avoid reentrance problem - if ( SUCCEEDED( hr ) && pOleObject ) + if ( pOleObject ) { - ComSmart<IAdviseSink> aListener(pAdvSink); - ComSmart<OleWrapperAdviseSink> pOwnAdvise(new OleWrapperAdviseSink(aListener)); + sal::systools::COMReference pOwnAdvise(new OleWrapperAdviseSink(pAdvSink)); DWORD nRegID = 0; if ( SUCCEEDED( pOleObject->Advise( pOwnAdvise.get(), &nRegID ) ) && nRegID > 0 ) @@ -1030,11 +983,10 @@ COM_DECLSPEC_NOTHROW STDMETHODIMP InprocEmbedDocument_Impl::Unadvise( DWORD dwCo { if ( m_pDefHandler ) { - ComSmart< IOleObject > pOleObject; - HRESULT hr = m_pDefHandler->QueryInterface( IID_IOleObject, reinterpret_cast<void**>(&pOleObject) ); + sal::systools::COMReference< IOleObject > pOleObject(m_pDefHandler, sal::systools::COM_QUERY); ULONGGuard aGuard( &m_nCallsOnStack ); // avoid reentrance problem - if ( SUCCEEDED( hr ) && pOleObject ) + if ( pOleObject ) { DWORD nID = m_pOleAdvises[dwConnection]->GetRegID(); pOleObject->Unadvise( nID ); @@ -1061,11 +1013,10 @@ COM_DECLSPEC_NOTHROW STDMETHODIMP InprocEmbedDocument_Impl::GetMiscStatus( DWORD { if ( CheckDefHandler() ) { - ComSmart< IOleObject > pOleObject; - HRESULT hr = m_pDefHandler->QueryInterface( IID_IOleObject, reinterpret_cast<void**>(&pOleObject) ); + sal::systools::COMReference< IOleObject > pOleObject(m_pDefHandler, sal::systools::COM_QUERY); ULONGGuard aGuard( &m_nCallsOnStack ); // avoid reentrance problem - if ( SUCCEEDED( hr ) && pOleObject ) + if ( pOleObject ) return pOleObject->GetMiscStatus( dwAspect, pdwStatus ); } @@ -1077,11 +1028,10 @@ COM_DECLSPEC_NOTHROW STDMETHODIMP InprocEmbedDocument_Impl::SetColorScheme( LOGP { if ( CheckDefHandler() ) { - ComSmart< IOleObject > pOleObject; - HRESULT hr = m_pDefHandler->QueryInterface( IID_IOleObject, reinterpret_cast<void**>(&pOleObject) ); + sal::systools::COMReference< IOleObject > pOleObject(m_pDefHandler, sal::systools::COM_QUERY); ULONGGuard aGuard( &m_nCallsOnStack ); // avoid reentrance problem - if ( SUCCEEDED( hr ) && pOleObject ) + if ( pOleObject ) return pOleObject->SetColorScheme( pLogpal ); } @@ -1094,11 +1044,10 @@ COM_DECLSPEC_NOTHROW STDMETHODIMP InprocEmbedDocument_Impl::GetData( FORMATETC * { if ( CheckDefHandler() ) { - ComSmart< IDataObject > pIDataObject; - HRESULT hr = m_pDefHandler->QueryInterface( IID_IDataObject, reinterpret_cast<void**>(&pIDataObject) ); + sal::systools::COMReference< IDataObject > pIDataObject(m_pDefHandler, sal::systools::COM_QUERY); ULONGGuard aGuard( &m_nCallsOnStack ); // avoid reentrance problem - if ( SUCCEEDED( hr ) && pIDataObject ) + if ( pIDataObject ) return pIDataObject->GetData( pFormatetc, pMedium ); } @@ -1110,11 +1059,10 @@ COM_DECLSPEC_NOTHROW STDMETHODIMP InprocEmbedDocument_Impl::GetDataHere( FORMATE { if ( CheckDefHandler() ) { - ComSmart< IDataObject > pIDataObject; - HRESULT hr = m_pDefHandler->QueryInterface( IID_IDataObject, reinterpret_cast<void**>(&pIDataObject) ); + sal::systools::COMReference< IDataObject > pIDataObject(m_pDefHandler, sal::systools::COM_QUERY); ULONGGuard aGuard( &m_nCallsOnStack ); // avoid reentrance problem - if ( SUCCEEDED( hr ) && pIDataObject ) + if ( pIDataObject ) return pIDataObject->GetDataHere( pFormatetc, pMedium ); } @@ -1126,11 +1074,10 @@ COM_DECLSPEC_NOTHROW STDMETHODIMP InprocEmbedDocument_Impl::QueryGetData( FORMAT { if ( CheckDefHandler() ) { - ComSmart< IDataObject > pIDataObject; - HRESULT hr = m_pDefHandler->QueryInterface( IID_IDataObject, reinterpret_cast<void**>(&pIDataObject) ); + sal::systools::COMReference< IDataObject > pIDataObject(m_pDefHandler, sal::systools::COM_QUERY); ULONGGuard aGuard( &m_nCallsOnStack ); // avoid reentrance problem - if ( SUCCEEDED( hr ) && pIDataObject ) + if ( pIDataObject ) return pIDataObject->QueryGetData( pFormatetc ); } @@ -1142,11 +1089,10 @@ COM_DECLSPEC_NOTHROW STDMETHODIMP InprocEmbedDocument_Impl::GetCanonicalFormatEt { if ( CheckDefHandler() ) { - ComSmart< IDataObject > pIDataObject; - HRESULT hr = m_pDefHandler->QueryInterface( IID_IDataObject, reinterpret_cast<void**>(&pIDataObject) ); + sal::systools::COMReference< IDataObject > pIDataObject(m_pDefHandler, sal::systools::COM_QUERY); ULONGGuard aGuard( &m_nCallsOnStack ); // avoid reentrance problem - if ( SUCCEEDED( hr ) && pIDataObject ) + if ( pIDataObject ) return pIDataObject->GetCanonicalFormatEtc( pFormatetcIn, pFormatetcOut ); } @@ -1158,11 +1104,10 @@ COM_DECLSPEC_NOTHROW STDMETHODIMP InprocEmbedDocument_Impl::SetData( FORMATETC * { if ( CheckDefHandler() ) { - ComSmart< IDataObject > pIDataObject; - HRESULT hr = m_pDefHandler->QueryInterface( IID_IDataObject, reinterpret_cast<void**>(&pIDataObject) ); + sal::systools::COMReference< IDataObject > pIDataObject(m_pDefHandler, sal::systools::COM_QUERY); ULONGGuard aGuard( &m_nCallsOnStack ); // avoid reentrance problem - if ( SUCCEEDED( hr ) && pIDataObject ) + if ( pIDataObject ) return pIDataObject->SetData( pFormatetc, pMedium, fRelease ); } @@ -1174,11 +1119,10 @@ COM_DECLSPEC_NOTHROW STDMETHODIMP InprocEmbedDocument_Impl::EnumFormatEtc( DWORD { if ( CheckDefHandler() ) { - ComSmart< IDataObject > pIDataObject; - HRESULT hr = m_pDefHandler->QueryInterface( IID_IDataObject, reinterpret_cast<void**>(&pIDataObject) ); + sal::systools::COMReference< IDataObject > pIDataObject(m_pDefHandler, sal::systools::COM_QUERY); ULONGGuard aGuard( &m_nCallsOnStack ); // avoid reentrance problem - if ( SUCCEEDED( hr ) && pIDataObject ) + if ( pIDataObject ) return pIDataObject->EnumFormatEtc( dwDirection, ppFormatetc ); } @@ -1201,13 +1145,12 @@ COM_DECLSPEC_NOTHROW STDMETHODIMP InprocEmbedDocument_Impl::DAdvise( FORMATETC * if ( pAdvSink && CheckDefHandler() ) { - ComSmart< IDataObject > pIDataObject; - HRESULT hr = m_pDefHandler->QueryInterface( IID_IDataObject, reinterpret_cast<void**>(&pIDataObject) ); + sal::systools::COMReference< IDataObject > pIDataObject(m_pDefHandler, sal::systools::COM_QUERY); ULONGGuard aGuard( &m_nCallsOnStack ); // avoid reentrance problem - if ( SUCCEEDED( hr ) && pIDataObject ) + if ( pIDataObject ) { - ComSmart< OleWrapperAdviseSink > pOwnAdvise( new OleWrapperAdviseSink( ComSmart<IAdviseSink>( pAdvSink ), pFormatetc, advf ) ); + sal::systools::COMReference pOwnAdvise( new OleWrapperAdviseSink( pAdvSink, pFormatetc, advf ) ); DWORD nRegID = 0; if ( SUCCEEDED( pIDataObject->DAdvise( pFormatetc, advf, pOwnAdvise.get(), &nRegID ) ) && nRegID > 0 ) @@ -1233,11 +1176,10 @@ COM_DECLSPEC_NOTHROW STDMETHODIMP InprocEmbedDocument_Impl::DUnadvise( DWORD dwC { if ( CheckDefHandler() ) { - ComSmart< IDataObject > pIDataObject; - HRESULT hr = m_pDefHandler->QueryInterface( IID_IDataObject, reinterpret_cast<void**>(&pIDataObject) ); + sal::systools::COMReference< IDataObject > pIDataObject(m_pDefHandler, sal::systools::COM_QUERY); ULONGGuard aGuard( &m_nCallsOnStack ); // avoid reentrance problem - if ( SUCCEEDED( hr ) && pIDataObject ) + if ( pIDataObject ) { DWORD nID = m_pDataAdvises[dwConnection]->GetRegID(); pIDataObject->DUnadvise( nID ); @@ -1258,11 +1200,10 @@ COM_DECLSPEC_NOTHROW STDMETHODIMP InprocEmbedDocument_Impl::EnumDAdvise( IEnumST { if ( CheckDefHandler() ) { - ComSmart< IDataObject > pIDataObject; - HRESULT hr = m_pDefHandler->QueryInterface( IID_IDataObject, reinterpret_cast<void**>(&pIDataObject) ); + sal::systools::COMReference< IDataObject > pIDataObject(m_pDefHandler, sal::systools::COM_QUERY); ULONGGuard aGuard( &m_nCallsOnStack ); // avoid reentrance problem - if ( SUCCEEDED( hr ) && pIDataObject ) + if ( pIDataObject ) return pIDataObject->EnumDAdvise( ppenumAdvise ); } @@ -1275,11 +1216,10 @@ COM_DECLSPEC_NOTHROW STDMETHODIMP InprocEmbedDocument_Impl::GetRunningClass( LPC { if ( CheckDefHandler() ) { - ComSmart< IRunnableObject > pIRunObj; - HRESULT hr = m_pDefHandler->QueryInterface( IID_IRunnableObject, reinterpret_cast<void**>(&pIRunObj) ); + sal::systools::COMReference< IRunnableObject > pIRunObj(m_pDefHandler, sal::systools::COM_QUERY); ULONGGuard aGuard( &m_nCallsOnStack ); // avoid reentrance problem - if ( SUCCEEDED( hr ) && pIRunObj ) + if ( pIRunObj ) return pIRunObj->GetRunningClass( lpClsid ); } @@ -1291,11 +1231,10 @@ COM_DECLSPEC_NOTHROW STDMETHODIMP InprocEmbedDocument_Impl::Run( LPBINDCTX pbc ) { if ( CheckDefHandler() ) { - ComSmart< IRunnableObject > pIRunObj; - HRESULT hr = m_pDefHandler->QueryInterface( IID_IRunnableObject, reinterpret_cast<void**>(&pIRunObj) ); + sal::systools::COMReference< IRunnableObject > pIRunObj(m_pDefHandler, sal::systools::COM_QUERY); ULONGGuard aGuard( &m_nCallsOnStack ); // avoid reentrance problem - if ( SUCCEEDED( hr ) && pIRunObj ) + if ( pIRunObj ) return pIRunObj->Run( pbc ); } @@ -1306,11 +1245,10 @@ BOOL STDMETHODCALLTYPE InprocEmbedDocument_Impl::IsRunning() { if (CheckDefHandler()) { - ComSmart< IRunnableObject > pIRunObj; - HRESULT hr = m_pDefHandler->QueryInterface( IID_IRunnableObject, reinterpret_cast<void**>(&pIRunObj) ); + sal::systools::COMReference< IRunnableObject > pIRunObj(m_pDefHandler, sal::systools::COM_QUERY); ULONGGuard aGuard( &m_nCallsOnStack ); // avoid reentrance problem - if ( SUCCEEDED( hr ) && pIRunObj ) + if ( pIRunObj ) return pIRunObj->IsRunning(); } @@ -1321,11 +1259,10 @@ COM_DECLSPEC_NOTHROW STDMETHODIMP InprocEmbedDocument_Impl::LockRunning( BOOL fL { if ( CheckDefHandler() ) { - ComSmart< IRunnableObject > pIRunObj; - HRESULT hr = m_pDefHandler->QueryInterface( IID_IRunnableObject, reinterpret_cast<void**>(&pIRunObj) ); + sal::systools::COMReference< IRunnableObject > pIRunObj(m_pDefHandler, sal::systools::COM_QUERY); ULONGGuard aGuard( &m_nCallsOnStack ); // avoid reentrance problem - if ( SUCCEEDED( hr ) && pIRunObj ) + if ( pIRunObj ) return pIRunObj->LockRunning( fLock, fLastUnlockCloses ); } @@ -1337,11 +1274,10 @@ COM_DECLSPEC_NOTHROW STDMETHODIMP InprocEmbedDocument_Impl::SetContainedObject( { if ( CheckDefHandler() ) { - ComSmart< IRunnableObject > pIRunObj; - HRESULT hr = m_pDefHandler->QueryInterface( IID_IRunnableObject, reinterpret_cast<void**>(&pIRunObj) ); + sal::systools::COMReference< IRunnableObject > pIRunObj(m_pDefHandler, sal::systools::COM_QUERY); ULONGGuard aGuard( &m_nCallsOnStack ); // avoid reentrance problem - if ( SUCCEEDED( hr ) && pIRunObj ) + if ( pIRunObj ) return pIRunObj->SetContainedObject( fContained ); } @@ -1355,11 +1291,10 @@ COM_DECLSPEC_NOTHROW STDMETHODIMP InprocEmbedDocument_Impl::Draw( DWORD dwDrawAs { if ( CheckDefHandler() ) { - ComSmart< IViewObject > pIViewObject; - HRESULT hr = m_pDefHandler->QueryInterface( IID_IViewObject, reinterpret_cast<void**>(&pIViewObject) ); + sal::systools::COMReference< IViewObject > pIViewObject(m_pDefHandler, sal::systools::COM_QUERY); ULONGGuard aGuard( &m_nCallsOnStack ); // avoid reentrance problem - if ( SUCCEEDED( hr ) && pIViewObject ) + if ( pIViewObject ) return pIViewObject->Draw( dwDrawAspect, lindex, pvAspect, ptd, hdcTargetDev, hdcDraw, lprcBounds, lprcWBounds, pfnContinue, dwContinue ); } @@ -1371,11 +1306,10 @@ COM_DECLSPEC_NOTHROW STDMETHODIMP InprocEmbedDocument_Impl::GetColorSet( DWORD d { if ( CheckDefHandler() ) { - ComSmart< IViewObject > pIViewObject; - HRESULT hr = m_pDefHandler->QueryInterface( IID_IViewObject, reinterpret_cast<void**>(&pIViewObject) ); + sal::systools::COMReference< IViewObject > pIViewObject(m_pDefHandler, sal::systools::COM_QUERY); ULONGGuard aGuard( &m_nCallsOnStack ); // avoid reentrance problem - if ( SUCCEEDED( hr ) && pIViewObject ) + if ( pIViewObject ) return pIViewObject->GetColorSet( dwDrawAspect, lindex, pvAspect, ptd, hicTargetDev, ppColorSet ); } @@ -1387,11 +1321,10 @@ COM_DECLSPEC_NOTHROW STDMETHODIMP InprocEmbedDocument_Impl::Freeze( DWORD dwDraw { if ( CheckDefHandler() ) { - ComSmart< IViewObject > pIViewObject; - HRESULT hr = m_pDefHandler->QueryInterface( IID_IViewObject, reinterpret_cast<void**>(&pIViewObject) ); + sal::systools::COMReference< IViewObject > pIViewObject(m_pDefHandler, sal::systools::COM_QUERY); ULONGGuard aGuard( &m_nCallsOnStack ); // avoid reentrance problem - if ( SUCCEEDED( hr ) && pIViewObject ) + if ( pIViewObject ) return pIViewObject->Freeze( dwDrawAspect, lindex, pvAspect, pdwFreeze ); } @@ -1403,11 +1336,10 @@ COM_DECLSPEC_NOTHROW STDMETHODIMP InprocEmbedDocument_Impl::Unfreeze( DWORD dwFr { if ( CheckDefHandler() ) { - ComSmart< IViewObject > pIViewObject; - HRESULT hr = m_pDefHandler->QueryInterface( IID_IViewObject, reinterpret_cast<void**>(&pIViewObject) ); + sal::systools::COMReference< IViewObject > pIViewObject(m_pDefHandler, sal::systools::COM_QUERY); ULONGGuard aGuard( &m_nCallsOnStack ); // avoid reentrance problem - if ( SUCCEEDED( hr ) && pIViewObject ) + if ( pIViewObject ) return pIViewObject->Unfreeze( dwFreeze ); } @@ -1427,14 +1359,12 @@ COM_DECLSPEC_NOTHROW STDMETHODIMP InprocEmbedDocument_Impl::SetAdvise( DWORD asp if ( pAdvSink && CheckDefHandler() ) { - ComSmart< IViewObject > pIViewObject; - HRESULT hr = m_pDefHandler->QueryInterface( IID_IViewObject, reinterpret_cast<void**>(&pIViewObject) ); + sal::systools::COMReference< IViewObject > pIViewObject(m_pDefHandler, sal::systools::COM_QUERY); ULONGGuard aGuard( &m_nCallsOnStack ); // avoid reentrance problem - if ( SUCCEEDED( hr ) && pIViewObject ) + if ( pIViewObject ) { - ComSmart<IAdviseSink> aListener(pAdvSink); - ComSmart<OleWrapperAdviseSink> pOwnAdvise(new OleWrapperAdviseSink(aListener, aspects, advf)); + sal::systools::COMReference pOwnAdvise(new OleWrapperAdviseSink(pAdvSink, aspects, advf)); if ( SUCCEEDED( pIViewObject->SetAdvise( aspects, advf, pOwnAdvise.get() ) ) ) { @@ -1477,11 +1407,10 @@ COM_DECLSPEC_NOTHROW STDMETHODIMP InprocEmbedDocument_Impl::GetExtent( DWORD dwD { if ( CheckDefHandler() ) { - ComSmart< IViewObject2 > pIViewObject2; - HRESULT hr = m_pDefHandler->QueryInterface( IID_IViewObject2, reinterpret_cast<void**>(&pIViewObject2) ); + sal::systools::COMReference< IViewObject2 > pIViewObject2(m_pDefHandler, sal::systools::COM_QUERY); ULONGGuard aGuard( &m_nCallsOnStack ); // avoid reentrance problem - if ( SUCCEEDED( hr ) && pIViewObject2 ) + if ( pIViewObject2 ) return pIViewObject2->GetExtent( dwDrawAspect, lindex, ptd, lpsizel ); } @@ -1495,11 +1424,10 @@ COM_DECLSPEC_NOTHROW STDMETHODIMP InprocEmbedDocument_Impl::GetWindow( HWND *phw { if ( CheckDefHandler() ) { - ComSmart< IOleWindow > pIOleWindow; - HRESULT hr = m_pDefHandler->QueryInterface( IID_IOleWindow, reinterpret_cast<void**>(&pIOleWindow) ); + sal::systools::COMReference< IOleWindow > pIOleWindow(m_pDefHandler, sal::systools::COM_QUERY); ULONGGuard aGuard( &m_nCallsOnStack ); // avoid reentrance problem - if ( SUCCEEDED( hr ) && pIOleWindow ) + if ( pIOleWindow ) return pIOleWindow->GetWindow( phwnd ); } @@ -1511,11 +1439,10 @@ COM_DECLSPEC_NOTHROW STDMETHODIMP InprocEmbedDocument_Impl::ContextSensitiveHelp { if ( CheckDefHandler() ) { - ComSmart< IOleWindow > pIOleWindow; - HRESULT hr = m_pDefHandler->QueryInterface( IID_IOleWindow, reinterpret_cast<void**>(&pIOleWindow) ); + sal::systools::COMReference< IOleWindow > pIOleWindow(m_pDefHandler, sal::systools::COM_QUERY); ULONGGuard aGuard( &m_nCallsOnStack ); // avoid reentrance problem - if ( SUCCEEDED( hr ) && pIOleWindow ) + if ( pIOleWindow ) return pIOleWindow->ContextSensitiveHelp( fEnterMode ); } @@ -1529,11 +1456,10 @@ COM_DECLSPEC_NOTHROW STDMETHODIMP InprocEmbedDocument_Impl::InPlaceDeactivate() { if ( CheckDefHandler() ) { - ComSmart< IOleInPlaceObject > pIOleInPlaceObject; - HRESULT hr = m_pDefHandler->QueryInterface( IID_IOleInPlaceObject, reinterpret_cast<void**>(&pIOleInPlaceObject) ); + sal::systools::COMReference< IOleInPlaceObject > pIOleInPlaceObject(m_pDefHandler, sal::systools::COM_QUERY); ULONGGuard aGuard( &m_nCallsOnStack ); // avoid reentrance problem - if ( SUCCEEDED( hr ) && pIOleInPlaceObject ) + if ( pIOleInPlaceObject ) return pIOleInPlaceObject->InPlaceDeactivate(); } @@ -1545,11 +1471,10 @@ COM_DECLSPEC_NOTHROW STDMETHODIMP InprocEmbedDocument_Impl::UIDeactivate() { if ( CheckDefHandler() ) { - ComSmart< IOleInPlaceObject > pIOleInPlaceObject; - HRESULT hr = m_pDefHandler->QueryInterface( IID_IOleInPlaceObject, reinterpret_cast<void**>(&pIOleInPlaceObject) ); + sal::systools::COMReference< IOleInPlaceObject > pIOleInPlaceObject(m_pDefHandler, sal::systools::COM_QUERY); ULONGGuard aGuard( &m_nCallsOnStack ); // avoid reentrance problem - if ( SUCCEEDED( hr ) && pIOleInPlaceObject ) + if ( pIOleInPlaceObject ) return pIOleInPlaceObject->UIDeactivate(); } @@ -1561,11 +1486,10 @@ COM_DECLSPEC_NOTHROW STDMETHODIMP InprocEmbedDocument_Impl::SetObjectRects( LPCR { if ( CheckDefHandler() ) { - ComSmart< IOleInPlaceObject > pIOleInPlaceObject; - HRESULT hr = m_pDefHandler->QueryInterface( IID_IOleInPlaceObject, reinterpret_cast<void**>(&pIOleInPlaceObject) ); + sal::systools::COMReference< IOleInPlaceObject > pIOleInPlaceObject(m_pDefHandler, sal::systools::COM_QUERY); ULONGGuard aGuard( &m_nCallsOnStack ); // avoid reentrance problem - if ( SUCCEEDED( hr ) && pIOleInPlaceObject ) + if ( pIOleInPlaceObject ) return pIOleInPlaceObject->SetObjectRects( lprcPosRect, lprcClipRect ); } @@ -1577,11 +1501,10 @@ COM_DECLSPEC_NOTHROW STDMETHODIMP InprocEmbedDocument_Impl::ReactivateAndUndo() { if ( CheckDefHandler() ) { - ComSmart< IOleInPlaceObject > pIOleInPlaceObject; - HRESULT hr = m_pDefHandler->QueryInterface( IID_IOleInPlaceObject, reinterpret_cast<void**>(&pIOleInPlaceObject) ); + sal::systools::COMReference< IOleInPlaceObject > pIOleInPlaceObject(m_pDefHandler, sal::systools::COM_QUERY); ULONGGuard aGuard( &m_nCallsOnStack ); // avoid reentrance problem - if ( SUCCEEDED( hr ) && pIOleInPlaceObject ) + if ( pIOleInPlaceObject ) return pIOleInPlaceObject->ReactivateAndUndo(); } @@ -1595,11 +1518,10 @@ COM_DECLSPEC_NOTHROW STDMETHODIMP InprocEmbedDocument_Impl::GetTypeInfoCount( UI { if ( CheckDefHandler() ) { - ComSmart< IDispatch > pIDispatch; - HRESULT hr = m_pDefHandler->QueryInterface( IID_IDispatch, reinterpret_cast<void**>(&pIDispatch) ); + sal::systools::COMReference< IDispatch > pIDispatch(m_pDefHandler, sal::systools::COM_QUERY); ULONGGuard aGuard( &m_nCallsOnStack ); // avoid reentrance problem - if ( SUCCEEDED( hr ) && pIDispatch ) + if ( pIDispatch ) return pIDispatch->GetTypeInfoCount( pctinfo ); } @@ -1611,11 +1533,10 @@ COM_DECLSPEC_NOTHROW STDMETHODIMP InprocEmbedDocument_Impl::GetTypeInfo( UINT iT { if ( CheckDefHandler() ) { - ComSmart< IDispatch > pIDispatch; - HRESULT hr = m_pDefHandler->QueryInterface( IID_IDispatch, reinterpret_cast<void**>(&pIDispatch) ); + sal::systools::COMReference< IDispatch > pIDispatch(m_pDefHandler, sal::systools::COM_QUERY); ULONGGuard aGuard( &m_nCallsOnStack ); // avoid reentrance problem - if ( SUCCEEDED( hr ) && pIDispatch ) + if ( pIDispatch ) return pIDispatch->GetTypeInfo( iTInfo, lcid, ppTInfo ); } @@ -1627,11 +1548,10 @@ COM_DECLSPEC_NOTHROW STDMETHODIMP InprocEmbedDocument_Impl::GetIDsOfNames( REFII { if ( CheckDefHandler() ) { - ComSmart< IDispatch > pIDispatch; - HRESULT hr = m_pDefHandler->QueryInterface( IID_IDispatch, reinterpret_cast<void**>(&pIDispatch) ); + sal::systools::COMReference< IDispatch > pIDispatch(m_pDefHandler, sal::systools::COM_QUERY); ULONGGuard aGuard( &m_nCallsOnStack ); // avoid reentrance problem - if ( SUCCEEDED( hr ) && pIDispatch ) + if ( pIDispatch ) return pIDispatch->GetIDsOfNames( riid, rgszNames, cNames, lcid, rgDispId ); } @@ -1643,11 +1563,10 @@ COM_DECLSPEC_NOTHROW STDMETHODIMP InprocEmbedDocument_Impl::Invoke( DISPID dispI { if ( CheckDefHandler() ) { - ComSmart< IDispatch > pIDispatch; - HRESULT hr = m_pDefHandler->QueryInterface( IID_IDispatch, reinterpret_cast<void**>(&pIDispatch) ); + sal::systools::COMReference< IDispatch > pIDispatch(m_pDefHandler, sal::systools::COM_QUERY); ULONGGuard aGuard( &m_nCallsOnStack ); // avoid reentrance problem - if ( SUCCEEDED( hr ) && pIDispatch ) + if ( pIDispatch ) return pIDispatch->Invoke( dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr ); } @@ -1684,11 +1603,10 @@ COM_DECLSPEC_NOTHROW STDMETHODIMP InprocEmbedDocument_Impl::InternalCacheWrapper { if ( m_rOwnDocument.CheckDefHandler() ) { - ComSmart< IOleCache > pIOleCache; - HRESULT hr = m_rOwnDocument.GetDefHandler()->QueryInterface( IID_IOleCache, reinterpret_cast<void**>(&pIOleCache) ); + sal::systools::COMReference< IOleCache > pIOleCache(m_rOwnDocument.GetDefHandler(), sal::systools::COM_QUERY); ULONGGuard aGuard( &m_rOwnDocument.m_nCallsOnStack ); // avoid reentrance problem - if ( SUCCEEDED( hr ) && pIOleCache ) + if ( pIOleCache ) return pIOleCache->Cache( pformatetc, advf, pdwConnection ); } @@ -1700,11 +1618,10 @@ COM_DECLSPEC_NOTHROW STDMETHODIMP InprocEmbedDocument_Impl::InternalCacheWrapper { if ( m_rOwnDocument.CheckDefHandler() ) { - ComSmart< IOleCache > pIOleCache; - HRESULT hr = m_rOwnDocument.GetDefHandler()->QueryInterface( IID_IOleCache, reinterpret_cast<void**>(&pIOleCache) ); + sal::systools::COMReference< IOleCache > pIOleCache(m_rOwnDocument.GetDefHandler(), sal::systools::COM_QUERY); ULONGGuard aGuard( &m_rOwnDocument.m_nCallsOnStack ); // avoid reentrance problem - if ( SUCCEEDED( hr ) && pIOleCache ) + if ( pIOleCache ) return pIOleCache->Uncache( dwConnection ); } @@ -1716,11 +1633,10 @@ COM_DECLSPEC_NOTHROW STDMETHODIMP InprocEmbedDocument_Impl::InternalCacheWrapper { if ( m_rOwnDocument.CheckDefHandler() ) { - ComSmart< IOleCache > pIOleCache; - HRESULT hr = m_rOwnDocument.GetDefHandler()->QueryInterface( IID_IOleCache, reinterpret_cast<void**>(&pIOleCache) ); + sal::systools::COMReference< IOleCache > pIOleCache(m_rOwnDocument.GetDefHandler(), sal::systools::COM_QUERY); ULONGGuard aGuard( &m_rOwnDocument.m_nCallsOnStack ); // avoid reentrance problem - if ( SUCCEEDED( hr ) && pIOleCache ) + if ( pIOleCache ) return pIOleCache->EnumCache( ppenumSTATDATA ); } @@ -1732,11 +1648,10 @@ COM_DECLSPEC_NOTHROW STDMETHODIMP InprocEmbedDocument_Impl::InternalCacheWrapper { if ( m_rOwnDocument.CheckDefHandler() ) { - ComSmart< IOleCache > pIOleCache; - HRESULT hr = m_rOwnDocument.GetDefHandler()->QueryInterface( IID_IOleCache, reinterpret_cast<void**>(&pIOleCache) ); + sal::systools::COMReference< IOleCache > pIOleCache(m_rOwnDocument.GetDefHandler(), sal::systools::COM_QUERY); ULONGGuard aGuard( &m_rOwnDocument.m_nCallsOnStack ); // avoid reentrance problem - if ( SUCCEEDED( hr ) && pIOleCache ) + if ( pIOleCache ) return pIOleCache->InitCache( pDataObject ); } @@ -1748,11 +1663,10 @@ COM_DECLSPEC_NOTHROW STDMETHODIMP InprocEmbedDocument_Impl::InternalCacheWrapper { if ( m_rOwnDocument.CheckDefHandler() ) { - ComSmart< IOleCache > pIOleCache; - HRESULT hr = m_rOwnDocument.GetDefHandler()->QueryInterface( IID_IOleCache, reinterpret_cast<void**>(&pIOleCache) ); + sal::systools::COMReference< IOleCache > pIOleCache(m_rOwnDocument.GetDefHandler(), sal::systools::COM_QUERY); ULONGGuard aGuard( &m_rOwnDocument.m_nCallsOnStack ); // avoid reentrance problem - if ( SUCCEEDED( hr ) && pIOleCache ) + if ( pIOleCache ) return pIOleCache->SetData( pformatetc, pmedium, fRelease ); } @@ -1765,11 +1679,10 @@ COM_DECLSPEC_NOTHROW STDMETHODIMP InprocEmbedDocument_Impl::InternalCacheWrapper { if ( m_rOwnDocument.CheckDefHandler() ) { - ComSmart< IOleCache2 > pIOleCache2; - HRESULT hr = m_rOwnDocument.GetDefHandler()->QueryInterface( IID_IOleCache2, reinterpret_cast<void**>(&pIOleCache2) ); + sal::systools::COMReference< IOleCache2 > pIOleCache2(m_rOwnDocument.GetDefHandler(), sal::systools::COM_QUERY); ULONGGuard aGuard( &m_rOwnDocument.m_nCallsOnStack ); // avoid reentrance problem - if ( SUCCEEDED( hr ) && pIOleCache2 ) + if ( pIOleCache2 ) return pIOleCache2->UpdateCache( pDataObject, grfUpdf, pReserved ); } @@ -1781,11 +1694,10 @@ COM_DECLSPEC_NOTHROW STDMETHODIMP InprocEmbedDocument_Impl::InternalCacheWrapper { if ( m_rOwnDocument.CheckDefHandler() ) { - ComSmart< IOleCache2 > pIOleCache2; - HRESULT hr = m_rOwnDocument.GetDefHandler()->QueryInterface( IID_IOleCache2, reinterpret_cast<void**>(&pIOleCache2) ); + sal::systools::COMReference< IOleCache2 > pIOleCache2(m_rOwnDocument.GetDefHandler(), sal::systools::COM_QUERY); ULONGGuard aGuard( &m_rOwnDocument.m_nCallsOnStack ); // avoid reentrance problem - if ( SUCCEEDED( hr ) && pIOleCache2 ) + if ( pIOleCache2 ) return pIOleCache2->DiscardCache( dwDiscardOptions ); } diff --git a/embedserv/source/inprocserv/inprocembobj.h b/embedserv/source/inprocserv/inprocembobj.h index 8b0b8bd89e92..8591a56c3e87 100644 --- a/embedserv/source/inprocserv/inprocembobj.h +++ b/embedserv/source/inprocserv/inprocembobj.h @@ -26,7 +26,7 @@ #include <windows.h> #include <oleidl.h> -#include "smartpointer.hxx" +#include <systools/win32/comtools.hxx> #include "advisesink.hxx" #define DEFAULT_ARRAY_LEN 256 @@ -69,24 +69,24 @@ class InprocEmbedDocument_Impl : public InprocCountedObject_Impl GUID m_guid; - ComSmart< IUnknown > m_pDefHandler; + sal::systools::COMReference< IUnknown > m_pDefHandler; InitModes m_nInitMode; DWORD m_nFileOpenMode; wchar_t* m_pFileName; - ComSmart< IStorage > m_pStorage; + sal::systools::COMReference< IStorage > m_pStorage; - ComSmart< IOleClientSite > m_pClientSite; - ComSmart< IOleContainer > m_pOleContainer; + sal::systools::COMReference< IOleClientSite > m_pClientSite; + sal::systools::COMReference< IOleContainer > m_pOleContainer; ULONG m_nCallsOnStack; // the listeners have wrappers that are directly connected to the object and call the listeners, // the wrappers will be reconnected correctly to the new default inprocess holder object - ComSmart< OleWrapperAdviseSink > m_pOleAdvises[DEFAULT_ARRAY_LEN]; - ComSmart< OleWrapperAdviseSink > m_pDataAdvises[DEFAULT_ARRAY_LEN]; - ComSmart< OleWrapperAdviseSink > m_pViewAdvise; + sal::systools::COMReference< OleWrapperAdviseSink > m_pOleAdvises[DEFAULT_ARRAY_LEN]; + sal::systools::COMReference< OleWrapperAdviseSink > m_pDataAdvises[DEFAULT_ARRAY_LEN]; + sal::systools::COMReference< OleWrapperAdviseSink > m_pViewAdvise; class InternalCacheWrapper final: public IOleCache2 { @@ -134,7 +134,7 @@ public: {} BOOL CheckDefHandler(); - ComSmart< IUnknown >& GetDefHandler() { return m_pDefHandler; } + sal::systools::COMReference< IUnknown >& GetDefHandler() { return m_pDefHandler; } /* IUnknown methods */ STDMETHOD(QueryInterface)(REFIID riid, void ** ppvObj) override; diff --git a/embedserv/source/inprocserv/smartpointer.hxx b/embedserv/source/inprocserv/smartpointer.hxx deleted file mode 100644 index d5673b4415c7..000000000000 --- a/embedserv/source/inprocserv/smartpointer.hxx +++ /dev/null @@ -1,144 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/* - * This file is part of the LibreOffice project. - * - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. - * - * This file incorporates work covered by the following license notice: - * - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed - * with this work for additional information regarding copyright - * ownership. The ASF licenses this file to you under the Apache - * License, Version 2.0 (the "License"); you may not use this file - * except in compliance with the License. You may obtain a copy of - * the License at http://www.apache.org/licenses/LICENSE-2.0 . - */ - -#ifndef INCLUDED_EMBEDSERV_SOURCE_INPROCSERV_SMARTPOINTER_HXX -#define INCLUDED_EMBEDSERV_SOURCE_INPROCSERV_SMARTPOINTER_HXX - -namespace inprocserv{ - -template< class T > class ComSmart -{ - T* m_pInterface; - - void OwnRelease() - { - if ( m_pInterface ) - { - T* pInterface = m_pInterface; - m_pInterface = nullptr; - pInterface->Release(); - } - } - -public: - ComSmart() - : m_pInterface( nullptr ) - {} - - ComSmart( const ComSmart<T>& rObj ) - : m_pInterface( rObj.m_pInterface ) - { - if ( m_pInterface != nullptr ) - m_pInterface->AddRef(); - } - - explicit ComSmart( T* pInterface ) - : m_pInterface( pInterface ) - { - if ( m_pInterface != nullptr ) - m_pInterface->AddRef(); - } - - ~ComSmart() - { - OwnRelease(); - } - - ComSmart& operator=( const ComSmart<T>& rObj ) - { - if(this == &rObj) - return *this; - - OwnRelease(); - - m_pInterface = rObj.m_pInterface; - - if ( m_pInterface != nullptr ) - m_pInterface->AddRef(); - - return *this; - } - - ComSmart<T>& operator=( T* pInterface ) - { - OwnRelease(); - - m_pInterface = pInterface; - - if ( m_pInterface != nullptr ) - m_pInterface->AddRef(); - - return *this; - } - - explicit operator bool() const - { - return m_pInterface != nullptr; - } - - T* get() const - { - return m_pInterface; - } - - T& operator*() const - { - return *m_pInterface; - } - - T** operator&() - { - OwnRelease(); - - m_pInterface = nullptr; - - return &m_pInterface; - } - - T* operator->() const - { - return m_pInterface; - } - - BOOL operator==( const ComSmart<T>& rObj ) const - { - return ( m_pInterface == rObj.m_pInterface ); - } - - BOOL operator!=( const ComSmart<T>& rObj ) const - { - return ( m_pInterface != rObj.m_pInterface ); - } - - bool operator==( const T* pInterface ) const - { - return ( m_pInterface == pInterface ); - } - - BOOL operator!=( const T* pInterface ) const - { - return ( m_pInterface != pInterface ); - } -}; - -} // namespace inprocserv - -#endif - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |