Что означает код HRESULT 0x800288BD (TYPE_E_BADMODULEKIND)?

 
Предыдущий Следующий
TYPE_E_DLLFUNCTIONNOTFOUND TYPE_E_SIZETOOBIG

TYPE_E_BADMODULEKIND

Практическая интерпретация

Этот HRESULT 0X800288BD фиксирует условие неподходящий вид модуля в подсистеме 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 2147649725 ( 0x800288BD ) from winerror.h.
  • capture TYPEKIND and TYPEFLAGS; operation; source declaration; containing library; dual/dispatch attributes; compiler output.
  • TYPE_E_WRONGTYPEKIND is the general category mismatch; it is associated with an invalid module form for a type-library operation.
  • A generator attempts to add a DLL entry description to a record type; it emits a module type instead.

Evidence первого возврата

  • 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, соответствующий «неподходящий вид модуля», должен быть единственным существенным отличием.

Проверьте metadata graph для условия «неподходящий вид модуля»: registration, module kind, member lookup, TYPEKIND и imported library version дают разные TYPE_E_* даже в одном toolchain.

После исправления

Исправьте metadata/type-library condition «неподходящий вид модуля», пересоберите или зарегистрируйте согласованный versioned artifact и повторите минимальный LoadTypeLib/ITypeInfo scenario.

Технические ссылки


Нужно найти другой код? Найти другой код состояния или ошибки.