xref: /aoo42x/main/cppu/inc/uno/mapping.hxx (revision 095d99d2)
1c6ed87c9SAndrew Rist /**************************************************************
2*095d99d2Smseidel  *
3c6ed87c9SAndrew Rist  * Licensed to the Apache Software Foundation (ASF) under one
4c6ed87c9SAndrew Rist  * or more contributor license agreements.  See the NOTICE file
5c6ed87c9SAndrew Rist  * distributed with this work for additional information
6c6ed87c9SAndrew Rist  * regarding copyright ownership.  The ASF licenses this file
7c6ed87c9SAndrew Rist  * to you under the Apache License, Version 2.0 (the
8c6ed87c9SAndrew Rist  * "License"); you may not use this file except in compliance
9c6ed87c9SAndrew Rist  * with the License.  You may obtain a copy of the License at
10*095d99d2Smseidel  *
11c6ed87c9SAndrew Rist  *   http://www.apache.org/licenses/LICENSE-2.0
12*095d99d2Smseidel  *
13c6ed87c9SAndrew Rist  * Unless required by applicable law or agreed to in writing,
14c6ed87c9SAndrew Rist  * software distributed under the License is distributed on an
15c6ed87c9SAndrew Rist  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16c6ed87c9SAndrew Rist  * KIND, either express or implied.  See the License for the
17c6ed87c9SAndrew Rist  * specific language governing permissions and limitations
18c6ed87c9SAndrew Rist  * under the License.
19*095d99d2Smseidel  *
20c6ed87c9SAndrew Rist  *************************************************************/
21c6ed87c9SAndrew Rist 
22c6ed87c9SAndrew Rist 
23*095d99d2Smseidel 
24cdf0e10cSrcweir #ifndef _UNO_MAPPING_HXX_
25cdf0e10cSrcweir #define _UNO_MAPPING_HXX_
26cdf0e10cSrcweir 
27cdf0e10cSrcweir #include <cppu/macros.hxx>
28cdf0e10cSrcweir #include <rtl/alloc.h>
29cdf0e10cSrcweir #include <rtl/ustring.hxx>
30cdf0e10cSrcweir #include <uno/mapping.h>
31cdf0e10cSrcweir #include <com/sun/star/uno/Type.hxx>
32cdf0e10cSrcweir #include <com/sun/star/uno/Reference.hxx>
33cdf0e10cSrcweir #include "cppu/unotype.hxx"
34cdf0e10cSrcweir #include "uno/environment.hxx"
35cdf0e10cSrcweir 
36cdf0e10cSrcweir typedef struct _typelib_TypeDescription typelib_TypeDescription;
37cdf0e10cSrcweir typedef struct _typelib_InterfaceTypeDescription typelib_InterfaceTypeDescription;
38cdf0e10cSrcweir typedef struct _uno_Interface uno_Interface;
39cdf0e10cSrcweir 
40cdf0e10cSrcweir namespace com
41*095d99d2Smseidel {
42cdf0e10cSrcweir namespace sun
43*095d99d2Smseidel {
44cdf0e10cSrcweir namespace star
45*095d99d2Smseidel {
46cdf0e10cSrcweir namespace uno
47cdf0e10cSrcweir {
48cdf0e10cSrcweir 
49cdf0e10cSrcweir /** C++ wrapper for C uno_Mapping.
50cdf0e10cSrcweir 
51cdf0e10cSrcweir     @see uno_Mapping
52cdf0e10cSrcweir */
53cdf0e10cSrcweir class Mapping
54cdf0e10cSrcweir {
55cdf0e10cSrcweir 	uno_Mapping * _pMapping;
56*095d99d2Smseidel 
57cdf0e10cSrcweir public:
58cdf0e10cSrcweir 	// these are here to force memory de/allocation to sal lib.
59cdf0e10cSrcweir     /** @internal */
operator new(size_t nSize)60cdf0e10cSrcweir 	inline static void * SAL_CALL operator new ( size_t nSize ) SAL_THROW( () )
61cdf0e10cSrcweir 		{ return ::rtl_allocateMemory( nSize ); }
62cdf0e10cSrcweir     /** @internal */
operator delete(void * pMem)63cdf0e10cSrcweir 	inline static void SAL_CALL operator delete ( void * pMem ) SAL_THROW( () )
64cdf0e10cSrcweir 		{ ::rtl_freeMemory( pMem ); }
65cdf0e10cSrcweir     /** @internal */
operator new(size_t,void * pMem)66cdf0e10cSrcweir 	inline static void * SAL_CALL operator new ( size_t, void * pMem ) SAL_THROW( () )
67cdf0e10cSrcweir 		{ return pMem; }
68cdf0e10cSrcweir     /** @internal */
operator delete(void *,void *)69cdf0e10cSrcweir 	inline static void SAL_CALL operator delete ( void *, void * ) SAL_THROW( () )
70cdf0e10cSrcweir 		{}
71*095d99d2Smseidel 
72cdf0e10cSrcweir 	/** Holds a mapping from the specified source to the specified destination by environment
73cdf0e10cSrcweir         type names.
74*095d99d2Smseidel 
75cdf0e10cSrcweir 		@param rFrom		type name of source environment
76cdf0e10cSrcweir 		@param rTo			type name of destination environment
77cdf0e10cSrcweir 		@param rAddPurpose	additional purpose
78cdf0e10cSrcweir 	*/
79cdf0e10cSrcweir 	inline Mapping(
80cdf0e10cSrcweir         const ::rtl::OUString & rFrom, const ::rtl::OUString & rTo,
81cdf0e10cSrcweir         const ::rtl::OUString & rAddPurpose = ::rtl::OUString() )
82cdf0e10cSrcweir         SAL_THROW( () );
83*095d99d2Smseidel 
84cdf0e10cSrcweir 	/** Holds a mapping from the specified source to the specified destination.
85*095d99d2Smseidel 
86cdf0e10cSrcweir 		@param pFrom		source environment
87cdf0e10cSrcweir 		@param pTo			destination environment
88cdf0e10cSrcweir 		@param rAddPurpose	additional purpose
89cdf0e10cSrcweir 	*/
90cdf0e10cSrcweir 	inline Mapping(
91cdf0e10cSrcweir         uno_Environment * pFrom, uno_Environment * pTo,
92cdf0e10cSrcweir         const ::rtl::OUString & rAddPurpose = ::rtl::OUString() )
93cdf0e10cSrcweir         SAL_THROW( () );
94*095d99d2Smseidel 
95cdf0e10cSrcweir 	/** Holds a mapping from the specified source to the specified destination
96cdf0e10cSrcweir 		environment.
97cdf0e10cSrcweir 
98cdf0e10cSrcweir 		@param from         source environment
99cdf0e10cSrcweir 		@param to           destination environment
100cdf0e10cSrcweir 		@param rAddPurpose  additional purpose
101cdf0e10cSrcweir 	*/
102cdf0e10cSrcweir 	inline Mapping(const Environment & rFrom, const Environment & rTo,
103cdf0e10cSrcweir 				   const ::rtl::OUString & rAddPurpose = ::rtl::OUString() )
104cdf0e10cSrcweir 		SAL_THROW( () );
105cdf0e10cSrcweir 
106cdf0e10cSrcweir 	/** Constructor.
107*095d99d2Smseidel 
108cdf0e10cSrcweir 		@param pMapping another mapping
109cdf0e10cSrcweir 	*/
110cdf0e10cSrcweir 	inline Mapping( uno_Mapping * pMapping = 0 ) SAL_THROW( () );
111*095d99d2Smseidel 
112cdf0e10cSrcweir 	/** Copy constructor.
113*095d99d2Smseidel 
114cdf0e10cSrcweir 		@param rMapping another mapping
115cdf0e10cSrcweir 	*/
116cdf0e10cSrcweir 	inline Mapping( const Mapping & rMapping ) SAL_THROW( () );
117*095d99d2Smseidel 
118cdf0e10cSrcweir 	/** Destructor.
119cdf0e10cSrcweir 	*/
120cdf0e10cSrcweir 	inline ~Mapping() SAL_THROW( () );
121*095d99d2Smseidel 
122cdf0e10cSrcweir 	/** Sets a given mapping.
123*095d99d2Smseidel 
124cdf0e10cSrcweir 		@param pMapping another mapping
125cdf0e10cSrcweir 		@return this mapping
126cdf0e10cSrcweir 	*/
127cdf0e10cSrcweir 	inline Mapping & SAL_CALL operator = ( uno_Mapping * pMapping ) SAL_THROW( () );
128cdf0e10cSrcweir 	/** Sets a given mapping.
129*095d99d2Smseidel 
130cdf0e10cSrcweir 		@param rMapping another mapping
131cdf0e10cSrcweir 		@return this mapping
132cdf0e10cSrcweir 	*/
operator =(const Mapping & rMapping)133cdf0e10cSrcweir 	inline Mapping & SAL_CALL operator = ( const Mapping & rMapping ) SAL_THROW( () )
134cdf0e10cSrcweir 		{ return operator = ( rMapping._pMapping ); }
135*095d99d2Smseidel 
136cdf0e10cSrcweir 	/** Provides a pointer to the C mapping. The returned mapping is NOT acquired!
137*095d99d2Smseidel 
138cdf0e10cSrcweir 		@return UNacquired C mapping
139cdf0e10cSrcweir 	*/
get() const140cdf0e10cSrcweir 	inline uno_Mapping * SAL_CALL get() const SAL_THROW( () )
141cdf0e10cSrcweir 		{ return _pMapping; }
142*095d99d2Smseidel 
143cdf0e10cSrcweir 	/** Tests if a mapping is set.
144*095d99d2Smseidel 
145cdf0e10cSrcweir 		@return true if a mapping is set
146cdf0e10cSrcweir 	*/
is() const147cdf0e10cSrcweir 	inline sal_Bool SAL_CALL is() const SAL_THROW( () )
148cdf0e10cSrcweir 		{ return (_pMapping != 0); }
149*095d99d2Smseidel 
150cdf0e10cSrcweir 	/** Releases a set mapping.
151cdf0e10cSrcweir 	*/
152cdf0e10cSrcweir 	inline void SAL_CALL clear() SAL_THROW( () );
153*095d99d2Smseidel 
154cdf0e10cSrcweir 	/** Maps an interface from one environment to another.
155*095d99d2Smseidel 
156cdf0e10cSrcweir 		@param pInterface		source interface
157cdf0e10cSrcweir 		@param pTypeDescr		type description of interface
158cdf0e10cSrcweir 		@return					mapped interface
159cdf0e10cSrcweir 	*/
160cdf0e10cSrcweir 	inline void * SAL_CALL mapInterface( void * pInterface, typelib_InterfaceTypeDescription * pTypeDescr ) const SAL_THROW( () );
161cdf0e10cSrcweir 	/** Maps an interface from one environment to another.
162*095d99d2Smseidel 
163cdf0e10cSrcweir 		@param pInterface		source interface
164cdf0e10cSrcweir 		@param pTypeDescr		type description of interface
165cdf0e10cSrcweir 		@return					mapped interface
166cdf0e10cSrcweir 	*/
mapInterface(void * pInterface,typelib_TypeDescription * pTypeDescr) const167cdf0e10cSrcweir 	inline void * SAL_CALL mapInterface( void * pInterface, typelib_TypeDescription * pTypeDescr ) const SAL_THROW( () )
168cdf0e10cSrcweir 		{ return mapInterface( pInterface, (typelib_InterfaceTypeDescription *)pTypeDescr ); }
169*095d99d2Smseidel 
170cdf0e10cSrcweir 	/** Maps an interface from one environment to another.
171*095d99d2Smseidel 
172cdf0e10cSrcweir 		@param pInterface		source interface
173cdf0e10cSrcweir 		@param rType			type of interface
174cdf0e10cSrcweir 		@return					mapped interface
175cdf0e10cSrcweir 	*/
176cdf0e10cSrcweir 	inline void * SAL_CALL mapInterface(
177cdf0e10cSrcweir 		void * pInterface, const ::com::sun::star::uno::Type & rType ) const SAL_THROW( () );
178*095d99d2Smseidel 
179cdf0e10cSrcweir 	/** Maps an interface from one environment to another.
180*095d99d2Smseidel 
181cdf0e10cSrcweir 		@param ppOut			inout mapped interface
182cdf0e10cSrcweir 		@param pInterface		source interface
183cdf0e10cSrcweir 		@param pTypeDescr		type description of interface
184cdf0e10cSrcweir 	*/
mapInterface(void ** ppOut,void * pInterface,typelib_InterfaceTypeDescription * pTypeDescr) const185cdf0e10cSrcweir 	inline void SAL_CALL mapInterface( void ** ppOut, void * pInterface, typelib_InterfaceTypeDescription * pTypeDescr ) const SAL_THROW( () )
186cdf0e10cSrcweir 		{ (*_pMapping->mapInterface)( _pMapping, ppOut, pInterface, pTypeDescr ); }
187cdf0e10cSrcweir 	/** Maps an interface from one environment to another.
188*095d99d2Smseidel 
189cdf0e10cSrcweir 		@param ppOut			inout mapped interface
190cdf0e10cSrcweir 		@param pInterface		source interface
191cdf0e10cSrcweir 		@param pTypeDescr		type description of interface
192cdf0e10cSrcweir 	*/
mapInterface(void ** ppOut,void * pInterface,typelib_TypeDescription * pTypeDescr) const193cdf0e10cSrcweir 	inline void SAL_CALL mapInterface( void ** ppOut, void * pInterface, typelib_TypeDescription * pTypeDescr ) const SAL_THROW( () )
194cdf0e10cSrcweir 		{ (*_pMapping->mapInterface)( _pMapping, ppOut, pInterface, (typelib_InterfaceTypeDescription *)pTypeDescr ); }
195*095d99d2Smseidel 
196cdf0e10cSrcweir 	/** Maps an interface from one environment to another.
197*095d99d2Smseidel 
198cdf0e10cSrcweir 		@param ppOut			inout mapped interface
199cdf0e10cSrcweir 		@param pInterface		source interface
200cdf0e10cSrcweir 		@param rType			type of interface to be mapped
201cdf0e10cSrcweir 	 */
202cdf0e10cSrcweir 	inline void SAL_CALL mapInterface( void ** ppOut, void * pInterface, const ::com::sun::star::uno::Type & rType ) const SAL_THROW( () );
203cdf0e10cSrcweir };
204cdf0e10cSrcweir //__________________________________________________________________________________________________
Mapping(const::rtl::OUString & rFrom,const::rtl::OUString & rTo,const::rtl::OUString & rAddPurpose)205cdf0e10cSrcweir inline Mapping::Mapping(
206cdf0e10cSrcweir 	const ::rtl::OUString & rFrom, const ::rtl::OUString & rTo, const ::rtl::OUString & rAddPurpose )
207cdf0e10cSrcweir 	SAL_THROW( () )
208cdf0e10cSrcweir 	: _pMapping( 0 )
209cdf0e10cSrcweir {
210cdf0e10cSrcweir 	uno_getMappingByName( &_pMapping, rFrom.pData, rTo.pData, rAddPurpose.pData );
211cdf0e10cSrcweir }
212cdf0e10cSrcweir //__________________________________________________________________________________________________
Mapping(uno_Environment * pFrom,uno_Environment * pTo,const::rtl::OUString & rAddPurpose)213cdf0e10cSrcweir inline Mapping::Mapping(
214cdf0e10cSrcweir 	uno_Environment * pFrom, uno_Environment * pTo, const ::rtl::OUString & rAddPurpose )
215cdf0e10cSrcweir 	SAL_THROW( () )
216cdf0e10cSrcweir 	: _pMapping( 0 )
217cdf0e10cSrcweir {
218cdf0e10cSrcweir 	uno_getMapping( &_pMapping, pFrom, pTo, rAddPurpose.pData );
219cdf0e10cSrcweir }
220cdf0e10cSrcweir //__________________________________________________________________________________________________
Mapping(const Environment & rFrom,const Environment & rTo,const::rtl::OUString & rAddPurpose)221cdf0e10cSrcweir inline Mapping::Mapping(
222cdf0e10cSrcweir 	const Environment & rFrom, const Environment & rTo, const ::rtl::OUString & rAddPurpose )
223cdf0e10cSrcweir 	SAL_THROW( () )
224cdf0e10cSrcweir 		: _pMapping(0)
225cdf0e10cSrcweir {
226cdf0e10cSrcweir 	uno_getMapping( &_pMapping, rFrom.get(), rTo.get(), rAddPurpose.pData );
227cdf0e10cSrcweir }
228cdf0e10cSrcweir //__________________________________________________________________________________________________
Mapping(uno_Mapping * pMapping)229cdf0e10cSrcweir inline Mapping::Mapping( uno_Mapping * pMapping ) SAL_THROW( () )
230cdf0e10cSrcweir 	: _pMapping( pMapping )
231cdf0e10cSrcweir {
232cdf0e10cSrcweir 	if (_pMapping)
233cdf0e10cSrcweir 		(*_pMapping->acquire)( _pMapping );
234cdf0e10cSrcweir }
235cdf0e10cSrcweir //__________________________________________________________________________________________________
Mapping(const Mapping & rMapping)236cdf0e10cSrcweir inline Mapping::Mapping( const Mapping & rMapping ) SAL_THROW( () )
237cdf0e10cSrcweir 	: _pMapping( rMapping._pMapping )
238cdf0e10cSrcweir {
239cdf0e10cSrcweir 	if (_pMapping)
240cdf0e10cSrcweir 		(*_pMapping->acquire)( _pMapping );
241cdf0e10cSrcweir }
242cdf0e10cSrcweir //__________________________________________________________________________________________________
~Mapping()243cdf0e10cSrcweir inline Mapping::~Mapping() SAL_THROW( () )
244cdf0e10cSrcweir {
245cdf0e10cSrcweir 	if (_pMapping)
246cdf0e10cSrcweir 		(*_pMapping->release)( _pMapping );
247cdf0e10cSrcweir }
248cdf0e10cSrcweir //__________________________________________________________________________________________________
clear()249cdf0e10cSrcweir inline void Mapping::clear() SAL_THROW( () )
250cdf0e10cSrcweir {
251cdf0e10cSrcweir 	if (_pMapping)
252cdf0e10cSrcweir 	{
253cdf0e10cSrcweir 		(*_pMapping->release)( _pMapping );
254cdf0e10cSrcweir 		_pMapping = 0;
255cdf0e10cSrcweir 	}
256cdf0e10cSrcweir }
257cdf0e10cSrcweir //__________________________________________________________________________________________________
operator =(uno_Mapping * pMapping)258cdf0e10cSrcweir inline Mapping & Mapping::operator = ( uno_Mapping * pMapping ) SAL_THROW( () )
259cdf0e10cSrcweir {
260cdf0e10cSrcweir 	if (pMapping)
261cdf0e10cSrcweir 		(*pMapping->acquire)( pMapping );
262cdf0e10cSrcweir 	if (_pMapping)
263cdf0e10cSrcweir 		(*_pMapping->release)( _pMapping );
264cdf0e10cSrcweir 	_pMapping = pMapping;
265cdf0e10cSrcweir 	return *this;
266cdf0e10cSrcweir }
267cdf0e10cSrcweir //__________________________________________________________________________________________________
mapInterface(void ** ppOut,void * pInterface,const::com::sun::star::uno::Type & rType) const268cdf0e10cSrcweir inline void Mapping::mapInterface(
269cdf0e10cSrcweir 	void ** ppOut, void * pInterface, const ::com::sun::star::uno::Type & rType ) const
270cdf0e10cSrcweir 	SAL_THROW( () )
271cdf0e10cSrcweir {
272cdf0e10cSrcweir 	typelib_TypeDescription * pTD = 0;
273cdf0e10cSrcweir 	TYPELIB_DANGER_GET( &pTD, rType.getTypeLibType() );
274cdf0e10cSrcweir 	if (pTD)
275cdf0e10cSrcweir 	{
276cdf0e10cSrcweir 		(*_pMapping->mapInterface)( _pMapping, ppOut, pInterface, (typelib_InterfaceTypeDescription *)pTD );
277cdf0e10cSrcweir 		TYPELIB_DANGER_RELEASE( pTD );
278cdf0e10cSrcweir 	}
279cdf0e10cSrcweir }
280cdf0e10cSrcweir //__________________________________________________________________________________________________
mapInterface(void * pInterface,typelib_InterfaceTypeDescription * pTypeDescr) const281cdf0e10cSrcweir inline void * Mapping::mapInterface(
282cdf0e10cSrcweir 	void * pInterface, typelib_InterfaceTypeDescription * pTypeDescr ) const
283cdf0e10cSrcweir 	SAL_THROW( () )
284cdf0e10cSrcweir {
285cdf0e10cSrcweir 	void * pOut = 0;
286cdf0e10cSrcweir 	(*_pMapping->mapInterface)( _pMapping, &pOut, pInterface, pTypeDescr );
287cdf0e10cSrcweir 	return pOut;
288cdf0e10cSrcweir }
289cdf0e10cSrcweir //__________________________________________________________________________________________________
mapInterface(void * pInterface,const::com::sun::star::uno::Type & rType) const290cdf0e10cSrcweir inline void * Mapping::mapInterface(
291cdf0e10cSrcweir 	void * pInterface, const ::com::sun::star::uno::Type & rType ) const
292cdf0e10cSrcweir 	SAL_THROW( () )
293cdf0e10cSrcweir {
294cdf0e10cSrcweir 	void * pOut = 0;
295cdf0e10cSrcweir 	mapInterface( &pOut, pInterface, rType );
296cdf0e10cSrcweir 	return pOut;
297cdf0e10cSrcweir }
298cdf0e10cSrcweir 
299cdf0e10cSrcweir /** Deprecated. This function DOES NOT WORK with Purpose Environments
300*095d99d2Smseidel     (https://wiki.openoffice.org/wiki/Uno/Binary/Spec/Purpose Environments)
301*095d99d2Smseidel 
302*095d99d2Smseidel     Maps a binary C UNO interface to be used in the currently used compiler environment.
303cdf0e10cSrcweir 
304cdf0e10cSrcweir     @tplparam C interface type
305cdf0e10cSrcweir     @param ppRet inout returned interface pointer
306cdf0e10cSrcweir     @param pUnoI binary C UNO interface
307cdf0e10cSrcweir     @return true if successful, false otherwise
308cdf0e10cSrcweir 
309cdf0e10cSrcweir     @deprecated
310cdf0e10cSrcweir */
311cdf0e10cSrcweir template< class C >
mapToCpp(Reference<C> * ppRet,uno_Interface * pUnoI)312cdf0e10cSrcweir inline sal_Bool mapToCpp( Reference< C > * ppRet, uno_Interface * pUnoI ) SAL_THROW( () )
313cdf0e10cSrcweir {
314cdf0e10cSrcweir 	Mapping aMapping(
315cdf0e10cSrcweir 		::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM(UNO_LB_UNO) ),
316cdf0e10cSrcweir 		::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM(CPPU_CURRENT_LANGUAGE_BINDING_NAME) ) );
317cdf0e10cSrcweir 	OSL_ASSERT( aMapping.is() );
318cdf0e10cSrcweir 	aMapping.mapInterface(
319cdf0e10cSrcweir             (void **)ppRet, pUnoI, ::cppu::getTypeFavourUnsigned( ppRet ) );
320cdf0e10cSrcweir 	return (0 != *ppRet);
321cdf0e10cSrcweir }
322cdf0e10cSrcweir /** Deprecated. This function DOES NOT WORK with Purpose Environments
323*095d99d2Smseidel     (https://wiki.openoffice.org/wiki/Uno/Binary/Spec/Purpose Environments)
324cdf0e10cSrcweir 
325cdf0e10cSrcweir     Maps an UNO interface of the currently used compiler environment to binary C UNO.
326*095d99d2Smseidel 
327cdf0e10cSrcweir     @tplparam C interface type
328cdf0e10cSrcweir     @param ppRet inout returned interface pointer
329cdf0e10cSrcweir     @param x interface reference
330cdf0e10cSrcweir     @return true if successful, false otherwise
331cdf0e10cSrcweir 
332cdf0e10cSrcweir     @deprecated
333cdf0e10cSrcweir */
334cdf0e10cSrcweir template< class C >
mapToUno(uno_Interface ** ppRet,const Reference<C> & x)335cdf0e10cSrcweir inline sal_Bool mapToUno( uno_Interface ** ppRet, const Reference< C > & x ) SAL_THROW( () )
336cdf0e10cSrcweir {
337cdf0e10cSrcweir 	Mapping aMapping(
338cdf0e10cSrcweir 		::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM(CPPU_CURRENT_LANGUAGE_BINDING_NAME) ),
339cdf0e10cSrcweir 		::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM(UNO_LB_UNO) ) );
340cdf0e10cSrcweir 	OSL_ASSERT( aMapping.is() );
341cdf0e10cSrcweir 	aMapping.mapInterface(
342cdf0e10cSrcweir             (void **)ppRet, x.get(), ::cppu::getTypeFavourUnsigned( &x ) );
343cdf0e10cSrcweir 	return (0 != *ppRet);
344cdf0e10cSrcweir }
345cdf0e10cSrcweir 
346cdf0e10cSrcweir }
347cdf0e10cSrcweir }
348cdf0e10cSrcweir }
349cdf0e10cSrcweir }
350cdf0e10cSrcweir 
351cdf0e10cSrcweir #endif
352*095d99d2Smseidel 
353