summaryrefslogtreecommitdiff
path: root/src/activeqt/container/qaxbase.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/activeqt/container/qaxbase.cpp')
-rw-r--r--src/activeqt/container/qaxbase.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/activeqt/container/qaxbase.cpp b/src/activeqt/container/qaxbase.cpp
index 910cacb..3203096 100644
--- a/src/activeqt/container/qaxbase.cpp
+++ b/src/activeqt/container/qaxbase.cpp
@@ -2193,7 +2193,7 @@ void MetaObjectGenerator::readClassInfo()
if (dispInfo && !typelib)
dispInfo->GetContainingTypeLib(&typelib, &index);
- if (!typelib) {
+ if (!typelib && !that->control().isEmpty()) {
QSettings controls(QLatin1String("HKEY_LOCAL_MACHINE\\Software"), QSettings::NativeFormat);
QString tlid = controls.value(QLatin1String("/Classes/CLSID/") + that->control() + QLatin1String("/TypeLib/.")).toString();
QString tlfile;
@@ -2260,8 +2260,11 @@ void MetaObjectGenerator::readClassInfo()
}
}
- if (!d || !dispInfo || !cacheKey.isEmpty() || !d->tryCache)
+ if (!d || !dispInfo || !cacheKey.isEmpty() || !d->tryCache) {
+ if (disp && !dispInfo)
+ qWarning("%s: IDispatch %p does not provide interface information", Q_FUNC_INFO, disp);
return;
+ }
TYPEATTR *typeattr = nullptr;
dispInfo->GetTypeAttr(&typeattr);