Что означает код HRESULT 0x8002802C (TYPE_E_AMBIGUOUSNAME)?

 
Предыдущий Следующий
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.

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


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