summaryrefslogtreecommitdiff
path: root/embeddedobj/source/msole/olemisc.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'embeddedobj/source/msole/olemisc.cxx')
-rw-r--r--embeddedobj/source/msole/olemisc.cxx91
1 files changed, 55 insertions, 36 deletions
diff --git a/embeddedobj/source/msole/olemisc.cxx b/embeddedobj/source/msole/olemisc.cxx
index 90041729d03d..4f50aedeba5f 100644
--- a/embeddedobj/source/msole/olemisc.cxx
+++ b/embeddedobj/source/msole/olemisc.cxx
@@ -28,33 +28,33 @@
#include <com/sun/star/lang/XComponent.hpp>
#include <com/sun/star/lang/DisposedException.hpp>
-#include <cppuhelper/interfacecontainer.h>
+#include <comphelper/multicontainer2.hxx>
#include <comphelper/sequenceashashmap.hxx>
+#include <cppuhelper/supportsservice.hxx>
+#include <osl/diagnose.h>
#include <oleembobj.hxx>
+#include <utility>
#include "olepersist.hxx"
#include "ownview.hxx"
-#if defined(_WIN32)
#include "olecomponent.hxx"
-#endif
using namespace ::com::sun::star;
-OleEmbeddedObject::OleEmbeddedObject( const uno::Reference< uno::XComponentContext >& xContext,
+OleEmbeddedObject::OleEmbeddedObject( uno::Reference< uno::XComponentContext > xContext,
const uno::Sequence< sal_Int8 >& aClassID,
- const OUString& aClassName )
-: m_pOleComponent( nullptr )
-, m_bReadOnly( false )
+ OUString aClassName )
+: m_bReadOnly( false )
, m_bDisposed( false )
, m_nObjectState( -1 )
, m_nTargetState( -1 )
, m_nUpdateMode ( embed::EmbedUpdateModes::ALWAYS_UPDATE )
-, m_xContext( xContext )
+, m_xContext(std::move( xContext ))
, m_aClassID( aClassID )
-, m_aClassName( aClassName )
+, m_aClassName(std::move( aClassName ))
, m_bWaitSaveCompleted( false )
, m_bNewVisReplInStream( true )
, m_bStoreLoaded( false )
@@ -77,14 +77,13 @@ OleEmbeddedObject::OleEmbeddedObject( const uno::Reference< uno::XComponentConte
// In case of loading from persistent entry the classID of the object
// will be retrieved from the entry, during construction it is unknown
-OleEmbeddedObject::OleEmbeddedObject( const uno::Reference< uno::XComponentContext >& xContext, bool bLink )
-: m_pOleComponent( nullptr )
-, m_bReadOnly( false )
+OleEmbeddedObject::OleEmbeddedObject( uno::Reference< uno::XComponentContext > xContext, bool bLink )
+: m_bReadOnly( false )
, m_bDisposed( false )
, m_nObjectState( -1 )
, m_nTargetState( -1 )
, m_nUpdateMode( embed::EmbedUpdateModes::ALWAYS_UPDATE )
-, m_xContext( xContext )
+, m_xContext(std::move( xContext ))
, m_bWaitSaveCompleted( false )
, m_bNewVisReplInStream( true )
, m_bStoreLoaded( false )
@@ -107,8 +106,7 @@ OleEmbeddedObject::OleEmbeddedObject( const uno::Reference< uno::XComponentConte
// this constructor let object be initialized from clipboard
OleEmbeddedObject::OleEmbeddedObject( const uno::Reference< uno::XComponentContext >& xContext )
-: m_pOleComponent( nullptr )
-, m_bReadOnly( false )
+: m_bReadOnly( false )
, m_bDisposed( false )
, m_nObjectState( -1 )
, m_nTargetState( -1 )
@@ -161,14 +159,14 @@ void OleEmbeddedObject::MakeEventListenerNotification_Impl( const OUString& aEve
if ( !m_pInterfaceContainer )
return;
- ::cppu::OInterfaceContainerHelper* pContainer =
- m_pInterfaceContainer->getContainer(
+ comphelper::OInterfaceContainerHelper2* pContainer =
+ m_pInterfaceContainer->getContainer(
cppu::UnoType<document::XEventListener>::get());
if ( pContainer == nullptr )
return;
document::EventObject aEvent( static_cast< ::cppu::OWeakObject* >( this ), aEventName );
- ::cppu::OInterfaceIteratorHelper pIterator(*pContainer);
+ comphelper::OInterfaceIteratorHelper2 pIterator(*pContainer);
while (pIterator.hasMoreElements())
{
try
@@ -186,12 +184,12 @@ void OleEmbeddedObject::StateChangeNotification_Impl( bool bBeforeChange, sal_In
{
if ( m_pInterfaceContainer )
{
- ::cppu::OInterfaceContainerHelper* pContainer = m_pInterfaceContainer->getContainer(
+ comphelper::OInterfaceContainerHelper2* pContainer = m_pInterfaceContainer->getContainer(
cppu::UnoType<embed::XStateChangeListener>::get());
if ( pContainer != nullptr )
{
lang::EventObject aSource( static_cast< ::cppu::OWeakObject* >( this ) );
- ::cppu::OInterfaceIteratorHelper pIterator(*pContainer);
+ comphelper::OInterfaceIteratorHelper2 pIterator(*pContainer);
while (pIterator.hasMoreElements())
{
@@ -245,8 +243,7 @@ void OleEmbeddedObject::GetRidOfComponent()
}
m_pOleComponent->disconnectEmbeddedObject();
- m_pOleComponent->release();
- m_pOleComponent = nullptr;
+ m_pOleComponent.clear();
}
#endif
}
@@ -292,6 +289,15 @@ void OleEmbeddedObject::Dispose()
}
m_xParentStorage.clear();
+ m_xClientSite.clear();
+ m_xClosePreventer.clear();
+ m_xNewCachedVisRepl.clear();
+ m_xNewParentStorage.clear();
+ m_xNewObjectStream.clear();
+ m_xCachedVisualRepresentation.clear();
+ m_xWrappedObject.clear();
+ m_xParent.clear();
+ m_pOleComponent.clear();
m_bDisposed = true;
}
@@ -376,13 +382,13 @@ uno::Reference< util::XCloseable > SAL_CALL OleEmbeddedObject::getComponent()
}
#if defined(_WIN32)
- if (m_pOleComponent != nullptr)
+ if (m_pOleComponent.is())
{
- return uno::Reference< util::XCloseable >( static_cast< ::cppu::OWeakObject* >( m_pOleComponent ), uno::UNO_QUERY );
+ return uno::Reference< util::XCloseable >( m_pOleComponent );
}
#endif
- assert(m_pOleComponent == nullptr);
+ assert(!m_pOleComponent.is());
// TODO/LATER: Is it correct???
return uno::Reference< util::XCloseable >();
// throw uno::RuntimeException(); // TODO
@@ -405,7 +411,7 @@ void SAL_CALL OleEmbeddedObject::addStateChangeListener( const uno::Reference< e
throw lang::DisposedException(); // TODO
if ( !m_pInterfaceContainer )
- m_pInterfaceContainer.reset(new ::cppu::OMultiTypeInterfaceContainerHelper( m_aMutex ));
+ m_pInterfaceContainer.reset(new comphelper::OMultiTypeInterfaceContainerHelper2( m_aMutex ));
m_pInterfaceContainer->addInterface( cppu::UnoType<embed::XStateChangeListener>::get(),
xListener );
@@ -452,11 +458,11 @@ void SAL_CALL OleEmbeddedObject::close( sal_Bool bDeliverOwnership )
if ( m_pInterfaceContainer )
{
- ::cppu::OInterfaceContainerHelper* pContainer =
+ comphelper::OInterfaceContainerHelper2* pContainer =
m_pInterfaceContainer->getContainer( cppu::UnoType<util::XCloseListener>::get());
if ( pContainer != nullptr )
{
- ::cppu::OInterfaceIteratorHelper pIterator(*pContainer);
+ comphelper::OInterfaceIteratorHelper2 pIterator(*pContainer);
while (pIterator.hasMoreElements())
{
try
@@ -474,7 +480,7 @@ void SAL_CALL OleEmbeddedObject::close( sal_Bool bDeliverOwnership )
cppu::UnoType<util::XCloseListener>::get());
if ( pContainer != nullptr )
{
- ::cppu::OInterfaceIteratorHelper pCloseIterator(*pContainer);
+ comphelper::OInterfaceIteratorHelper2 pCloseIterator(*pContainer);
while (pCloseIterator.hasMoreElements())
{
try
@@ -510,7 +516,7 @@ void SAL_CALL OleEmbeddedObject::addCloseListener( const uno::Reference< util::X
throw lang::DisposedException(); // TODO
if ( !m_pInterfaceContainer )
- m_pInterfaceContainer.reset(new ::cppu::OMultiTypeInterfaceContainerHelper( m_aMutex ));
+ m_pInterfaceContainer.reset(new comphelper::OMultiTypeInterfaceContainerHelper2( m_aMutex ));
m_pInterfaceContainer->addInterface( cppu::UnoType<util::XCloseListener>::get(), xListener );
}
@@ -555,7 +561,7 @@ void SAL_CALL OleEmbeddedObject::addEventListener( const uno::Reference< documen
throw lang::DisposedException(); // TODO
if ( !m_pInterfaceContainer )
- m_pInterfaceContainer.reset(new ::cppu::OMultiTypeInterfaceContainerHelper( m_aMutex ));
+ m_pInterfaceContainer.reset(new comphelper::OMultiTypeInterfaceContainerHelper2( m_aMutex ));
m_pInterfaceContainer->addInterface( cppu::UnoType<document::XEventListener>::get(), xListener );
}
@@ -681,11 +687,24 @@ void OleEmbeddedObject::initialize(const uno::Sequence<uno::Any>& rArguments)
return;
comphelper::SequenceAsHashMap aValues(rArguments[0]);
- for (const auto& rValue : aValues)
- {
- if (rValue.first == "StreamReadOnly")
- rValue.second >>= m_bStreamReadOnly;
- }
+ auto it = aValues.find("StreamReadOnly");
+ if (it != aValues.end())
+ it->second >>= m_bStreamReadOnly;
+}
+
+OUString SAL_CALL OleEmbeddedObject::getImplementationName()
+{
+ return "com.sun.star.comp.embed.OleEmbeddedObject";
+}
+
+sal_Bool SAL_CALL OleEmbeddedObject::supportsService(const OUString& ServiceName)
+{
+ return cppu::supportsService(this, ServiceName);
+}
+
+uno::Sequence<OUString> SAL_CALL OleEmbeddedObject::getSupportedServiceNames()
+{
+ return { "com.sun.star.comp.embed.OleEmbeddedObject" };
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */