Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-55080

Run-time error "Type mismatch" with getting dispatch interface

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: P4: Low P4: Low
    • None
    • 5.7.0
    • ActiveX Support
    • None
    • QT 5.7, CPPTOOLS 4.0.3, Windows 7 x86

      I attached 7z archive:
      1. dumpcppBug - qt 5.7 sample project
      2. testCOM - test VS2012 project with release testCOM.dll

      Code snippet:

         //COM interface:
      //
      //interface ITest2 : IDispatch{
      //	[id(1),  helpstring("method foo")]     HRESULT foo    ( [out,retval] INT* ret );
      //};
      //
      //interface ITest : IDispatch{
      //  ...
      //	[id(8),  helpstring("method foo2")]   HRESULT foo2  ( [out] ITest2** iTest2, [out,retval] INT* ret );
      //};
      
      //Namespace testCOMLib generated by dumpcpp v5.7.0 using
         testCOMLib::Test test;
         testCOMLib::ITest2 *pitest2 = nullptr;
         // inline int Test::foo2(ITest2** ITest2)
         auto res = test.foo2(&pitest2); // <--
      
      

      QT Debugger log:

      Debugging starts
      QAxBase: Error calling IDispatch member foo2: Type mismatch in parameter 0
      Debugging has finished
      

      DISP_E_TYPEMISMATCH emitted from checkHRESULT() qtactiveqt\src\activeqt\container\qaxbase.cpp:3446 .

        1. dumpcppBug.7z
          24 kB
          Valera G
        2. qtbug55080.zip
          36 kB
          Friedemann Kleint
        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

            kleint Friedemann Kleint
            valera_ Valera G
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:

                There are no open Gerrit changes