Re: Test failure in embeddedobj on some Windows systems

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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




[Index of Archives]     [LARTC]     [Bugtraq]     [Yosemite Forum]     [Photo]

  Powered by Linux