| Предыдущий | Следующий |
| CO_E_OBJNOTREG | CO_E_OBJNOTCONNECTED |
CO_E_OBJISREG
Что означает CO_E_OBJISREG
CO_E_OBJISREG означает «объект уже зарегистрирован». В COM это обычно указывает на повторную регистрацию одного и того же объекта или на то, что вызывающий код потерял сведения о ранее созданной регистрации. Это не повод повторно регистрировать DLL или менять CLSID в реестре.
Что проверить
- Сохраните API регистрации, identity объекта и registration cookie/ключ, возвращённый первоначальным вызовом.
- Проверьте, не выполняется ли один и тот же init path дважды из-за повторного старта компонента или гонки потоков.
- Сопоставьте регистрацию с её штатным revoke/unregister; отсутствие симметричной очистки оставляет объект зарегистрированным дольше ожидаемого.
Как исправить
Сделайте регистрацию идемпотентной либо храните и корректно освобождайте исходный registration cookie. Не выполняйте случайный regsvr32: этот HRESULT относится к живой регистрации объекта, а не обязательно к установке COM-сервера.
Как подтвердить исправление
На один объект приходится одна активная регистрация, а повторная инициализация распознаёт существующую запись или предварительно штатно её снимает.
Технические ссылки
Нужно найти другой код? Найти другой код состояния или ошибки.