| Предыдущий | Следующий |
| TYPE_E_AMBIGUOUSNAME | TYPE_E_UNKNOWNLCID |
TYPE_E_NAMECONFLICT
Контракт подсистемы
TYPE_E_NAMECONFLICT (0X8002802D) относится к COM Automation type library and ITypeInfo metadata resolution. Для расследования рабочее условие — конфликт имён. Сохраняйте первый native return и состояние объекта до автоматического retry или cleanup.
Type compiler, importer, proxy generator и runtime ITypeInfo consumer могут возвращать тот же TYPE_E_* на разных boundaries, поэтому producer/toolchain version входит в evidence.
Конкретные признаки из исходного EN-описания
the result is HRESULT 2147647533 ( 0x8002802D ) from winerror.h.
capture new name; existing element; scope; LCID and case; MEMBERID; generator source symbol.
TYPE_E_AMBIGUOUSNAME describes lookup among existing candidates; it prevents creating the duplicate.
A property named Count generates get_Count while a method already uses the same Automation name; the exporter renames the method explicitly.
Поля для корреляции
- LIBID/version/LCID/SYSKIND и TYPEKIND.
- GUID/MEMBERID/HREFTYPE либо FUNCDESC/TYPEDESC, проверяемые операцией.
- точный LoadTypeLib/ITypeInfo/registration boundary и первый HRESULT.
После изменения IDL/type library проверяйте согласованность 32/64-bit artifacts и imported versions, а не копируйте отдельную DLL как универсальное исправление.
Как проверить гипотезу
Сравните failing и working trace той же операции. Поле или state, соответствующий «конфликт имён», должен быть единственным существенным отличием.
Проверьте metadata graph для условия «конфликт имён»: registration, module kind, member lookup, TYPEKIND и imported library version дают разные TYPE_E_* даже в одном toolchain.
Безопасное восстановление
Исправьте metadata/type-library condition «конфликт имён», пересоберите или зарегистрируйте согласованный versioned artifact и повторите минимальный LoadTypeLib/ITypeInfo scenario.
Технические ссылки
Нужно найти другой код? Найти другой код состояния или ошибки.
