summaryrefslogtreecommitdiffstats
path: root/src/activeqt
diff options
context:
space:
mode:
Diffstat (limited to 'src/activeqt')
-rw-r--r--src/activeqt/control/qaxserverbase.cpp13
-rw-r--r--src/activeqt/shared/qaxtypes.cpp4
2 files changed, 15 insertions, 2 deletions
diff --git a/src/activeqt/control/qaxserverbase.cpp b/src/activeqt/control/qaxserverbase.cpp
index 32e2cf2..d833228 100644
--- a/src/activeqt/control/qaxserverbase.cpp
+++ b/src/activeqt/control/qaxserverbase.cpp
@@ -2730,6 +2730,19 @@ HRESULT WINAPI QAxServerBase::Load(IStream *pStm)
qtarray.resize(stat.cbSize.LowPart);
ULONG read;
pStm->Read(qtarray.data(), stat.cbSize.LowPart, &read);
+ } else if (hres == E_NOTIMPL) {
+ ULONG read = 0;
+ while (hres != S_FALSE) {
+ QByteArray arrayRead;
+ arrayRead.resize(4098);
+ hres = pStm->Read(arrayRead.data(), arrayRead.size(), &read);
+ if (hres != S_OK && hres != S_FALSE) {
+ qtarray.resize(0);
+ break;
+ } else if (read == 0)
+ break;
+ qtarray.append(arrayRead);
+ }
}
const QMetaObject *mo = qt.object->metaObject();
diff --git a/src/activeqt/shared/qaxtypes.cpp b/src/activeqt/shared/qaxtypes.cpp
index 7b2e802..6ed9738 100644
--- a/src/activeqt/shared/qaxtypes.cpp
+++ b/src/activeqt/shared/qaxtypes.cpp
@@ -52,7 +52,7 @@
#include <qobject.h>
#ifdef QAX_SERVER
# include <qaxfactory.h>
-# include <qlibrary.h>
+# include <private/qsystemlibrary_p.h>
#else
# include <quuid.h>
# include <qaxobject.h>
@@ -666,7 +666,7 @@ bool QVariantToVARIANT(const QVariant &var, VARIANT &arg, const QByteArray &type
static bool resolved = false;
if (!resolved) {
resolved = true;
- pGetRecordInfoFromTypeInfo = (PGetRecordInfoFromTypeInfo)QLibrary::resolve(QLatin1String("oleaut32"),
+ pGetRecordInfoFromTypeInfo = (PGetRecordInfoFromTypeInfo)QSystemLibrary::resolve(QLatin1String("oleaut32"),
"GetRecordInfoFromTypeInfo");
}
if (!pGetRecordInfoFromTypeInfo)