| Предыдущий | Следующий |
| CS_E_INTERNAL_ERROR | OLEOBJ_E_NOVERBS |
CACHE_E_NOCACHE_UPDATED
Граница, на которой возникает код
Штатный смысл CACHE_E_NOCACHE_UPDATED — Кэш не обновлён. Диагностику полезно начинать не с общего восстановления системы, а с операции уровня OLE cache и data-transfer contracts, которая первой вернула этот результат.
Что нужно для воспроизведения
- Зафиксируйте FORMATETC, clipboard format, cache entry, storage medium/handle и первый OLE API result; для этого результата эти данные должны относиться к первому неуспешному вызову, а не к cleanup после него.
- Отдельно перечислите cache entries, UpdateCache flags и фактический IDataObject source. Это проверяет условие «Кэш не обновлён» по фактическим параметрам, а не по имени константы.
- Сохраните технические маркеры
0x80040170,FACILITY_ITF,0x0170,FORMATETCи один исправный запуск с теми же входными данными.
Отделение соседних состояний
Минимальный тест должен сравнить поддерживаемый format/medium с фактическим и повторить один cache/data-transfer вызов. После этого повторите негативный вариант, чтобы fallback не был принят за исправление.
До получения контрольных данных не уничтожать исходный STGMEDIUM или clipboard data до проверки ownership; иначе станет невозможно доказать, какое условие действительно изменило результат.
Ближайший по прежнему шаблону результат CLIPBRD_E_CANT_CLOSE не следует считать эквивалентным: сравнивайте точное условие, указанное здесь, и первую различающуюся операцию.
Технические ссылки
- Microsoft: generic COM error codes
- Microsoft: HRESULT values
- Microsoft: IOleCache
- Microsoft: IOleCache::Cache
- Обмен данными OLE и буфер обмена
Нужно найти другой код? Найти другой код состояния или ошибки.