dumpcpp generated code / COM /qutlook Example stops working since 5.11.x (MinGW)



  • Since upgrading from QT 5.10.x to 5.11.x (MinGW 5.3.0, Windows 10) my COM based application stopped working.

    I figured out that the same effect occours on the QT qutlook example.

    1.) The dumpcpp generated code in file MSOULT.h won't compile: error: use of enum 'MsoFeatureInstall' without previous declaration

    I could fix it, as described in this thread: https://www.qtcentre.org/threads/8811 and given this old thread this seems to be a long running issue.

    2.) During runtime, the qutlook example stops with SIGSEV in file msoutl.h, line 61186 = QVariant qax_result = property("Items");

    inline Outlook::_Items* MAPIFolder::Items() const
    {
        Outlook::_Items* qax_pointer = 0;
        qRegisterMetaType<Outlook::_Items*>("_Items*", &qax_pointer);
        qRegisterMetaType<Outlook::_Items>("_Items", qax_pointer);
        QVariant qax_result = property("Items");
        if (!qax_result.constData()) return 0;
        Q_ASSERT(qax_result.isValid());
        return *(Outlook::_Items**)qax_result.constData();
    }
    

    Accessing a COM object's property returning a QVariant is exactly the same position where SIGSEV occurs in my own project. Going back to QT 5.10.x or earlier versions everything is fine here. So something must have changed in QT 5.11.x that causes this ..?



  • Just a follow up:

    Using Qt 5.12.0 beta with MinGW 7.3 the qutlook example as well as my own code works again!



  • @_Rayman_ great that you have a workaround/solution. Please don't forget to mark your post as solved!! Thanks.


Log in to reply