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

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

MK_E_NOPREFIX

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

MK_E_NOPREFIX (0x800401EE) — Общий префикс отсутствует.

В подсистеме «COM/WinRT» результат 0x800401EE относится к области «контракт вызываемого interface, аргументы и state объекта». Описание «общий префикс отсутствует» сужает проверку до темы «mk, noprefix».

Что проверить и как подтвердить исправление

Первый шаг — сопоставьте первый отказ с фактическими параметрами операции. Когда при 0x800401EE система сообщает «общий префикс отсутствует», воспроизведите отказ на минимальном объекте и меняйте только одно условие за запуск, чтобы отделить неверный вход от состояния системы.

Чтобы локализовать 0x800401EE, соберите IID и method, thread/apartment, argument values, object state и исходный HRESULT; отдельно запишите IMoniker::CommonPrefixWith, IMoniker, IBindCtx, IErrorInfo, HRESULT. Затем для 0x800401EE сравните исправный и неуспешный запуск в части «mk, noprefix», меняя одно условие за раз.

Для 0x800401EE применяйте исправление на границе первого отказа: исправьте параметры и жизненный цикл объекта в соответствии с контрактом первого неуспешного метода. Сообщение «общий префикс отсутствует» при 0x800401EE не следует подавлять общей обработкой исключения.

Закройте диагностику после двух проверок: исходный сценарий проходит без результата 0x800401EE, а заведомо неверный вход отклоняется на ожидаемой границе.

Документация для результата 0x800401EE: generic COM error codes · HRESULT values · IMoniker.


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