summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/activeqt/container/qaxbase.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/activeqt/container/qaxbase.cpp b/src/activeqt/container/qaxbase.cpp
index 9c0e0d9..722a389 100644
--- a/src/activeqt/container/qaxbase.cpp
+++ b/src/activeqt/container/qaxbase.cpp
@@ -3682,7 +3682,10 @@ int QAxBase::internalInvoke(QMetaObject::Call call, int index, void **v)
// get return value
if (hres == S_OK && ret.vt != VT_EMPTY) {
QVariantToVoidStar(VARIANTToQVariant(ret, slot.typeName()), v[0], slot.typeName());
- clearVARIANT(&ret);
+ if (ret.vt != VT_DISPATCH)
+ clearVARIANT(&ret);
+ else
+ VariantInit(&ret);
}
// update out parameters