Test failure in embeddedobj on some Windows systems

Mike Kaganski mikekaganski at hotmail.com
Wed Nov 30 13:03:46 UTC 2022


On 30.11.2022 14:45, Stephan Bergmann wrote:

> block in OleComponent::GetExtent 
> (embeddedobj/source/msole/olecomponent.cxx) and into its call (done on a 
> different thread, by that syncExecute) of
> 
>> void OleComponent::RunObject()
>> {
>>     OSL_ENSURE( m_pNativeImpl->m_pOleObject, "The pointer can not be 
>> set to NULL here!" );
>>     if ( !m_pNativeImpl->m_pOleObject )
>>         throw embed::WrongStateException(); // TODO: the object is in 
>> wrong state
>>
>>     if ( !OleIsRunning( m_pNativeImpl->m_pOleObject ) )
>>     {
>>         HRESULT hr = OleRun( m_pNativeImpl->m_pObj );
>>
>>         if ( FAILED( hr ) )
>>         {
>>             if ( hr == REGDB_E_CLASSNOTREG )
>>                 throw embed::UnreachableStateException(); // the 
>> object server is not installed
>>             else
>>                 throw io::IOException();
>>         }
>>     }
>> }
> 
> ... my run 
> goes into the hr == REGDB_E_CLASSNOTREG branch throwing an 
> UnreachableStateException (which that syncExecucte then rethrows on the 
> original thread).
> 

FTR: this issue has already surfaced once on the IRC, and I recall that 
we tracked it down to the MS Paint OLE registration issues specific to 
Windows 11 (the unit test uses the "mspaint data").

This is the URL that I believe we discovered back then:
https://forums.autodesk.com/t5/autocad-forum/ole-not-showing-in-windows-11/td-p/11083461

And this one I found today:
https://answers.sap.com/questions/13565013/background-image-not-appears-in-windows-11.html

It mentions some "workaround without changing the report itself, but 
configuring Windows", which I can't open myself (access denied).

Possibly we need to re-consider the OLE server application, since MS 
Paint no longer looks to be the reliable choice.

-- 
Best regards,
Mike Kaganski



More information about the LibreOffice mailing list