| Предыдущий | Следующий |
| 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.
- Если общий префикс необязателен для алгоритма, обработайте этот результат как допустимый исход сравнения.
Что делать
Не пытайтесь «чинить» моникеры только потому, что общего префикса нет: для независимых объектов это нормальный результат операции сравнения.
Технические ссылки
Нужно найти другой код? Найти другой код состояния или ошибки.