25#include <com/sun/star/beans/PropertyValue.hpp>
26#include <com/sun/star/beans/XPropertySet.hpp>
27#include <com/sun/star/container/XNameContainer.hpp>
28#include <com/sun/star/lang/XComponent.hpp>
29#include <com/sun/star/lang/WrappedTargetRuntimeException.hpp>
30#include <com/sun/star/uno/XComponentContext.hpp>
40const uno::Reference< ov::XHelperInterface >& xParent,
41const uno::Reference< uno::XComponentContext >& xContext,
const OUString& sDocCtxName )
43 , msDocCtxName( sDocCtxName )
47 uno::Reference< uno::XInterface > aSrvMgr;
48 if ( xContext.is() && xContext->getServiceManager().is() )
50 aSrvMgr = xContext->getServiceManager()->createInstanceWithContext(
"com.sun.star.comp.stoc.OServiceManagerWrapper" , xContext );
61 mxContext = ::cppu::createComponentContext(
69 uno::Reference< beans::XPropertySet >(
70 aSrvMgr, uno::UNO_QUERY_THROW )->
73 catch ( uno::RuntimeException & )
77 catch ( uno::Exception & )
80 throw lang::WrappedTargetRuntimeException(
81 (
"VbaGlobalsBase ctor, setting OServiceManagerWrapper"
82 " DefaultContext failed"),
83 uno::Reference< uno::XInterface >(), e);
91 uno::Reference< container::XNameContainer > xNameContainer(
mxContext, uno::UNO_QUERY );
92 if ( xNameContainer.is() )
99 uno::Reference< lang::XComponent > xComponent(
mxContext, uno::UNO_QUERY );
101 xComponent->dispose();
103 catch (
const uno::Exception& )
111 for (
const auto& rInitArg : aInitArgs )
113 uno::Reference< container::XNameContainer > xNameContainer(
mxContext, uno::UNO_QUERY_THROW );
116 xNameContainer->replaceByName(
gsApplication, rInitArg.Value );
117 uno::Reference< XHelperInterface > xParent( rInitArg.Value, uno::UNO_QUERY );
121 xNameContainer->replaceByName( rInitArg.Name, rInitArg.Value );
125uno::Reference< uno::XInterface > SAL_CALL
128 uno::Reference< uno::XInterface > xReturn;
132 uno::Reference< container::XNameContainer > xNameContainer(
mxContext, uno::UNO_QUERY );
136 xReturn =
mxContext->getServiceManager()->createInstanceWithContext( aServiceSpecifier,
mxContext );
140uno::Reference< uno::XInterface > SAL_CALL
144 uno::Reference< uno::XInterface > xReturn;
148 uno::Reference< container::XNameContainer > xNameContainer(
mxContext, uno::UNO_QUERY );
152 xReturn =
mxContext->getServiceManager()->createInstanceWithArgumentsAndContext( aServiceSpecifier, Arguments,
mxContext );
156uno::Sequence< OUString > SAL_CALL
159 uno::Sequence< OUString > serviceNames {
"ooo.vba.msforms.UserForm" };
css::uno::Reference< css::uno::XComponentContext > mxContext
css::uno::WeakReference< ov::XHelperInterface > mxParent
VbaGlobalsBase(const css::uno::Reference< ov::XHelperInterface > &xParent, const css::uno::Reference< css::uno::XComponentContext > &xContext, const OUString &sDocCtxName)
const OUString msDocCtxName
virtual css::uno::Reference< css::uno::XInterface > SAL_CALL createInstanceWithArguments(const OUString &ServiceSpecifier, const css::uno::Sequence< css::uno::Any > &Arguments) override
void init(const css::uno::Sequence< css::beans::PropertyValue > &aInitArgs)
bool hasServiceName(const OUString &serviceName)
virtual ~VbaGlobalsBase() override
virtual css::uno::Reference< css::uno::XInterface > SAL_CALL createInstance(const OUString &aServiceSpecifier) override
virtual css::uno::Sequence< OUString > SAL_CALL getAvailableServiceNames() override
#define SAL_N_ELEMENTS(arr)
void setPropertyValue(tPropertyValueMap &rOutMap, tPropertyValueMapKey key, const Value &value)
sal_Int32 findValue(const css::uno::Sequence< T1 > &_rList, const T2 &_rValue)
Any SAL_CALL getCaughtException()
constexpr OUStringLiteral gsApplication(u"Application")