10#include <com/sun/star/uno/RuntimeException.hpp>
22 void* pReturn,
void* pArgs[],
uno_Any** ppException)
27 switch (pMemberDescr->eTypeClass)
29 case typelib_TypeClass_INTERFACE_ATTRIBUTE:
34 case typelib_TypeClass_INTERFACE_METHOD:
37 reinterpret_cast<typelib_InterfaceMethodTypeDescription const*
>(pMemberDescr)));
39 switch (aVtableSlot.index)
42 (*pUnoI->acquire)(pUnoI);
46 (*pUnoI->release)(pUnoI);
52 TYPELIB_DANGER_GET(&pTD,
reinterpret_cast<Type*
>(pArgs[0])->getTypeLibType());
55 uno_Interface* pInterface = 0;
58 (typelib_InterfaceTypeDescription*)pTD);
62 ::uno_any_construct(
reinterpret_cast<uno_Any*
>(pReturn), &pInterface,
64 (*pInterface->release)(pInterface);
65 TYPELIB_DANGER_RELEASE(pTD);
69 TYPELIB_DANGER_RELEASE(pTD);
80 ::com::sun::star::uno::RuntimeException aExc(
81 "illegal member type description!",
86 ::uno_type_any_construct(*ppException, &aExc, rExcType.getTypeLibType(), 0);
uno_ExtEnvironment * getUnoEnv()
A uno proxy wrapping a cpp interface.
struct _typelib_TypeDescription typelib_TypeDescription
void unoInterfaceProxyDispatch(uno_Interface *pUnoI, typelib_TypeDescription const *pMemberDescr, void *pReturn, void **pArgs, uno_Any **ppException)
VtableSlot getVtableSlot(typelib_InterfaceAttributeTypeDescription const *ifcMember)
Calculates the vtable slot associated with an interface attribute member.