summaryrefslogtreecommitdiff
path: root/embedserv
diff options
context:
space:
mode:
authorMike Kaganski <mike.kaganski@collabora.com>2021-12-18 18:41:00 +0300
committerMike Kaganski <mike.kaganski@collabora.com>2021-12-18 21:23:42 +0100
commit6689f49b272f43d8cd032d1aab57aaffca619ec7 (patch)
tree218e89e1d1f9c5ce11d92371beaa6a90ba2a1c52 /embedserv
parent8e300570d5ad745441d560e7b0ea2e7cb66fa21e (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.cxx6
-rw-r--r--embedserv/source/inprocserv/advisesink.hxx15
-rw-r--r--embedserv/source/inprocserv/inprocembobj.cxx424
-rw-r--r--embedserv/source/inprocserv/inprocembobj.h18
-rw-r--r--embedserv/source/inprocserv/smartpointer.hxx144
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: */