1*2c696243SAndrew Rist /************************************************************** 2cdf0e10cSrcweir * 3*2c696243SAndrew Rist * Licensed to the Apache Software Foundation (ASF) under one 4*2c696243SAndrew Rist * or more contributor license agreements. See the NOTICE file 5*2c696243SAndrew Rist * distributed with this work for additional information 6*2c696243SAndrew Rist * regarding copyright ownership. The ASF licenses this file 7*2c696243SAndrew Rist * to you under the Apache License, Version 2.0 (the 8*2c696243SAndrew Rist * "License"); you may not use this file except in compliance 9*2c696243SAndrew Rist * with the License. You may obtain a copy of the License at 10*2c696243SAndrew Rist * 11*2c696243SAndrew Rist * http://www.apache.org/licenses/LICENSE-2.0 12*2c696243SAndrew Rist * 13*2c696243SAndrew Rist * Unless required by applicable law or agreed to in writing, 14*2c696243SAndrew Rist * software distributed under the License is distributed on an 15*2c696243SAndrew Rist * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16*2c696243SAndrew Rist * KIND, either express or implied. See the License for the 17*2c696243SAndrew Rist * specific language governing permissions and limitations 18*2c696243SAndrew Rist * under the License. 19*2c696243SAndrew Rist * 20*2c696243SAndrew Rist *************************************************************/ 21*2c696243SAndrew Rist 22*2c696243SAndrew Rist 23cdf0e10cSrcweir 24cdf0e10cSrcweir // MARKER(update_precomp.py): autogen include statement, do not remove 25cdf0e10cSrcweir #include "precompiled_scripting.hxx" 26cdf0e10cSrcweir #include "basmethnode.hxx" 27cdf0e10cSrcweir #include <com/sun/star/beans/PropertyAttribute.hpp> 28cdf0e10cSrcweir #include <com/sun/star/frame/XDesktop.hpp> 29cdf0e10cSrcweir #include <com/sun/star/frame/XDispatchHelper.hpp> 30cdf0e10cSrcweir #include <com/sun/star/frame/XDispatchProvider.hpp> 31cdf0e10cSrcweir #include <com/sun/star/lang/XMultiComponentFactory.hpp> 32cdf0e10cSrcweir #include <com/sun/star/script/browse/BrowseNodeTypes.hpp> 33cdf0e10cSrcweir #include <vos/mutex.hxx> 34cdf0e10cSrcweir #include <vcl/svapp.hxx> 35cdf0e10cSrcweir #include <basic/sbstar.hxx> 36cdf0e10cSrcweir #include <basic/sbmeth.hxx> 37cdf0e10cSrcweir #include <basic/sbmod.hxx> 38cdf0e10cSrcweir 39cdf0e10cSrcweir #include <util/MiscUtils.hxx> 40cdf0e10cSrcweir 41cdf0e10cSrcweir using namespace ::com::sun::star; 42cdf0e10cSrcweir using namespace ::com::sun::star::lang; 43cdf0e10cSrcweir using namespace ::com::sun::star::uno; 44cdf0e10cSrcweir using namespace ::com::sun::star::beans; 45cdf0e10cSrcweir using namespace ::comphelper; 46cdf0e10cSrcweir using namespace ::com::sun::star::script; 47cdf0e10cSrcweir using namespace ::sf_misc; 48cdf0e10cSrcweir 49cdf0e10cSrcweir #define BASPROV_PROPERTY_ID_URI 1 50cdf0e10cSrcweir #define BASPROV_PROPERTY_ID_EDITABLE 2 51cdf0e10cSrcweir 52cdf0e10cSrcweir #define BASPROV_PROPERTY_URI ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "URI" ) ) 53cdf0e10cSrcweir #define BASPROV_PROPERTY_EDITABLE ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Editable" ) ) 54cdf0e10cSrcweir 55cdf0e10cSrcweir #define BASPROV_DEFAULT_ATTRIBS() PropertyAttribute::BOUND | PropertyAttribute::TRANSIENT | PropertyAttribute::READONLY 56cdf0e10cSrcweir 57cdf0e10cSrcweir 58cdf0e10cSrcweir //......................................................................... 59cdf0e10cSrcweir namespace basprov 60cdf0e10cSrcweir { 61cdf0e10cSrcweir //......................................................................... 62cdf0e10cSrcweir 63cdf0e10cSrcweir // ============================================================================= 64cdf0e10cSrcweir // BasicMethodNodeImpl 65cdf0e10cSrcweir // ============================================================================= 66cdf0e10cSrcweir BasicMethodNodeImpl(const Reference<XComponentContext> & rxContext,const::rtl::OUString & sScriptingContext,SbMethod * pMethod,bool isAppScript)67cdf0e10cSrcweir BasicMethodNodeImpl::BasicMethodNodeImpl( const Reference< XComponentContext >& rxContext, 68cdf0e10cSrcweir const ::rtl::OUString& sScriptingContext, SbMethod* pMethod, bool isAppScript ) 69cdf0e10cSrcweir : ::scripting_helper::OBroadcastHelperHolder( m_aMutex ) 70cdf0e10cSrcweir ,OPropertyContainer( GetBroadcastHelper() ) 71cdf0e10cSrcweir ,m_xContext( rxContext ) 72cdf0e10cSrcweir ,m_sScriptingContext( sScriptingContext ) 73cdf0e10cSrcweir ,m_pMethod( pMethod ) 74cdf0e10cSrcweir ,m_bIsAppScript( isAppScript ) 75cdf0e10cSrcweir ,m_bEditable( sal_True ) 76cdf0e10cSrcweir { 77cdf0e10cSrcweir if ( m_pMethod ) 78cdf0e10cSrcweir { 79cdf0e10cSrcweir SbModule* pModule = m_pMethod->GetModule(); 80cdf0e10cSrcweir if ( pModule ) 81cdf0e10cSrcweir { 82cdf0e10cSrcweir StarBASIC* pBasic = static_cast< StarBASIC* >( pModule->GetParent() ); 83cdf0e10cSrcweir if ( pBasic ) 84cdf0e10cSrcweir { 85cdf0e10cSrcweir m_sURI = ::rtl::OUString::createFromAscii( "vnd.sun.star.script:" ); 86cdf0e10cSrcweir m_sURI += pBasic->GetName(); 87cdf0e10cSrcweir m_sURI += ::rtl::OUString::createFromAscii( "." ); 88cdf0e10cSrcweir m_sURI += pModule->GetName(); 89cdf0e10cSrcweir m_sURI += ::rtl::OUString::createFromAscii( "." ); 90cdf0e10cSrcweir m_sURI += m_pMethod->GetName(); 91cdf0e10cSrcweir m_sURI += ::rtl::OUString::createFromAscii( "?language=Basic&location=" ); 92cdf0e10cSrcweir if ( m_bIsAppScript ) 93cdf0e10cSrcweir m_sURI += ::rtl::OUString::createFromAscii( "application" ); 94cdf0e10cSrcweir else 95cdf0e10cSrcweir m_sURI += ::rtl::OUString::createFromAscii( "document" ); 96cdf0e10cSrcweir } 97cdf0e10cSrcweir } 98cdf0e10cSrcweir } 99cdf0e10cSrcweir 100cdf0e10cSrcweir registerProperty( BASPROV_PROPERTY_URI, BASPROV_PROPERTY_ID_URI, BASPROV_DEFAULT_ATTRIBS(), &m_sURI, ::getCppuType( &m_sURI ) ); 101cdf0e10cSrcweir registerProperty( BASPROV_PROPERTY_EDITABLE, BASPROV_PROPERTY_ID_EDITABLE, BASPROV_DEFAULT_ATTRIBS(), &m_bEditable, ::getCppuType( &m_bEditable ) ); 102cdf0e10cSrcweir } 103cdf0e10cSrcweir 104cdf0e10cSrcweir // ----------------------------------------------------------------------------- 105cdf0e10cSrcweir ~BasicMethodNodeImpl()106cdf0e10cSrcweir BasicMethodNodeImpl::~BasicMethodNodeImpl() 107cdf0e10cSrcweir { 108cdf0e10cSrcweir } 109cdf0e10cSrcweir 110cdf0e10cSrcweir // ----------------------------------------------------------------------------- 111cdf0e10cSrcweir // XInterface 112cdf0e10cSrcweir // ----------------------------------------------------------------------------- 113cdf0e10cSrcweir IMPLEMENT_FORWARD_XINTERFACE2(BasicMethodNodeImpl,BasicMethodNodeImpl_BASE,OPropertyContainer)114cdf0e10cSrcweir IMPLEMENT_FORWARD_XINTERFACE2( BasicMethodNodeImpl, BasicMethodNodeImpl_BASE, OPropertyContainer ) 115cdf0e10cSrcweir 116cdf0e10cSrcweir // ----------------------------------------------------------------------------- 117cdf0e10cSrcweir // XTypeProvider 118cdf0e10cSrcweir // ----------------------------------------------------------------------------- 119cdf0e10cSrcweir 120cdf0e10cSrcweir IMPLEMENT_FORWARD_XTYPEPROVIDER2( BasicMethodNodeImpl, BasicMethodNodeImpl_BASE, OPropertyContainer ) 121cdf0e10cSrcweir 122cdf0e10cSrcweir // ----------------------------------------------------------------------------- 123cdf0e10cSrcweir // XBrowseNode 124cdf0e10cSrcweir // ----------------------------------------------------------------------------- 125cdf0e10cSrcweir 126cdf0e10cSrcweir ::rtl::OUString BasicMethodNodeImpl::getName( ) throw (RuntimeException) 127cdf0e10cSrcweir { 128cdf0e10cSrcweir ::vos::OGuard aGuard( Application::GetSolarMutex() ); 129cdf0e10cSrcweir 130cdf0e10cSrcweir ::rtl::OUString sMethodName; 131cdf0e10cSrcweir if ( m_pMethod ) 132cdf0e10cSrcweir sMethodName = m_pMethod->GetName(); 133cdf0e10cSrcweir 134cdf0e10cSrcweir return sMethodName; 135cdf0e10cSrcweir } 136cdf0e10cSrcweir 137cdf0e10cSrcweir // ----------------------------------------------------------------------------- 138cdf0e10cSrcweir getChildNodes()139cdf0e10cSrcweir Sequence< Reference< browse::XBrowseNode > > BasicMethodNodeImpl::getChildNodes( ) throw (RuntimeException) 140cdf0e10cSrcweir { 141cdf0e10cSrcweir ::vos::OGuard aGuard( Application::GetSolarMutex() ); 142cdf0e10cSrcweir 143cdf0e10cSrcweir return Sequence< Reference< browse::XBrowseNode > >(); 144cdf0e10cSrcweir } 145cdf0e10cSrcweir 146cdf0e10cSrcweir // ----------------------------------------------------------------------------- 147cdf0e10cSrcweir hasChildNodes()148cdf0e10cSrcweir sal_Bool BasicMethodNodeImpl::hasChildNodes( ) throw (RuntimeException) 149cdf0e10cSrcweir { 150cdf0e10cSrcweir ::vos::OGuard aGuard( Application::GetSolarMutex() ); 151cdf0e10cSrcweir 152cdf0e10cSrcweir return sal_False; 153cdf0e10cSrcweir } 154cdf0e10cSrcweir 155cdf0e10cSrcweir // ----------------------------------------------------------------------------- 156cdf0e10cSrcweir getType()157cdf0e10cSrcweir sal_Int16 BasicMethodNodeImpl::getType( ) throw (RuntimeException) 158cdf0e10cSrcweir { 159cdf0e10cSrcweir ::vos::OGuard aGuard( Application::GetSolarMutex() ); 160cdf0e10cSrcweir 161cdf0e10cSrcweir return browse::BrowseNodeTypes::SCRIPT; 162cdf0e10cSrcweir } 163cdf0e10cSrcweir 164cdf0e10cSrcweir // ----------------------------------------------------------------------------- 165cdf0e10cSrcweir // OPropertySetHelper 166cdf0e10cSrcweir // ----------------------------------------------------------------------------- 167cdf0e10cSrcweir getInfoHelper()168cdf0e10cSrcweir ::cppu::IPropertyArrayHelper& BasicMethodNodeImpl::getInfoHelper( ) 169cdf0e10cSrcweir { 170cdf0e10cSrcweir return *getArrayHelper(); 171cdf0e10cSrcweir } 172cdf0e10cSrcweir 173cdf0e10cSrcweir // ----------------------------------------------------------------------------- 174cdf0e10cSrcweir // OPropertyArrayUsageHelper 175cdf0e10cSrcweir // ----------------------------------------------------------------------------- 176cdf0e10cSrcweir createArrayHelper() const177cdf0e10cSrcweir ::cppu::IPropertyArrayHelper* BasicMethodNodeImpl::createArrayHelper( ) const 178cdf0e10cSrcweir { 179cdf0e10cSrcweir Sequence< Property > aProps; 180cdf0e10cSrcweir describeProperties( aProps ); 181cdf0e10cSrcweir return new ::cppu::OPropertyArrayHelper( aProps ); 182cdf0e10cSrcweir } 183cdf0e10cSrcweir 184cdf0e10cSrcweir // ----------------------------------------------------------------------------- 185cdf0e10cSrcweir // XPropertySet 186cdf0e10cSrcweir // ----------------------------------------------------------------------------- 187cdf0e10cSrcweir getPropertySetInfo()188cdf0e10cSrcweir Reference< XPropertySetInfo > BasicMethodNodeImpl::getPropertySetInfo( ) throw (RuntimeException) 189cdf0e10cSrcweir { 190cdf0e10cSrcweir Reference< XPropertySetInfo > xInfo( createPropertySetInfo( getInfoHelper() ) ); 191cdf0e10cSrcweir return xInfo; 192cdf0e10cSrcweir } 193cdf0e10cSrcweir 194cdf0e10cSrcweir // ----------------------------------------------------------------------------- 195cdf0e10cSrcweir // XInvocation 196cdf0e10cSrcweir // ----------------------------------------------------------------------------- 197cdf0e10cSrcweir getIntrospection()198cdf0e10cSrcweir Reference< XIntrospectionAccess > BasicMethodNodeImpl::getIntrospection( ) throw (RuntimeException) 199cdf0e10cSrcweir { 200cdf0e10cSrcweir return Reference< XIntrospectionAccess >(); 201cdf0e10cSrcweir } 202cdf0e10cSrcweir 203cdf0e10cSrcweir // ----------------------------------------------------------------------------- 204cdf0e10cSrcweir invoke(const::rtl::OUString & aFunctionName,const Sequence<Any> & aParams,Sequence<sal_Int16> & aOutParamIndex,Sequence<Any> & aOutParam)205cdf0e10cSrcweir Any BasicMethodNodeImpl::invoke( const ::rtl::OUString& aFunctionName, const Sequence< Any >& aParams, 206cdf0e10cSrcweir Sequence< sal_Int16 >& aOutParamIndex, Sequence< Any >& aOutParam ) 207cdf0e10cSrcweir throw (IllegalArgumentException, script::CannotConvertException, 208cdf0e10cSrcweir reflection::InvocationTargetException, RuntimeException) 209cdf0e10cSrcweir { 210cdf0e10cSrcweir (void)aParams; 211cdf0e10cSrcweir (void)aOutParamIndex; 212cdf0e10cSrcweir (void)aOutParam; 213cdf0e10cSrcweir 214cdf0e10cSrcweir if ( aFunctionName == BASPROV_PROPERTY_EDITABLE ) 215cdf0e10cSrcweir { 216cdf0e10cSrcweir ::rtl::OUString sDocURL, sLibName, sModName; 217cdf0e10cSrcweir sal_uInt16 nLine1 = 0, nLine2; 218cdf0e10cSrcweir 219cdf0e10cSrcweir if ( !m_bIsAppScript ) 220cdf0e10cSrcweir { 221cdf0e10cSrcweir Reference< frame::XModel > xModel = MiscUtils::tDocUrlToModel( m_sScriptingContext ); 222cdf0e10cSrcweir 223cdf0e10cSrcweir if ( xModel.is() ) 224cdf0e10cSrcweir { 225cdf0e10cSrcweir sDocURL = xModel->getURL(); 226cdf0e10cSrcweir if ( sDocURL.getLength() == 0 ) 227cdf0e10cSrcweir { 228cdf0e10cSrcweir Sequence < PropertyValue > aProps = xModel->getArgs(); 229cdf0e10cSrcweir sal_Int32 nProps = aProps.getLength(); 230cdf0e10cSrcweir const PropertyValue* pProps = aProps.getConstArray(); 231cdf0e10cSrcweir for ( sal_Int32 i = 0; i < nProps; ++i ) 232cdf0e10cSrcweir { 233cdf0e10cSrcweir // TODO: according to MBA the property 'Title' may change in future 234cdf0e10cSrcweir if ( pProps[i].Name == ::rtl::OUString::createFromAscii( "Title" ) ) 235cdf0e10cSrcweir { 236cdf0e10cSrcweir pProps[i].Value >>= sDocURL; 237cdf0e10cSrcweir break; 238cdf0e10cSrcweir } 239cdf0e10cSrcweir } 240cdf0e10cSrcweir } 241cdf0e10cSrcweir } 242cdf0e10cSrcweir } 243cdf0e10cSrcweir 244cdf0e10cSrcweir if ( m_pMethod ) 245cdf0e10cSrcweir { 246cdf0e10cSrcweir m_pMethod->GetLineRange( nLine1, nLine2 ); 247cdf0e10cSrcweir SbModule* pModule = m_pMethod->GetModule(); 248cdf0e10cSrcweir if ( pModule ) 249cdf0e10cSrcweir { 250cdf0e10cSrcweir sModName = pModule->GetName(); 251cdf0e10cSrcweir StarBASIC* pBasic = static_cast< StarBASIC* >( pModule->GetParent() ); 252cdf0e10cSrcweir if ( pBasic ) 253cdf0e10cSrcweir sLibName = pBasic->GetName(); 254cdf0e10cSrcweir } 255cdf0e10cSrcweir } 256cdf0e10cSrcweir 257cdf0e10cSrcweir if ( m_xContext.is() ) 258cdf0e10cSrcweir { 259cdf0e10cSrcweir Reference< XMultiComponentFactory > xSMgr( m_xContext->getServiceManager() ); 260cdf0e10cSrcweir 261cdf0e10cSrcweir if ( xSMgr.is() ) 262cdf0e10cSrcweir { 263cdf0e10cSrcweir Reference< frame::XDesktop > xDesktop( xSMgr->createInstanceWithContext( 264cdf0e10cSrcweir ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.frame.Desktop" ) ), m_xContext ), UNO_QUERY ); 265cdf0e10cSrcweir 266cdf0e10cSrcweir if ( xDesktop.is() ) 267cdf0e10cSrcweir { 268cdf0e10cSrcweir Reference < frame::XDispatchProvider > xProv( xDesktop->getCurrentFrame(), UNO_QUERY ); 269cdf0e10cSrcweir 270cdf0e10cSrcweir if ( xProv.is() ) 271cdf0e10cSrcweir { 272cdf0e10cSrcweir Reference< frame::XDispatchHelper > xHelper( xSMgr->createInstanceWithContext( 273cdf0e10cSrcweir ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.frame.DispatchHelper" ) ), m_xContext ), UNO_QUERY ); 274cdf0e10cSrcweir 275cdf0e10cSrcweir if ( xHelper.is() ) 276cdf0e10cSrcweir { 277cdf0e10cSrcweir Sequence < PropertyValue > aArgs(7); 278cdf0e10cSrcweir aArgs[0].Name = ::rtl::OUString::createFromAscii( "Document" ); 279cdf0e10cSrcweir aArgs[0].Value <<= sDocURL; 280cdf0e10cSrcweir aArgs[1].Name = ::rtl::OUString::createFromAscii( "LibName" ); 281cdf0e10cSrcweir aArgs[1].Value <<= sLibName; 282cdf0e10cSrcweir aArgs[2].Name = ::rtl::OUString::createFromAscii( "Name" ); 283cdf0e10cSrcweir aArgs[2].Value <<= sModName; 284cdf0e10cSrcweir aArgs[3].Name = ::rtl::OUString::createFromAscii( "Type" ); 285cdf0e10cSrcweir aArgs[3].Value <<= ::rtl::OUString::createFromAscii( "Module" ); 286cdf0e10cSrcweir aArgs[4].Name = ::rtl::OUString::createFromAscii( "Line" ); 287cdf0e10cSrcweir aArgs[4].Value <<= static_cast< sal_uInt32 >( nLine1 ); 288cdf0e10cSrcweir xHelper->executeDispatch( xProv, ::rtl::OUString::createFromAscii( ".uno:BasicIDEAppear" ), ::rtl::OUString(), 0, aArgs ); 289cdf0e10cSrcweir } 290cdf0e10cSrcweir } 291cdf0e10cSrcweir } 292cdf0e10cSrcweir } 293cdf0e10cSrcweir } 294cdf0e10cSrcweir } 295cdf0e10cSrcweir else 296cdf0e10cSrcweir { 297cdf0e10cSrcweir throw IllegalArgumentException( 298cdf0e10cSrcweir ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "BasicMethodNodeImpl::invoke: function name not supported!" ) ), 299cdf0e10cSrcweir Reference< XInterface >(), 1 ); 300cdf0e10cSrcweir } 301cdf0e10cSrcweir 302cdf0e10cSrcweir return Any(); 303cdf0e10cSrcweir } 304cdf0e10cSrcweir 305cdf0e10cSrcweir // ----------------------------------------------------------------------------- 306cdf0e10cSrcweir setValue(const::rtl::OUString & aPropertyName,const Any & aValue)307cdf0e10cSrcweir void BasicMethodNodeImpl::setValue( const ::rtl::OUString& aPropertyName, const Any& aValue ) 308cdf0e10cSrcweir throw (UnknownPropertyException, script::CannotConvertException, 309cdf0e10cSrcweir reflection::InvocationTargetException, RuntimeException) 310cdf0e10cSrcweir { 311cdf0e10cSrcweir (void)aPropertyName; 312cdf0e10cSrcweir (void)aValue; 313cdf0e10cSrcweir 314cdf0e10cSrcweir throw UnknownPropertyException( 315cdf0e10cSrcweir ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "BasicMethodNodeImpl::setValue: property name is unknown!" ) ), 316cdf0e10cSrcweir Reference< XInterface >() ); 317cdf0e10cSrcweir } 318cdf0e10cSrcweir 319cdf0e10cSrcweir // ----------------------------------------------------------------------------- 320cdf0e10cSrcweir getValue(const::rtl::OUString & aPropertyName)321cdf0e10cSrcweir Any BasicMethodNodeImpl::getValue( const ::rtl::OUString& aPropertyName ) throw (UnknownPropertyException, RuntimeException) 322cdf0e10cSrcweir { 323cdf0e10cSrcweir (void)aPropertyName; 324cdf0e10cSrcweir 325cdf0e10cSrcweir throw UnknownPropertyException( 326cdf0e10cSrcweir ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "BasicMethodNodeImpl::getValue: property name is unknown!" ) ), 327cdf0e10cSrcweir Reference< XInterface >() ); 328cdf0e10cSrcweir } 329cdf0e10cSrcweir 330cdf0e10cSrcweir // ----------------------------------------------------------------------------- 331cdf0e10cSrcweir hasMethod(const::rtl::OUString & aName)332cdf0e10cSrcweir sal_Bool BasicMethodNodeImpl::hasMethod( const ::rtl::OUString& aName ) throw (RuntimeException) 333cdf0e10cSrcweir { 334cdf0e10cSrcweir sal_Bool bReturn = sal_False; 335cdf0e10cSrcweir if ( aName == BASPROV_PROPERTY_EDITABLE ) 336cdf0e10cSrcweir bReturn = sal_True; 337cdf0e10cSrcweir 338cdf0e10cSrcweir return bReturn; 339cdf0e10cSrcweir } 340cdf0e10cSrcweir 341cdf0e10cSrcweir // ----------------------------------------------------------------------------- 342cdf0e10cSrcweir hasProperty(const::rtl::OUString & aName)343cdf0e10cSrcweir sal_Bool BasicMethodNodeImpl::hasProperty( const ::rtl::OUString& aName ) throw (RuntimeException) 344cdf0e10cSrcweir { 345cdf0e10cSrcweir (void)aName; 346cdf0e10cSrcweir 347cdf0e10cSrcweir return sal_False; 348cdf0e10cSrcweir } 349cdf0e10cSrcweir 350cdf0e10cSrcweir // ----------------------------------------------------------------------------- 351cdf0e10cSrcweir 352cdf0e10cSrcweir //......................................................................... 353cdf0e10cSrcweir } // namespace basprov 354cdf0e10cSrcweir //......................................................................... 355