| Предыдущий | Следующий |
| 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-описания
the result is HRESULT 2147650720 ( 0x80028CA0 ) from winerror.h.
32-bit and 64-bit metadata were generated from inconsistent declarations.
The owner of it must define idempotency, cancellation, attempt limits, and reconciliation for the failed construction, import, or validation of TYPEDESC and ELEMDESC metadata.
AllStat describes it as “Type mismatch.” The result belongs to construction, import, or validation of TYPEDESC and ELEMDESC metadata.
Поля для корреляции
- LIBID/version/LCID/SYSKIND и TYPEKIND.
- GUID/MEMBERID/HREFTYPE либо FUNCDESC/TYPEDESC, проверяемые операцией.
- точный LoadTypeLib/ITypeInfo/registration boundary и первый HRESULT.
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.
Технические ссылки
- Microsoft: COM error codes for TYPE_E and OLE.
- Microsoft: LoadTypeLib.
- Microsoft: CreateTypeLib2.
- Microsoft: ITypeInfo.
Нужно найти другой код? Найти другой код состояния или ошибки.