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); }