diff options
Diffstat (limited to 'src/activeqt')
-rw-r--r-- | src/activeqt/control/qaxserverbase.cpp | 13 | ||||
-rw-r--r-- | src/activeqt/shared/qaxtypes.cpp | 4 |
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) |