Что означает код HRESULT 0x800401EE (MK_E_NOPREFIX)?

 
Предыдущий Следующий
MK_E_NOSTORAGE MK_E_ENUMERATION_FAILED

MK_E_NOPREFIX

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

MK_E_NOPREFIX (0x800401EE) — два моникера не имеют общего префикса по правилам их классов.

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

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

  • Запишите классы и канонические формы и результаты Reduce обоих моникеров перед CommonPrefixWith.
  • Проверьте, не относятся ли они к разным корням, пространствам имён или несовместимым moniker classes.
  • Если общий префикс необязателен для алгоритма, обработайте этот результат как допустимый исход сравнения.

Что делать

Не пытайтесь «чинить» моникеры только потому, что общего префикса нет: для независимых объектов это нормальный результат операции сравнения.

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


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