| Previous | Next |
| VIEW_S_ALREADY_FROZEN | CACHE_S_SAMECACHE |
CACHE_S_FORMATETC_NOTSUPPORTED
OLE cache skipped an unsupported presentation format
CACHE_S_FORMATETC_NOTSUPPORTED is HRESULT 262512 (0x00040170) from winerror.h. AllStat describes CACHE_S_FORMATETC_NOTSUPPORTED as “FORMATETC not supported.” The high-order severity bit is clear, so this is a success result, but it carries more information than plain S_OK.
The cache operation completed with information that the requested FORMATETC is not supported for caching.
State boundary that must be proved
The central question for CACHE_S_FORMATETC_NOTSUPPORTED is whether other requested cache entries and the object itself may remain usable even though this particular format was not accepted. For CACHE_S_FORMATETC_NOTSUPPORTED, the HRESULT alone confirms neither unrelated work nor the quality of optional outputs.
A reliable interpretation of CACHE_S_FORMATETC_NOTSUPPORTED names the exact method contract, the object generation, and the outputs that remain valid. For CACHE_S_FORMATETC_NOTSUPPORTED, this prevents a success-with-information result from being promoted to full success or demoted to a generic error.
Where this result is encountered
CACHE_S_FORMATETC_NOTSUPPORTEDcan appear in IOleCache::Cache requests; record the producing interface and method rather than inferring behavior from the symbolic name alone.CACHE_S_FORMATETC_NOTSUPPORTEDcan appear in embedded-object presentation caching; record the producing interface and method rather than inferring behavior from the symbolic name alone.CACHE_S_FORMATETC_NOTSUPPORTEDcan appear in containers preparing offline display data for several aspects or media types; record the producing interface and method rather than inferring behavior from the symbolic name alone.
For CACHE_S_FORMATETC_NOTSUPPORTED, the same numeric success value can be mishandled when a wrapper exposes only a Boolean. For CACHE_S_FORMATETC_NOTSUPPORTED, keep the original HRESULT until the code-specific outputs and state transition have been evaluated.
Evidence and telemetry to preserve
- For
CACHE_S_FORMATETC_NOTSUPPORTED, preserve the rejected FORMATETC fields. - For
CACHE_S_FORMATETC_NOTSUPPORTED, preserve supported formats enumerated by the data object. - For
CACHE_S_FORMATETC_NOTSUPPORTED, preserve cache connection identifier output. - For
CACHE_S_FORMATETC_NOTSUPPORTED, preserve ADVF flags and update policy. - For
CACHE_S_FORMATETC_NOTSUPPORTED, preserve whether a fallback presentation was cached.
Also record cache_s_formatetc_notsupported_operation, cache_s_formatetc_notsupported_object, cache_s_formatetc_notsupported_state_before, cache_s_formatetc_notsupported_state_after, UTC time, process and thread identifiers, and a correlation ID. For CACHE_S_FORMATETC_NOTSUPPORTED, keep secrets out of logs while retaining GUIDs, CLSIDs, media subtypes, property IDs, row identities, and hashes needed to distinguish objects.
Diagnostic sequence
- For
CACHE_S_FORMATETC_NOTSUPPORTED, capture the raw HRESULT0x00040170immediately after the returning method and record whether the caller usedSUCCEEDED,FAILED, equality testing, or exception translation. - Identify the exact owner of
CACHE_S_FORMATETC_NOTSUPPORTED: interface, method, object instance, provider or filter version, thread or apartment, and operation phase. - Validate the decisive contract boundary for
CACHE_S_FORMATETC_NOTSUPPORTED: other requested cache entries and the object itself may remain usable even though this particular format was not accepted. - For
CACHE_S_FORMATETC_NOTSUPPORTED, inspect every output parameter, count, status array, returned interface, or side effect that the method documentation associates with this success-with-information result. - Compare the observed state before and after
CACHE_S_FORMATETC_NOTSUPPORTED; do not assume that a success severity bit means every optional sub-operation completed. - For
CACHE_S_FORMATETC_NOTSUPPORTED, reproduce the smallest request with the same object state and then change only the condition identified by the evidence before repeating the operation.
Correct handling, retry, and recovery
Choose a supported presentation format or continue without that cache entry when live rendering is acceptable. Do not assume the source data format itself is invalid.
Retry CACHE_S_FORMATETC_NOTSUPPORTED only when the recorded state can change the documented outcome. For CACHE_S_FORMATETC_NOTSUPPORTED, repeating the same call is inappropriate for a stable end marker, cancellation, unsupported format, adjusted property, or partial result whose completed side effects have not been reconciled.
Practical validation scenario
A container asks an object to cache a custom device-dependent format for offline thumbnails. The object declines that FORMATETC but accepts a metafile fallback, which the container verifies after closing the server.
The negative test should preserve the condition that produces CACHE_S_FORMATETC_NOTSUPPORTED; the recovery test should alter only that condition and verify the final state as well as the HRESULT.
Difference from nearby HRESULT values
DATA_S_SAMEFORMATETC reports equivalence; CACHE_S_FORMATETC_NOTSUPPORTED reports that the requested cache representation cannot be created.
For CACHE_S_FORMATETC_NOTSUPPORTED, this distinction determines whether the caller should consume partial outputs, stop iteration, wait, reconfigure, notify the user, or perform no error recovery at all.
Developer and administrator guidance
When CACHE_S_FORMATETC_NOTSUPPORTED crosses process, RPC, scripting, or managed-code boundaries, preserve the unsigned 32-bit value and symbolic name. For CACHE_S_FORMATETC_NOTSUPPORTED, a signed decimal rendering can obscure that the severity bit indicates success and can lead to incorrect exception or retry behavior.
A support report for CACHE_S_FORMATETC_NOTSUPPORTED should include decimal 262512, hexadecimal 0x00040170, the AllStat meaning, the owning API, and the first detailed status or output that explains why the method did not return ordinary S_OK.
References
- Microsoft: COM cache status codes — official documentation relevant to
CACHE_S_FORMATETC_NOTSUPPORTED. - Microsoft: IOleCache::Cache — official documentation relevant to
CACHE_S_FORMATETC_NOTSUPPORTED. - Microsoft: IOleCache — official documentation relevant to
CACHE_S_FORMATETC_NOTSUPPORTED.
Looking for a different code? Search another status or error code.