// get object id of interface to be wrapped
rtl_uString * pOId = nullptr;
(*pBridge->pCppEnv->getObjectIdentifier)(
pBridge->pCppEnv, &pOId, pCppI );
assert(pOId);
// try to get any known interface from target environment
(*pBridge->pUnoEnv->getRegisteredInterface)(
pBridge->pUnoEnv, ppUnoI, pOId, pTypeDescr );
if (! *ppUnoI) // no existing interface, register new proxy interface
{ // try to publish a new proxy (refcount initially 1)
uno_Interface * pSurrogate
= bridges::cpp_uno::shared::UnoInterfaceProxy::create(
pBridge, static_cast< css::uno::XInterface * >( pCppI ),
pTypeDescr, pOId );
// proxy may be exchanged during registration
(*pBridge->pUnoEnv->registerProxyInterface)(
pBridge->pUnoEnv, reinterpret_cast< void ** >( &pSurrogate ),
freeUnoInterfaceProxy, pOId,
pTypeDescr );
// get object id of uno interface to be wrapped
rtl_uString * pOId = nullptr;
(*pBridge->pUnoEnv->getObjectIdentifier)(
pBridge->pUnoEnv, &pOId, pUnoI );
assert(pOId);
// try to get any known interface from target environment
(*pBridge->pCppEnv->getRegisteredInterface)(
pBridge->pCppEnv, ppCppI, pOId, pTypeDescr );
if (! *ppCppI) // no existing interface, register new proxy interface
{ // try to publish a new proxy (ref count initially 1)
css::uno::XInterface * pProxy
= bridges::cpp_uno::shared::CppInterfaceProxy::create(
pBridge, static_cast< uno_Interface * >( pUnoI ),
pTypeDescr, pOId );
// proxy may be exchanged during registration
(*pBridge->pCppEnv->registerProxyInterface)(
pBridge->pCppEnv, reinterpret_cast< void ** >( &pProxy ),
freeCppInterfaceProxy, pOId,
pTypeDescr );
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.