| Предыдущий | Следующий |
| TYPE_E_UNSUPFORMAT | TYPE_E_LIBNOTREGISTERED |
TYPE_E_REGISTRYACCESS
Практическая интерпретация
При результате TYPE_E_REGISTRYACCESS (0X8002801C) локализуйте операцию внутри COM Automation type library and ITypeInfo metadata resolution. Практическая граница — доступ к реестру; поздняя обёртка может скрыть исходный command, policy или lifecycle-state.
COM type libraries образуют versioned metadata graph из LIBID, TYPEKIND, GUID, HREFTYPE и imported references; registry registration — только одна из возможных стадий отказа.
Конкретные признаки из исходного EN-описания
the result is HRESULT 2147647516 ( 0x8002801C ) from winerror.h.
A 32-bit installer writes only the 32-bit TypeLib view while a 64-bit client looks in the other view; the package registers both required views.
TYPE_E_LIBNOTREGISTERED means lookup completed but no registration exists; it means the registry operation itself failed.
capture registry path and view; user or machine scope; process bitness; access token; virtualization; underlying Win32 error.
Evidence первого возврата
- 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.
Контрольный эксперимент
Сделайте минимальный 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.
Технические ссылки
Нужно найти другой код? Найти другой код состояния или ошибки.
