| Предыдущий | Следующий |
| TYPE_E_UNDEFINEDTYPE | TYPE_E_INVALIDSTATE |
TYPE_E_QUALIFIEDNAMEDISALLOWED
Объект и состояние
Этот HRESULT 0X80028028 фиксирует условие qualified name запрещено в подсистеме COM Automation type library and ITypeInfo metadata resolution. Для корректного сравнения нужны один и тот же API, сопоставимый object state и первый возврат до recovery.
Type compiler, importer, proxy generator и runtime ITypeInfo consumer могут возвращать тот же TYPE_E_* на разных boundaries, поэтому producer/toolchain version входит в evidence.
Конкретные признаки из исходного EN-описания
the result is HRESULT 2147647528 ( 0x80028028 ) from winerror.h.
TYPE_E_AMBIGUOUSNAME can result when an unqualified name matches several items; this code rejects qualification syntax itself.
capture raw name; API receiving it; containing library/module; namespace separator; expected local identifier; producer toolchain.
A generator passes Library.Interface as a member name; it changes the member to Interface and records the containing library separately.
Минимальный trace
- LIBID/version/LCID/SYSKIND и TYPEKIND.
- GUID/MEMBERID/HREFTYPE либо FUNCDESC/TYPEDESC, проверяемые операцией.
- точный LoadTypeLib/ITypeInfo/registration boundary и первый HRESULT.
После изменения IDL/type library проверяйте согласованность 32/64-bit artifacts и imported versions, а не копируйте отдельную DLL как универсальное исправление.
Причинная граница
Сравните failing и working trace той же операции. Поле или state, соответствующий «qualified name запрещено», должен быть единственным существенным отличием.
Проверьте metadata graph для условия «qualified name запрещено»: registration, module kind, member lookup, TYPEKIND и imported library version дают разные TYPE_E_* даже в одном toolchain.
Подтверждение результата
Исправьте metadata/type-library condition «qualified name запрещено», пересоберите или зарегистрируйте согласованный versioned artifact и повторите минимальный LoadTypeLib/ITypeInfo scenario.
Технические ссылки
Нужно найти другой код? Найти другой код состояния или ошибки.