| Предыдущий | Следующий |
| 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 или разборе имени объекта.
Технические ссылки
Нужно найти другой код? Найти другой код состояния или ошибки.