Details
-
Bug
-
Resolution: Done
-
P2: Important
-
6.4.0 Beta3
-
-
f735057e8b (qt/qtactiveqt/dev) e2edd90ab1 (qt/qtactiveqt/6.4) e2edd90ab1 (qt/tqtc-qtactiveqt/6.4) f735057e8b (qt/tqtc-qtactiveqt/dev) e2edd90ab1 (qt/qtactiveqt/6.4.1) e2edd90ab1 (qt/tqtc-qtactiveqt/6.4.1) e2edd90ab1 (qt/tqtc-qtactiveqt/tqtc/qtinsight-6.4)
Description
ActiveQt fails to handle VT_UNKNOWN the same way it does VT_DISPATCH, as a result, ActiveQt fails to recover wrapped IID_IAxServerBase objects.
This ActiveQt bug was exposed by another bug in pywin32:
https://github.com/mhammond/pywin32/issues/1934
When doing something like this in Python:
foo = server.getFoo()
server.doSomething(foo)
If "foo" is created by ActiveQt, then pywin32 passes the object as a VT_UNKNOWN, instead of a VT_DISPATCH, so ActiveQt fails to recover the object.
ActiveQt should do the same for both VT_DISPATCH and VT_UNKNOWN and attempt to Query Interface for IID_IAxServerBase in order to unwrap it and retrieve the correct object.
Attachments
Issue Links
- relates to
-
QTBUG-106024 [QAxServerBase::Invoke] ActiveQt should only call the dispatch method if the types match
- Closed