28 #ifndef _COM_SUN_STAR_UNO_REFERENCE_HXX_
29 #define _COM_SUN_STAR_UNO_REFERENCE_HXX_
32 #include <com/sun/star/uno/RuntimeException.hpp>
33 #include <com/sun/star/uno/XInterface.hdl>
47 XInterface * pInterface,
const Type & rType )
52 Any aRet( pInterface->queryInterface( rType ) );
55 XInterface * pRet =
static_cast< XInterface *
>( aRet.pReserved );
63 template<
class interface_type >
65 XInterface * pInterface )
SAL_THROW( (RuntimeException) )
69 #ifndef EXCEPTIONS_OFF
78 XInterface * pInterface,
const Type & rType )
81 XInterface * pQueried = iquery( pInterface, rType );
84 throw RuntimeException(
89 template<
class interface_type >
91 XInterface * pInterface )
SAL_THROW( (RuntimeException) )
94 pInterface, interface_type::static_type());
97 template<
class interface_type >
98 inline interface_type * Reference< interface_type >::iset_throw(
99 interface_type * pInterface )
SAL_THROW( (RuntimeException) )
103 pInterface->acquire();
106 throw RuntimeException(
113 template<
class interface_type >
117 _pInterface->release();
120 template<
class interface_type >
126 template<
class interface_type >
129 _pInterface = rRef._pInterface;
131 _pInterface->acquire();
134 template<
class interface_type >
137 _pInterface = castToXInterface(pInterface);
139 _pInterface->acquire();
142 template<
class interface_type >
145 _pInterface = castToXInterface(pInterface);
148 template<
class interface_type >
151 _pInterface = castToXInterface(pInterface);
154 template<
class interface_type >
157 _pInterface = iquery( rRef.
get() );
160 template<
class interface_type >
163 _pInterface = iquery( pInterface );
166 template<
class interface_type >
170 ? iquery( static_cast< XInterface * >( rAny.
pReserved ) ) : 0);
172 #ifndef EXCEPTIONS_OFF
174 template<
class interface_type >
177 _pInterface = iquery_throw( rRef.
get() );
180 template<
class interface_type >
183 _pInterface = iquery_throw( pInterface );
186 template<
class interface_type >
190 ? static_cast< XInterface * >( rAny.
pReserved ) : 0 );
193 template<
class interface_type >
196 _pInterface = iset_throw( rRef.
get() );
199 template<
class interface_type >
202 _pInterface = iset_throw( pInterface );
207 template<
class interface_type >
212 XInterface *
const pOld = _pInterface;
218 template<
class interface_type >
220 interface_type * pInterface )
SAL_THROW(())
223 castToXInterface(pInterface)->acquire();
224 XInterface *
const pOld = _pInterface;
225 _pInterface = castToXInterface(pInterface);
228 return (0 != pInterface);
231 template<
class interface_type >
235 XInterface *
const pOld = _pInterface;
236 _pInterface = castToXInterface(pInterface);
239 return (0 != pInterface);
242 template<
class interface_type >
250 template<
class interface_type >
254 return set( castFromXInterface( rRef._pInterface ) );
257 template<
class interface_type >
261 return set( castFromXInterface(iquery( pInterface )),
SAL_NO_ACQUIRE );
264 template<
class interface_type >
272 template<
class interface_type >
280 ? static_cast< XInterface * >( rAny.
pReserved ) : 0 )),
284 #ifndef EXCEPTIONS_OFF
286 template<
class interface_type >
290 set( castFromXInterface(iquery_throw( pInterface )),
SAL_NO_ACQUIRE );
293 template<
class interface_type >
301 template<
class interface_type >
305 set( castFromXInterface(
308 ? static_cast< XInterface * >( rAny.
pReserved ) : 0 )),
312 template<
class interface_type >
319 template<
class interface_type >
329 template<
class interface_type >
331 interface_type * pInterface )
SAL_THROW(())
337 template<
class interface_type >
341 set( castFromXInterface( rRef._pInterface ) );
346 template<
class interface_type >
354 template<
class interface_type >
356 XInterface * pInterface )
SAL_THROW( (RuntimeException) )
367 if (_pInterface == pInterface)
369 #ifndef EXCEPTIONS_OFF
377 #ifndef EXCEPTIONS_OFF
379 catch (RuntimeException &)
390 if (_pInterface == rRef._pInterface)
392 #if ! defined EXCEPTIONS_OFF
400 #if ! defined EXCEPTIONS_OFF
402 catch (RuntimeException &)
412 return (!
operator == ( pInterface ));
422 return (!
operator == ( rRef._pInterface ));