diff options
Diffstat (limited to 'stoc')
-rw-r--r-- | stoc/source/invocation/invocation.cxx | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/stoc/source/invocation/invocation.cxx b/stoc/source/invocation/invocation.cxx index 830ad61e33a6..68ea0ce3ccc3 100644 --- a/stoc/source/invocation/invocation.cxx +++ b/stoc/source/invocation/invocation.cxx @@ -458,8 +458,12 @@ sal_Bool Invocation_Impl::hasMethod( const OUString& Name ) sal_Bool Invocation_Impl::hasProperty( const OUString& Name ) { - if (!mbFromOLE && _xDirect.is()) - return _xDirect->hasProperty( Name ); + if (_xDirect.is()) + { + bool bRet = _xDirect->hasProperty( Name ); + if (bRet || !mbFromOLE) + return bRet; + } // PropertySet if( _xIntrospectionAccess.is() && _xIntrospectionAccess->hasProperty( Name, PropertyConcept::ALL ^ PropertyConcept::DANGEROUS ) ) @@ -473,8 +477,16 @@ sal_Bool Invocation_Impl::hasProperty( const OUString& Name ) Any Invocation_Impl::getValue( const OUString& PropertyName ) { - if (!mbFromOLE && _xDirect.is()) - return _xDirect->getValue( PropertyName ); + try + { + if (_xDirect.is()) + return _xDirect->getValue( PropertyName ); + } + catch (RuntimeException &) + { + if (!mbFromOLE) + throw; + } try { // PropertySet |