Что означает код HRESULT 0x800401E2 (MK_E_NEEDGENERIC)?

 
Предыдущий Следующий
MK_E_EXCEEDEDDEADLINE MK_E_UNAVAILABLE

MK_E_NEEDGENERIC

Что означает MK_E_NEEDGENERIC

MK_E_NEEDGENERIC (0x800401E2) — операция композиции или reduction требует generic composite moniker, а текущий специализированный моникер не может представить нужную связь.

Моникер COM — это объект-имя, который не просто хранит строку, а знает правила разбора, сравнения, композиции и привязки к обозначаемому объекту или хранилищу. Поэтому ошибки MK_E_* нужно связывать с конкретным классом моникера и операцией IMoniker, а не трактовать как общий сбой COM.

Что проверить

  • Запишите классы обоих моникеров и результат ComposeWith/Reduce.
  • Проверьте параметр fOnlyIfNotGeneric и ожидания вызывающего кода относительно generic composite.
  • Не собирайте новый display name простой конкатенацией строк: composition должна выполняться через контракт IMoniker.

Что делать

Разрешите API создать корректный generic composite или измените композицию так, чтобы её поддерживал специализированный класс.

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


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