diff options
author | Frank Schoenheit [fs] <frank.schoenheit@sun.com> | 2010-09-17 08:00:05 +0200 |
---|---|---|
committer | Frank Schoenheit [fs] <frank.schoenheit@sun.com> | 2010-09-17 08:00:05 +0200 |
commit | 92f5bd3418d9da6d58665ec6093b8990f73bf53d (patch) | |
tree | b4e649293dcc745000903f30723f5c5bdf966ece /comphelper | |
parent | 104f2f23ffda13dc8a49b4bdc392bcfdc527c580 (diff) |
dba34a: querydeep.* is not used anymore
Diffstat (limited to 'comphelper')
-rw-r--r-- | comphelper/inc/comphelper/querydeep.hxx | 484 | ||||
-rw-r--r-- | comphelper/source/misc/makefile.mk | 1 | ||||
-rw-r--r-- | comphelper/source/misc/querydeep.cxx | 76 |
3 files changed, 0 insertions, 561 deletions
diff --git a/comphelper/inc/comphelper/querydeep.hxx b/comphelper/inc/comphelper/querydeep.hxx deleted file mode 100644 index 4115412d8d6c..000000000000 --- a/comphelper/inc/comphelper/querydeep.hxx +++ /dev/null @@ -1,484 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -#ifndef _COMPHELPER_QUERYDEEPINTERFACE_HXX -#define _COMPHELPER_QUERYDEEPINTERFACE_HXX - -#include <com/sun/star/uno/XInterface.hpp> -#include <com/sun/star/uno/Reference.hxx> -#include <com/sun/star/uno/Type.hxx> - -/** */ //for docpp -namespace comphelper -{ - -//-------------------------------------------------------------------------------------------------------- -/** - * Inspect interfaces types whether they are related by inheritance. - *<BR> - * @return true if rType is derived from rBaseType - * @param rBaseType a <type>Type</type> of an interface. - * @param rType a <type>Type</type> of an interface. - */ -sal_Bool isDerivedFrom( - const ::com::sun::star::uno::Type & rBaseType, - const ::com::sun::star::uno::Type & rType ); - -//-------------------------------------------------------------------------------------------------------- -/** - * Inspect interface types whether they are related by inheritance. - *<BR> - * @return true if p is of a type derived from rBaseType - * @param rBaseType a <type>Type</type> of an interface. - * @param p a pointer to an interface. - */ -template <class Interface> -inline sal_Bool isDerivedFrom( - const ::com::sun::star::uno::Type& rBaseType, - Interface* /*p*/) -{ - return isDerivedFrom(rBaseType, Interface::static_type()); -} - -//-------------------------------------------------------------------------------------------------------- -// possible optimization ? -// Any aRet(::cppu::queryInterface(rType, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12)); -// if (aRet.hasValue()) -// return aRet; - -/** - * Inspect types and choose return proper interface. - *<BR> - * @param p1 a pointer to an interface. - */ -template< class Interface1 > -inline ::com::sun::star::uno::Any queryDeepInterface( - const ::com::sun::star::uno::Type & rType, - Interface1 * p1 ) -{ - if (isDerivedFrom(rType, Interface1::static_type())) - return ::com::sun::star::uno::Any( &p1, rType ); - else - return ::com::sun::star::uno::Any(); -} - -/** - * Inspect types and choose return proper interface. - *<BR> - * @param p1 a pointer to an interface. - * @param p2 a pointer to an interface. - */ -template< class Interface1, class Interface2 > -inline ::com::sun::star::uno::Any queryDeepInterface( - const ::com::sun::star::uno::Type & rType, - Interface1 * p1, Interface2 * p2 ) -{ - if (isDerivedFrom(rType, Interface1::static_type())) - return ::com::sun::star::uno::Any( &p1, rType ); - else if (isDerivedFrom(rType, Interface2::static_type())) - return ::com::sun::star::uno::Any( &p2, rType ); - else - return ::com::sun::star::uno::Any(); -} - -/** - * Inspect types and choose return proper interface. - *<BR> - * @param p1 a pointer to an interface. - * @param p2 a pointer to an interface. - * @param p3 a pointer to an interface. - */ -template< class Interface1, class Interface2, class Interface3 > -inline ::com::sun::star::uno::Any queryDeepInterface( - const ::com::sun::star::uno::Type & rType, - Interface1 * p1, Interface2 * p2, Interface3 * p3 ) -{ - if (isDerivedFrom(rType, Interface1::static_type())) - return ::com::sun::star::uno::Any( &p1, rType ); - else if (isDerivedFrom(rType, Interface2::static_type())) - return ::com::sun::star::uno::Any( &p2, rType ); - else if (isDerivedFrom(rType, Interface3::static_type())) - return ::com::sun::star::uno::Any( &p3, rType ); - else - return ::com::sun::star::uno::Any(); -} - -/** - * Inspect types and choose return proper interface. - *<BR> - * @param p1 a pointer to an interface. - * @param p2 a pointer to an interface. - * @param p3 a pointer to an interface. - * @param p4 a pointer to an interface. - */ -template< class Interface1, class Interface2, class Interface3, class Interface4 > -inline ::com::sun::star::uno::Any queryDeepInterface( - const ::com::sun::star::uno::Type & rType, - Interface1 * p1, Interface2 * p2, Interface3 * p3, Interface4 * p4 ) -{ - if (isDerivedFrom(rType, Interface1::static_type())) - return ::com::sun::star::uno::Any( &p1, rType ); - else if (isDerivedFrom(rType, Interface2::static_type())) - return ::com::sun::star::uno::Any( &p2, rType ); - else if (isDerivedFrom(rType, Interface3::static_type())) - return ::com::sun::star::uno::Any( &p3, rType ); - else if (isDerivedFrom(rType, Interface4::static_type())) - return ::com::sun::star::uno::Any( &p4, rType ); - else - return ::com::sun::star::uno::Any(); -} - -/** - * Inspect types and choose return proper interface. - *<BR> - * @param p1 a pointer to an interface. - * @param p2 a pointer to an interface. - * @param p3 a pointer to an interface. - * @param p4 a pointer to an interface. - * @param p5 a pointer to an interface. - */ -template< class Interface1, class Interface2, class Interface3, class Interface4, class Interface5 > -inline ::com::sun::star::uno::Any queryDeepInterface( - const ::com::sun::star::uno::Type & rType, - Interface1 * p1, Interface2 * p2, Interface3 * p3, Interface4 * p4, Interface5 * p5 ) -{ - if (isDerivedFrom(rType, Interface1::static_type())) - return ::com::sun::star::uno::Any( &p1, rType ); - else if (isDerivedFrom(rType, Interface2::static_type())) - return ::com::sun::star::uno::Any( &p2, rType ); - else if (isDerivedFrom(rType, Interface3::static_type())) - return ::com::sun::star::uno::Any( &p3, rType ); - else if (isDerivedFrom(rType, Interface4::static_type())) - return ::com::sun::star::uno::Any( &p4, rType ); - else if (isDerivedFrom(rType, Interface5::static_type())) - return ::com::sun::star::uno::Any( &p5, rType ); - else - return ::com::sun::star::uno::Any(); -} - -/** - * Inspect types and choose return proper interface. - *<BR> - * @param p1 a pointer to an interface. - * @param p2 a pointer to an interface. - * @param p3 a pointer to an interface. - * @param p4 a pointer to an interface. - * @param p5 a pointer to an interface. - * @param p6 a pointer to an interface. - */ -template< class Interface1, class Interface2, class Interface3, class Interface4, class Interface5, - class Interface6 > -inline ::com::sun::star::uno::Any queryDeepInterface( - const ::com::sun::star::uno::Type & rType, - Interface1 * p1, Interface2 * p2, Interface3 * p3, Interface4 * p4, Interface5 * p5, - Interface6 * p6 ) -{ - if (isDerivedFrom(rType, Interface1::static_type())) - return ::com::sun::star::uno::Any( &p1, rType ); - else if (isDerivedFrom(rType, Interface2::static_type())) - return ::com::sun::star::uno::Any( &p2, rType ); - else if (isDerivedFrom(rType, Interface3::static_type())) - return ::com::sun::star::uno::Any( &p3, rType ); - else if (isDerivedFrom(rType, Interface4::static_type())) - return ::com::sun::star::uno::Any( &p4, rType ); - else if (isDerivedFrom(rType, Interface5::static_type())) - return ::com::sun::star::uno::Any( &p5, rType ); - else if (isDerivedFrom(rType, Interface6::static_type())) - return ::com::sun::star::uno::Any( &p6, rType ); - else - return ::com::sun::star::uno::Any(); -} - -/** - * Inspect types and choose return proper interface. - *<BR> - * @param p1 a pointer to an interface. - * @param p2 a pointer to an interface. - * @param p3 a pointer to an interface. - * @param p4 a pointer to an interface. - * @param p5 a pointer to an interface. - * @param p6 a pointer to an interface. - * @param p7 a pointer to an interface. - */ -template< class Interface1, class Interface2, class Interface3, class Interface4, class Interface5, - class Interface6, class Interface7 > -inline ::com::sun::star::uno::Any queryDeepInterface( - const ::com::sun::star::uno::Type & rType, - Interface1 * p1, Interface2 * p2, Interface3 * p3, Interface4 * p4, Interface5 * p5, - Interface6 * p6, Interface7 * p7 ) -{ - if (isDerivedFrom(rType, Interface1::static_type())) - return ::com::sun::star::uno::Any( &p1, rType ); - else if (isDerivedFrom(rType, Interface2::static_type())) - return ::com::sun::star::uno::Any( &p2, rType ); - else if (isDerivedFrom(rType, Interface3::static_type())) - return ::com::sun::star::uno::Any( &p3, rType ); - else if (isDerivedFrom(rType, Interface4::static_type())) - return ::com::sun::star::uno::Any( &p4, rType ); - else if (isDerivedFrom(rType, Interface5::static_type())) - return ::com::sun::star::uno::Any( &p5, rType ); - else if (isDerivedFrom(rType, Interface6::static_type())) - return ::com::sun::star::uno::Any( &p6, rType ); - else if (isDerivedFrom(rType, Interface7::static_type())) - return ::com::sun::star::uno::Any( &p7, rType ); - else - return ::com::sun::star::uno::Any(); -} - -/** - * Inspect types and choose return proper interface. - *<BR> - * @param p1 a pointer to an interface. - * @param p2 a pointer to an interface. - * @param p3 a pointer to an interface. - * @param p4 a pointer to an interface. - * @param p5 a pointer to an interface. - * @param p6 a pointer to an interface. - * @param p7 a pointer to an interface. - * @param p8 a pointer to an interface. - */ -template< class Interface1, class Interface2, class Interface3, class Interface4, class Interface5, - class Interface6, class Interface7, class Interface8 > -inline ::com::sun::star::uno::Any queryDeepInterface( - const ::com::sun::star::uno::Type & rType, - Interface1 * p1, Interface2 * p2, Interface3 * p3, Interface4 * p4, Interface5 * p5, - Interface6 * p6, Interface7 * p7, Interface8 * p8 ) -{ - if (isDerivedFrom(rType, Interface1::static_type())) - return ::com::sun::star::uno::Any( &p1, rType ); - else if (isDerivedFrom(rType, Interface2::static_type())) - return ::com::sun::star::uno::Any( &p2, rType ); - else if (isDerivedFrom(rType, Interface3::static_type())) - return ::com::sun::star::uno::Any( &p3, rType ); - else if (isDerivedFrom(rType, Interface4::static_type())) - return ::com::sun::star::uno::Any( &p4, rType ); - else if (isDerivedFrom(rType, Interface5::static_type())) - return ::com::sun::star::uno::Any( &p5, rType ); - else if (isDerivedFrom(rType, Interface6::static_type())) - return ::com::sun::star::uno::Any( &p6, rType ); - else if (isDerivedFrom(rType, Interface7::static_type())) - return ::com::sun::star::uno::Any( &p7, rType ); - else if (isDerivedFrom(rType, Interface8::static_type())) - return ::com::sun::star::uno::Any( &p8, rType ); - else - return ::com::sun::star::uno::Any(); -} - -/** - * Inspect types and choose return proper interface. - *<BR> - * @param p1 a pointer to an interface. - * @param p2 a pointer to an interface. - * @param p3 a pointer to an interface. - * @param p4 a pointer to an interface. - * @param p5 a pointer to an interface. - * @param p6 a pointer to an interface. - * @param p7 a pointer to an interface. - * @param p8 a pointer to an interface. - * @param p9 a pointer to an interface. - */ -template< class Interface1, class Interface2, class Interface3, class Interface4, class Interface5, - class Interface6, class Interface7, class Interface8, class Interface9 > -inline ::com::sun::star::uno::Any queryDeepInterface( - const ::com::sun::star::uno::Type & rType, - Interface1 * p1, Interface2 * p2, Interface3 * p3, Interface4 * p4, Interface5 * p5, - Interface6 * p6, Interface7 * p7, Interface8 * p8, Interface9 * p9 ) -{ - if (isDerivedFrom(rType, Interface1::static_type())) - return ::com::sun::star::uno::Any( &p1, rType ); - else if (isDerivedFrom(rType, Interface2::static_type())) - return ::com::sun::star::uno::Any( &p2, rType ); - else if (isDerivedFrom(rType, Interface3::static_type())) - return ::com::sun::star::uno::Any( &p3, rType ); - else if (isDerivedFrom(rType, Interface4::static_type())) - return ::com::sun::star::uno::Any( &p4, rType ); - else if (isDerivedFrom(rType, Interface5::static_type())) - return ::com::sun::star::uno::Any( &p5, rType ); - else if (isDerivedFrom(rType, Interface6::static_type())) - return ::com::sun::star::uno::Any( &p6, rType ); - else if (isDerivedFrom(rType, Interface7::static_type())) - return ::com::sun::star::uno::Any( &p7, rType ); - else if (isDerivedFrom(rType, Interface8::static_type())) - return ::com::sun::star::uno::Any( &p8, rType ); - else if (isDerivedFrom(rType, Interface9::static_type())) - return ::com::sun::star::uno::Any( &p9, rType ); - else - return ::com::sun::star::uno::Any(); -} - -/** - * Inspect types and choose return proper interface. - *<BR> - * @param p1 a pointer to an interface. - * @param p2 a pointer to an interface. - * @param p3 a pointer to an interface. - * @param p4 a pointer to an interface. - * @param p5 a pointer to an interface. - * @param p6 a pointer to an interface. - * @param p7 a pointer to an interface. - * @param p8 a pointer to an interface. - * @param p9 a pointer to an interface. - * @param p10 a pointer to an interface. - */ -template< class Interface1, class Interface2, class Interface3, class Interface4, class Interface5, - class Interface6, class Interface7, class Interface8, class Interface9, class Interface10 > -inline ::com::sun::star::uno::Any queryDeepInterface( - const ::com::sun::star::uno::Type & rType, - Interface1 * p1, Interface2 * p2, Interface3 * p3, Interface4 * p4, Interface5 * p5, - Interface6 * p6, Interface7 * p7, Interface8 * p8, Interface9 * p9, Interface10 * p10 ) -{ - if (isDerivedFrom(rType, Interface1::static_type())) - return ::com::sun::star::uno::Any( &p1, rType ); - else if (isDerivedFrom(rType, Interface2::static_type())) - return ::com::sun::star::uno::Any( &p2, rType ); - else if (isDerivedFrom(rType, Interface3::static_type())) - return ::com::sun::star::uno::Any( &p3, rType ); - else if (isDerivedFrom(rType, Interface4::static_type())) - return ::com::sun::star::uno::Any( &p4, rType ); - else if (isDerivedFrom(rType, Interface5::static_type())) - return ::com::sun::star::uno::Any( &p5, rType ); - else if (isDerivedFrom(rType, Interface6::static_type())) - return ::com::sun::star::uno::Any( &p6, rType ); - else if (isDerivedFrom(rType, Interface7::static_type())) - return ::com::sun::star::uno::Any( &p7, rType ); - else if (isDerivedFrom(rType, Interface8::static_type())) - return ::com::sun::star::uno::Any( &p8, rType ); - else if (isDerivedFrom(rType, Interface9::static_type())) - return ::com::sun::star::uno::Any( &p9, rType ); - else if (isDerivedFrom(rType, Interface10::static_type())) - return ::com::sun::star::uno::Any( &p10, rType ); - else - return ::com::sun::star::uno::Any(); -} - -/** - * Inspect types and choose return proper interface. - *<BR> - * @param p1 a pointer to an interface. - * @param p2 a pointer to an interface. - * @param p3 a pointer to an interface. - * @param p4 a pointer to an interface. - * @param p5 a pointer to an interface. - * @param p6 a pointer to an interface. - * @param p7 a pointer to an interface. - * @param p8 a pointer to an interface. - * @param p9 a pointer to an interface. - * @param p10 a pointer to an interface. - * @param p11 a pointer to an interface. - */ -template< class Interface1, class Interface2, class Interface3, class Interface4, class Interface5, - class Interface6, class Interface7, class Interface8, class Interface9, class Interface10, - class Interface11 > -inline ::com::sun::star::uno::Any queryDeepInterface( - const ::com::sun::star::uno::Type & rType, - Interface1 * p1, Interface2 * p2, Interface3 * p3, Interface4 * p4, Interface5 * p5, - Interface6 * p6, Interface7 * p7, Interface8 * p8, Interface9 * p9, Interface10 * p10, - Interface11 * p11 ) -{ - if (isDerivedFrom(rType, Interface1::static_type())) - return ::com::sun::star::uno::Any( &p1, rType ); - else if (isDerivedFrom(rType, Interface2::static_type())) - return ::com::sun::star::uno::Any( &p2, rType ); - else if (isDerivedFrom(rType, Interface3::static_type())) - return ::com::sun::star::uno::Any( &p3, rType ); - else if (isDerivedFrom(rType, Interface4::static_type())) - return ::com::sun::star::uno::Any( &p4, rType ); - else if (isDerivedFrom(rType, Interface5::static_type())) - return ::com::sun::star::uno::Any( &p5, rType ); - else if (isDerivedFrom(rType, Interface6::static_type())) - return ::com::sun::star::uno::Any( &p6, rType ); - else if (isDerivedFrom(rType, Interface7::static_type())) - return ::com::sun::star::uno::Any( &p7, rType ); - else if (isDerivedFrom(rType, Interface8::static_type())) - return ::com::sun::star::uno::Any( &p8, rType ); - else if (isDerivedFrom(rType, Interface9::static_type())) - return ::com::sun::star::uno::Any( &p9, rType ); - else if (isDerivedFrom(rType, Interface10::static_type())) - return ::com::sun::star::uno::Any( &p10, rType ); - else if (isDerivedFrom(rType, Interface11::static_type())) - return ::com::sun::star::uno::Any( &p11, rType ); - else - return ::com::sun::star::uno::Any(); -} - -/** - * Inspect types and choose return proper interface. - *<BR> - * @param p1 a pointer to an interface. - * @param p2 a pointer to an interface. - * @param p3 a pointer to an interface. - * @param p4 a pointer to an interface. - * @param p5 a pointer to an interface. - * @param p6 a pointer to an interface. - * @param p7 a pointer to an interface. - * @param p8 a pointer to an interface. - * @param p9 a pointer to an interface. - * @param p10 a pointer to an interface. - * @param p11 a pointer to an interface. - * @param p12 a pointer to an interface. - */ -template< class Interface1, class Interface2, class Interface3, class Interface4, class Interface5, - class Interface6, class Interface7, class Interface8, class Interface9, class Interface10, - class Interface11, class Interface12 > -inline ::com::sun::star::uno::Any queryDeepInterface( - const ::com::sun::star::uno::Type & rType, - Interface1 * p1, Interface2 * p2, Interface3 * p3, Interface4 * p4, Interface5 * p5, - Interface6 * p6, Interface7 * p7, Interface8 * p8, Interface9 * p9, Interface10 * p10, - Interface11 * p11, Interface12 * p12 ) -{ - if (isDerivedFrom(rType, Interface1::static_type())) - return ::com::sun::star::uno::Any( &p1, rType ); - else if (isDerivedFrom(rType, Interface2::static_type())) - return ::com::sun::star::uno::Any( &p2, rType ); - else if (isDerivedFrom(rType, Interface3::static_type())) - return ::com::sun::star::uno::Any( &p3, rType ); - else if (isDerivedFrom(rType, Interface4::static_type())) - return ::com::sun::star::uno::Any( &p4, rType ); - else if (isDerivedFrom(rType, Interface5::static_type())) - return ::com::sun::star::uno::Any( &p5, rType ); - else if (isDerivedFrom(rType, Interface6::static_type())) - return ::com::sun::star::uno::Any( &p6, rType ); - else if (isDerivedFrom(rType, Interface7::static_type())) - return ::com::sun::star::uno::Any( &p7, rType ); - else if (isDerivedFrom(rType, Interface8::static_type())) - return ::com::sun::star::uno::Any( &p8, rType ); - else if (isDerivedFrom(rType, Interface9::static_type())) - return ::com::sun::star::uno::Any( &p9, rType ); - else if (isDerivedFrom(rType, Interface10::static_type())) - return ::com::sun::star::uno::Any( &p10, rType ); - else if (isDerivedFrom(rType, Interface11::static_type())) - return ::com::sun::star::uno::Any( &p11, rType ); - else if (isDerivedFrom(rType, Interface12::static_type())) - return ::com::sun::star::uno::Any( &p12, rType ); - else - return ::com::sun::star::uno::Any(); -} - -} // namespace comphelper - -#endif // _COMPHELPER_QUERYDEEPINTERFACE_HXX - diff --git a/comphelper/source/misc/makefile.mk b/comphelper/source/misc/makefile.mk index cecba554b332..0bb4defb4165 100644 --- a/comphelper/source/misc/makefile.mk +++ b/comphelper/source/misc/makefile.mk @@ -74,7 +74,6 @@ SLOFILES= \ $(SLO)$/officeresourcebundle.obj \ $(SLO)$/officerestartmanager.obj \ $(SLO)$/proxyaggregation.obj \ - $(SLO)$/querydeep.obj \ $(SLO)$/regpathhelper.obj \ $(SLO)$/scopeguard.obj \ $(SLO)$/SelectionMultiplex.obj \ diff --git a/comphelper/source/misc/querydeep.cxx b/comphelper/source/misc/querydeep.cxx deleted file mode 100644 index 92e475686783..000000000000 --- a/comphelper/source/misc/querydeep.cxx +++ /dev/null @@ -1,76 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -// MARKER(update_precomp.py): autogen include statement, do not remove -#include "precompiled_comphelper.hxx" -#include <comphelper/querydeep.hxx> -#include <typelib/typedescription.h> - -//__________________________________________________________________________________________________ - -sal_Bool comphelper::isDerivedFrom( - const ::com::sun::star::uno::Type & rBaseType, - const ::com::sun::star::uno::Type & rType ) -{ - using namespace ::com::sun::star::uno; - - TypeClass eClass = rBaseType.getTypeClass(); - - if (eClass != TypeClass_INTERFACE) - return sal_False; - - // supported TypeClass - do the types match ? - if (eClass != rType.getTypeClass()) - return sal_False; - - sal_Bool bRet; - - // shortcut for simple case - if (rBaseType == ::getCppuType(static_cast<const Reference< XInterface > *>(0))) - { - bRet = sal_True; - } - else - { - // now ask in cppu (aka typelib) - ::typelib_TypeDescription *pBaseTD = 0, *pTD = 0; - - rBaseType. getDescription(&pBaseTD); - rType. getDescription(&pTD); - - // interfaces are assignable to a base - bRet = ::typelib_typedescription_isAssignableFrom(pBaseTD, pTD); - - ::typelib_typedescription_release(pBaseTD); - ::typelib_typedescription_release(pTD); - } - - return bRet; -} - - - |