xref: /AOO41X/main/cppuhelper/inc/cppuhelper/implbase3.hxx (revision 6da5f31158a7dd09f46f041b4f15bb7ae3eb92a4)
1*6da5f311SAndrew Rist /**************************************************************
2cdf0e10cSrcweir  *
3*6da5f311SAndrew Rist  * Licensed to the Apache Software Foundation (ASF) under one
4*6da5f311SAndrew Rist  * or more contributor license agreements.  See the NOTICE file
5*6da5f311SAndrew Rist  * distributed with this work for additional information
6*6da5f311SAndrew Rist  * regarding copyright ownership.  The ASF licenses this file
7*6da5f311SAndrew Rist  * to you under the Apache License, Version 2.0 (the
8*6da5f311SAndrew Rist  * "License"); you may not use this file except in compliance
9*6da5f311SAndrew Rist  * with the License.  You may obtain a copy of the License at
10cdf0e10cSrcweir  *
11*6da5f311SAndrew Rist  *   http://www.apache.org/licenses/LICENSE-2.0
12cdf0e10cSrcweir  *
13*6da5f311SAndrew Rist  * Unless required by applicable law or agreed to in writing,
14*6da5f311SAndrew Rist  * software distributed under the License is distributed on an
15*6da5f311SAndrew Rist  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*6da5f311SAndrew Rist  * KIND, either express or implied.  See the License for the
17*6da5f311SAndrew Rist  * specific language governing permissions and limitations
18*6da5f311SAndrew Rist  * under the License.
19cdf0e10cSrcweir  *
20*6da5f311SAndrew Rist  *************************************************************/
21*6da5f311SAndrew Rist 
22*6da5f311SAndrew Rist 
23cdf0e10cSrcweir #ifndef _CPPUHELPER_IMPLBASE3_HXX_
24cdf0e10cSrcweir #define _CPPUHELPER_IMPLBASE3_HXX_
25cdf0e10cSrcweir 
26cdf0e10cSrcweir #include <cppuhelper/implbase_ex.hxx>
27cdf0e10cSrcweir #include <rtl/instance.hxx>
28cdf0e10cSrcweir 
29cdf0e10cSrcweir namespace cppu
30cdf0e10cSrcweir {
31cdf0e10cSrcweir     /** @internal */
32cdf0e10cSrcweir     struct class_data3
33cdf0e10cSrcweir     {
34cdf0e10cSrcweir         sal_Int16 m_nTypes;
35cdf0e10cSrcweir         sal_Bool m_storedTypeRefs;
36cdf0e10cSrcweir         sal_Bool m_storedId;
37cdf0e10cSrcweir         sal_Int8 m_id[ 16 ];
38cdf0e10cSrcweir         type_entry m_typeEntries[ 3 + 1 ];
39cdf0e10cSrcweir     };
40cdf0e10cSrcweir 
41cdf0e10cSrcweir     /** @internal */
42cdf0e10cSrcweir     template< typename Ifc1, typename Ifc2, typename Ifc3, typename Impl > struct ImplClassData3
43cdf0e10cSrcweir     {
operator ()cppu::ImplClassData344cdf0e10cSrcweir         class_data* operator ()()
45cdf0e10cSrcweir         {
46cdf0e10cSrcweir             static class_data3 s_cd =
47cdf0e10cSrcweir             {
48cdf0e10cSrcweir                 3 +1, sal_False, sal_False,
49cdf0e10cSrcweir                 { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
50cdf0e10cSrcweir                 {
51cdf0e10cSrcweir 					{ { Ifc1::static_type }, ((sal_IntPtr)(Ifc1 *) (Impl *) 16) - 16 },
52cdf0e10cSrcweir 					{ { Ifc2::static_type }, ((sal_IntPtr)(Ifc2 *) (Impl *) 16) - 16 },
53cdf0e10cSrcweir 					{ { Ifc3::static_type }, ((sal_IntPtr)(Ifc3 *) (Impl *) 16) - 16 },
54cdf0e10cSrcweir 					{ { ::com::sun::star::lang::XTypeProvider::static_type }, ((sal_IntPtr)(::com::sun::star::lang::XTypeProvider *) (Impl *) 16) - 16 }
55cdf0e10cSrcweir                 }
56cdf0e10cSrcweir             };
57cdf0e10cSrcweir             return reinterpret_cast< class_data * >(&s_cd);
58cdf0e10cSrcweir         }
59cdf0e10cSrcweir     };
60cdf0e10cSrcweir 
61cdf0e10cSrcweir     /** Implementation helper implementing interface ::com::sun::star::lang::XTypeProvider
62cdf0e10cSrcweir         and method XInterface::queryInterface(), but no reference counting.
63cdf0e10cSrcweir 
64cdf0e10cSrcweir         @derive
65cdf0e10cSrcweir         Inherit from this class giving your interface(s) to be implemented as template argument(s).
66cdf0e10cSrcweir         Your sub class defines method implementations for these interface(s) including acquire()/
67cdf0e10cSrcweir         release() and delegates incoming queryInterface() calls to this base class.
68cdf0e10cSrcweir     */
69cdf0e10cSrcweir     template< class Ifc1, class Ifc2, class Ifc3 >
70cdf0e10cSrcweir     class SAL_NO_VTABLE ImplHelper3
71cdf0e10cSrcweir         : public ::com::sun::star::lang::XTypeProvider
72cdf0e10cSrcweir         , public Ifc1, public Ifc2, public Ifc3
73cdf0e10cSrcweir     {
74cdf0e10cSrcweir         /** @internal */
75cdf0e10cSrcweir         struct cd : public rtl::StaticAggregate< class_data, ImplClassData3 < Ifc1, Ifc2, Ifc3, ImplHelper3<Ifc1, Ifc2, Ifc3> > > {};
76cdf0e10cSrcweir     public:
queryInterface(::com::sun::star::uno::Type const & rType)77cdf0e10cSrcweir         virtual ::com::sun::star::uno::Any SAL_CALL queryInterface( ::com::sun::star::uno::Type const & rType ) throw (::com::sun::star::uno::RuntimeException)
78cdf0e10cSrcweir             { return ImplHelper_query( rType, cd::get(), this ); }
getTypes()79cdf0e10cSrcweir         virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type > SAL_CALL getTypes() throw (::com::sun::star::uno::RuntimeException)
80cdf0e10cSrcweir             { return ImplHelper_getTypes( cd::get() ); }
getImplementationId()81cdf0e10cSrcweir         virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() throw (::com::sun::star::uno::RuntimeException)
82cdf0e10cSrcweir             { return ImplHelper_getImplementationId( cd::get() ); }
83cdf0e10cSrcweir     };
84cdf0e10cSrcweir     /** Implementation helper implementing interfaces ::com::sun::star::lang::XTypeProvider and
85cdf0e10cSrcweir         ::com::sun::star::uno::XInterface which supports weak mechanism to be held weakly
86cdf0e10cSrcweir         (supporting ::com::sun::star::uno::XWeak thru ::cppu::OWeakObject).
87cdf0e10cSrcweir 
88cdf0e10cSrcweir         @derive
89cdf0e10cSrcweir         Inherit from this class giving your interface(s) to be implemented as template argument(s).
90cdf0e10cSrcweir         Your sub class defines method implementations for these interface(s).
91cdf0e10cSrcweir     */
92cdf0e10cSrcweir     template< class Ifc1, class Ifc2, class Ifc3 >
93cdf0e10cSrcweir     class SAL_NO_VTABLE WeakImplHelper3
94cdf0e10cSrcweir         : public OWeakObject
95cdf0e10cSrcweir         , public ::com::sun::star::lang::XTypeProvider
96cdf0e10cSrcweir         , public Ifc1, public Ifc2, public Ifc3
97cdf0e10cSrcweir     {
98cdf0e10cSrcweir         /** @internal */
99cdf0e10cSrcweir         struct cd : public rtl::StaticAggregate< class_data, ImplClassData3 < Ifc1, Ifc2, Ifc3, WeakImplHelper3<Ifc1, Ifc2, Ifc3> > > {};
100cdf0e10cSrcweir     public:
queryInterface(::com::sun::star::uno::Type const & rType)101cdf0e10cSrcweir         virtual ::com::sun::star::uno::Any SAL_CALL queryInterface( ::com::sun::star::uno::Type const & rType ) throw (::com::sun::star::uno::RuntimeException)
102cdf0e10cSrcweir             { return WeakImplHelper_query( rType, cd::get(), this, (OWeakObject *)this ); }
acquire()103cdf0e10cSrcweir         virtual void SAL_CALL acquire() throw ()
104cdf0e10cSrcweir             { OWeakObject::acquire(); }
release()105cdf0e10cSrcweir         virtual void SAL_CALL release() throw ()
106cdf0e10cSrcweir             { OWeakObject::release(); }
getTypes()107cdf0e10cSrcweir         virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type > SAL_CALL getTypes() throw (::com::sun::star::uno::RuntimeException)
108cdf0e10cSrcweir             { return WeakImplHelper_getTypes( cd::get() ); }
getImplementationId()109cdf0e10cSrcweir         virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() throw (::com::sun::star::uno::RuntimeException)
110cdf0e10cSrcweir             { return ImplHelper_getImplementationId( cd::get() ); }
111cdf0e10cSrcweir     };
112cdf0e10cSrcweir     /** Implementation helper implementing interfaces ::com::sun::star::lang::XTypeProvider and
113cdf0e10cSrcweir         ::com::sun::star::uno::XInterface which supports weak mechanism to be held weakly
114cdf0e10cSrcweir         (supporting ::com::sun::star::uno::XWeak thru ::cppu::OWeakAggObject).
115cdf0e10cSrcweir         In addition, it supports also aggregation meaning object of this class can be aggregated
116cdf0e10cSrcweir         (::com::sun::star::uno::XAggregation thru ::cppu::OWeakAggObject).
117cdf0e10cSrcweir         If a delegator is set (this object is aggregated), then incoming queryInterface()
118cdf0e10cSrcweir         calls are delegated to the delegator object. If the delegator does not support the
119cdf0e10cSrcweir         demanded interface, it calls queryAggregation() on its aggregated objects.
120cdf0e10cSrcweir 
121cdf0e10cSrcweir         @derive
122cdf0e10cSrcweir         Inherit from this class giving your interface(s) to be implemented as template argument(s).
123cdf0e10cSrcweir         Your sub class defines method implementations for these interface(s).
124cdf0e10cSrcweir     */
125cdf0e10cSrcweir     template< class Ifc1, class Ifc2, class Ifc3 >
126cdf0e10cSrcweir     class SAL_NO_VTABLE WeakAggImplHelper3
127cdf0e10cSrcweir         : public OWeakAggObject
128cdf0e10cSrcweir         , public ::com::sun::star::lang::XTypeProvider
129cdf0e10cSrcweir         , public Ifc1, public Ifc2, public Ifc3
130cdf0e10cSrcweir     {
131cdf0e10cSrcweir         /** @internal */
132cdf0e10cSrcweir         struct cd : public rtl::StaticAggregate< class_data, ImplClassData3 < Ifc1, Ifc2, Ifc3, WeakAggImplHelper3<Ifc1, Ifc2, Ifc3> > > {};
133cdf0e10cSrcweir     public:
queryInterface(::com::sun::star::uno::Type const & rType)134cdf0e10cSrcweir         virtual ::com::sun::star::uno::Any SAL_CALL queryInterface( ::com::sun::star::uno::Type const & rType ) throw (::com::sun::star::uno::RuntimeException)
135cdf0e10cSrcweir             { return OWeakAggObject::queryInterface( rType ); }
queryAggregation(::com::sun::star::uno::Type const & rType)136cdf0e10cSrcweir         virtual ::com::sun::star::uno::Any SAL_CALL queryAggregation( ::com::sun::star::uno::Type const & rType ) throw (::com::sun::star::uno::RuntimeException)
137cdf0e10cSrcweir             { return WeakAggImplHelper_queryAgg( rType, cd::get(), this, (OWeakAggObject *)this ); }
acquire()138cdf0e10cSrcweir         virtual void SAL_CALL acquire() throw ()
139cdf0e10cSrcweir             { OWeakAggObject::acquire(); }
release()140cdf0e10cSrcweir         virtual void SAL_CALL release() throw ()
141cdf0e10cSrcweir             { OWeakAggObject::release(); }
getTypes()142cdf0e10cSrcweir         virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type > SAL_CALL getTypes() throw (::com::sun::star::uno::RuntimeException)
143cdf0e10cSrcweir             { return WeakAggImplHelper_getTypes( cd::get() ); }
getImplementationId()144cdf0e10cSrcweir         virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() throw (::com::sun::star::uno::RuntimeException)
145cdf0e10cSrcweir             { return ImplHelper_getImplementationId( cd::get() ); }
146cdf0e10cSrcweir     };
147cdf0e10cSrcweir     /** Implementation helper implementing interfaces ::com::sun::star::lang::XTypeProvider and
148cdf0e10cSrcweir         ::com::sun::star::uno::XInterface inherting from a BaseClass.
149cdf0e10cSrcweir         All acquire() and release() calls are delegated to the BaseClass. Upon queryInterface(),
150cdf0e10cSrcweir         if a demanded interface is not supported by this class directly, the request is
151cdf0e10cSrcweir         delegated to the BaseClass.
152cdf0e10cSrcweir 
153cdf0e10cSrcweir         @attention
154cdf0e10cSrcweir         The BaseClass has to be complete in a sense, that ::com::sun::star::uno::XInterface
155cdf0e10cSrcweir         and ::com::sun::star::lang::XTypeProvider are implemented properly.  The
156cdf0e10cSrcweir         BaseClass must have at least one ctor that can be called with six or
157cdf0e10cSrcweir         fewer arguments, of which none is of non-const reference type.
158cdf0e10cSrcweir         also has to have a default ctor.
159cdf0e10cSrcweir 
160cdf0e10cSrcweir         @derive
161cdf0e10cSrcweir         Inherit from this class giving your additional interface(s) to be implemented as
162cdf0e10cSrcweir         template argument(s). Your sub class defines method implementations for these interface(s).
163cdf0e10cSrcweir     */
164cdf0e10cSrcweir     template< class BaseClass, class Ifc1, class Ifc2, class Ifc3 >
165cdf0e10cSrcweir     class SAL_NO_VTABLE ImplInheritanceHelper3
166cdf0e10cSrcweir         : public BaseClass
167cdf0e10cSrcweir         , public Ifc1, public Ifc2, public Ifc3
168cdf0e10cSrcweir     {
169cdf0e10cSrcweir         /** @internal */
170cdf0e10cSrcweir         struct cd : public rtl::StaticAggregate< class_data, ImplClassData3 < Ifc1, Ifc2, Ifc3, ImplInheritanceHelper3<BaseClass, Ifc1, Ifc2, Ifc3> > > {};
171cdf0e10cSrcweir     protected:
172cdf0e10cSrcweir         template< typename T1 >
ImplInheritanceHelper3(T1 const & arg1)173cdf0e10cSrcweir         explicit ImplInheritanceHelper3(T1 const & arg1): BaseClass(arg1) {}
174cdf0e10cSrcweir         template< typename T1, typename T2 >
ImplInheritanceHelper3(T1 const & arg1,T2 const & arg2)175cdf0e10cSrcweir         ImplInheritanceHelper3(T1 const & arg1, T2 const & arg2):
176cdf0e10cSrcweir             BaseClass(arg1, arg2) {}
177cdf0e10cSrcweir         template< typename T1, typename T2, typename T3 >
ImplInheritanceHelper3(T1 const & arg1,T2 const & arg2,T3 const & arg3)178cdf0e10cSrcweir         ImplInheritanceHelper3(
179cdf0e10cSrcweir             T1 const & arg1, T2 const & arg2, T3 const & arg3):
180cdf0e10cSrcweir             BaseClass(arg1, arg2, arg3) {}
181cdf0e10cSrcweir         template< typename T1, typename T2, typename T3, typename T4 >
ImplInheritanceHelper3(T1 const & arg1,T2 const & arg2,T3 const & arg3,T4 const & arg4)182cdf0e10cSrcweir         ImplInheritanceHelper3(
183cdf0e10cSrcweir             T1 const & arg1, T2 const & arg2, T3 const & arg3, T4 const & arg4):
184cdf0e10cSrcweir             BaseClass(arg1, arg2, arg3, arg4) {}
185cdf0e10cSrcweir         template<
186cdf0e10cSrcweir             typename T1, typename T2, typename T3, typename T4, typename T5 >
ImplInheritanceHelper3(T1 const & arg1,T2 const & arg2,T3 const & arg3,T4 const & arg4,T5 const & arg5)187cdf0e10cSrcweir         ImplInheritanceHelper3(
188cdf0e10cSrcweir             T1 const & arg1, T2 const & arg2, T3 const & arg3, T4 const & arg4,
189cdf0e10cSrcweir             T5 const & arg5):
190cdf0e10cSrcweir             BaseClass(arg1, arg2, arg3, arg4, arg5) {}
191cdf0e10cSrcweir         template<
192cdf0e10cSrcweir             typename T1, typename T2, typename T3, typename T4, typename T5,
193cdf0e10cSrcweir             typename T6 >
ImplInheritanceHelper3(T1 const & arg1,T2 const & arg2,T3 const & arg3,T4 const & arg4,T5 const & arg5,T6 const & arg6)194cdf0e10cSrcweir         ImplInheritanceHelper3(
195cdf0e10cSrcweir             T1 const & arg1, T2 const & arg2, T3 const & arg3, T4 const & arg4,
196cdf0e10cSrcweir             T5 const & arg5, T6 const & arg6):
197cdf0e10cSrcweir             BaseClass(arg1, arg2, arg3, arg4, arg5, arg6) {}
198cdf0e10cSrcweir     public:
ImplInheritanceHelper3()199cdf0e10cSrcweir         ImplInheritanceHelper3() {}
queryInterface(::com::sun::star::uno::Type const & rType)200cdf0e10cSrcweir         virtual ::com::sun::star::uno::Any SAL_CALL queryInterface( ::com::sun::star::uno::Type const & rType ) throw (::com::sun::star::uno::RuntimeException)
201cdf0e10cSrcweir             {
202cdf0e10cSrcweir                 ::com::sun::star::uno::Any aRet( ImplHelper_queryNoXInterface( rType, cd::get(), this ) );
203cdf0e10cSrcweir                 if (aRet.hasValue())
204cdf0e10cSrcweir                     return aRet;
205cdf0e10cSrcweir                 return BaseClass::queryInterface( rType );
206cdf0e10cSrcweir             }
acquire()207cdf0e10cSrcweir         virtual void SAL_CALL acquire() throw ()
208cdf0e10cSrcweir             { BaseClass::acquire(); }
release()209cdf0e10cSrcweir         virtual void SAL_CALL release() throw ()
210cdf0e10cSrcweir             { BaseClass::release(); }
getTypes()211cdf0e10cSrcweir         virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type > SAL_CALL getTypes() throw (::com::sun::star::uno::RuntimeException)
212cdf0e10cSrcweir             { return ImplInhHelper_getTypes( cd::get(), BaseClass::getTypes() ); }
getImplementationId()213cdf0e10cSrcweir         virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() throw (::com::sun::star::uno::RuntimeException)
214cdf0e10cSrcweir             { return ImplHelper_getImplementationId( cd::get() ); }
215cdf0e10cSrcweir     };
216cdf0e10cSrcweir     /** Implementation helper implementing interfaces ::com::sun::star::lang::XTypeProvider and
217cdf0e10cSrcweir         ::com::sun::star::uno::XInterface inherting from a BaseClass.
218cdf0e10cSrcweir         All acquire(),  release() and queryInterface() calls are delegated to the BaseClass.
219cdf0e10cSrcweir         Upon queryAggregation(), if a demanded interface is not supported by this class directly,
220cdf0e10cSrcweir         the request is delegated to the BaseClass.
221cdf0e10cSrcweir 
222cdf0e10cSrcweir         @attention
223cdf0e10cSrcweir         The BaseClass has to be complete in a sense, that ::com::sun::star::uno::XInterface,
224cdf0e10cSrcweir         ::com::sun::star::uno::XAggregation and ::com::sun::star::lang::XTypeProvider
225cdf0e10cSrcweir         are implemented properly.  The BaseClass must have at least one ctor
226cdf0e10cSrcweir         that can be called with six or fewer arguments, of which none is of
227cdf0e10cSrcweir         non-const reference type.
228cdf0e10cSrcweir 
229cdf0e10cSrcweir         @derive
230cdf0e10cSrcweir         Inherit from this class giving your additional interface(s) to be implemented as
231cdf0e10cSrcweir         template argument(s). Your sub class defines method implementations for these interface(s).
232cdf0e10cSrcweir     */
233cdf0e10cSrcweir     template< class BaseClass, class Ifc1, class Ifc2, class Ifc3 >
234cdf0e10cSrcweir     class SAL_NO_VTABLE AggImplInheritanceHelper3
235cdf0e10cSrcweir         : public BaseClass
236cdf0e10cSrcweir         , public Ifc1, public Ifc2, public Ifc3
237cdf0e10cSrcweir     {
238cdf0e10cSrcweir         /** @internal */
239cdf0e10cSrcweir         struct cd : public rtl::StaticAggregate< class_data, ImplClassData3 < Ifc1, Ifc2, Ifc3, AggImplInheritanceHelper3<BaseClass, Ifc1, Ifc2, Ifc3> > > {};
240cdf0e10cSrcweir     protected:
241cdf0e10cSrcweir         template< typename T1 >
AggImplInheritanceHelper3(T1 const & arg1)242cdf0e10cSrcweir         explicit AggImplInheritanceHelper3(T1 const & arg1): BaseClass(arg1) {}
243cdf0e10cSrcweir         template< typename T1, typename T2 >
AggImplInheritanceHelper3(T1 const & arg1,T2 const & arg2)244cdf0e10cSrcweir         AggImplInheritanceHelper3(T1 const & arg1, T2 const & arg2):
245cdf0e10cSrcweir             BaseClass(arg1, arg2) {}
246cdf0e10cSrcweir         template< typename T1, typename T2, typename T3 >
AggImplInheritanceHelper3(T1 const & arg1,T2 const & arg2,T3 const & arg3)247cdf0e10cSrcweir         AggImplInheritanceHelper3(
248cdf0e10cSrcweir             T1 const & arg1, T2 const & arg2, T3 const & arg3):
249cdf0e10cSrcweir             BaseClass(arg1, arg2, arg3) {}
250cdf0e10cSrcweir         template< typename T1, typename T2, typename T3, typename T4 >
AggImplInheritanceHelper3(T1 const & arg1,T2 const & arg2,T3 const & arg3,T4 const & arg4)251cdf0e10cSrcweir         AggImplInheritanceHelper3(
252cdf0e10cSrcweir             T1 const & arg1, T2 const & arg2, T3 const & arg3, T4 const & arg4):
253cdf0e10cSrcweir             BaseClass(arg1, arg2, arg3, arg4) {}
254cdf0e10cSrcweir         template<
255cdf0e10cSrcweir             typename T1, typename T2, typename T3, typename T4, typename T5 >
AggImplInheritanceHelper3(T1 const & arg1,T2 const & arg2,T3 const & arg3,T4 const & arg4,T5 const & arg5)256cdf0e10cSrcweir         AggImplInheritanceHelper3(
257cdf0e10cSrcweir             T1 const & arg1, T2 const & arg2, T3 const & arg3, T4 const & arg4,
258cdf0e10cSrcweir             T5 const & arg5):
259cdf0e10cSrcweir             BaseClass(arg1, arg2, arg3, arg4, arg5) {}
260cdf0e10cSrcweir         template<
261cdf0e10cSrcweir             typename T1, typename T2, typename T3, typename T4, typename T5,
262cdf0e10cSrcweir             typename T6 >
AggImplInheritanceHelper3(T1 const & arg1,T2 const & arg2,T3 const & arg3,T4 const & arg4,T5 const & arg5,T6 const & arg6)263cdf0e10cSrcweir         AggImplInheritanceHelper3(
264cdf0e10cSrcweir             T1 const & arg1, T2 const & arg2, T3 const & arg3, T4 const & arg4,
265cdf0e10cSrcweir             T5 const & arg5, T6 const & arg6):
266cdf0e10cSrcweir             BaseClass(arg1, arg2, arg3, arg4, arg5, arg6) {}
267cdf0e10cSrcweir     public:
AggImplInheritanceHelper3()268cdf0e10cSrcweir         AggImplInheritanceHelper3() {}
queryInterface(::com::sun::star::uno::Type const & rType)269cdf0e10cSrcweir         virtual ::com::sun::star::uno::Any SAL_CALL queryInterface( ::com::sun::star::uno::Type const & rType ) throw (::com::sun::star::uno::RuntimeException)
270cdf0e10cSrcweir             { return BaseClass::queryInterface( rType ); }
queryAggregation(::com::sun::star::uno::Type const & rType)271cdf0e10cSrcweir         virtual ::com::sun::star::uno::Any SAL_CALL queryAggregation( ::com::sun::star::uno::Type const & rType ) throw (::com::sun::star::uno::RuntimeException)
272cdf0e10cSrcweir             {
273cdf0e10cSrcweir                 ::com::sun::star::uno::Any aRet( ImplHelper_queryNoXInterface( rType, cd::get(), this ) );
274cdf0e10cSrcweir                 if (aRet.hasValue())
275cdf0e10cSrcweir                     return aRet;
276cdf0e10cSrcweir                 return BaseClass::queryAggregation( rType );
277cdf0e10cSrcweir             }
acquire()278cdf0e10cSrcweir         virtual void SAL_CALL acquire() throw ()
279cdf0e10cSrcweir             { BaseClass::acquire(); }
release()280cdf0e10cSrcweir         virtual void SAL_CALL release() throw ()
281cdf0e10cSrcweir             { BaseClass::release(); }
getTypes()282cdf0e10cSrcweir         virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type > SAL_CALL getTypes() throw (::com::sun::star::uno::RuntimeException)
283cdf0e10cSrcweir             { return ImplInhHelper_getTypes( cd::get(), BaseClass::getTypes() ); }
getImplementationId()284cdf0e10cSrcweir         virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() throw (::com::sun::star::uno::RuntimeException)
285cdf0e10cSrcweir             { return ImplHelper_getImplementationId( cd::get() ); }
286cdf0e10cSrcweir     };
287cdf0e10cSrcweir }
288cdf0e10cSrcweir 
289cdf0e10cSrcweir #endif
290