24 #include <com/sun/star/uno/XInterface.hpp>
26 #include <typelib/typedescription.h>
27 #include <uno/dispatcher.h>
35 static_cast< uno_Interface *
>( pProxy ) );
42 pThis->
pCppI->release();
43 ::typelib_typedescription_release(&pThis->
pTypeDescr->aBase);
46 #if OSL_DEBUG_LEVEL > 1
47 *(
int *)pProxy = 0xdeadbabe;
54 if (++static_cast< UnoInterfaceProxy * >( pUnoI )->
nRef != 1)
59 #if OSL_DEBUG_LEVEL > 1
63 registerProxyInterface)(
64 static_cast< UnoInterfaceProxy * >( pUnoI )->pBridge->getUnoEnv(),
66 static_cast< UnoInterfaceProxy * >( pUnoI )->oid.pData,
68 #if OSL_DEBUG_LEVEL > 1
69 assert(pThis == pUnoI);
75 if (! --static_cast< UnoInterfaceProxy * >( pUnoI )->
nRef )
80 static_cast< UnoInterfaceProxy * >( pUnoI )->pBridge->getUnoEnv(),
87 com::sun::star::uno::XInterface * pCppI,
88 typelib_InterfaceTypeDescription * pTypeDescr,
89 OUString
const & rOId)
96 com::sun::star::uno::XInterface * pCppI_,
97 typelib_InterfaceTypeDescription * pTypeDescr_, OUString aOId_)
101 , pTypeDescr( pTypeDescr_ )
102 , oid(
std::move( aOId_ ))
105 ::typelib_typedescription_acquire(&
pTypeDescr->aBase);
107 ::typelib_typedescription_complete(
108 reinterpret_cast<typelib_TypeDescription **>(&
pTypeDescr));
com::sun::star::uno::XInterface * pCppI
friend void unoInterfaceProxyDispatch(uno_Interface *pUnoI, typelib_TypeDescription const *pMemberDescr, void *pReturn, void *pArgs[], uno_Any **ppException)
A uno proxy wrapping a cpp interface.
void freeUnoInterfaceProxy(uno_ExtEnvironment *pEnv, void *pProxy)
static UnoInterfaceProxy * create(Bridge *pBridge, com::sun::star::uno::XInterface *pCppI, typelib_InterfaceTypeDescription *pTypeDescr, OUString const &rOId)
void releaseProxy(uno_Interface *pUnoI)
uno_ExtEnvironment * getUnoEnv()
uno_ExtEnvironment * getCppEnv()
typelib_InterfaceTypeDescription * pTypeDescr
friend void releaseProxy(uno_Interface *pUnoI)
void acquireProxy(uno_Interface *pUnoI)
UnoInterfaceProxy(UnoInterfaceProxy const &)=delete
friend void acquireProxy(uno_Interface *pUnoI)
Holding environments and mappings.