Solarmutex Deadlock when Closing Calc which contains functions with XVolatileResult return values

anwen anwenfish at hotmail.com
Thu Aug 9 06:56:03 PDT 2012


anwen wrote
> 
> 
> BTW, I am not sure how to initialize a XDocumentEventBroadcaster which you
> mentioned previously in a Calc Extension. I tried this method: 
> Reference<XSpreadsheetDocument>
> xCalc(m_xCC->getServiceManager()->createInstanceWithContext(OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.sheet.SpreadsheetDocument")),
> m_xCC), UNO_QUERY); But it did not work.
> 
> 

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.

void SAL_CALL BLPAPIAddIn_Impl::addDocEvtListener() throw (RuntimeException)
{
	// Reference<XModel> xModel = UnoRuntime.queryInterface(XModel.class,
uno::UNO_QUERY);
	Reference<XSpreadsheetDocument>
xCalc(m_xCC->getServiceManager()->createInstanceWithContext(OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.sheet.SpreadsheetDocument")),
m_xCC), UNO_QUERY);
	
	if (xCalc.is())
	{		
		Reference< XDocumentEventBroadcaster > xBroadcaster(xCalc, UNO_QUERY);
		if (xBroadcaster.is())
		{
			Reference< XDocumentEventListener > xDocListener(
					static_cast<XDocumentEventListener*>(new CalcListener()), UNO_QUERY);
			xBroadcaster->addDocumentEventListener(xDocListener);
			std::cout << "added an DocEvtListener" << std::endl;
		}
	}
}

Thanks a lot.




--
View this message in context: http://nabble.documentfoundation.org/Solarmutex-Deadlock-when-Closing-Calc-which-contains-functions-with-XVolatileResult-return-values-tp3998056p4000189.html
Sent from the Dev mailing list archive at Nabble.com.


More information about the LibreOffice mailing list