diff options
Diffstat (limited to 'src/activeqt/container/qaxbase.cpp')
-rw-r--r-- | src/activeqt/container/qaxbase.cpp | 7 |
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); |