| Предыдущий | Следующий |
| WININET_E_DECODING_FAILED | CO_E_SCM_ERROR |
CO_E_CLASS_CREATE_FAILED
Точная граница результата
При CO_E_CLASS_CREATE_FAILED нарушено конкретное условие: Не удалось создать объект класса. Не подменяйте его последующей ошибкой приложения: сначала локализуйте активация COM-сервера.
Параметры первого сбоя
- приложите к инциденту CLSID/IID, CLSCTX, server name, PID, LocalServer32/AppID и события SCM/server startup. Для условия «Не удалось создать объект класса» это позволяет восстановить исходный объект и не спутать его с последующим состоянием.
- зафиксируйте технические маркеры
CLSID,IID,CoCreateInstance,CoGetClassObject,RPCс теми значениями, которые были видны до очистки/rollback; они привязывают «Не удалось создать объект класса» к реальному вызову. - приложите к инциденту момент первого результата и один исправный запуск, сохранив одинаковыми входные данные; различие должно появиться именно на стадии активация COM-сервера.
Как подтвердить исправление
локализуйте разделить registration lookup, запуск процесса, публикацию class factory и первый RPC к серверу. Изменяйте только предпосылку, связанную с «Не удалось создать объект класса», а регистрацию, identity, входной объект и окружение по возможности оставляйте прежними.
не повторять CoCreateInstance в цикле, если запуск сервера имеет неизвестные побочные эффекты; для результата «Не удалось создать объект класса» широкая переустановка, очистка каталога или ослабление безопасности не считается доказательством причины.
Для соседних результатов REGDB_E_CLASSNOTREG сравнивайте первую различающуюся операцию. Исправление подтверждено только тогда, когда исходная граница проходит при прежних входах и следующий ожидаемый шаг получает корректное состояние.
Технические ссылки
- Microsoft Open Specifications: HRESULT values
- Microsoft: COM clients and servers
- Microsoft: CoGetClassObject
- Microsoft: COM elevation moniker
- Портал COM для Windows
- Microsoft: COM error codes
Нужно найти другой код? Найти другой код состояния или ошибки.