| Предыдущий | Следующий |
| CONVERT10_E_OLESTREAM_BITMAP_TO_DIB | CONVERT10_E_STG_NO_STD_STREAM |
CONVERT10_E_STG_FMT
Что означает CONVERT10_E_STG_FMT и где искать причину
HRESULT CONVERT10_E_STG_FMT соответствует значению 0x800401C4. Его штатное описание: «Содержимое IStorage имеет неверный формат.»
Для CONVERT10_E_STG_FMT старший бит HRESULT делает значение ошибкой. Константа CONVERT10_E_STG_FMT объявлена в winerror.h и относится к области «преобразование OLE 1 и структурированного хранилища».
Контекст подсистемы
Для CONVERT10_E_STG_FMT код относится к преобразованию устаревшего OLESTREAM в COM Structured Storage или обратно. Для CONVERT10_E_STG_FMT такая ошибка обычно означает несоответствие формата потока, отсутствие обязательного стандартного потока либо невозможность преобразовать растровые данные.
Для CONVERT10_E_STG_FMT само имя кода не доказывает первопричину. Для CONVERT10_E_STG_FMT оно указывает, на каком контракте подсистема обнаружила нарушение; первичным считается первый вызов, который вернул HRESULT.
В имени CONVERT10_E_STG_FMT закодированы ориентиры для расследования: CONVERT10 — технический признак «convert10»; STG — структурированное хранилище. Для CONVERT10_E_STG_FMT эти ориентиры задают конкретный предмет проверки, но не заменяют контракт вызвавшего API.
Смысл результата: признаки в имени константы
Компонент имени CONVERT10 уточняет смысл CONVERT10_E_STG_FMT: речь идёт про технический признак «convert10». Для CONVERT10_E_STG_FMT эту границу следует воспроизвести отдельно от последующей обработки ошибки.
Для CONVERT10_E_STG_FMT часть STG относится к области «структурированное хранилище». При разборе CONVERT10_E_STG_FMT проверьте, какое состояние этого объекта ожидалось и какое наблюдалось реально.
Для CONVERT10_E_STG_FMT в техническом контексте особенно важны: CLSID, структурированное хранилище, провайдер. При расследовании CONVERT10_E_STG_FMT их следует проверять как связанные части одной операции, а не как независимые симптомы.
Диагностические данные
- На границе сбоя по
CONVERT10_E_STG_FMTнужно сохранить исходный OLESTREAM или compound file без повторного сохранения. - Для сравнения с исправным случаем по
CONVERT10_E_STG_FMTнужно зафиксировать направление преобразования и возвращённое число байтов. - До повторной попытки по
CONVERT10_E_STG_FMTнужно перечислить потоки и хранилища compound file. - Для воспроизводимого отчёта по
CONVERT10_E_STG_FMTнужно сохранить параметры BITMAP/DIB и таблицу цветов. - В первичном журнале по
CONVERT10_E_STG_FMTнужно проверить реализацию callback-функций Get/Put потока.
Проверка по шагам
- Для
CONVERT10_E_STG_FMT: Проверить сигнатуру и структуру исходного потока до запуска преобразования; повторите шаг на исправном контрольном примере. - Для
CONVERT10_E_STG_FMT: Убедиться, что callback чтения и записи обрабатывает частичные операции; сохраните первый hresult и точное время результата. - Для
CONVERT10_E_STG_FMT: Проверить обязательные стандартные потоки OLE в целевом хранилище; отдельно отметьте изменение состояния объекта. - Для
CONVERT10_E_STG_FMT: Воспроизвести преобразование на минимальном объекте того же класса; все остальные условия оставьте неизменными. - Для
CONVERT10_E_STG_FMT: После исправления открыть результат независимым OLE-клиентом и повторно сохранить; не удаляйте исходные данные до завершения сравнения.
Корректирующие действия
Корректирующее действие для CONVERT10_E_STG_FMT должно устранять условие «Содержимое IStorage имеет неверный формат» на уровне CLSID. Для CONVERT10_E_STG_FMT простое подавление HRESULT, бесконечный повтор или очистка всех настроек не доказывают восстановление контракта.
Для CONVERT10_E_STG_FMT после изменения повторите первоначальный сценарий, затем воспроизведите ближайшее ошибочное условие. Для CONVERT10_E_STG_FMT это подтверждает, что устранена причина, а не только изменён путь обработки ошибки.
Документация
- Microsoft: generic COM коды ошибок — CONVERT10_E_STG_FMT
- Microsoft: значения HRESULT — CONVERT10_E_STG_FMT
- Microsoft: Microsoft: OleConvertOLESTREAMToIStorage — CONVERT10_E_STG_FMT
- Microsoft: Microsoft: OleConvertIStorageToOLESTREAM — CONVERT10_E_STG_FMT
- Microsoft: Microsoft: structured storage — CONVERT10_E_STG_FMT
Нужно найти другой код? Найти другой код состояния или ошибки.