Что означает код HRESULT 0x800401F2 (CO_E_CANTDETERMINECLASS)?

 
Предыдущий Следующий
CO_E_ALREADYINITIALIZED CO_E_CLASSSTRING

CO_E_CANTDETERMINECLASS

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

CO_E_CANTDETERMINECLASS (0X800401F2) означает, что COM не смогла определить класс объекта из предоставленного представления — например, persisted storage, moniker или другой источник, из которого должен быть получен CLSID. Это происходит раньше проверки регистрации уже известного CLSID.

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

  • Запишите, откуда вызывающий код получает class identity: CLSID из storage, ProgID/строку класса, moniker или данные документа.
  • Сравните тот же объект с заведомо исправным экземпляром и проверьте наличие/целостность метаданных класса до вызова активации.
  • Не путайте с REGDB_E_CLASSNOTREG: там CLSID определён, но отсутствует его регистрация; здесь COM ещё не получила однозначный класс.

Контрольный тест должен менять только источник class identity. Если явная передача правильного CLSID проходит, искать проблему следует в persisted metadata или разборе имени объекта.

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


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