Что означает код HRESULT 0x000401E7 (MK_S_MONIKERALREADYREGISTERED)?

 
Предыдущий Следующий
MK_S_US EVENT_S_SOME_SUBSCRIBERS_FAILED

MK_S_MONIKERALREADYREGISTERED

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

MK_S_MONIKERALREADYREGISTERED (0x000401E7) — Моникер уже зарегистрирован в таблице выполняющихся объектов.

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

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

В первую очередь сопоставьте первый отказ с фактическими параметрами операции. Для 0x000401E7 в сценарии «моникер уже зарегистрирован в таблице выполняющихся объектов» установите идентичность и владельца уже существующего объекта; не создавайте второй экземпляр, пока не проверен жизненный цикл первого.

Диагностика 0x000401E7 должна включать IID и method, thread/apartment, argument values, object state и исходный HRESULT; отдельно запишите HRESULT, IRunningObjectTable::Register, ID, IDs. Для темы «mk, monikeralreadyregistered» при 0x000401E7 важны значения именно на первом отказе, а не после обработки ошибки верхним уровнем.

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

Повторите операцию в том же окружении и сравните первый отличающийся вызов; для результата 0x000401E7 это надёжнее единичного успеха на других данных.

Документация для результата 0x000401E7: COM moniker status codes · IRunningObjectTable::Register · Running Object Table.


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