Uno/Cpp/Snippet/PurpenvHelper
From Apache OpenOffice Wiki
#include <cppu/helper/purpenv/Base.hxx>
#include <cppu/helper/purpenv/Mapping.hxx>
...
class SAL_DLLPRIVATE MyBridge : public cppu::helper::purpenv::Base
{
public:
explicit MyBridge(uno_Environment * pEnv);
virtual void v_callInto_v(uno_EnvCallee * pCallee, va_list param);
virtual void v_callOut_v (uno_EnvCallee * pCallee, va_list param);
virtual void v_enter(void);
virtual void v_leave(void);
virtual int v_isValid(rtl::OUString * pReason);
};
MyBridge::MyBridge(uno_Environment * pEnv)
{
...
}
void MyBridge::v_callInto_v(uno_EnvCallee * pCallee, va_list param)
{
...
}
void MyBridge::v_callOut_v(uno_EnvCallee * pCallee, va_list param)
{
...
}
void MyBridge::v_enter(void)
{
...
}
void MyBridge::v_leave(void)
{
...
}
int MyBridge::v_isValid(rtl::OUString * pReason)
{
...
}
extern "C" void SAL_DLLPUBLIC_EXPORT SAL_CALL uno_initEnvironment(uno_Environment * pEnv)
SAL_THROW_EXTERN_C()
{
new MyBridge(pEnv);
}
extern "C" void SAL_DLLPUBLIC_EXPORT SAL_CALL uno_ext_getMapping(uno_Mapping ** ppMapping,
uno_Environment * pFrom,
uno_Environment * pTo )
{
cppu::helper::purpenv::createMapping(ppMapping, pFrom, pTo);
}