Site icon EfmSoft

Что означает код HRESULT 0x80028CA0 (TYPE_E_TYPEMISMATCH)?

 
Предыдущий Следующий
TYPE_E_INVALIDID TYPE_E_OUTOFBOUNDS

TYPE_E_TYPEMISMATCH

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

Этот HRESULT 0X80028CA0 фиксирует условие несовпадение типов в подсистеме COM Automation type library and ITypeInfo metadata resolution. Для корректного сравнения нужны один и тот же API, сопоставимый object state и первый возврат до recovery.

После изменения IDL/type library проверяйте согласованность 32/64-bit artifacts и imported versions, а не копируйте отдельную DLL как универсальное исправление.

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

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

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

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

Сделайте минимальный before/after test для «несовпадение типов» и не меняйте одновременно policy, input и lifecycle-state: такой recovery не доказывает причинную связь.

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

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

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

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


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

Exit mobile version