Michael Stahl-2 wrote > > On 09/08/12 15:56, anwen wrote: >> I am also interested in XDocumentEventBroadcaster/XDocumentEventListener. >> I >> am wondering if you could correct my following code which tries to >> register >> a XDocumentListener with the XDocumentEventBroadcaster in a Calc >> Extension. >> I did some research on this topic. Most of examples initialize a >> EventBroadcaster following a bootstrap() method which could not be used >> in >> Calc Extension. > > i don't think documents implement XDocumentEventBroadcaster, but there > is a GlobalEventBroadcaster service that you can get from the service > factory: > > Object oGEB = m_xMSF.createInstance( > "com.sun.star.frame.GlobalEventBroadcaster"); > m_xGEB = UnoRuntime.queryInterface(XDocumentEventBroadcaster.class, > oGEB); > > iirc the DocumentEvent that your listener gets then contains something > that identifies the document that the event is for. > >
I implemented the above code with c++ . However, it did not work. Anything wrong with the following code: m_xCC is a given Reference<XComponentContext> Reference<XEventBroadcaster> xBrd(m_xCC->getServiceManager()->createInstanceWithContext(OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.frame.GlobalEventbroadcaster")), m_xCC), UNO_QUERY); //xBrd is still empty, not sure why? if (xBrd.is()) { Reference< XEventListener > xDocListener( static_cast<XEventListener*>(new CalcListener()), UNO_QUERY); xBrd->addEventListener(xDocListener); } Thanks, Wendi -- View this message in context: http://nabble.documentfoundation.org/Solarmutex-Deadlock-when-Closing-Calc-which-contains-functions-with-XVolatileResult-return-values-tp3998056p4001090.html Sent from the Dev mailing list archive at Nabble.com. _______________________________________________ LibreOffice mailing list LibreOffice@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice