Please nominate your Qt Champions for 2021!

Qt and COM problem (QvariantList &*)

  • All,

    i'm trying to access a COM object using Qt.
    I used dumpcpp to generate the c++ namespace for the type library.

    While i can use some methods without problem, i have troubles using the following method, documented as followed:

    • void SetBillTypeEnables (QVariantList*& billTypeEnables) [slot]
      Connect a signal to this slot:
      QObject::connect(sender, SIGNAL(someSignal(QVariantList*&)), object, SLOT(SetBillTypeEnables(QVariantList*&)));Or call the function directly:
      @QVariantList params = ...
      object->dynamicCall("SetBillTypeEnables(QVariantList*&)", params);@

    I tried couple of things, but it doesn't seem to work. The method actually requires a reference to an array of booleans (5). Dumpcpp converted it into the QVariantList*& parameter.

    Any help on how to call this.
    I tried the following, which in my opinion should work, but it doesn't:

    @VariantList* newValues = new QVariantList( );
    newValues->append( false );
    newValues->append( true );
    newValues->append( true );
    newValues->append( true );
    newValues->append( true );

    _acc->dynamicCall( "SetBillValueEnables( QVariantList & )", qVariantFromValue( (void) newValues ) );@

    The qVariantFromValues is required, because QVariant doesn't accept a pointer as argument at construction.
    The actual result = the debugger showing me the follwing error: QAxBase: Error calling IDispatch member SetBillValueEnables: Unknown error

    The error message is rather obscure and i don't have to much experience with COM. But has anyone a clue on how i can solve this, or what i do wrong?

    Thx in advance.

    Edit: Should have added that i'm using Qt 4.7.4 for Desktop - MinGW 4.4 (sdk 1.1.4)

  • Really no one?

Log in to reply