1#ifndef INCLUDED_COM_SUN_STAR_UNO_XINTERFACE_HDL
2#define INCLUDED_COM_SUN_STAR_UNO_XINTERFACE_HDL
3
4#include "sal/config.h"
5
6#include <exception>
7
8#include "com/sun/star/uno/RuntimeException.hdl"
9#include "com/sun/star/uno/Any.h"
10#include "com/sun/star/uno/Reference.h"
11#include "com/sun/star/uno/Type.h"
12#include "cppu/macros.hxx"
13
14namespace com { namespace sun { namespace star { namespace uno { class Type; } } } }
15
16namespace com { namespace sun { namespace star { namespace uno {
17
18class SAL_NO_VTABLE XInterface
19{
20public:
21
22 // Methods
23 virtual ::css::uno::Any SAL_CALL queryInterface( const ::css::uno::Type& aType ) /* throw (::css::uno::RuntimeException, ::std::exception) */ = 0;
24 virtual void SAL_CALL acquire() /* throw () */ = 0;
25 virtual void SAL_CALL release() /* throw () */ = 0;
26
27 static inline ::css::uno::Type const & SAL_CALL static_type(void * = 0);
28
29protected:
30 ~XInterface() throw () {} // avoid warnings about virtual members and non-virtual dtor
31};
32
33} } } }
34
35inline ::css::uno::Type const & SAL_CALL getCppuType(const ::css::uno::Reference< ::css::uno::XInterface > *) SAL_THROW(());
36
37#endif
38