| Предыдущий | Следующий |
| TYPE_E_ELEMENTNOTFOUND | TYPE_E_NAMECONFLICT |
TYPE_E_AMBIGUOUSNAME
Точная стадия ошибки
При результате TYPE_E_AMBIGUOUSNAME (0X8002802C) локализуйте операцию внутри COM Automation type library and ITypeInfo metadata resolution. Практическая граница — неоднозначное имя; поздняя обёртка может скрыть исходный command, policy или lifecycle-state.
После изменения IDL/type library проверяйте согласованность 32/64-bit artifacts и imported versions, а не копируйте отдельную DLL как универсальное исправление.
Конкретные признаки из исходного EN-описания
the result is HRESULT 2147647532 ( 0x8002802C ) from winerror.h.
The appropriate recovery is to remove or rename the collision, select by stable identity such as LIBID and MEMBERID, or narrow the lookup scope through supported APIs.
capture ambiguous name; candidate libraries and types; namespace/import order; LCID; aliases; generated source declaration.
Two imported libraries both define Status; the generator binds by LIBID and fully modeled scope rather than display name alone.
Что сравнивать
- 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.
Технические ссылки
Нужно найти другой код? Найти другой код состояния или ошибки.