summaryrefslogtreecommitdiff
path: root/basic
diff options
context:
space:
mode:
authornpower Developer <npower@openoffice.org>2010-03-05 16:49:34 +0000
committernpower Developer <npower@openoffice.org>2010-03-05 16:49:34 +0000
commit5dd791e333d3f1a85bb5c1cf676af60580a0f3b0 (patch)
treec6c756f1690070da08391b4d7549563fafc31d20 /basic
parente0b98d2f4afb1861c568535418bf69b2cbfb0d1d (diff)
npower14miscfixes: #i103859#
Diffstat (limited to 'basic')
-rw-r--r--basic/source/classes/sbunoobj.cxx17
1 files changed, 17 insertions, 0 deletions
diff --git a/basic/source/classes/sbunoobj.cxx b/basic/source/classes/sbunoobj.cxx
index c33430ed57a0..e9d7adccdf92 100644
--- a/basic/source/classes/sbunoobj.cxx
+++ b/basic/source/classes/sbunoobj.cxx
@@ -1603,6 +1603,23 @@ bool checkUnoObjectType( SbUnoObject* pUnoObj,
break;
}
::rtl::OUString sClassName = xClass->getName();
+ if ( sClassName.equals( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.bridge.oleautomation.XAutomationObject" ) ) ) )
+ {
+ // there is a hack in the extensions/source/ole/oleobj.cxx to return the typename of the automation object, lets check if it
+ // matches
+ Reference< XInvocation > xInv( aToInspectObj, UNO_QUERY );
+ if ( xInv.is() )
+ {
+ rtl::OUString sTypeName;
+ xInv->getValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("$GetTypeName") ) ) >>= sTypeName;
+ if ( sTypeName.getLength() == 0 || sTypeName.equals( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("IDispatch") ) ) )
+ // can't check type, leave it pass
+ result = true;
+ else
+ result = sTypeName.equals( aClass );
+ }
+ break; // finished checking automation object
+ }
OSL_TRACE("Checking if object implements %s",
OUStringToOString( defaultNameSpace + aClass,
RTL_TEXTENCODING_UTF8 ).getStr() );