Что означает код HRESULT 0x8002802A (TYPE_E_WRONGTYPEKIND)?

 
Предыдущий Следующий
TYPE_E_INVALIDSTATE TYPE_E_ELEMENTNOTFOUND

TYPE_E_WRONGTYPEKIND

Контракт подсистемы

При результате TYPE_E_WRONGTYPEKIND (0X8002802A) локализуйте операцию внутри COM Automation type library and ITypeInfo metadata resolution. Практическая граница — неверный TYPEKIND; поздняя обёртка может скрыть исходный command, policy или lifecycle-state.

COM type libraries образуют versioned metadata graph из LIBID, TYPEKIND, GUID, HREFTYPE и imported references; registry registration — только одна из возможных стадий отказа.

Конкретные признаки из исходного EN-описания

  • the result is HRESULT 2147647530 ( 0x8002802A ) from winerror.h.
  • A browser requests implemented interfaces from an enum type; it checks TYPEKIND and displays enum members instead.
  • capture TYPEKIND value; API called; type flags; containing library; generated source declaration; expected kind.
  • DISP_E_TYPEMISMATCH concerns a runtime argument; it concerns the category of a metadata type.

Поля для корреляции

  • LIBID/version/LCID/SYSKIND и TYPEKIND.
  • GUID/MEMBERID/HREFTYPE либо FUNCDESC/TYPEDESC, проверяемые операцией.
  • точный LoadTypeLib/ITypeInfo/registration boundary и первый HRESULT.

Type compiler, importer, proxy generator и runtime ITypeInfo consumer могут возвращать тот же TYPE_E_* на разных boundaries, поэтому producer/toolchain version входит в evidence.

Как проверить гипотезу

Сравните failing и working trace той же операции. Поле или state, соответствующий «неверный TYPEKIND», должен быть единственным существенным отличием.

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

Безопасное восстановление

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

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


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